pub struct Optional { /* private fields */ }Expand description
An optional chain expression, as defined by the spec.
Optional chaining allows for short-circuiting property accesses and function calls, which
will return undefined instead of returning an error if the access target or the call is
either undefined or null.
An example of optional chaining:
const adventurer = {
name: 'Alice',
cat: {
name: 'Dinah'
}
};
console.log(adventurer.cat?.name); // Dinah
console.log(adventurer.dog?.name); // undefinedImplementations§
Source§impl Optional
impl Optional
Sourcepub fn new(
target: Expression,
chain: Box<[OptionalOperation]>,
span: Span,
) -> Self
pub fn new( target: Expression, chain: Box<[OptionalOperation]>, span: Span, ) -> Self
Creates a new Optional expression.
Sourcepub fn target(&self) -> &Expression
pub fn target(&self) -> &Expression
Gets the target of this Optional expression.
Sourcepub fn chain(&self) -> &[OptionalOperation]
pub fn chain(&self) -> &[OptionalOperation]
Gets the chain of accesses and calls that will be applied to the target at runtime.
Trait Implementations§
Source§impl<'arbitrary> Arbitrary<'arbitrary> for Optional
impl<'arbitrary> Arbitrary<'arbitrary> for Optional
Source§fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
Generate an arbitrary value of
Self from the given unstructured data. Read moreSource§fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
Generate an arbitrary value of
Self from the entirety of the given
unstructured data. Read moreSource§fn size_hint(depth: usize) -> (usize, Option<usize>)
fn size_hint(depth: usize) -> (usize, Option<usize>)
Get a size hint for how many bytes out of an
Unstructured this type
needs to construct itself. Read moreSource§fn try_size_hint(
depth: usize,
) -> Result<(usize, Option<usize>), MaxRecursionReached>
fn try_size_hint( depth: usize, ) -> Result<(usize, Option<usize>), MaxRecursionReached>
Get a size hint for how many bytes out of an
Unstructured this type
needs to construct itself. Read moreSource§impl<'de> Deserialize<'de> for Optional
impl<'de> Deserialize<'de> for Optional
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<'a> From<&'a mut Optional> for NodeRefMut<'a>
impl<'a> From<&'a mut Optional> for NodeRefMut<'a>
Source§fn from(node: &'a mut Optional) -> NodeRefMut<'a>
fn from(node: &'a mut Optional) -> NodeRefMut<'a>
Converts to this type from the input type.
Source§impl From<Optional> for Expression
impl From<Optional> for Expression
impl StructuralPartialEq for Optional
Source§impl ToInternedString for Optional
impl ToInternedString for Optional
Source§fn to_interned_string(&self, interner: &Interner) -> String
fn to_interned_string(&self, interner: &Interner) -> String
Converts a given element to a string using an interner.
Source§impl VisitWith for Optional
impl VisitWith for Optional
Source§fn visit_with<'a, V>(&'a self, visitor: &mut V) -> ControlFlow<V::BreakTy>where
V: Visitor<'a>,
fn visit_with<'a, V>(&'a self, visitor: &mut V) -> ControlFlow<V::BreakTy>where
V: Visitor<'a>,
Visit this node with the provided visitor.
Source§fn visit_with_mut<'a, V>(
&'a mut self,
visitor: &mut V,
) -> ControlFlow<V::BreakTy>where
V: VisitorMut<'a>,
fn visit_with_mut<'a, V>(
&'a mut self,
visitor: &mut V,
) -> ControlFlow<V::BreakTy>where
V: VisitorMut<'a>,
Visit this node with the provided visitor mutably, allowing the visitor to modify private
fields.
Auto Trait Implementations§
impl !RefUnwindSafe for Optional
impl !Send for Optional
impl !Sync for Optional
impl !UnwindSafe for Optional
impl Freeze for Optional
impl Unpin for Optional
impl UnsafeUnpin for Optional
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