pub struct CapabilityRouter { /* private fields */ }Expand description
State-aware capability routing engine
Implementations§
Source§impl CapabilityRouter
impl CapabilityRouter
pub fn new() -> Self
Sourcepub fn register_local(&mut self, ad: DistributedCapabilityAdvertisement)
pub fn register_local(&mut self, ad: DistributedCapabilityAdvertisement)
Register a local capability
Sourcepub fn register_remote(&mut self, ad: DistributedCapabilityAdvertisement)
pub fn register_remote(&mut self, ad: DistributedCapabilityAdvertisement)
Register a remote capability
Sourcepub fn update_peer_state(
&mut self,
peer_id: String,
namespace: String,
version: u64,
)
pub fn update_peer_state( &mut self, peer_id: String, namespace: String, version: u64, )
Update peer state version
Sourcepub fn get_peer_state_version(&self, peer_id: &str, namespace: &str) -> u64
pub fn get_peer_state_version(&self, peer_id: &str, namespace: &str) -> u64
Get the state version a peer has for a namespace
Sourcepub fn route(
&self,
cap_ref: &CapabilityRef,
required_state_version: u64,
local_peer_id: &str,
) -> RouteDecision
pub fn route( &self, cap_ref: &CapabilityRef, required_state_version: u64, local_peer_id: &str, ) -> RouteDecision
Route a capability execution request
Sourcepub fn find_compatible_providers(
&self,
cap_ref: &CapabilityRef,
required_state_version: u64,
) -> Vec<&DistributedCapabilityAdvertisement>
pub fn find_compatible_providers( &self, cap_ref: &CapabilityRef, required_state_version: u64, ) -> Vec<&DistributedCapabilityAdvertisement>
Find providers with compatible state versions
Sourcepub fn requires_state_acquisition(
&self,
provider_peer: &str,
cap_ref: &CapabilityRef,
required_state_version: u64,
) -> bool
pub fn requires_state_acquisition( &self, provider_peer: &str, cap_ref: &CapabilityRef, required_state_version: u64, ) -> bool
Check if capability requires state acquisition
Sourcepub fn plan_state_acquisition(
&self,
provider_peer: &str,
cap_ref: &CapabilityRef,
required_state_version: u64,
) -> Vec<String>
pub fn plan_state_acquisition( &self, provider_peer: &str, cap_ref: &CapabilityRef, required_state_version: u64, ) -> Vec<String>
Plan state acquisition - list namespaces that need to be acquired
Trait Implementations§
Auto Trait Implementations§
impl Freeze for CapabilityRouter
impl RefUnwindSafe for CapabilityRouter
impl Send for CapabilityRouter
impl Sync for CapabilityRouter
impl Unpin for CapabilityRouter
impl UnsafeUnpin for CapabilityRouter
impl UnwindSafe for CapabilityRouter
Blanket Implementations§
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