pub struct TaggedUnionSchema {
pub discriminator: String,
pub mapping: HashMap<String, Box<dyn Serializable>>,
pub metadata: Option<MetadataSchema>,
pub transformations: Vec<EnumTransformation>,
}Expand description
Represents a schema for a tagged union in an Arri schema.
This struct defines the discriminator, mapping of variants, optional metadata, and transformations associated with a tagged union.
Fields§
§discriminator: StringThe discriminator used to identify the variant in the tagged union.
mapping: HashMap<String, Box<dyn Serializable>>A mapping of variant names to their corresponding serializable content.
metadata: Option<MetadataSchema>Optional metadata associated with the tagged union schema.
transformations: Vec<EnumTransformation>A list of transformations applied to the variant names.
Implementations§
Source§impl TaggedUnionSchema
impl TaggedUnionSchema
Sourcepub fn new() -> TaggedUnionSchema
pub fn new() -> TaggedUnionSchema
Creates a new TaggedUnionSchema instance with default values.
§Returns
A new TaggedUnionSchema instance.
Sourcepub fn add_mapping(
&mut self,
variant: impl ToString,
content: Box<dyn Serializable>,
)
pub fn add_mapping( &mut self, variant: impl ToString, content: Box<dyn Serializable>, )
Adds a mapping for a variant in the tagged union.
§Arguments
variant- The name of the variant.content- The serializable content associated with the variant.
Sourcepub fn set_transforms(&mut self, transformations: &[EnumTransformation])
pub fn set_transforms(&mut self, transformations: &[EnumTransformation])
Sets the transformations to be applied to variant names.
§Arguments
transformations- A slice ofEnumTransformationobjects.
Sourcepub fn set_discriminator(&mut self, discriminator: impl ToString)
pub fn set_discriminator(&mut self, discriminator: impl ToString)
Sets the discriminator for the tagged union.
§Arguments
discriminator- The discriminator value as a string.
Trait Implementations§
Source§impl Debug for TaggedUnionSchema
impl Debug for TaggedUnionSchema
Source§impl Default for TaggedUnionSchema
impl Default for TaggedUnionSchema
Source§fn default() -> TaggedUnionSchema
fn default() -> TaggedUnionSchema
Returns the “default value” for a type. Read more
Source§impl PartialEq for TaggedUnionSchema
impl PartialEq for TaggedUnionSchema
Source§impl Serializable for TaggedUnionSchema
impl Serializable for TaggedUnionSchema
Source§fn serialize(&self) -> Option<String>
fn serialize(&self) -> Option<String>
Serializes the object into an optional string representation. Read more
Source§fn set_metadata(&mut self, metadata: MetadataSchema)
fn set_metadata(&mut self, metadata: MetadataSchema)
Sets metadata for the object. Read more
Source§fn set_nullable(&mut self, nullable: bool)
fn set_nullable(&mut self, nullable: bool)
Sets the nullability of the object. Read more
Source§fn set_rename(&mut self, new_name: &str)
fn set_rename(&mut self, new_name: &str)
Renames the object. Read more
impl Eq for TaggedUnionSchema
impl StructuralPartialEq for TaggedUnionSchema
Auto Trait Implementations§
impl Freeze for TaggedUnionSchema
impl !RefUnwindSafe for TaggedUnionSchema
impl !Send for TaggedUnionSchema
impl !Sync for TaggedUnionSchema
impl Unpin for TaggedUnionSchema
impl !UnwindSafe for TaggedUnionSchema
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> 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>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn 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>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which 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)
Converts
&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)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.