pub enum AnyJsBindingDeclaration {
Show 34 variants JsArrayBindingPatternElement(JsArrayBindingPatternElement), JsArrayBindingPatternRestElement(JsArrayBindingPatternRestElement), JsObjectBindingPatternProperty(JsObjectBindingPatternProperty), JsObjectBindingPatternRest(JsObjectBindingPatternRest), JsObjectBindingPatternShorthandProperty(JsObjectBindingPatternShorthandProperty), JsVariableDeclarator(JsVariableDeclarator), JsArrowFunctionExpression(JsArrowFunctionExpression), JsFormalParameter(JsFormalParameter), JsRestParameter(JsRestParameter), JsBogusParameter(JsBogusParameter), TsIndexSignatureParameter(TsIndexSignatureParameter), TsPropertyParameter(TsPropertyParameter), TsInferType(TsInferType), TsMappedType(TsMappedType), TsTypeParameter(TsTypeParameter), JsFunctionDeclaration(JsFunctionDeclaration), JsFunctionExpression(JsFunctionExpression), TsDeclareFunctionDeclaration(TsDeclareFunctionDeclaration), JsClassDeclaration(JsClassDeclaration), JsClassExpression(JsClassExpression), TsInterfaceDeclaration(TsInterfaceDeclaration), TsTypeAliasDeclaration(TsTypeAliasDeclaration), TsEnumDeclaration(TsEnumDeclaration), TsModuleDeclaration(TsModuleDeclaration), JsShorthandNamedImportSpecifier(JsShorthandNamedImportSpecifier), JsNamedImportSpecifier(JsNamedImportSpecifier), JsBogusNamedImportSpecifier(JsBogusNamedImportSpecifier), JsDefaultImportSpecifier(JsDefaultImportSpecifier), JsNamespaceImportSpecifier(JsNamespaceImportSpecifier), TsImportEqualsDeclaration(TsImportEqualsDeclaration), JsClassExportDefaultDeclaration(JsClassExportDefaultDeclaration), JsFunctionExportDefaultDeclaration(JsFunctionExportDefaultDeclaration), TsDeclareFunctionExportDefaultDeclaration(TsDeclareFunctionExportDefaultDeclaration), JsCatchDeclaration(JsCatchDeclaration),
}

Variants§

§

JsArrayBindingPatternElement(JsArrayBindingPatternElement)

§

JsArrayBindingPatternRestElement(JsArrayBindingPatternRestElement)

§

JsObjectBindingPatternProperty(JsObjectBindingPatternProperty)

§

JsObjectBindingPatternRest(JsObjectBindingPatternRest)

§

JsObjectBindingPatternShorthandProperty(JsObjectBindingPatternShorthandProperty)

§

JsVariableDeclarator(JsVariableDeclarator)

§

JsArrowFunctionExpression(JsArrowFunctionExpression)

§

JsFormalParameter(JsFormalParameter)

§

JsRestParameter(JsRestParameter)

§

JsBogusParameter(JsBogusParameter)

§

TsIndexSignatureParameter(TsIndexSignatureParameter)

§

TsPropertyParameter(TsPropertyParameter)

§

TsInferType(TsInferType)

§

TsMappedType(TsMappedType)

§

TsTypeParameter(TsTypeParameter)

§

JsFunctionDeclaration(JsFunctionDeclaration)

§

JsFunctionExpression(JsFunctionExpression)

§

TsDeclareFunctionDeclaration(TsDeclareFunctionDeclaration)

§

JsClassDeclaration(JsClassDeclaration)

§

JsClassExpression(JsClassExpression)

§

TsInterfaceDeclaration(TsInterfaceDeclaration)

§

TsTypeAliasDeclaration(TsTypeAliasDeclaration)

§

TsEnumDeclaration(TsEnumDeclaration)

§

TsModuleDeclaration(TsModuleDeclaration)

§

JsShorthandNamedImportSpecifier(JsShorthandNamedImportSpecifier)

