mirror of
https://github.com/danbulant/oxc
synced 2026-05-19 04:08:41 +00:00
feat(ast): derive CloneIn for AST types, using generate_derive. (#4732)
Closes #4284 (follow-on after #4276).
This commit is contained in:
parent
ec0b4cbdaa
commit
51c1ca02d3
6 changed files with 3663 additions and 2 deletions
|
|
@ -34,6 +34,7 @@ use tsify::Tsify;
|
|||
strict_if(self.source_type.is_strict() || self.directives.iter().any(Directive::is_use_strict)),
|
||||
)]
|
||||
#[derive(Debug)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct Program<'a> {
|
||||
|
|
@ -54,6 +55,7 @@ inherit_variants! {
|
|||
/// [`ast` module docs]: `super`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum Expression<'a> {
|
||||
|
|
@ -203,6 +205,7 @@ pub use match_expression;
|
|||
/// Fundamental syntactic structure used for naming variables, functions, and properties. It must start with a Unicode letter (including $ and _) and can be followed by Unicode letters, digits, $, or _.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Clone, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize))]
|
||||
#[serde(tag = "type", rename = "Identifier")]
|
||||
pub struct IdentifierName<'a> {
|
||||
|
|
@ -218,6 +221,7 @@ pub struct IdentifierName<'a> {
|
|||
/// See: [13.1 Identifiers](https://tc39.es/ecma262/#sec-identifiers)
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Clone)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize))]
|
||||
#[serde(tag = "type", rename = "Identifier")]
|
||||
pub struct IdentifierReference<'a> {
|
||||
|
|
@ -247,6 +251,7 @@ pub struct IdentifierReference<'a> {
|
|||
/// See: [13.1 Identifiers](https://tc39.es/ecma262/#sec-identifiers)
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Clone)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize))]
|
||||
#[serde(tag = "type", rename = "Identifier")]
|
||||
pub struct BindingIdentifier<'a> {
|
||||
|
|
@ -271,6 +276,7 @@ pub struct BindingIdentifier<'a> {
|
|||
/// See: [13.1 Identifiers](https://tc39.es/ecma262/#sec-identifiers)
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Clone, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize))]
|
||||
#[serde(tag = "type", rename = "Identifier")]
|
||||
pub struct LabelIdentifier<'a> {
|
||||
|
|
@ -284,6 +290,7 @@ pub struct LabelIdentifier<'a> {
|
|||
/// Represents a `this` expression, which is a reference to the current object.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ThisExpression {
|
||||
|
|
@ -296,6 +303,7 @@ pub struct ThisExpression {
|
|||
/// Represents an array literal, which can include elements, spread elements, or null values.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct ArrayExpression<'a> {
|
||||
|
|
@ -317,6 +325,7 @@ inherit_variants! {
|
|||
/// [`ast` module docs]: `super`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize))]
|
||||
#[serde(untagged)]
|
||||
pub enum ArrayExpressionElement<'a> {
|
||||
|
|
@ -338,6 +347,7 @@ pub enum ArrayExpressionElement<'a> {
|
|||
/// Serialized as `null` in JSON AST. See `serialize.rs`.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Clone, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
pub struct Elision {
|
||||
pub span: Span,
|
||||
}
|
||||
|
|
@ -347,6 +357,7 @@ pub struct Elision {
|
|||
/// Represents an object literal, which can include properties, spread properties, or computed properties and trailing comma.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ObjectExpression<'a> {
|
||||
|
|
@ -361,6 +372,7 @@ pub struct ObjectExpression<'a> {
|
|||
/// Represents a property in an object literal.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum ObjectPropertyKind<'a> {
|
||||
|
|
@ -375,6 +387,7 @@ pub enum ObjectPropertyKind<'a> {
|
|||
/// Represents a property in an object literal.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ObjectProperty<'a> {
|
||||
|
|
@ -397,6 +410,7 @@ inherit_variants! {
|
|||
/// [`ast` module docs]: `super`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum PropertyKey<'a> {
|
||||
|
|
@ -412,6 +426,7 @@ pub enum PropertyKey<'a> {
|
|||
/// Represents the kind of property in an object literal or class.
|
||||
#[ast]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub enum PropertyKind {
|
||||
|
|
@ -428,6 +443,7 @@ pub enum PropertyKind {
|
|||
/// Represents a template literal, which can include quasi elements and expression elements.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct TemplateLiteral<'a> {
|
||||
|
|
@ -442,6 +458,7 @@ pub struct TemplateLiteral<'a> {
|
|||
/// Represents a tagged template expression, which can include a tag and a quasi.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TaggedTemplateExpression<'a> {
|
||||
|
|
@ -457,6 +474,7 @@ pub struct TaggedTemplateExpression<'a> {
|
|||
/// Represents a quasi element in a template literal.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct TemplateElement<'a> {
|
||||
|
|
@ -469,6 +487,7 @@ pub struct TemplateElement<'a> {
|
|||
/// See [template-strings-cooked-vs-raw](https://exploringjs.com/js/book/ch_template-literals.html#template-strings-cooked-vs-raw)
|
||||
#[ast]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
pub struct TemplateElementValue<'a> {
|
||||
/// A raw interpretation where backslashes do not have special meaning.
|
||||
|
|
@ -487,6 +506,7 @@ pub struct TemplateElementValue<'a> {
|
|||
/// <https://tc39.es/ecma262/#prod-MemberExpression>
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum MemberExpression<'a> {
|
||||
|
|
@ -514,6 +534,7 @@ pub use match_member_expression;
|
|||
/// Represents a computed member access expression, which can include an object and an expression.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ComputedMemberExpression<'a> {
|
||||
|
|
@ -529,6 +550,7 @@ pub struct ComputedMemberExpression<'a> {
|
|||
/// Represents a static member access expression, which can include an object and a property.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct StaticMemberExpression<'a> {
|
||||
|
|
@ -544,6 +566,7 @@ pub struct StaticMemberExpression<'a> {
|
|||
/// Represents a private field access expression, which can include an object and a private identifier.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct PrivateFieldExpression<'a> {
|
||||
|
|
@ -572,6 +595,7 @@ pub struct PrivateFieldExpression<'a> {
|
|||
/// ```
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct CallExpression<'a> {
|
||||
|
|
@ -597,6 +621,7 @@ pub struct CallExpression<'a> {
|
|||
/// ```
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct NewExpression<'a> {
|
||||
|
|
@ -612,6 +637,7 @@ pub struct NewExpression<'a> {
|
|||
/// Represents a meta property. The following syntaxes are supported. `import.meta`, `new.target`.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct MetaProperty<'a> {
|
||||
|
|
@ -626,6 +652,7 @@ pub struct MetaProperty<'a> {
|
|||
/// Represents a spread element, which can include an argument.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct SpreadElement<'a> {
|
||||
|
|
@ -643,6 +670,7 @@ inherit_variants! {
|
|||
/// [`ast` module docs]: `super`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum Argument<'a> {
|
||||
|
|
@ -658,6 +686,7 @@ pub enum Argument<'a> {
|
|||
/// Represents an update expression, which can include an operator and an argument. The following syntaxes are supported. `++a`, `a++`, `--a`, `a--`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct UpdateExpression<'a> {
|
||||
|
|
@ -673,6 +702,7 @@ pub struct UpdateExpression<'a> {
|
|||
/// Represents a unary expression, which can include an operator and an argument. The following syntaxes are supported. `+a`, `-a`, `~a`, `!a`, `delete a`, `void a`, `typeof a`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct UnaryExpression<'a> {
|
||||
|
|
@ -687,6 +717,7 @@ pub struct UnaryExpression<'a> {
|
|||
/// Represents a binary expression, which can include a left expression, an operator, and a right expression.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct BinaryExpression<'a> {
|
||||
|
|
@ -702,6 +733,7 @@ pub struct BinaryExpression<'a> {
|
|||
/// Represents a private in expression, which can include a private identifier, an operator, and a expression.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct PrivateInExpression<'a> {
|
||||
|
|
@ -717,6 +749,7 @@ pub struct PrivateInExpression<'a> {
|
|||
/// Represents a logical expression, which can include a left expression, an operator, and a right expression. The following syntaxes are supported. `||`, `&&` and `??`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct LogicalExpression<'a> {
|
||||
|
|
@ -732,6 +765,7 @@ pub struct LogicalExpression<'a> {
|
|||
/// Represents a conditional expression, which can include a test, a consequent, and an alternate.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ConditionalExpression<'a> {
|
||||
|
|
@ -747,6 +781,7 @@ pub struct ConditionalExpression<'a> {
|
|||
/// Represents an assignment expression, which can include an operator, a target, and a expression.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct AssignmentExpression<'a> {
|
||||
|
|
@ -766,6 +801,7 @@ inherit_variants! {
|
|||
/// [`ast` module docs]: `super`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum AssignmentTarget<'a> {
|
||||
|
|
@ -784,6 +820,7 @@ inherit_variants! {
|
|||
/// [`ast` module docs]: `super`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum SimpleAssignmentTarget<'a> {
|
||||
|
|
@ -838,6 +875,7 @@ pub use match_simple_assignment_target;
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum AssignmentTargetPattern<'a> {
|
||||
|
|
@ -859,6 +897,7 @@ pub use match_assignment_target_pattern;
|
|||
/// Represents an array assignment target, which can include elements and a rest element.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ArrayAssignmentTarget<'a> {
|
||||
|
|
@ -877,6 +916,7 @@ pub struct ArrayAssignmentTarget<'a> {
|
|||
/// Represents an object assignment target, which can include properties and a rest element.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ObjectAssignmentTarget<'a> {
|
||||
|
|
@ -893,6 +933,7 @@ pub struct ObjectAssignmentTarget<'a> {
|
|||
/// Represents a rest element in an array assignment target, which can include a target.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize))]
|
||||
#[serde(tag = "type", rename = "RestElement")]
|
||||
pub struct AssignmentTargetRest<'a> {
|
||||
|
|
@ -910,6 +951,7 @@ inherit_variants! {
|
|||
/// [`ast` module docs]: `super`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum AssignmentTargetMaybeDefault<'a> {
|
||||
|
|
@ -921,6 +963,7 @@ pub enum AssignmentTargetMaybeDefault<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct AssignmentTargetWithDefault<'a> {
|
||||
|
|
@ -932,6 +975,7 @@ pub struct AssignmentTargetWithDefault<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum AssignmentTargetProperty<'a> {
|
||||
|
|
@ -944,6 +988,7 @@ pub enum AssignmentTargetProperty<'a> {
|
|||
/// Represents an assignment target property identifier, which can include a binding and an init expression.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct AssignmentTargetPropertyIdentifier<'a> {
|
||||
|
|
@ -958,6 +1003,7 @@ pub struct AssignmentTargetPropertyIdentifier<'a> {
|
|||
/// Represents an assignment target property property, which can include a name and a binding.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct AssignmentTargetPropertyProperty<'a> {
|
||||
|
|
@ -972,6 +1018,7 @@ pub struct AssignmentTargetPropertyProperty<'a> {
|
|||
/// Represents a sequence expression, which can include expressions.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct SequenceExpression<'a> {
|
||||
|
|
@ -985,6 +1032,7 @@ pub struct SequenceExpression<'a> {
|
|||
/// Represents a super expression.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct Super {
|
||||
|
|
@ -997,6 +1045,7 @@ pub struct Super {
|
|||
/// Represents an await expression, which can include an argument.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct AwaitExpression<'a> {
|
||||
|
|
@ -1010,6 +1059,7 @@ pub struct AwaitExpression<'a> {
|
|||
/// Represents a chain expression, which can include an expression.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ChainExpression<'a> {
|
||||
|
|
@ -1026,6 +1076,7 @@ inherit_variants! {
|
|||
/// [`ast` module docs]: `super`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum ChainElement<'a> {
|
||||
|
|
@ -1040,6 +1091,7 @@ pub enum ChainElement<'a> {
|
|||
/// Represents a parenthesized expression, which can include an expression.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ParenthesizedExpression<'a> {
|
||||
|
|
@ -1057,6 +1109,7 @@ inherit_variants! {
|
|||
/// [`ast` module docs]: `super`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum Statement<'a> {
|
||||
|
|
@ -1091,6 +1144,7 @@ pub enum Statement<'a> {
|
|||
/// Represents a directive statement, which can include a string literal.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct Directive<'a> {
|
||||
|
|
@ -1107,6 +1161,7 @@ pub struct Directive<'a> {
|
|||
/// Represents a hashbang directive, which can include a value.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct Hashbang<'a> {
|
||||
|
|
@ -1121,6 +1176,7 @@ pub struct Hashbang<'a> {
|
|||
#[ast(visit)]
|
||||
#[scope]
|
||||
#[derive(Debug)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct BlockStatement<'a> {
|
||||
|
|
@ -1133,6 +1189,7 @@ pub struct BlockStatement<'a> {
|
|||
/// Declarations and the Variable Statement
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum Declaration<'a> {
|
||||
|
|
@ -1171,6 +1228,7 @@ pub use match_declaration;
|
|||
/// Represents a variable declaration, which can include a kind, declarations, and modifiers.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct VariableDeclaration<'a> {
|
||||
|
|
@ -1183,6 +1241,7 @@ pub struct VariableDeclaration<'a> {
|
|||
|
||||
#[ast]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub enum VariableDeclarationKind {
|
||||
|
|
@ -1193,6 +1252,7 @@ pub enum VariableDeclarationKind {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct VariableDeclarator<'a> {
|
||||
|
|
@ -1209,6 +1269,7 @@ pub struct VariableDeclarator<'a> {
|
|||
/// * <https://github.com/tc39/proposal-explicit-resource-management>
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct UsingDeclaration<'a> {
|
||||
|
|
@ -1222,6 +1283,7 @@ pub struct UsingDeclaration<'a> {
|
|||
/// Empty Statement
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct EmptyStatement {
|
||||
|
|
@ -1232,6 +1294,7 @@ pub struct EmptyStatement {
|
|||
/// Expression Statement
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ExpressionStatement<'a> {
|
||||
|
|
@ -1243,6 +1306,7 @@ pub struct ExpressionStatement<'a> {
|
|||
/// If Statement
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct IfStatement<'a> {
|
||||
|
|
@ -1256,6 +1320,7 @@ pub struct IfStatement<'a> {
|
|||
/// Do-While Statement
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct DoWhileStatement<'a> {
|
||||
|
|
@ -1268,6 +1333,7 @@ pub struct DoWhileStatement<'a> {
|
|||
/// While Statement
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct WhileStatement<'a> {
|
||||
|
|
@ -1281,6 +1347,7 @@ pub struct WhileStatement<'a> {
|
|||
#[ast(visit)]
|
||||
#[scope(if(self.init.as_ref().is_some_and(ForStatementInit::is_lexical_declaration)))]
|
||||
#[derive(Debug)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ForStatement<'a> {
|
||||
|
|
@ -1301,6 +1368,7 @@ inherit_variants! {
|
|||
/// [`ast` module docs]: `super`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum ForStatementInit<'a> {
|
||||
|
|
@ -1315,6 +1383,7 @@ pub enum ForStatementInit<'a> {
|
|||
#[ast(visit)]
|
||||
#[scope(if(self.left.is_lexical_declaration()))]
|
||||
#[derive(Debug)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ForInStatement<'a> {
|
||||
|
|
@ -1334,6 +1403,7 @@ inherit_variants! {
|
|||
/// [`ast` module docs]: `super`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum ForStatementLeft<'a> {
|
||||
|
|
@ -1347,6 +1417,7 @@ pub enum ForStatementLeft<'a> {
|
|||
#[ast(visit)]
|
||||
#[scope(if(self.left.is_lexical_declaration()))]
|
||||
#[derive(Debug)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ForOfStatement<'a> {
|
||||
|
|
@ -1362,6 +1433,7 @@ pub struct ForOfStatement<'a> {
|
|||
/// Continue Statement
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ContinueStatement<'a> {
|
||||
|
|
@ -1373,6 +1445,7 @@ pub struct ContinueStatement<'a> {
|
|||
/// Break Statement
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct BreakStatement<'a> {
|
||||
|
|
@ -1384,6 +1457,7 @@ pub struct BreakStatement<'a> {
|
|||
/// Return Statement
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ReturnStatement<'a> {
|
||||
|
|
@ -1395,6 +1469,7 @@ pub struct ReturnStatement<'a> {
|
|||
/// With Statement
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct WithStatement<'a> {
|
||||
|
|
@ -1408,6 +1483,7 @@ pub struct WithStatement<'a> {
|
|||
#[ast(visit)]
|
||||
#[scope]
|
||||
#[derive(Debug)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct SwitchStatement<'a> {
|
||||
|
|
@ -1421,6 +1497,7 @@ pub struct SwitchStatement<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct SwitchCase<'a> {
|
||||
|
|
@ -1433,6 +1510,7 @@ pub struct SwitchCase<'a> {
|
|||
/// Labelled Statement
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct LabeledStatement<'a> {
|
||||
|
|
@ -1445,6 +1523,7 @@ pub struct LabeledStatement<'a> {
|
|||
/// Throw Statement
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ThrowStatement<'a> {
|
||||
|
|
@ -1456,6 +1535,7 @@ pub struct ThrowStatement<'a> {
|
|||
/// Try Statement
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct TryStatement<'a> {
|
||||
|
|
@ -1470,6 +1550,7 @@ pub struct TryStatement<'a> {
|
|||
#[ast(visit)]
|
||||
#[scope(flags(ScopeFlags::CatchClause), if(self.param.is_some()))]
|
||||
#[derive(Debug)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct CatchClause<'a> {
|
||||
|
|
@ -1482,6 +1563,7 @@ pub struct CatchClause<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct CatchParameter<'a> {
|
||||
|
|
@ -1493,6 +1575,7 @@ pub struct CatchParameter<'a> {
|
|||
/// Debugger Statement
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct DebuggerStatement {
|
||||
|
|
@ -1504,6 +1587,7 @@ pub struct DebuggerStatement {
|
|||
/// * <https://tc39.es/ecma262/#prod-BindingPattern>
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct BindingPattern<'a> {
|
||||
|
|
@ -1518,6 +1602,7 @@ pub struct BindingPattern<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum BindingPatternKind<'a> {
|
||||
|
|
@ -1536,6 +1621,7 @@ pub enum BindingPatternKind<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct AssignmentPattern<'a> {
|
||||
|
|
@ -1548,6 +1634,7 @@ pub struct AssignmentPattern<'a> {
|
|||
// See serializer in serialize.rs
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ObjectPattern<'a> {
|
||||
|
|
@ -1561,6 +1648,7 @@ pub struct ObjectPattern<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct BindingProperty<'a> {
|
||||
|
|
@ -1575,6 +1663,7 @@ pub struct BindingProperty<'a> {
|
|||
// See serializer in serialize.rs
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ArrayPattern<'a> {
|
||||
|
|
@ -1588,6 +1677,7 @@ pub struct ArrayPattern<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize))]
|
||||
#[serde(tag = "type", rename = "RestElement")]
|
||||
pub struct BindingRestElement<'a> {
|
||||
|
|
@ -1604,6 +1694,7 @@ pub struct BindingRestElement<'a> {
|
|||
strict_if(self.is_strict()),
|
||||
)]
|
||||
#[derive(Debug)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct Function<'a> {
|
||||
|
|
@ -1639,6 +1730,7 @@ pub struct Function<'a> {
|
|||
|
||||
#[ast]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
pub enum FunctionType {
|
||||
FunctionDeclaration = 0,
|
||||
|
|
@ -1652,6 +1744,7 @@ pub enum FunctionType {
|
|||
// See serializer in serialize.rs
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct FormalParameters<'a> {
|
||||
|
|
@ -1666,6 +1759,7 @@ pub struct FormalParameters<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct FormalParameter<'a> {
|
||||
|
|
@ -1680,6 +1774,7 @@ pub struct FormalParameter<'a> {
|
|||
|
||||
#[ast]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
pub enum FormalParameterKind {
|
||||
/// <https://tc39.es/ecma262/#prod-FormalParameters>
|
||||
|
|
@ -1695,6 +1790,7 @@ pub enum FormalParameterKind {
|
|||
/// <https://tc39.es/ecma262/#prod-FunctionBody>
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct FunctionBody<'a> {
|
||||
|
|
@ -1711,6 +1807,7 @@ pub struct FunctionBody<'a> {
|
|||
strict_if(self.body.has_use_strict_directive()),
|
||||
)]
|
||||
#[derive(Debug)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct ArrowFunctionExpression<'a> {
|
||||
|
|
@ -1730,6 +1827,7 @@ pub struct ArrowFunctionExpression<'a> {
|
|||
/// Generator Function Definitions
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct YieldExpression<'a> {
|
||||
|
|
@ -1743,6 +1841,7 @@ pub struct YieldExpression<'a> {
|
|||
#[ast(visit)]
|
||||
#[scope(flags(ScopeFlags::StrictMode))]
|
||||
#[derive(Debug)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct Class<'a> {
|
||||
|
|
@ -1813,6 +1912,7 @@ pub struct Class<'a> {
|
|||
|
||||
#[ast]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
pub enum ClassType {
|
||||
/// Class declaration statement
|
||||
|
|
@ -1830,6 +1930,7 @@ pub enum ClassType {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ClassBody<'a> {
|
||||
|
|
@ -1858,6 +1959,7 @@ pub struct ClassBody<'a> {
|
|||
/// ```
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum ClassElement<'a> {
|
||||
|
|
@ -1881,6 +1983,7 @@ pub enum ClassElement<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct MethodDefinition<'a> {
|
||||
|
|
@ -1909,6 +2012,7 @@ pub struct MethodDefinition<'a> {
|
|||
|
||||
#[ast]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
pub enum MethodDefinitionType {
|
||||
MethodDefinition = 0,
|
||||
|
|
@ -1917,6 +2021,7 @@ pub enum MethodDefinitionType {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct PropertyDefinition<'a> {
|
||||
|
|
@ -1998,6 +2103,7 @@ pub struct PropertyDefinition<'a> {
|
|||
|
||||
#[ast]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
pub enum PropertyDefinitionType {
|
||||
PropertyDefinition = 0,
|
||||
|
|
@ -2006,6 +2112,7 @@ pub enum PropertyDefinitionType {
|
|||
|
||||
#[ast]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub enum MethodDefinitionKind {
|
||||
|
|
@ -2024,6 +2131,7 @@ pub enum MethodDefinitionKind {
|
|||
/// See: [MDN - Private class fields](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Private_class_fields)
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Clone, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct PrivateIdentifier<'a> {
|
||||
|
|
@ -2048,6 +2156,7 @@ pub struct PrivateIdentifier<'a> {
|
|||
#[ast(visit)]
|
||||
#[scope(flags(ScopeFlags::ClassStaticBlock))]
|
||||
#[derive(Debug)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct StaticBlock<'a> {
|
||||
|
|
@ -2082,6 +2191,7 @@ pub struct StaticBlock<'a> {
|
|||
/// ```
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum ModuleDeclaration<'a> {
|
||||
|
|
@ -2118,6 +2228,7 @@ pub use match_module_declaration;
|
|||
|
||||
#[ast]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
pub enum AccessorPropertyType {
|
||||
AccessorProperty = 0,
|
||||
|
|
@ -2134,6 +2245,7 @@ pub enum AccessorPropertyType {
|
|||
/// ```
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
pub struct AccessorProperty<'a> {
|
||||
pub r#type: AccessorPropertyType,
|
||||
|
|
@ -2153,6 +2265,7 @@ pub struct AccessorProperty<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ImportExpression<'a> {
|
||||
|
|
@ -2164,6 +2277,7 @@ pub struct ImportExpression<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct ImportDeclaration<'a> {
|
||||
|
|
@ -2180,6 +2294,7 @@ pub struct ImportDeclaration<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum ImportDeclarationSpecifier<'a> {
|
||||
|
|
@ -2196,6 +2311,7 @@ pub enum ImportDeclarationSpecifier<'a> {
|
|||
// import {imported as local} from "source"
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct ImportSpecifier<'a> {
|
||||
|
|
@ -2226,6 +2342,7 @@ pub struct ImportSpecifier<'a> {
|
|||
///
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ImportDefaultSpecifier<'a> {
|
||||
|
|
@ -2243,6 +2360,7 @@ pub struct ImportDefaultSpecifier<'a> {
|
|||
/// ```
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ImportNamespaceSpecifier<'a> {
|
||||
|
|
@ -2253,6 +2371,7 @@ pub struct ImportNamespaceSpecifier<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct WithClause<'a> {
|
||||
|
|
@ -2264,6 +2383,7 @@ pub struct WithClause<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ImportAttribute<'a> {
|
||||
|
|
@ -2275,6 +2395,7 @@ pub struct ImportAttribute<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum ImportAttributeKey<'a> {
|
||||
|
|
@ -2295,6 +2416,7 @@ pub enum ImportAttributeKey<'a> {
|
|||
/// ```
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct ExportNamedDeclaration<'a> {
|
||||
|
|
@ -2320,6 +2442,7 @@ pub struct ExportNamedDeclaration<'a> {
|
|||
/// ```
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ExportDefaultDeclaration<'a> {
|
||||
|
|
@ -2340,6 +2463,7 @@ pub struct ExportDefaultDeclaration<'a> {
|
|||
/// ```
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct ExportAllDeclaration<'a> {
|
||||
|
|
@ -2366,6 +2490,7 @@ pub struct ExportAllDeclaration<'a> {
|
|||
/// ```
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct ExportSpecifier<'a> {
|
||||
|
|
@ -2384,6 +2509,7 @@ inherit_variants! {
|
|||
/// [`ast` module docs]: `super`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum ExportDefaultDeclarationKind<'a> {
|
||||
|
|
@ -2407,6 +2533,7 @@ pub enum ExportDefaultDeclarationKind<'a> {
|
|||
/// * <https://github.com/tc39/ecma262/pull/2154>
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Clone, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum ModuleExportName<'a> {
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ use super::{inherit_variants, js::*, literal::*, ts::*};
|
|||
/// See: [JSX Syntax](https://facebook.github.io/jsx/)
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct JSXElement<'a> {
|
||||
|
|
@ -65,6 +66,7 @@ pub struct JSXElement<'a> {
|
|||
/// ```
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct JSXOpeningElement<'a> {
|
||||
|
|
@ -90,6 +92,7 @@ pub struct JSXOpeningElement<'a> {
|
|||
/// Closing tag in a [`JSXElement`]. Not all JSX elements have a closing tag.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct JSXClosingElement<'a> {
|
||||
|
|
@ -108,6 +111,7 @@ pub struct JSXClosingElement<'a> {
|
|||
/// See: [`React.Fragment`](https://react.dev/reference/react/Fragment)
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct JSXFragment<'a> {
|
||||
|
|
@ -121,6 +125,7 @@ pub struct JSXFragment<'a> {
|
|||
/// JSX Opening Fragment (`<>`)
|
||||
#[ast]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct JSXOpeningFragment {
|
||||
|
|
@ -131,6 +136,7 @@ pub struct JSXOpeningFragment {
|
|||
/// JSX Closing Fragment (`</>`)
|
||||
#[ast]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct JSXClosingFragment {
|
||||
|
|
@ -141,6 +147,7 @@ pub struct JSXClosingFragment {
|
|||
/// JSX Element Name
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum JSXElementName<'a> {
|
||||
|
|
@ -161,6 +168,7 @@ pub enum JSXElementName<'a> {
|
|||
/// ```
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct JSXNamespacedName<'a> {
|
||||
|
|
@ -189,6 +197,7 @@ pub struct JSXNamespacedName<'a> {
|
|||
/// [`member expression`]: JSXMemberExpressionObject::MemberExpression
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct JSXMemberExpression<'a> {
|
||||
|
|
@ -202,6 +211,7 @@ pub struct JSXMemberExpression<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum JSXMemberExpressionObject<'a> {
|
||||
|
|
@ -224,6 +234,7 @@ pub enum JSXMemberExpressionObject<'a> {
|
|||
/// ```
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct JSXExpressionContainer<'a> {
|
||||
|
|
@ -241,6 +252,7 @@ inherit_variants! {
|
|||
/// [`ast` module docs]: `super`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum JSXExpression<'a> {
|
||||
|
|
@ -253,6 +265,7 @@ pub enum JSXExpression<'a> {
|
|||
/// An empty JSX expression (`{}`)
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct JSXEmptyExpression {
|
||||
|
|
@ -265,6 +278,7 @@ pub struct JSXEmptyExpression {
|
|||
/// JSX Attributes
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum JSXAttributeItem<'a> {
|
||||
|
|
@ -281,6 +295,7 @@ pub enum JSXAttributeItem<'a> {
|
|||
/// // name ^^^ ^^^^ value
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct JSXAttribute<'a> {
|
||||
|
|
@ -299,6 +314,7 @@ pub struct JSXAttribute<'a> {
|
|||
/// ```
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct JSXSpreadAttribute<'a> {
|
||||
|
|
@ -312,6 +328,7 @@ pub struct JSXSpreadAttribute<'a> {
|
|||
/// Part of a [`JSXAttribute`].
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum JSXAttributeName<'a> {
|
||||
|
|
@ -324,6 +341,7 @@ pub enum JSXAttributeName<'a> {
|
|||
/// Part of a [`JSXAttribute`].
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum JSXAttributeValue<'a> {
|
||||
|
|
@ -340,6 +358,7 @@ pub enum JSXAttributeValue<'a> {
|
|||
/// [`IdentifierName`]: super::IdentifierName
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct JSXIdentifier<'a> {
|
||||
|
|
@ -355,6 +374,7 @@ pub struct JSXIdentifier<'a> {
|
|||
/// Part of a [`JSXElement`].
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum JSXChild<'a> {
|
||||
|
|
@ -375,6 +395,7 @@ pub enum JSXChild<'a> {
|
|||
/// Variant of [`JSXChild`] that represents an object spread (`{...expression}`).
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct JSXSpreadChild<'a> {
|
||||
|
|
@ -395,6 +416,7 @@ pub struct JSXSpreadChild<'a> {
|
|||
/// ```
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct JSXText<'a> {
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
use std::hash::Hash;
|
||||
|
||||
use bitflags::bitflags;
|
||||
use oxc_ast_macros::ast;
|
||||
use oxc_ast_macros::{ast, CloneIn};
|
||||
use oxc_span::{Atom, Span};
|
||||
use oxc_syntax::number::{BigintBase, NumberBase};
|
||||
#[cfg(feature = "serialize")]
|
||||
|
|
@ -23,6 +23,7 @@ use tsify::Tsify;
|
|||
/// <https://tc39.es/ecma262/#prod-BooleanLiteral>
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Clone, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct BooleanLiteral {
|
||||
|
|
@ -36,6 +37,7 @@ pub struct BooleanLiteral {
|
|||
/// <https://tc39.es/ecma262/#sec-null-literals>
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Clone)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct NullLiteral {
|
||||
|
|
@ -48,6 +50,7 @@ pub struct NullLiteral {
|
|||
/// <https://tc39.es/ecma262/#sec-literals-numeric-literals>
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Clone)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct NumericLiteral<'a> {
|
||||
|
|
@ -65,6 +68,7 @@ pub struct NumericLiteral<'a> {
|
|||
/// BigInt literal
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Clone, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct BigIntLiteral<'a> {
|
||||
|
|
@ -82,6 +86,7 @@ pub struct BigIntLiteral<'a> {
|
|||
/// <https://tc39.es/ecma262/#sec-literals-regular-expression-literals>
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Clone, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct RegExpLiteral<'a> {
|
||||
|
|
@ -98,6 +103,7 @@ pub struct RegExpLiteral<'a> {
|
|||
/// <https://tc39.es/ecma262/multipage/text-processing.html#sec-regexp-regular-expression-objects>
|
||||
#[ast]
|
||||
#[derive(Debug, Clone, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
pub struct RegExp<'a> {
|
||||
/// The regex pattern between the slashes
|
||||
|
|
@ -108,6 +114,7 @@ pub struct RegExp<'a> {
|
|||
|
||||
#[ast]
|
||||
#[derive(Debug, Clone, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
pub struct EmptyObject;
|
||||
|
||||
|
|
@ -116,6 +123,7 @@ pub struct EmptyObject;
|
|||
/// <https://tc39.es/ecma262/#sec-literals-string-literals>
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Clone, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct StringLiteral<'a> {
|
||||
|
|
@ -128,7 +136,7 @@ bitflags! {
|
|||
/// Regular expression flags.
|
||||
///
|
||||
/// <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions#advanced_searching_with_flags>
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, CloneIn)]
|
||||
pub struct RegExpFlags: u8 {
|
||||
/// Global flag
|
||||
///
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ export interface TSIndexSignatureName extends Span {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSThisParameter<'a> {
|
||||
|
|
@ -64,6 +65,7 @@ pub struct TSThisParameter<'a> {
|
|||
#[ast(visit)]
|
||||
#[scope]
|
||||
#[derive(Debug)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct TSEnumDeclaration<'a> {
|
||||
|
|
@ -92,6 +94,7 @@ pub struct TSEnumDeclaration<'a> {
|
|||
/// ```
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct TSEnumMember<'a> {
|
||||
|
|
@ -109,6 +112,7 @@ inherit_variants! {
|
|||
/// [`ast` module docs]: `super`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum TSEnumMemberName<'a> {
|
||||
|
|
@ -137,6 +141,7 @@ pub enum TSEnumMemberName<'a> {
|
|||
/// ```
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSTypeAnnotation<'a> {
|
||||
|
|
@ -162,6 +167,7 @@ pub struct TSTypeAnnotation<'a> {
|
|||
/// ```
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSLiteralType<'a> {
|
||||
|
|
@ -172,6 +178,7 @@ pub struct TSLiteralType<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged, rename_all = "camelCase")]
|
||||
pub enum TSLiteral<'a> {
|
||||
|
|
@ -191,6 +198,7 @@ pub enum TSLiteral<'a> {
|
|||
/// expressions.
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged, rename_all = "camelCase")]
|
||||
pub enum TSType<'a> {
|
||||
|
|
@ -295,6 +303,7 @@ pub use match_ts_type;
|
|||
#[ast(visit)]
|
||||
#[scope]
|
||||
#[derive(Debug)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSConditionalType<'a> {
|
||||
|
|
@ -318,6 +327,7 @@ pub struct TSConditionalType<'a> {
|
|||
/// <https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes-func.html#unions>
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct TSUnionType<'a> {
|
||||
|
|
@ -331,6 +341,7 @@ pub struct TSUnionType<'a> {
|
|||
/// <https://www.typescriptlang.org/docs/handbook/2/objects.html#intersection-types>
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct TSIntersectionType<'a> {
|
||||
|
|
@ -341,6 +352,7 @@ pub struct TSIntersectionType<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct TSParenthesizedType<'a> {
|
||||
|
|
@ -359,6 +371,7 @@ pub struct TSParenthesizedType<'a> {
|
|||
/// <https://www.typescriptlang.org/docs/handbook/2/keyof-types.html>
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSTypeOperator<'a> {
|
||||
|
|
@ -370,6 +383,7 @@ pub struct TSTypeOperator<'a> {
|
|||
|
||||
#[ast]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub enum TSTypeOperatorOperator {
|
||||
|
|
@ -391,6 +405,7 @@ pub enum TSTypeOperatorOperator {
|
|||
/// <https://www.typescriptlang.org/docs/handbook/2/objects.html#the-array-type>
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSArrayType<'a> {
|
||||
|
|
@ -412,6 +427,7 @@ pub struct TSArrayType<'a> {
|
|||
/// <https://www.typescriptlang.org/docs/handbook/2/indexed-access-types.html#handbook-content>
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSIndexedAccessType<'a> {
|
||||
|
|
@ -432,6 +448,7 @@ pub struct TSIndexedAccessType<'a> {
|
|||
/// <https://www.typescriptlang.org/docs/handbook/2/objects.html#tuple-types>
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSTupleType<'a> {
|
||||
|
|
@ -442,6 +459,7 @@ pub struct TSTupleType<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSNamedTupleMember<'a> {
|
||||
|
|
@ -454,6 +472,7 @@ pub struct TSNamedTupleMember<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSOptionalType<'a> {
|
||||
|
|
@ -464,6 +483,7 @@ pub struct TSOptionalType<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSRestType<'a> {
|
||||
|
|
@ -482,6 +502,7 @@ inherit_variants! {
|
|||
/// [`ast` module docs]: `super`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged, rename_all = "camelCase")]
|
||||
pub enum TSTupleElement<'a> {
|
||||
|
|
@ -496,6 +517,7 @@ pub enum TSTupleElement<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct TSAnyKeyword {
|
||||
|
|
@ -505,6 +527,7 @@ pub struct TSAnyKeyword {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct TSStringKeyword {
|
||||
|
|
@ -514,6 +537,7 @@ pub struct TSStringKeyword {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct TSBooleanKeyword {
|
||||
|
|
@ -523,6 +547,7 @@ pub struct TSBooleanKeyword {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct TSNumberKeyword {
|
||||
|
|
@ -532,6 +557,7 @@ pub struct TSNumberKeyword {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct TSNeverKeyword {
|
||||
|
|
@ -542,6 +568,7 @@ pub struct TSNeverKeyword {
|
|||
/// `type Uppercase<T extends character> = intrinsic;`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct TSIntrinsicKeyword {
|
||||
|
|
@ -551,6 +578,7 @@ pub struct TSIntrinsicKeyword {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct TSUnknownKeyword {
|
||||
|
|
@ -560,6 +588,7 @@ pub struct TSUnknownKeyword {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct TSNullKeyword {
|
||||
|
|
@ -569,6 +598,7 @@ pub struct TSNullKeyword {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct TSUndefinedKeyword {
|
||||
|
|
@ -578,6 +608,7 @@ pub struct TSUndefinedKeyword {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct TSVoidKeyword {
|
||||
|
|
@ -587,6 +618,7 @@ pub struct TSVoidKeyword {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct TSSymbolKeyword {
|
||||
|
|
@ -596,6 +628,7 @@ pub struct TSSymbolKeyword {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct TSThisType {
|
||||
|
|
@ -605,6 +638,7 @@ pub struct TSThisType {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct TSObjectKeyword {
|
||||
|
|
@ -614,6 +648,7 @@ pub struct TSObjectKeyword {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type")]
|
||||
pub struct TSBigIntKeyword {
|
||||
|
|
@ -626,6 +661,7 @@ pub struct TSBigIntKeyword {
|
|||
/// type E = D.c.b.a;
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSTypeReference<'a> {
|
||||
|
|
@ -640,6 +676,7 @@ pub struct TSTypeReference<'a> {
|
|||
/// NamespaceName . IdentifierReference
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum TSTypeName<'a> {
|
||||
|
|
@ -658,6 +695,7 @@ pub use match_ts_type_name;
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSQualifiedName<'a> {
|
||||
|
|
@ -669,6 +707,7 @@ pub struct TSQualifiedName<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSTypeParameterInstantiation<'a> {
|
||||
|
|
@ -679,6 +718,7 @@ pub struct TSTypeParameterInstantiation<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSTypeParameter<'a> {
|
||||
|
|
@ -694,6 +734,7 @@ pub struct TSTypeParameter<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSTypeParameterDeclaration<'a> {
|
||||
|
|
@ -705,6 +746,7 @@ pub struct TSTypeParameterDeclaration<'a> {
|
|||
#[ast(visit)]
|
||||
#[scope]
|
||||
#[derive(Debug)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSTypeAliasDeclaration<'a> {
|
||||
|
|
@ -720,6 +762,7 @@ pub struct TSTypeAliasDeclaration<'a> {
|
|||
|
||||
#[ast]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub enum TSAccessibility {
|
||||
|
|
@ -730,6 +773,7 @@ pub enum TSAccessibility {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSClassImplements<'a> {
|
||||
|
|
@ -745,6 +789,7 @@ pub struct TSClassImplements<'a> {
|
|||
#[ast(visit)]
|
||||
#[scope]
|
||||
#[derive(Debug)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSInterfaceDeclaration<'a> {
|
||||
|
|
@ -762,6 +807,7 @@ pub struct TSInterfaceDeclaration<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSInterfaceBody<'a> {
|
||||
|
|
@ -772,6 +818,7 @@ pub struct TSInterfaceBody<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSPropertySignature<'a> {
|
||||
|
|
@ -786,6 +833,7 @@ pub struct TSPropertySignature<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged, rename_all = "camelCase")]
|
||||
pub enum TSSignature<'a> {
|
||||
|
|
@ -809,6 +857,7 @@ pub enum TSSignature<'a> {
|
|||
/// ```
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSIndexSignature<'a> {
|
||||
|
|
@ -821,6 +870,7 @@ pub struct TSIndexSignature<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSCallSignatureDeclaration<'a> {
|
||||
|
|
@ -834,6 +884,7 @@ pub struct TSCallSignatureDeclaration<'a> {
|
|||
|
||||
#[ast]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub enum TSMethodSignatureKind {
|
||||
|
|
@ -845,6 +896,7 @@ pub enum TSMethodSignatureKind {
|
|||
#[ast(visit)]
|
||||
#[scope]
|
||||
#[derive(Debug)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSMethodSignature<'a> {
|
||||
|
|
@ -864,6 +916,7 @@ pub struct TSMethodSignature<'a> {
|
|||
#[ast(visit)]
|
||||
#[scope]
|
||||
#[derive(Debug)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSConstructSignatureDeclaration<'a> {
|
||||
|
|
@ -877,6 +930,7 @@ pub struct TSConstructSignatureDeclaration<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize))]
|
||||
#[serde(tag = "type", rename = "Identifier", rename_all = "camelCase")]
|
||||
pub struct TSIndexSignatureName<'a> {
|
||||
|
|
@ -888,6 +942,7 @@ pub struct TSIndexSignatureName<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSInterfaceHeritage<'a> {
|
||||
|
|
@ -899,6 +954,7 @@ pub struct TSInterfaceHeritage<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSTypePredicate<'a> {
|
||||
|
|
@ -911,6 +967,7 @@ pub struct TSTypePredicate<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged, rename_all = "camelCase")]
|
||||
pub enum TSTypePredicateName<'a> {
|
||||
|
|
@ -924,6 +981,7 @@ pub enum TSTypePredicateName<'a> {
|
|||
strict_if(self.body.as_ref().is_some_and(TSModuleDeclarationBody::is_strict)),
|
||||
)]
|
||||
#[derive(Debug)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSModuleDeclaration<'a> {
|
||||
|
|
@ -948,6 +1006,7 @@ pub struct TSModuleDeclaration<'a> {
|
|||
|
||||
#[ast]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub enum TSModuleDeclarationKind {
|
||||
|
|
@ -964,6 +1023,7 @@ impl TSModuleDeclarationKind {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum TSModuleDeclarationName<'a> {
|
||||
|
|
@ -973,6 +1033,7 @@ pub enum TSModuleDeclarationName<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum TSModuleDeclarationBody<'a> {
|
||||
|
|
@ -983,6 +1044,7 @@ pub enum TSModuleDeclarationBody<'a> {
|
|||
// See serializer in serialize.rs
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSModuleBlock<'a> {
|
||||
|
|
@ -995,6 +1057,7 @@ pub struct TSModuleBlock<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSTypeLiteral<'a> {
|
||||
|
|
@ -1005,6 +1068,7 @@ pub struct TSTypeLiteral<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSInferType<'a> {
|
||||
|
|
@ -1015,6 +1079,7 @@ pub struct TSInferType<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSTypeQuery<'a> {
|
||||
|
|
@ -1032,6 +1097,7 @@ inherit_variants! {
|
|||
/// [`ast` module docs]: `super`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum TSTypeQueryExprName<'a> {
|
||||
|
|
@ -1043,6 +1109,7 @@ pub enum TSTypeQueryExprName<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSImportType<'a> {
|
||||
|
|
@ -1057,6 +1124,7 @@ pub struct TSImportType<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSImportAttributes<'a> {
|
||||
|
|
@ -1068,6 +1136,7 @@ pub struct TSImportAttributes<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSImportAttribute<'a> {
|
||||
|
|
@ -1079,6 +1148,7 @@ pub struct TSImportAttribute<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged)]
|
||||
pub enum TSImportAttributeName<'a> {
|
||||
|
|
@ -1088,6 +1158,7 @@ pub enum TSImportAttributeName<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSFunctionType<'a> {
|
||||
|
|
@ -1101,6 +1172,7 @@ pub struct TSFunctionType<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSConstructorType<'a> {
|
||||
|
|
@ -1115,6 +1187,7 @@ pub struct TSConstructorType<'a> {
|
|||
#[ast(visit)]
|
||||
#[scope]
|
||||
#[derive(Debug)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSMappedType<'a> {
|
||||
|
|
@ -1130,6 +1203,7 @@ pub struct TSMappedType<'a> {
|
|||
|
||||
#[ast]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub enum TSMappedTypeModifierOperator {
|
||||
|
|
@ -1143,6 +1217,7 @@ pub enum TSMappedTypeModifierOperator {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSTemplateLiteralType<'a> {
|
||||
|
|
@ -1154,6 +1229,7 @@ pub struct TSTemplateLiteralType<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSAsExpression<'a> {
|
||||
|
|
@ -1165,6 +1241,7 @@ pub struct TSAsExpression<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSSatisfiesExpression<'a> {
|
||||
|
|
@ -1176,6 +1253,7 @@ pub struct TSSatisfiesExpression<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSTypeAssertion<'a> {
|
||||
|
|
@ -1187,6 +1265,7 @@ pub struct TSTypeAssertion<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSImportEqualsDeclaration<'a> {
|
||||
|
|
@ -1205,6 +1284,7 @@ inherit_variants! {
|
|||
/// [`ast` module docs]: `super`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(untagged, rename_all = "camelCase")]
|
||||
pub enum TSModuleReference<'a> {
|
||||
|
|
@ -1216,6 +1296,7 @@ pub enum TSModuleReference<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSExternalModuleReference<'a> {
|
||||
|
|
@ -1226,6 +1307,7 @@ pub struct TSExternalModuleReference<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSNonNullExpression<'a> {
|
||||
|
|
@ -1260,6 +1342,7 @@ pub struct TSNonNullExpression<'a> {
|
|||
/// [`CallExpression`]: crate::ast::js::CallExpression
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct Decorator<'a> {
|
||||
|
|
@ -1273,6 +1356,7 @@ pub struct Decorator<'a> {
|
|||
/// `export = foo`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSExportAssignment<'a> {
|
||||
|
|
@ -1286,6 +1370,7 @@ pub struct TSExportAssignment<'a> {
|
|||
/// `export as namespace foo`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSNamespaceExportDeclaration<'a> {
|
||||
|
|
@ -1296,6 +1381,7 @@ pub struct TSNamespaceExportDeclaration<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct TSInstantiationExpression<'a> {
|
||||
|
|
@ -1308,6 +1394,7 @@ pub struct TSInstantiationExpression<'a> {
|
|||
/// See [TypeScript - Type-Only Imports and Exports](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.html)
|
||||
#[ast]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub enum ImportOrExportKind {
|
||||
|
|
@ -1322,6 +1409,7 @@ pub enum ImportOrExportKind {
|
|||
/// `type foo = ty?` or `type foo = ?ty`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct JSDocNullableType<'a> {
|
||||
|
|
@ -1335,6 +1423,7 @@ pub struct JSDocNullableType<'a> {
|
|||
/// `type foo = ty!` or `type foo = !ty`
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct JSDocNonNullableType<'a> {
|
||||
|
|
@ -1346,6 +1435,7 @@ pub struct JSDocNonNullableType<'a> {
|
|||
|
||||
#[ast(visit)]
|
||||
#[derive(Debug, Hash)]
|
||||
#[generate_derive(CloneIn)]
|
||||
#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
pub struct JSDocUnknownType {
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -41,6 +41,7 @@ mod generated {
|
|||
pub mod assert_layouts;
|
||||
pub mod ast_builder;
|
||||
pub mod ast_kind;
|
||||
pub mod derive_clone_in;
|
||||
pub mod span;
|
||||
pub mod visit;
|
||||
pub mod visit_mut;
|
||||
|
|
|
|||
Loading…
Reference in a new issue