Files
khadhroony-solana-project/crates/ksp-offchain-transport-lib/src/market_price_settings.rs

38 lines
1.3 KiB
Rust

// file: crates/ksp-offchain-transport-lib/src/market_price_settings.rs
// version: 2
/// Common provider settings embedded by future provider-specific runtime settings.
///
/// Provider-specific credentials, pair selectors and access modes intentionally do not live here because providers without those capabilities must not be
/// forced into artificial fields.
#[derive(Clone, Debug, Eq, PartialEq, serde::Serialize)]
pub struct PriceProviderCommonSettings {
enabled: bool,
provider_id: crate::PriceProviderId,
}
impl PriceProviderCommonSettings {
/// Creates common settings for one uniquely identified runtime provider instance.
#[must_use]
pub fn new(provider_id: crate::PriceProviderId, enabled: bool) -> Self {
ksp_logging_lib::trace!(target: crate::TRACING_TARGET, enabled = enabled, "constructed common market-price provider settings");
return Self { enabled, provider_id };
}
/// Reports whether this provider instance is enabled.
#[must_use]
pub const fn enabled(&self) -> bool {
return self.enabled;
}
/// Returns the opaque runtime provider identifier.
#[must_use]
pub const fn provider_id(&self) -> &crate::PriceProviderId {
return &self.provider_id;
}
}
#[cfg(test)]
#[path = "../unit_tests/market_price_settings.rs"]
mod tests;