pub struct SchemaField { /* private fields */ }Expand description
A single field declaration inside a @schema block.
Fields declared with SchemaField::optional are emitted with a * suffix,
meaning the key does not have to be present in the data map, but its value is
still type-checked when it is present.
§Example
use aam_core::builder::SchemaField;
let f = SchemaField::required("host", "string");
assert_eq!(f.to_aaml(), "host: string");
let g = SchemaField::optional("debug", "bool");
assert_eq!(g.to_aaml(), "debug*: bool");Implementations§
Source§impl SchemaField
impl SchemaField
Sourcepub fn required(name: impl Into<String>, type_name: impl Into<String>) -> Self
pub fn required(name: impl Into<String>, type_name: impl Into<String>) -> Self
Creates a required field (rendered as name: type).
Sourcepub fn optional(name: impl Into<String>, type_name: impl Into<String>) -> Self
pub fn optional(name: impl Into<String>, type_name: impl Into<String>) -> Self
Creates an optional field (rendered as name*: type).
pub fn to_aaml_writer(&self, w: impl Write) -> Result
Trait Implementations§
Source§impl Clone for SchemaField
impl Clone for SchemaField
Source§fn clone(&self) -> SchemaField
fn clone(&self) -> SchemaField
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for SchemaField
impl RefUnwindSafe for SchemaField
impl Send for SchemaField
impl Sync for SchemaField
impl Unpin for SchemaField
impl UnsafeUnpin for SchemaField
impl UnwindSafe for SchemaField
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.