pub struct ClientRootRef { /* private fields */ }Expand description
An opaque bearer capability to the program’s one client root.
The inner behavior reference is never exposed. Possession of an inherited
ClientRootRef is the authority under Hyperactor’s trusted-actor model
(CROOT-2); it is API attenuation, not actor authentication.
Implementations§
Source§impl ClientRootRef
impl ClientRootRef
Sourcepub fn bind(root: &ActorHandle<ProcAgent>) -> Self
pub fn bind(root: &ActorHandle<ProcAgent>) -> Self
Bind [ClientRootApi] on the program’s root ProcAgent handle and wrap
the resulting reference (CROOT-1). Only the active root bootstrap calls
this; worker ProcAgents never bind the API.
Sourcepub fn from_env(environment: &ActorEnvironment) -> Result<ClientRootRef>
pub fn from_env(environment: &ActorEnvironment) -> Result<ClientRootRef>
Read the client-root capability from the supplied actor environment, failing closed when it is absent (CROOT-6). Every consumer (starting with RDMA) obtains the root here rather than re-deriving it, so the missing-capability path is enforced in one place.
Trait Implementations§
Source§impl AttrValue for ClientRootRef
impl AttrValue for ClientRootRef
Source§impl Clone for ClientRootRef
impl Clone for ClientRootRef
Source§fn clone(&self) -> ClientRootRef
fn clone(&self) -> ClientRootRef
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 Debug for ClientRootRef
impl Debug for ClientRootRef
Source§impl<'de> Deserialize<'de> for ClientRootRef
impl<'de> Deserialize<'de> for ClientRootRef
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
impl Eq for ClientRootRef
Source§impl Hash for ClientRootRef
impl Hash for ClientRootRef
Source§impl Named for ClientRootRef
impl Named for ClientRootRef
Source§fn typename() -> &'static str
fn typename() -> &'static str
The globally unique type name for the type.
This should typically be the fully qualified Rust name of the type.
Source§fn typehash() -> u64
fn typehash() -> u64
A globally unique hash for this type.
TODO: actually enforce perfect hashing
Source§fn typeid() -> TypeId
fn typeid() -> TypeId
The TypeId for this type. TypeIds are unique only within a binary,
and should not be used for global identification.
Source§impl PartialEq for ClientRootRef
impl PartialEq for ClientRootRef
Source§fn eq(&self, other: &ClientRootRef) -> bool
fn eq(&self, other: &ClientRootRef) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Serialize for ClientRootRef
impl Serialize for ClientRootRef
impl StructuralPartialEq for ClientRootRef
Auto Trait Implementations§
impl Freeze for ClientRootRef
impl RefUnwindSafe for ClientRootRef
impl Send for ClientRootRef
impl Sync for ClientRootRef
impl Unpin for ClientRootRef
impl UnsafeUnpin for ClientRootRef
impl UnwindSafe for ClientRootRef
Blanket Implementations§
impl<M> Accepts<M> for Mwhere
M: RemoteMessage,
impl<T> Allocation for T
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§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
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].