pub struct Feature { /* private fields */ }
Expand description
A set of runtime feature flags which can be enabled individually or in combination, which will change the way Parser works.
To build multiple features, use the bitwise OR operator.
§Example
use css_lexer::*;
let features = Feature::SingleLineComments | Feature::SeparateWhitespace;
let mut lexer = Lexer::new_with_features("// foo", features);
Implementations§
Source§impl Feature
impl Feature
Sourcepub const SingleLineComments: Feature
pub const SingleLineComments: Feature
This flag is forwarded to the Lexer which, when enabled, will treat single line comments as valid
Comment tokens. If it encounters two consecutative SOLIDUS characters (//
), it will return a
Token with Kind::Comment. For more information about exactly what
happens here at the lexer level, consult the css_lexer::Feature::SingleLineComments feature.
This flag doesn’t cause any changes in logic on the Parser; comments will be collected in the trivia tokens Vec as normal.
Sourcepub const SeparateWhitespace: Feature
pub const SeparateWhitespace: Feature
This flag is forwarded to the Lexer which, when enabled, will treat diffetent whitespace kinds as descrete. For more information about exactly what happens here at the lexer level, consult the css_lexer::Feature::SeparateWhitespace feature.
This flag doesn’t cause any changes in logic on the Parser; whitespace is typically collected in the trivia Vec. AST nodes which call Parser::set_skip() to parse whitespace sensitive nodes should be cognizant that this feature could be enabled, meaning that adjacent whitespace tokens are possible. To counter adjacent tokens, simply parse any whitespace in a loop.
Sourcepub const fn all_bits() -> Self
pub const fn all_bits() -> Self
Returns a bitmask that contains all values.
This will include bits that do not have any flags.
Use ::all_flags()
if you only want to use flags.
Sourcepub const fn is_all_bits(&self) -> bool
pub const fn is_all_bits(&self) -> bool
Returns true
if the bitmask contains all values.
This will check for bits == !0
,
use .is_all_flags()
if you only want to check for all flags
Sourcepub const fn is_all_flags(&self) -> bool
pub const fn is_all_flags(&self) -> bool
Returns true
if the bitmask contains all flags.
This will fail if any unused bit is set,
consider using .truncate()
first.
Sourcepub const fn all() -> Self
👎Deprecated: Please use the ::all_bits()
constructor
pub const fn all() -> Self
::all_bits()
constructorReturns a bitmask that contains all values.
This will include bits that do not have any flags.
Use ::all_flags()
if you only want to use flags.
Sourcepub const fn is_all(&self) -> bool
👎Deprecated: Please use the .is_all_bits()
method
pub const fn is_all(&self) -> bool
.is_all_bits()
methodReturns true
if the bitmask contains all values.
This will check for bits == !0
,
use .is_all_flags()
if you only want to check for all flags
Sourcepub const fn full() -> Self
👎Deprecated: Please use the ::all_flags()
constructor
pub const fn full() -> Self
::all_flags()
constructorReturns a bitmask that contains all flags.
Sourcepub const fn is_full(&self) -> bool
👎Deprecated: Please use the .is_all_flags()
method
pub const fn is_full(&self) -> bool
.is_all_flags()
methodReturns true
if the bitmask contains all flags.
This will fail if any unused bit is set,
consider using .truncate()
first.
Sourcepub const fn truncate(&self) -> Self
pub const fn truncate(&self) -> Self
Returns a bitmask that only has bits corresponding to flags
Sourcepub const fn intersects(&self, other: Self) -> bool
pub const fn intersects(&self, other: Self) -> bool
Returns true
if self
intersects with any value in other
,
or if other
does not contain any values.
This is equivalent to (self & other) != 0 || other == 0
.
Trait Implementations§
Source§impl BitAndAssign for Feature
impl BitAndAssign for Feature
Source§fn bitand_assign(&mut self, rhs: Self)
fn bitand_assign(&mut self, rhs: Self)
&=
operation. Read moreSource§impl BitOrAssign for Feature
impl BitOrAssign for Feature
Source§fn bitor_assign(&mut self, rhs: Self)
fn bitor_assign(&mut self, rhs: Self)
|=
operation. Read moreSource§impl BitXorAssign for Feature
impl BitXorAssign for Feature
Source§fn bitxor_assign(&mut self, rhs: Self)
fn bitxor_assign(&mut self, rhs: Self)
^=
operation. Read more