#[repr(C, u8)]pub enum BindingPatternKind<'a> {
BindingIdentifier(Box<'a, BindingIdentifier<'a>>),
ObjectPattern(Box<'a, ObjectPattern<'a>>),
ArrayPattern(Box<'a, ArrayPattern<'a>>),
AssignmentPattern(Box<'a, AssignmentPattern<'a>>),
}
Variants§
BindingIdentifier(Box<'a, BindingIdentifier<'a>>)
x
in const x = 1;
.
Also e.g. x
in:
const [x] = arr;
const { a: x } = obj;
const [ ...x ] = arr;
const [x = 1] = arr;
function f(x) {}
try {} catch (x) {}
ObjectPattern(Box<'a, ObjectPattern<'a>>)
{x}
in const {x} = 1;
.
Also e.g. {x}
in:
const [{x}] = arr;
const { a: {x} } = obj;
const [{x} = obj] = arr;
const [ ...{x} ] = arr;
function f({x}) {}
try {} catch ({x}) {}
ArrayPattern(Box<'a, ArrayPattern<'a>>)
[x]
in const [x] = 1;
Also e.g. [x]
in:
const { a: [x] } = obj;
const { a: [x] = arr } = obj;
const [[x]] = obj;
const [ ...[x] ] = arr;
function f([x]) {}
try {} catch ([x]) {}
AssignmentPattern(Box<'a, AssignmentPattern<'a>>)
x = 1
in const {x = 1} = obj;
.
Also e.g. x = 1
in:
const [x = 1] = arr;
const { a: x = 1 } = obj;
function f(x = 1) {}
Also e.g. {x} = obj
in:
const [{x} = obj] = arr;
const { a: {x} = obj2 } = obj;
function f({x} = obj) {}
Invalid in:
BindingRestElement
e.g.const [...x = 1] = arr;
.CatchParameter
e.g.try {} catch (e = 1) {}
.
Implementations§
Source§impl<'a> BindingPatternKind<'a>
impl<'a> BindingPatternKind<'a>
Sourcepub fn get_identifier_name(&self) -> Option<Atom<'a>>
pub fn get_identifier_name(&self) -> Option<Atom<'a>>
Returns the name of the bound identifier in this binding pattern, if it has one, or None
otherwise.
§Example
- calling on
a = 1
inlet a = 1
would returnSome("a")
- calling on
a = 1
inlet {a = 1} = c
would returnSome("a")
- calling on
a: b
inlet {a: b} = c
would returnNone
Sourcepub fn get_binding_identifier(&self) -> Option<&BindingIdentifier<'a>>
pub fn get_binding_identifier(&self) -> Option<&BindingIdentifier<'a>>
Returns the bound identifier in this binding pattern, if it has one, or None
otherwise.
To just get the name of the bound identifier, use BindingPatternKind::get_identifier_name
.
§Example
- calling on
a = 1
inlet a = 1
would returnSome(BindingIdentifier { name: "a", .. })
- calling on
a = 1
inlet {a = 1} = c
would returnSome(BindingIdentifier { name: "a", .. })
- calling on
a: b
inlet {a: b} = c
would returnNone
Sourcepub fn get_binding_identifiers(&self) -> Vec<&BindingIdentifier<'a>>
pub fn get_binding_identifiers(&self) -> Vec<&BindingIdentifier<'a>>
Returns the bound identifiers in this binding pattern.
§Example
let {} = obj
would return[]
let {a, b} = obj
would return[a, b]
let {a = 1, b: c} = obj
would return[a, c]
Sourcepub fn is_destructuring_pattern(&self) -> bool
pub fn is_destructuring_pattern(&self) -> bool
Returns true
if this binding pattern is destructuring.
§Example
{a, b}
inlet {a, b} = obj
would returntrue
[a, b]
inlet [a, b] = arr
would returntrue
a = 1
inlet {a = 1} = obj
would returntrue
a
inlet {a = 1} = obj
would returnfalse
Sourcepub fn is_binding_identifier(&self) -> bool
pub fn is_binding_identifier(&self) -> bool
Returns true
if this binding pattern is a binding identifier like a
in let a = 1
.
Sourcepub fn is_object_pattern(&self) -> bool
pub fn is_object_pattern(&self) -> bool
Returns true
if this binding pattern is an object pattern like {a}
in let {a} = obj
.
Sourcepub fn is_array_pattern(&self) -> bool
pub fn is_array_pattern(&self) -> bool
Returns true
if this binding pattern is an array pattern like [a]
in let [a] = arr
.
Sourcepub fn is_assignment_pattern(&self) -> bool
pub fn is_assignment_pattern(&self) -> bool
Returns true
if this binding pattern is an assignment pattern like a = 1
in let {a = 1} = obj
.
Trait Implementations§
Source§impl<'new_alloc> CloneIn<'new_alloc> for BindingPatternKind<'_>
impl<'new_alloc> CloneIn<'new_alloc> for BindingPatternKind<'_>
Source§type Cloned = BindingPatternKind<'new_alloc>
type Cloned = BindingPatternKind<'new_alloc>
Source§fn clone_in(
&self,
allocator: &'new_alloc Allocator,
) -> <BindingPatternKind<'_> as CloneIn<'new_alloc>>::Cloned
fn clone_in( &self, allocator: &'new_alloc Allocator, ) -> <BindingPatternKind<'_> as CloneIn<'new_alloc>>::Cloned
self
into the given allocator
. allocator
may be the same one
that self
is already in.Source§fn clone_in_with_semantic_ids(
&self,
allocator: &'new_alloc Allocator,
) -> <BindingPatternKind<'_> as CloneIn<'new_alloc>>::Cloned
fn clone_in_with_semantic_ids( &self, allocator: &'new_alloc Allocator, ) -> <BindingPatternKind<'_> as CloneIn<'new_alloc>>::Cloned
clone_in
, but for some special type, it will also clone the semantic ids.
Please use this method only if you make sure semantic info is synced with the ast node.Source§impl ContentEq for BindingPatternKind<'_>
impl ContentEq for BindingPatternKind<'_>
Source§fn content_eq(&self, other: &BindingPatternKind<'_>) -> bool
fn content_eq(&self, other: &BindingPatternKind<'_>) -> bool
self
and other
to be equal.Source§fn content_ne(&self, other: &Self) -> bool
fn content_ne(&self, other: &Self) -> bool
self
and other
not to be equal.
The default implementation is almost always
sufficient, and should not be overridden without very good reason.Source§impl<'a> Debug for BindingPatternKind<'a>
impl<'a> Debug for BindingPatternKind<'a>
Source§impl<'a> Dummy<'a> for BindingPatternKind<'a>
impl<'a> Dummy<'a> for BindingPatternKind<'a>
Source§fn dummy(allocator: &'a Allocator) -> BindingPatternKind<'a>
fn dummy(allocator: &'a Allocator) -> BindingPatternKind<'a>
Create a dummy BindingPatternKind
.
Has cost of making 1 allocation (32 bytes).
Source§impl ESTree for BindingPatternKind<'_>
impl ESTree for BindingPatternKind<'_>
fn serialize<S>(&self, serializer: S)where
S: Serializer,
Source§impl Gen for BindingPatternKind<'_>
impl Gen for BindingPatternKind<'_>
Source§impl GetAddress for BindingPatternKind<'_>
impl GetAddress for BindingPatternKind<'_>
Source§impl GetSpan for BindingPatternKind<'_>
impl GetSpan for BindingPatternKind<'_>
Source§impl GetSpanMut for BindingPatternKind<'_>
impl GetSpanMut for BindingPatternKind<'_>
Source§impl<'a> TakeIn<'a> for BindingPatternKind<'a>
impl<'a> TakeIn<'a> for BindingPatternKind<'a>
Source§fn take_in<A>(&mut self, allocator_accessor: A) -> Selfwhere
A: AllocatorAccessor<'a>,
fn take_in<A>(&mut self, allocator_accessor: A) -> Selfwhere
A: AllocatorAccessor<'a>,
Source§fn take_in_box<A>(&mut self, allocator_accessor: A) -> Box<'a, Self>where
A: AllocatorAccessor<'a>,
fn take_in_box<A>(&mut self, allocator_accessor: A) -> Box<'a, Self>where
A: AllocatorAccessor<'a>,
Auto Trait Implementations§
impl<'a> Freeze for BindingPatternKind<'a>
impl<'a> !RefUnwindSafe for BindingPatternKind<'a>
impl<'a> !Send for BindingPatternKind<'a>
impl<'a> !Sync for BindingPatternKind<'a>
impl<'a> Unpin for BindingPatternKind<'a>
impl<'a> !UnwindSafe for BindingPatternKind<'a>
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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg
or
a color-specific method, such as OwoColorize::green
, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg
or
a color-specific method, such as OwoColorize::on_yellow
, Read more