pub struct DynamicTypeBuilder { /* private fields */ }Expand description
XTypes §7.5.4 DynamicTypeBuilder.
Implementations§
Source§impl DynamicTypeBuilder
impl DynamicTypeBuilder
Sourcepub fn descriptor(&self) -> &TypeDescriptor
pub fn descriptor(&self) -> &TypeDescriptor
Aktueller Descriptor (read-only-View).
Sourcepub fn set_descriptor(
&mut self,
descriptor: TypeDescriptor,
) -> Result<(), DynamicError>
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.
Sourcepub fn add_member(
&mut self,
descriptor: MemberDescriptor,
) -> Result<(), DynamicError>
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.
Sourcepub fn add_struct_member(
&mut self,
name: impl Into<String>,
id: MemberId,
ty: TypeDescriptor,
) -> Result<(), DynamicError>
pub fn add_struct_member( &mut self, name: impl Into<String>, id: MemberId, ty: TypeDescriptor, ) -> Result<(), DynamicError>
Sourcepub fn build(&self) -> Result<DynamicType, DynamicError>
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§
Auto Trait Implementations§
impl !Freeze for DynamicTypeBuilder
impl RefUnwindSafe for DynamicTypeBuilder
impl Send for DynamicTypeBuilder
impl Sync for DynamicTypeBuilder
impl Unpin for DynamicTypeBuilder
impl UnsafeUnpin for DynamicTypeBuilder
impl UnwindSafe for DynamicTypeBuilder
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