§

JsNamedImportSpecifier(JsNamedImportSpecifier)

§

JsBogusNamedImportSpecifier(JsBogusNamedImportSpecifier)

§

JsDefaultImportSpecifier(JsDefaultImportSpecifier)

§

JsNamespaceImportSpecifier(JsNamespaceImportSpecifier)

§

TsImportEqualsDeclaration(TsImportEqualsDeclaration)

§

JsClassExportDefaultDeclaration(JsClassExportDefaultDeclaration)

§

JsFunctionExportDefaultDeclaration(JsFunctionExportDefaultDeclaration)

§

TsDeclareFunctionExportDefaultDeclaration(TsDeclareFunctionExportDefaultDeclaration)

§

JsCatchDeclaration(JsCatchDeclaration)

Implementations§

source§

impl AnyJsBindingDeclaration

source

pub const fn is_mergeable(&self, other: &AnyJsBindingDeclaration) -> bool

Returns true if self and other are mergeable declarations.

See also: https://www.typescriptlang.org/docs/handbook/declaration-merging.html

§Examples

A namespace can merge with a class, an enum. However, an enum cannot merge with a class.

use biome_js_factory::make;
use biome_js_syntax::{binding_ext::AnyJsBindingDeclaration, T};

let enum_id = make::js_identifier_binding(make::ident("Order"));
let enum_decl: AnyJsBindingDeclaration = make::ts_enum_declaration(
    make::token(T![enum]),
    enum_id.into(),
    make::token(T!['{']),
    make::ts_enum_member_list(
        [],
        Some(make::token(T![;])),
    ),
    make::token(T!['}']),
).build().into();

let namespace_id = make::ts_identifier_binding(make::ident("Order"));
let namespace_decl: AnyJsBindingDeclaration = make::ts_module_declaration(
    make::token(T![namespace]),
    namespace_id.into(),
    make::ts_module_block(
        make::token(T!['{']),
        make::js_module_item_list([]),
        make::token(T!['}']),
    ),
).into();

let class_id = make::js_identifier_binding(make::ident("Order"));
let class_decl: AnyJsBindingDeclaration = make::js_class_declaration(
    make::js_decorator_list([]),
    make::token(T![class]),
    class_id.into(),
    make::token(T!['{']),
    make::js_class_member_list([]),
    make::token(T!['}']),
).build().into();

assert!(enum_decl.is_mergeable(&namespace_decl));
assert!(namespace_decl.is_mergeable(&enum_decl));

assert!(class_decl.is_mergeable(&namespace_decl));
assert!(namespace_decl.is_mergeable(&class_decl));

assert!(!class_decl.is_mergeable(&enum_decl));
assert!(!enum_decl.is_mergeable(&class_decl));
source

pub fn parent_binding_pattern_declaration( &self ) -> Option<AnyJsBindingDeclaration>

source

pub const fn is_parameter_like(&self) -> bool

Returns true if self is a formal parameter, a rest parameter, a property parameter, or a bogus parameter.

source

pub const fn is_type_parameter(&self) -> bool

Returns true if self is a type parameter.

source

pub fn export(&self) -> Option<JsExport>

Returns the export statement if this declaration is directly exported.

Trait Implementations§

source§

impl AstNode for AnyJsBindingDeclaration

§

type Language = <(JsArrayBindingPatternElement, JsArrayBindingPatternRestElement, JsObjectBindingPatternProperty, JsObjectBindingPatternRest, JsObjectBindingPatternShorthandProperty, JsVariableDeclarator, JsArrowFunctionExpression, JsFormalParameter, JsRestParameter, JsBogusParameter, TsIndexSignatureParameter, TsPropertyParameter, TsInferType, TsMappedType, TsTypeParameter, JsFunctionDeclaration, JsFunctionExpression, TsDeclareFunctionDeclaration, JsClassDeclaration, JsClassExpression, TsInterfaceDeclaration, TsTypeAliasDeclaration, TsEnumDeclaration, TsModuleDeclaration, JsShorthandNamedImportSpecifier, JsNamedImportSpecifier, JsBogusNamedImportSpecifier, JsDefaultImportSpecifier, JsNamespaceImportSpecifier, TsImportEqualsDeclaration, JsClassExportDefaultDeclaration, JsFunctionExportDefaultDeclaration, TsDeclareFunctionExportDefaultDeclaration, JsCatchDeclaration) as UnionLanguage>::Language

