pub struct ComponentDefinition {
pub metadata: ComponentMetadata,
pub schema: ComponentSchema,
}Fields§
§metadata: ComponentMetadata§schema: ComponentSchemaImplementations§
Source§impl ComponentDefinition
impl ComponentDefinition
Sourcepub fn new(
metadata: ComponentMetadata,
schema: ComponentSchema,
) -> Result<Self, ComponentError>
pub fn new( metadata: ComponentMetadata, schema: ComponentSchema, ) -> Result<Self, ComponentError>
Construct and validate a formal component definition.
§Errors
Returns ComponentError when names, compatibility ranges, defaults,
event callbacks, slots, parts, or capabilities violate the component
contract.
Sourcepub fn invoke(
&self,
key: Option<String>,
props: Map,
) -> Result<ComponentInvocation, ComponentError>
pub fn invoke( &self, key: Option<String>, props: Map, ) -> Result<ComponentInvocation, ComponentError>
Validate and normalize invocation props, applying declared defaults.
§Errors
Returns ComponentError::MissingKey for an unkeyed stateful instance,
or ComponentError::InvalidProps when props violate the schema.
Sourcepub fn validate_event(
&self,
event: &str,
payload: &Dynamic,
) -> Result<(), ComponentError>
pub fn validate_event( &self, event: &str, payload: &Dynamic, ) -> Result<(), ComponentError>
Validate a declared semantic event payload.
§Errors
Returns ComponentError::UnknownEvent or
ComponentError::InvalidEventPayload.
Sourcepub fn validate_header(
&self,
header: &ComponentMetadata,
) -> Result<(), ComponentError>
pub fn validate_header( &self, header: &ComponentMetadata, ) -> Result<(), ComponentError>
Confirm that the source header describes this exported definition.
§Errors
Returns ComponentError::HeaderMismatch when any metadata differs.
Trait Implementations§
Source§impl Clone for ComponentDefinition
impl Clone for ComponentDefinition
Source§impl Debug for ComponentDefinition
impl Debug for ComponentDefinition
Source§impl<'de> Deserialize<'de> for ComponentDefinition
impl<'de> Deserialize<'de> for ComponentDefinition
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 PartialEq for ComponentDefinition
impl PartialEq for ComponentDefinition
Source§impl Serialize for ComponentDefinition
impl Serialize for ComponentDefinition
impl StructuralPartialEq for ComponentDefinition
Auto Trait Implementations§
impl Freeze for ComponentDefinition
impl RefUnwindSafe for ComponentDefinition
impl Send for ComponentDefinition
impl Sync for ComponentDefinition
impl Unpin for ComponentDefinition
impl UnsafeUnpin for ComponentDefinition
impl UnwindSafe for ComponentDefinition
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>,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync 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> ⓘ
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>
fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>
Source§impl<T> Variant for T
impl<T> Variant for T
Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert this
Variant trait object to &mut dyn Any.Source§fn as_boxed_any(self: Box<T>) -> Box<dyn Any>
fn as_boxed_any(self: Box<T>) -> Box<dyn Any>
Convert this
Variant trait object to Box<dyn Any>.