Skip to main content

DynamicTypeBuilder

Struct DynamicTypeBuilder 

Source
pub struct DynamicTypeBuilder { /* private fields */ }
Expand description

XTypes §7.5.4 DynamicTypeBuilder.

Implementations§

Source§

impl DynamicTypeBuilder

Source

pub fn descriptor(&self) -> &TypeDescriptor

Aktueller Descriptor (read-only-View).

Source

pub fn set_descriptor( &mut self, descriptor: TypeDescriptor, ) -> Result<(), DynamicError>

Setzt den Descriptor neu (Spec §7.5.4.1 SetDescriptor) — nur erlaubt vor build().

§Errors

PreconditionNotMet wenn schon build() aufgerufen wurde.

Source

pub fn add_member( &mut self, descriptor: MemberDescriptor, ) -> Result<(), DynamicError>

Fuegt einen Member hinzu (Spec §7.5.4.1.2 AddMember).

Validiert sofort:

  • Eindeutiger Name unter den bisherigen Members.
  • Eindeutige Id (nur wenn Composite XCDR2-tauglich).
  • Member-Typ ist konsistent.
  • Kind erlaubt Members.

index wird automatisch gesetzt, falls vom Caller auf 0 gelassen, sonst respektiert.

§Errors

BuilderConflict bei Dup-Name/Id, IllegalOperation wenn der Kind keine Members traegt.

Source

pub fn add_struct_member( &mut self, name: impl Into<String>, id: MemberId, ty: TypeDescriptor, ) -> Result<(), DynamicError>

Convenience-Wrapper fuer Strukturen.

§Errors

Siehe [add_member].

Source

pub fn build(&self) -> Result<DynamicType, DynamicError>

Spec §7.5.4.1.1 Build — finalisiert den Builder.

Validierungen:

  • alle Member-Descriptors konsistent
  • Inheritance-Cycle ueber Namen
  • Union: Discriminator + mind. 1 Case
  • Eindeutige Labels in Union
§Errors

BuilderConflict / Inconsistent.

Trait Implementations§

Source§

impl Debug for DynamicTypeBuilder

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.