source§

const KIND_SET: SyntaxKindSet<Self::Language> = _

source§

fn can_cast(kind: <Self::Language as Language>::Kind) -> bool

Returns true if a node with the given kind can be cased to this AST node.
source§

fn cast(syntax: SyntaxNode<Self::Language>) -> Option<Self>
where Self: Sized,

Tries to cast the passed syntax node to this AST node. Read more
source§

fn syntax(&self) -> &SyntaxNode<Self::Language>

Returns the underlying syntax node.
source§

fn into_syntax(self) -> SyntaxNode<Self::Language>

Returns the underlying syntax node.
source§

fn cast_ref(syntax: &SyntaxNode<Self::Language>) -> Option<Self>
where Self: Sized,

Takes a reference of a syntax node and tries to cast it to this AST node. Read more
source§

fn try_cast( syntax: SyntaxNode<Self::Language> ) -> Result<Self, SyntaxNode<Self::Language>>

Tries to cast the passed syntax node to this AST node. Read more
source§

fn try_cast_node<T>(node: T) -> Result<Self, T>
where T: AstNode<Language = Self::Language>,

Tries to cast the AST node into this node. Read more
source§

fn unwrap_cast(syntax: SyntaxNode<Self::Language>) -> Self
where Self: Sized,

Cast this node to this AST node Read more
source§

fn text(&self) -> String

Returns the string representation of this node without the leading and trailing trivia
source§

fn range(&self) -> TextRange

source§

fn clone_subtree(&self) -> Self
where Self: Sized,

source§

fn parent<T>(&self) -> Option<T>
where T: AstNode<Language = Self::Language>,

source§

fn with_leading_trivia_pieces<I>(self, trivia: I) -> Option<Self>

Return a new version of this node with the leading trivia of its first token replaced with trivia.
source§

fn with_trailing_trivia_pieces<I>(self, trivia: I) -> Option<Self>

Return a new version of this node with the trailing trivia of its last token replaced with trivia.
source§

fn prepend_trivia_pieces<I>(self, trivia: I) -> Option<Self>

source§

fn append_trivia_pieces<I>(self, trivia: I) -> Option<Self>

source§

fn trim_trivia(self) -> Option<Self>

Return a new version of this node without leading and trailing newlines and whitespaces.
source§

fn trim_leading_trivia(self) -> Option<Self>

Return a new version of this node without leading newlines and whitespaces.
source§

fn trim_trailing_trivia(self) -> Option<Self>

Return a new version of this node without trailing newlines and whitespaces.
source§

impl Clone for AnyJsBindingDeclaration

source§

fn clone(&self) -> AnyJsBindingDeclaration

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for AnyJsBindingDeclaration

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for AnyJsBindingDeclaration

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<AnyJsBindingDeclaration> for SyntaxElement<<AnyJsBindingDeclaration as AstNode>::Language>

source§

fn from( n: AnyJsBindingDeclaration ) -> SyntaxElement<<AnyJsBindingDeclaration as AstNode>::Language>

Converts to this type from the input type.
source§

impl From<AnyJsBindingDeclaration> for SyntaxNode<<AnyJsBindingDeclaration as AstNode>::Language>

source§

fn from( n: AnyJsBindingDeclaration ) -> SyntaxNode<<AnyJsBindingDeclaration as AstNode>::Language>

Converts to this type from the input type.
source§

impl From<JsArrayBindingPatternElement> for AnyJsBindingDeclaration

source§

