Struct tvix_castore::composition::Registry
source · pub struct Registry(BTreeMap<(TypeId, &'static str), Box<dyn Any + Sync>>);
Expand description
Resolves tag names to the corresponding Config type.
Tuple Fields§
§0: BTreeMap<(TypeId, &'static str), Box<dyn Any + Sync>>
Implementations§
source§impl Registry
impl Registry
sourcepub fn register<T: 'static, C: DeserializeOwned + TryFrom<Url, Error = Box<dyn Error + Send + Sync>> + Into<T>>(
&mut self,
type_name: &'static str
)
pub fn register<T: 'static, C: DeserializeOwned + TryFrom<Url, Error = Box<dyn Error + Send + Sync>> + Into<T>>( &mut self, type_name: &'static str )
Registers a mapping from type tag to a concrete type into the registry.
The type parameters are very important:
After calling register::<Box<dyn FooTrait>, FooStruct>("footype")
, when a user
deserializes into an input with the type tag “myblobservicetype” into a
Box<dyn FooTrait>
, it will first call the Deserialize imple of FooStruct
and
then convert it into a Box<dyn FooTrait>
using From::from.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Registry
impl !RefUnwindSafe for Registry
impl !Send for Registry
impl Sync for Registry
impl Unpin for Registry
impl !UnwindSafe for Registry
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
source§impl<T> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
source§impl<T> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request