pub struct GlobalRegistryClient {
pub last_assigned_ttl_ns: u64,
pub last_heartbeat_interval_ns: u64,
pub last_announce_ts_ns: u64,
}Expand description
Client half of GlobalRegistry. Holds TTL / heartbeat state echoed
from the server’s most recent Handshake; the server peer is wired
through the graph at every Announce and is not a struct field.
Fields§
§last_assigned_ttl_ns: u64TTL the server assigned in its last Handshake response.
Stamped into outgoing Announce envelopes as
remaining_deadline_ns so receivers can age out stale entries
without per-peer state.
last_heartbeat_interval_ns: u64Heartbeat interval the server computed in its last Handshake
(assigned_ttl_ns / 3). The client respects this interval when
throttling subsequent Announces.
last_announce_ts_ns: u64Monotonic-ns timestamp of the most recent Announce dispatch. Skipped on snapshot/restore so bootstrap re-seeds the cadence on resume.
Implementations§
Trait Implementations§
Source§impl AnyComponent for GlobalRegistryClient
impl AnyComponent for GlobalRegistryClient
Source§impl Bootstrap for GlobalRegistryClient
impl Bootstrap for GlobalRegistryClient
Source§type Error = Infallible
type Error = Infallible
Library-maker-defined error type. Must satisfy the standard
engine error bounds so the framework can box it into the
dispatch error channel.
Source§impl Clone for GlobalRegistryClient
impl Clone for GlobalRegistryClient
Source§fn clone(&self) -> GlobalRegistryClient
fn clone(&self) -> GlobalRegistryClient
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl ConcreteComponent for GlobalRegistryClient
impl ConcreteComponent for GlobalRegistryClient
Source§const TYPE_NAME: &'static str = "GlobalRegistryClient"
const TYPE_NAME: &'static str = "GlobalRegistryClient"
Stable identifier. Convention:
<crate>::<TypeName>.Source§const PACKAGE: ComponentPackage = ::bytesandbrains::concrete::ComponentPackage::Application
const PACKAGE: ComponentPackage = ::bytesandbrains::concrete::ComponentPackage::Application
Origin tag; defaults to
Application.Source§const DEPENDENCIES: &'static [DependencyDecl]
const DEPENDENCIES: &'static [DependencyDecl]
Sibling components this depends on. Populated by the
bb::Concrete derive from #[bb::depends(...)].Source§type Error = Infallible
type Error = Infallible
Error from
Self::new; use Infallible if construction
can’t fail.Source§impl Debug for GlobalRegistryClient
impl Debug for GlobalRegistryClient
Source§impl Default for GlobalRegistryClient
impl Default for GlobalRegistryClient
Source§fn default() -> GlobalRegistryClient
fn default() -> GlobalRegistryClient
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for GlobalRegistryClient
impl<'de> Deserialize<'de> for GlobalRegistryClient
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl ProtocolRuntime for GlobalRegistryClient
impl ProtocolRuntime for GlobalRegistryClient
Source§fn atomic_opset(&self) -> AtomicOpsetDecl
fn atomic_opset(&self) -> AtomicOpsetDecl
Atomic-op opset this protocol declares. Both inbound
envelope routing AND user-graph DSL ops register here.
Source§fn dispatch_atomic(
&mut self,
op_type: &str,
inputs: &[(&str, &dyn SlotValue)],
ctx: &mut RuntimeResourceRef<'_>,
) -> Result<DispatchResult, OpError>
fn dispatch_atomic( &mut self, op_type: &str, inputs: &[(&str, &dyn SlotValue)], ctx: &mut RuntimeResourceRef<'_>, ) -> Result<DispatchResult, OpError>
Single dispatch entry. For inbound envelopes the framework
synthesizes inputs from the wire envelope: Read more
Auto Trait Implementations§
impl Freeze for GlobalRegistryClient
impl RefUnwindSafe for GlobalRegistryClient
impl Send for GlobalRegistryClient
impl Sync for GlobalRegistryClient
impl Unpin for GlobalRegistryClient
impl UnsafeUnpin for GlobalRegistryClient
impl UnwindSafe for GlobalRegistryClient
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> ErasedComponent for T
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>
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> SlotValue for T
impl<T> SlotValue for T
Source§fn into_any_boxed(self: Box<T>) -> Box<dyn Any + Sync + Send>
fn into_any_boxed(self: Box<T>) -> Box<dyn Any + Sync + Send>
Repackage
Box<dyn SlotValue> as Box<dyn Any> for
Box::downcast. Required because the SlotValue and
Any vtables are distinct even though SlotValue: Any.Source§fn clone_boxed(&self) -> Box<dyn SlotValue>
fn clone_boxed(&self) -> Box<dyn SlotValue>
Polymorphic clone preserving the concrete type.
Source§fn to_wire_bytes(&self) -> Result<Vec<u8>, SlotValueError>
fn to_wire_bytes(&self) -> Result<Vec<u8>, SlotValueError>
Wire-boundary encode (bincode + serde). Local forwarding
uses
clone_boxed instead.Source§fn type_hash(&self) -> u64
fn type_hash(&self) -> u64
Stable cross-Node type discriminator. FNV-1a of
std::any::type_name::<T>(); receiver decodes only on a
matching hash.Source§fn runtime_type(&self) -> &'static TypeNode
fn runtime_type(&self) -> &'static TypeNode
Source§fn charged_bytes(&self) -> usize
fn charged_bytes(&self) -> usize
Bytes the carrier owes against
NodeConfig::ingress_byte_budget. Slot-table eviction calls
this to release the charge. Default 0 — only
ingress-derived carriers register a non-zero resolver via
[register_charged_bytes!].