fn from(node: JsArrayBindingPatternElement) -> Self

Converts to this type from the input type.
source§

impl From<JsArrayBindingPatternRestElement> for AnyJsBindingDeclaration

source§

fn from(node: JsArrayBindingPatternRestElement) -> Self

Converts to this type from the input type.
source§

impl From<JsArrowFunctionExpression> for AnyJsBindingDeclaration

source§

fn from(node: JsArrowFunctionExpression) -> Self

Converts to this type from the input type.
source§

impl From<JsBogusNamedImportSpecifier> for AnyJsBindingDeclaration

source§

fn from(node: JsBogusNamedImportSpecifier) -> Self

Converts to this type from the input type.
source§

impl From<JsBogusParameter> for AnyJsBindingDeclaration

source§

fn from(node: JsBogusParameter) -> Self

Converts to this type from the input type.
source§

impl From<JsCatchDeclaration> for AnyJsBindingDeclaration

source§

fn from(node: JsCatchDeclaration) -> Self

Converts to this type from the input type.
source§

impl From<JsClassDeclaration> for AnyJsBindingDeclaration

source§

fn from(node: JsClassDeclaration) -> Self

Converts to this type from the input type.
source§

impl From<JsClassExportDefaultDeclaration> for AnyJsBindingDeclaration

source§

fn from(node: JsClassExportDefaultDeclaration) -> Self

Converts to this type from the input type.
source§

impl From<JsClassExpression> for AnyJsBindingDeclaration

source§

fn from(node: JsClassExpression) -> Self

Converts to this type from the input type.
source§

impl From<JsDefaultImportSpecifier> for AnyJsBindingDeclaration

source§

fn from(node: JsDefaultImportSpecifier) -> Self

Converts to this type from the input type.
source§

impl From<JsFormalParameter> for AnyJsBindingDeclaration

source§

fn from(node: JsFormalParameter) -> Self

Converts to this type from the input type.
source§

impl From<JsFunctionDeclaration> for AnyJsBindingDeclaration

source§

fn from(node: JsFunctionDeclaration) -> Self

Converts to this type from the input type.
source§

impl From<JsFunctionExportDefaultDeclaration> for AnyJsBindingDeclaration

source§

fn from(node: JsFunctionExportDefaultDeclaration) -> Self

Converts to this type from the input type.
source§

impl From<JsFunctionExpression> for AnyJsBindingDeclaration

source§

fn from(node: JsFunctionExpression) -> Self

Converts to this type from the input type.
source§

impl From<JsNamedImportSpecifier> for AnyJsBindingDeclaration

source§

fn from(node: JsNamedImportSpecifier) -> Self

Converts to this type from the input type.
source§

impl From<JsNamespaceImportSpecifier> for AnyJsBindingDeclaration

source§

fn from(node: JsNamespaceImportSpecifier) -> Self

Converts to this type from the input type.
source§

impl From<JsObjectBindingPatternProperty> for AnyJsBindingDeclaration

source§

fn from(node: JsObjectBindingPatternProperty) -> Self

Converts to this type from the input type.
source§

impl From<JsObjectBindingPatternRest> for AnyJsBindingDeclaration

source§

fn from(node: JsObjectBindingPatternRest) -> Self

Converts to this type from the input type.
source§

impl From<JsObjectBindingPatternShorthandProperty> for AnyJsBindingDeclaration

source§

fn from(node: JsObjectBindingPatternShorthandProperty) -> Self

Converts to this type from the input type.
source§

impl From<JsRestParameter> for AnyJsBindingDeclaration

source§

fn from(node: JsRestParameter) -> Self

Converts to this type from the input type.
source§

impl From<JsShorthandNamedImportSpecifier> for AnyJsBindingDeclaration

source§

fn from(node: JsShorthandNamedImportSpecifier) -> Self

Converts to this type from the input type.
source§

impl From<JsVariableDeclarator> for AnyJsBindingDeclaration

source§

