pub struct WarmCache { /* private fields */ }Expand description
Background capacity cache with automatic polling.
§Example
use vaea_flash_sdk::warm_cache::WarmCache;
let cache = WarmCache::new(None, None);
cache.start().await;
// Later, in your hot loop:
if let Some(sol) = cache.get_token_capacity("SOL") {
println!("SOL available: {}", sol.max_amount);
}
cache.stop();Implementations§
Source§impl WarmCache
impl WarmCache
Sourcepub fn new(api_url: Option<&str>, refresh_ms: Option<u64>) -> Self
pub fn new(api_url: Option<&str>, refresh_ms: Option<u64>) -> Self
Create a new WarmCache.
api_url— API base URL (default: VAEA_API_URL)refresh_ms— Polling interval in milliseconds (default: 2000)
Sourcepub fn on_update<F: Fn(&CapacityResponse) + Send + 'static>(&self, handler: F)
pub fn on_update<F: Fn(&CapacityResponse) + Send + 'static>(&self, handler: F)
Register a listener for capacity updates.
Sourcepub fn get_capacity(&self) -> Option<CapacityResponse>
pub fn get_capacity(&self) -> Option<CapacityResponse>
Get cached capacity (None if not yet loaded).
Sourcepub fn get_token_capacity(&self, symbol: &str) -> Option<TokenCapacity>
pub fn get_token_capacity(&self, symbol: &str) -> Option<TokenCapacity>
Get cached capacity for a single token.
Auto Trait Implementations§
impl Freeze for WarmCache
impl RefUnwindSafe for WarmCache
impl Send for WarmCache
impl Sync for WarmCache
impl Unpin for WarmCache
impl UnsafeUnpin for WarmCache
impl UnwindSafe for WarmCache
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more