v0.2.11-pre.008
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-offchain-transport-lib/src/market_price_provider.rs
|
||||
// version: 4
|
||||
// version: 5
|
||||
|
||||
/// Maximum UTF-8 byte length of one provider display name.
|
||||
pub const MARKET_PRICE_PROVIDER_DISPLAY_NAME_MAX_BYTES: usize = 96;
|
||||
@@ -418,6 +418,18 @@ impl crate::MarketPriceProviderAvailability {
|
||||
return matches!(self, Self::Ready);
|
||||
}
|
||||
|
||||
/// Reports whether a refresh may be attempted at the supplied wall-clock timestamp.
|
||||
#[must_use]
|
||||
pub fn is_refresh_eligible_at(&self, now: crate::MarketPriceTimestamp) -> bool {
|
||||
return match self {
|
||||
Self::Ready => true,
|
||||
Self::CoolingDown { retry_at } => *retry_at <= now,
|
||||
Self::TemporarilyUnavailable { retry_at: std::option::Option::Some(retry_at) } => *retry_at <= now,
|
||||
Self::TemporarilyUnavailable { retry_at: std::option::Option::None } => true,
|
||||
Self::AuthenticationUnavailable | Self::Disabled | Self::Misconfigured | Self::QuotaUnavailable => false,
|
||||
};
|
||||
}
|
||||
|
||||
/// Returns the known next retry timestamp for cooling-down or temporary states.
|
||||
#[must_use]
|
||||
pub const fn retry_at(&self) -> std::option::Option<crate::MarketPriceTimestamp> {
|
||||
@@ -454,6 +466,11 @@ impl MarketPriceProviderState {
|
||||
pub const fn provider_id(&self) -> &crate::MarketPriceProviderId {
|
||||
return &self.provider_id;
|
||||
}
|
||||
|
||||
/// Replaces the internal availability projection while preserving provider identity.
|
||||
pub(crate) fn set_availability(&mut self, availability: crate::MarketPriceProviderAvailability) {
|
||||
self.availability = availability;
|
||||
}
|
||||
}
|
||||
|
||||
fn provider_descriptor_error() -> ksp_core_lib::Error {
|
||||
|
||||
Reference in New Issue
Block a user