fn from(node: JsVariableDeclarator) -> Self

Converts to this type from the input type.
source§

impl From<TsDeclareFunctionDeclaration> for AnyJsBindingDeclaration

source§

fn from(node: TsDeclareFunctionDeclaration) -> Self

Converts to this type from the input type.
source§

impl From<TsDeclareFunctionExportDefaultDeclaration> for AnyJsBindingDeclaration

source§

fn from(node: TsDeclareFunctionExportDefaultDeclaration) -> Self

Converts to this type from the input type.
source§

impl From<TsEnumDeclaration> for AnyJsBindingDeclaration

source§

fn from(node: TsEnumDeclaration) -> Self

Converts to this type from the input type.
source§

impl From<TsImportEqualsDeclaration> for AnyJsBindingDeclaration

source§

fn from(node: TsImportEqualsDeclaration) -> Self

Converts to this type from the input type.
source§

impl From<TsIndexSignatureParameter> for AnyJsBindingDeclaration

source§

fn from(node: TsIndexSignatureParameter) -> Self

Converts to this type from the input type.
source§

impl From<TsInferType> for AnyJsBindingDeclaration

source§

fn from(node: TsInferType) -> Self

Converts to this type from the input type.
source§

impl From<TsInterfaceDeclaration> for AnyJsBindingDeclaration

source§

fn from(node: TsInterfaceDeclaration) -> Self

Converts to this type from the input type.
source§

impl From<TsMappedType> for AnyJsBindingDeclaration

source§

fn from(node: TsMappedType) -> Self

Converts to this type from the input type.
source§

impl From<TsModuleDeclaration> for AnyJsBindingDeclaration

source§

fn from(node: TsModuleDeclaration) -> Self

Converts to this type from the input type.
source§

impl From<TsPropertyParameter> for AnyJsBindingDeclaration

source§

fn from(node: TsPropertyParameter) -> Self

Converts to this type from the input type.
source§

impl From<TsTypeAliasDeclaration> for AnyJsBindingDeclaration

source§

fn from(node: TsTypeAliasDeclaration) -> Self

Converts to this type from the input type.
source§

impl From<TsTypeParameter> for AnyJsBindingDeclaration

source§

fn from(node: TsTypeParameter) -> Self

Converts to this type from the input type.
source§

impl Hash for AnyJsBindingDeclaration

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for AnyJsBindingDeclaration

source§

fn eq(&self, other: &AnyJsBindingDeclaration) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for AnyJsBindingDeclaration

source§

impl StructuralPartialEq for AnyJsBindingDeclaration

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> AstNodeExt for T
where T: AstNode,

source§

fn replace_node_discard_trivia<N>(self, prev_node: N, next_node: N) -> Option<T>
where N: AstNode<Language = <T as AstNode>::Language>,

Return a new version of this node with the node prev_node replaced with next_node Read more
source§

fn replace_node<N>(self, prev_node: N, next_node: N) -> Option<T>
where N: AstNode<Language = <T as AstNode>::Language>,

Return a new version of this node with the node prev_node replaced with next_node, transfering the leading and trailing trivia of prev_node to next_node Read more
source§

fn replace_token_discard_trivia( self, prev_token: SyntaxToken<<T as AstNode>::Language>, next_token: SyntaxToken<<T as AstNode>::Language> ) -> Option<T>

Return a new version of this node with the token prev_token replaced with next_token Read more
source§

fn replace_token( self, prev_token: SyntaxToken<<T as AstNode>::Language>, next_token: SyntaxToken<<T as AstNode>::Language> ) -> Option<T>

Return a new version of this node with the token prev_token replaced with next_token, transfering the leading and trailing trivia of prev_token to next_token Read more
source§

fn detach(self) -> T

source§

impl<L, T> BatchMutationExt<L> for T
where L: Language, T: AstNode<Language = L>,

source§

fn begin(self) -> BatchMutation<L>

It starts a BatchMutation
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> DynClone for T
where T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more