pub trait Reloadable<S>:
Send
+ Sync
+ 'static {
// Required method
fn reload<'life0, 'life1, 'async_trait>(
&'life0 self,
state: &'life1 S,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
// Provided method
fn priority(&self) -> Option<u8> { ... }
}Expand description
Anything that can hot-reload itself when config changes.
reload() is the same shape as Provider::boot() — re-read the
on-disk config (use tokio::fs, never std::fs in this async path)
and rebuild the runtime snapshot, publishing it through an
ArcSwap so in-flight requests/connections see the swap atomically.
Reload must NOT change which providers are registered; it only
refreshes state of an already-registered provider.
Required Methods§
Sourcefn reload<'life0, 'life1, 'async_trait>(
&'life0 self,
state: &'life1 S,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn reload<'life0, 'life1, 'async_trait>(
&'life0 self,
state: &'life1 S,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Perform a synchronous reload using the current shared state. Implementations may spawn async work internally if needed.
Provided Methods§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".