pub struct RendererFlags(/* private fields */);
Expand description
Different flags that control what code the Renderer
is generating.
Implementations§
Source§impl RendererFlags
impl RendererFlags
Sourcepub const NONE: Self
pub const NONE: Self
None of the features are enabled.
§Examples
Consider the following XML schema:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://example.com"
targetNamespace="http://example.com">
<xs:complexType name="MyChoice">
<xs:choice>
<xs:element name="Once" type="xs:int" />
<xs:element name="Optional" type="xs:int" minOccurs="0" />
<xs:element name="OnceSpecify" type="xs:int" minOccurs="1" />
<xs:element name="TwiceOrMore" type="xs:int" minOccurs="2" maxOccurs="unbounded" />
</xs:choice>
</xs:complexType>
<xs:complexType name="MySequence">
<xs:sequence>
<xs:element name="Once" type="xs:int" />
<xs:element name="Optional" type="xs:int" minOccurs="0" />
<xs:element name="OnceSpecify" type="xs:int" minOccurs="1" />
<xs:element name="TwiceOrMore" type="xs:int" minOccurs="2" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:schema>
Setting none of the flags will result in the following code:
#[derive(Debug)]
pub struct MyChoiceType {
pub content: MyChoiceTypeContent,
}
#[derive(Debug)]
pub enum MyChoiceTypeContent {
Once(i32),
Optional(Option<i32>),
OnceSpecify(i32),
TwiceOrMore(Vec<i32>),
}
#[derive(Debug)]
pub struct MySequenceType {
pub once: i32,
pub optional: Option<i32>,
pub once_specify: i32,
pub twice_or_more: Vec<i32>,
}
Sourcepub const RENDER_DOCS: Self
pub const RENDER_DOCS: Self
The renderer adds documentation to the rendered code if a
xs:documentation
element was placed in the schema.
§Examples
Consider the following XML schema:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://example.com"
targetNamespace="http://example.com">
<xs:complexType name="MyChoice">
<xs:annotation>
<xs:documentation>
This is an example type to show how choices are working
</xs:documentation>
</xs:annotation>
<xs:choice>
<xs:element name="Once" type="xs:int">
<xs:annotation>
<xs:documentation>
Exactly one integer.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Optional" type="xs:int" minOccurs="0">
<xs:annotation>
<xs:documentation>
An optional integer.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="OnceSpecify" type="xs:int" minOccurs="1">
<xs:annotation>
<xs:documentation>
Exactly one integer, but this was set explicitly.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TwiceOrMore" type="xs:int" minOccurs="2" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Two or more integers.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:complexType name="MySequence">
<xs:annotation>
<xs:documentation>
This is an example type to show how sequences are working
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Once" type="xs:int">
<xs:annotation>
<xs:documentation>
Exactly one integer.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Optional" type="xs:int" minOccurs="0">
<xs:annotation>
<xs:documentation>
An optional integer.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="OnceSpecify" type="xs:int" minOccurs="1">
<xs:annotation>
<xs:documentation>
Exactly one integer, but this was set explicitly.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TwiceOrMore" type="xs:int" minOccurs="2" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Two or more integers.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>
Enable the RENDER_DOCS
feature only will result in the following code:
///This is an example type to show how choices are working
#[derive(Debug)]
pub struct MyChoiceType {
pub content: MyChoiceTypeContent,
}
///This is an example type to show how choices are working
#[derive(Debug)]
pub enum MyChoiceTypeContent {
///Exactly one integer.
Once(i32),
///An optional integer.
Optional(Option<i32>),
///Exactly one integer, but this was set explicitly.
OnceSpecify(i32),
///Two or more integers.
TwiceOrMore(Vec<i32>),
}
///This is an example type to show how sequences are working
#[derive(Debug)]
pub struct MySequenceType {
///Exactly one integer.
pub once: i32,
///An optional integer.
pub optional: Option<i32>,
///Exactly one integer, but this was set explicitly.
pub once_specify: i32,
///Two or more integers.
pub twice_or_more: Vec<i32>,
}
Sourcepub const RENDER_TYPE_DOCS: Self
pub const RENDER_TYPE_DOCS: Self
The renderer adds documentation to the rendered types if a
xs:documentation
element was placed in the schema.
See RENDER_DOCS
for details.
Sourcepub const RENDER_ELEMENT_DOCS: Self
pub const RENDER_ELEMENT_DOCS: Self
The renderer adds documentation to the rendered elements if a
xs:documentation
element was placed in the schema.
See RENDER_DOCS
for details.
Sourcepub const RENDER_ATTRIBUTE_DOCS: Self
pub const RENDER_ATTRIBUTE_DOCS: Self
The renderer adds documentation to the rendered attributes if a
xs:documentation
element was placed in the schema.
See RENDER_DOCS
for details.
Sourcepub const RENDER_VARIANT_DOCS: Self
pub const RENDER_VARIANT_DOCS: Self
The renderer adds documentation to the rendered enum variants for
xs:enumeration
types if a xs:documentation
element was placed
in the schema.
See RENDER_DOCS
for details.
Source§impl RendererFlags
impl RendererFlags
Sourcepub const fn bits(&self) -> u32
pub const fn bits(&self) -> u32
Get the underlying bits value.
The returned value is exactly the bits set in this flags value.
Sourcepub const fn from_bits(bits: u32) -> Option<Self>
pub const fn from_bits(bits: u32) -> Option<Self>
Convert from a bits value.
This method will return None
if any unknown bits are set.
Sourcepub const fn from_bits_truncate(bits: u32) -> Self
pub const fn from_bits_truncate(bits: u32) -> Self
Convert from a bits value, unsetting any unknown bits.
Sourcepub const fn from_bits_retain(bits: u32) -> Self
pub const fn from_bits_retain(bits: u32) -> Self
Convert from a bits value exactly.
Sourcepub fn from_name(name: &str) -> Option<Self>
pub fn from_name(name: &str) -> Option<Self>
Get a flags value with the bits of a flag with the given name set.
This method will return None
if name
is empty or doesn’t
correspond to any named flag.
Sourcepub const fn intersects(&self, other: Self) -> bool
pub const fn intersects(&self, other: Self) -> bool
Whether any set bits in a source flags value are also set in a target flags value.
Sourcepub const fn contains(&self, other: Self) -> bool
pub const fn contains(&self, other: Self) -> bool
Whether all set bits in a source flags value are also set in a target flags value.
Sourcepub fn remove(&mut self, other: Self)
pub fn remove(&mut self, other: Self)
The intersection of a source flags value with the complement of a target flags value (&!
).
This method is not equivalent to self & !other
when other
has unknown bits set.
remove
won’t truncate other
, but the !
operator will.
Sourcepub fn toggle(&mut self, other: Self)
pub fn toggle(&mut self, other: Self)
The bitwise exclusive-or (^
) of the bits in two flags values.
Sourcepub fn set(&mut self, other: Self, value: bool)
pub fn set(&mut self, other: Self, value: bool)
Call insert
when value
is true
or remove
when value
is false
.
Sourcepub const fn intersection(self, other: Self) -> Self
pub const fn intersection(self, other: Self) -> Self
The bitwise and (&
) of the bits in two flags values.
Sourcepub const fn union(self, other: Self) -> Self
pub const fn union(self, other: Self) -> Self
The bitwise or (|
) of the bits in two flags values.
Sourcepub const fn difference(self, other: Self) -> Self
pub const fn difference(self, other: Self) -> Self
The intersection of a source flags value with the complement of a target flags value (&!
).
This method is not equivalent to self & !other
when other
has unknown bits set.
difference
won’t truncate other
, but the !
operator will.
Sourcepub const fn symmetric_difference(self, other: Self) -> Self
pub const fn symmetric_difference(self, other: Self) -> Self
The bitwise exclusive-or (^
) of the bits in two flags values.
Sourcepub const fn complement(self) -> Self
pub const fn complement(self) -> Self
The bitwise negation (!
) of the bits in a flags value, truncating the result.
Source§impl RendererFlags
impl RendererFlags
Sourcepub const fn iter(&self) -> Iter<RendererFlags>
pub const fn iter(&self) -> Iter<RendererFlags>
Yield a set of contained flags values.
Each yielded flags value will correspond to a defined named flag. Any unknown bits will be yielded together as a final flags value.
Sourcepub const fn iter_names(&self) -> IterNames<RendererFlags>
pub const fn iter_names(&self) -> IterNames<RendererFlags>
Yield a set of contained named flags values.
This method is like iter
, except only yields bits in contained named flags.
Any unknown bits, or bits not corresponding to a contained flag will not be yielded.
Trait Implementations§
Source§impl Binary for RendererFlags
impl Binary for RendererFlags
Source§impl BitAnd for RendererFlags
impl BitAnd for RendererFlags
Source§impl BitAndAssign for RendererFlags
impl BitAndAssign for RendererFlags
Source§fn bitand_assign(&mut self, other: Self)
fn bitand_assign(&mut self, other: Self)
The bitwise and (&
) of the bits in two flags values.
Source§impl BitOr for RendererFlags
impl BitOr for RendererFlags
Source§fn bitor(self, other: RendererFlags) -> Self
fn bitor(self, other: RendererFlags) -> Self
The bitwise or (|
) of the bits in two flags values.
Source§type Output = RendererFlags
type Output = RendererFlags
|
operator.Source§impl BitOrAssign for RendererFlags
impl BitOrAssign for RendererFlags
Source§fn bitor_assign(&mut self, other: Self)
fn bitor_assign(&mut self, other: Self)
The bitwise or (|
) of the bits in two flags values.
Source§impl BitXor for RendererFlags
impl BitXor for RendererFlags
Source§impl BitXorAssign for RendererFlags
impl BitXorAssign for RendererFlags
Source§fn bitxor_assign(&mut self, other: Self)
fn bitxor_assign(&mut self, other: Self)
The bitwise exclusive-or (^
) of the bits in two flags values.
Source§impl Clone for RendererFlags
impl Clone for RendererFlags
Source§fn clone(&self) -> RendererFlags
fn clone(&self) -> RendererFlags
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for RendererFlags
impl Debug for RendererFlags
Source§impl Extend<RendererFlags> for RendererFlags
impl Extend<RendererFlags> for RendererFlags
Source§fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
The bitwise or (|
) of the bits in each flags value.
Source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)Source§impl Flags for RendererFlags
impl Flags for RendererFlags
Source§const FLAGS: &'static [Flag<RendererFlags>]
const FLAGS: &'static [Flag<RendererFlags>]
Source§fn from_bits_retain(bits: u32) -> RendererFlags
fn from_bits_retain(bits: u32) -> RendererFlags
Source§fn contains_unknown_bits(&self) -> bool
fn contains_unknown_bits(&self) -> bool
true
if any unknown bits are set.Source§fn from_bits_truncate(bits: Self::Bits) -> Self
fn from_bits_truncate(bits: Self::Bits) -> Self
Source§fn from_name(name: &str) -> Option<Self>
fn from_name(name: &str) -> Option<Self>
Source§fn iter_names(&self) -> IterNames<Self>
fn iter_names(&self) -> IterNames<Self>
Source§fn intersects(&self, other: Self) -> boolwhere
Self: Sized,
fn intersects(&self, other: Self) -> boolwhere
Self: Sized,
Source§fn contains(&self, other: Self) -> boolwhere
Self: Sized,
fn contains(&self, other: Self) -> boolwhere
Self: Sized,
Source§fn insert(&mut self, other: Self)where
Self: Sized,
fn insert(&mut self, other: Self)where
Self: Sized,
|
) of the bits in two flags values.Source§fn remove(&mut self, other: Self)where
Self: Sized,
fn remove(&mut self, other: Self)where
Self: Sized,
&!
). Read moreSource§fn toggle(&mut self, other: Self)where
Self: Sized,
fn toggle(&mut self, other: Self)where
Self: Sized,
^
) of the bits in two flags values.Source§fn intersection(self, other: Self) -> Self
fn intersection(self, other: Self) -> Self
&
) of the bits in two flags values.Source§fn difference(self, other: Self) -> Self
fn difference(self, other: Self) -> Self
&!
). Read moreSource§fn symmetric_difference(self, other: Self) -> Self
fn symmetric_difference(self, other: Self) -> Self
^
) of the bits in two flags values.Source§fn complement(self) -> Self
fn complement(self) -> Self
!
) of the bits in a flags value, truncating the result.Source§impl FromIterator<RendererFlags> for RendererFlags
impl FromIterator<RendererFlags> for RendererFlags
Source§fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
The bitwise or (|
) of the bits in each flags value.
Source§impl IntoIterator for RendererFlags
impl IntoIterator for RendererFlags
Source§impl LowerHex for RendererFlags
impl LowerHex for RendererFlags
Source§impl Not for RendererFlags
impl Not for RendererFlags
Source§impl Octal for RendererFlags
impl Octal for RendererFlags
Source§impl PublicFlags for RendererFlags
impl PublicFlags for RendererFlags
Source§impl Sub for RendererFlags
impl Sub for RendererFlags
Source§fn sub(self, other: Self) -> Self
fn sub(self, other: Self) -> Self
The intersection of a source flags value with the complement of a target flags value (&!
).
This method is not equivalent to self & !other
when other
has unknown bits set.
difference
won’t truncate other
, but the !
operator will.
Source§type Output = RendererFlags
type Output = RendererFlags
-
operator.Source§impl SubAssign for RendererFlags
impl SubAssign for RendererFlags
Source§fn sub_assign(&mut self, other: Self)
fn sub_assign(&mut self, other: Self)
The intersection of a source flags value with the complement of a target flags value (&!
).
This method is not equivalent to self & !other
when other
has unknown bits set.
difference
won’t truncate other
, but the !
operator will.