//! Generated by `cargo xtask codegen grammar`, do not edit by hand. use crate::{ SyntaxKind::{self, *}, SyntaxToken, ast::AstToken, }; use std::{fmt, hash}; pub struct Byte { pub(crate) syntax: SyntaxToken, } impl std::fmt::Display for Byte { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { std::fmt::Display::fmt(&self.syntax, f) } } impl AstToken for Byte { fn can_cast(kind: SyntaxKind) -> bool { kind == BYTE } fn cast(syntax: SyntaxToken) -> Option { if Self::can_cast(syntax.kind()) { Some(Self { syntax }) } else { None } } fn syntax(&self) -> &SyntaxToken { &self.syntax } } impl fmt::Debug for Byte { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("Byte").field("syntax", &self.syntax).finish() } } impl Clone for Byte { fn clone(&self) -> Self { Self { syntax: self.syntax.clone() } } } impl hash::Hash for Byte { fn hash(&self, state: &mut H) { self.syntax.hash(state); } } impl Eq for Byte {} impl PartialEq for Byte { fn eq(&self, other: &Self) -> bool { self.syntax == other.syntax } } pub struct ByteString { pub(crate) syntax: SyntaxToken, } impl std::fmt::Display for ByteString { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { std::fmt::Display::fmt(&self.syntax, f) } } impl AstToken for ByteString { fn can_cast(kind: SyntaxKind) -> bool { kind == BYTE_STRING } fn cast(syntax: SyntaxToken) -> Option { if Self::can_cast(syntax.kind()) { Some(Self { syntax }) } else { None } } fn syntax(&self) -> &SyntaxToken { &self.syntax } } impl fmt::Debug for ByteString { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("ByteString").field("syntax", &self.syntax).finish() } } impl Clone for ByteString { fn clone(&self) -> Self { Self { syntax: self.syntax.clone() } } } impl hash::Hash for ByteString { fn hash(&self, state: &mut H) { self.syntax.hash(state); } } impl Eq for ByteString {} impl PartialEq for ByteString { fn eq(&self, other: &Self) -> bool { self.syntax == other.syntax } } pub struct CString { pub(crate) syntax: SyntaxToken, } impl std::fmt::Display for CString { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { std::fmt::Display::fmt(&self.syntax, f) } } impl AstToken for CString { fn can_cast(kind: SyntaxKind) -> bool { kind == C_STRING } fn cast(syntax: SyntaxToken) -> Option { if Self::can_cast(syntax.kind()) { Some(Self { syntax }) } else { None } } fn syntax(&self) -> &SyntaxToken { &self.syntax } } impl fmt::Debug for CString { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("CString").field("syntax", &self.syntax).finish() } } impl Clone for CString { fn clone(&self) -> Self { Self { syntax: self.syntax.clone() } } } impl hash::Hash for CString { fn hash(&self, state: &mut H) { self.syntax.hash(state); } } impl Eq for CString {} impl PartialEq for CString { fn eq(&self, other: &Self) -> bool { self.syntax == other.syntax } } pub struct Char { pub(crate) syntax: SyntaxToken, } impl std::fmt::Display for Char { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { std::fmt::Display::fmt(&self.syntax, f) } } impl AstToken for Char { fn can_cast(kind: SyntaxKind) -> bool { kind == CHAR } fn cast(syntax: SyntaxToken) -> Option { if Self::can_cast(syntax.kind()) { Some(Self { syntax }) } else { None } } fn syntax(&self) -> &SyntaxToken { &self.syntax } } impl fmt::Debug for Char { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("Char").field("syntax", &self.syntax).finish() } } impl Clone for Char { fn clone(&self) -> Self { Self { syntax: self.syntax.clone() } } } impl hash::Hash for Char { fn hash(&self, state: &mut H) { self.syntax.hash(state); } } impl Eq for Char {} impl PartialEq for Char { fn eq(&self, other: &Self) -> bool { self.syntax == other.syntax } } pub struct Comment { pub(crate) syntax: SyntaxToken, } impl std::fmt::Display for Comment { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { std::fmt::Display::fmt(&self.syntax, f) } } impl AstToken for Comment { fn can_cast(kind: SyntaxKind) -> bool { kind == COMMENT } fn cast(syntax: SyntaxToken) -> Option { if Self::can_cast(syntax.kind()) { Some(Self { syntax }) } else { None } } fn syntax(&self) -> &SyntaxToken { &self.syntax } } impl fmt::Debug for Comment { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("Comment").field("syntax", &self.syntax).finish() } } impl Clone for Comment { fn clone(&self) -> Self { Self { syntax: self.syntax.clone() } } } impl hash::Hash for Comment { fn hash(&self, state: &mut H) { self.syntax.hash(state); } } impl Eq for Comment {} impl PartialEq for Comment { fn eq(&self, other: &Self) -> bool { self.syntax == other.syntax } } pub struct FloatNumber { pub(crate) syntax: SyntaxToken, } impl std::fmt::Display for FloatNumber { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { std::fmt::Display::fmt(&self.syntax, f) } } impl AstToken for FloatNumber { fn can_cast(kind: SyntaxKind) -> bool { kind == FLOAT_NUMBER } fn cast(syntax: SyntaxToken) -> Option { if Self::can_cast(syntax.kind()) { Some(Self { syntax }) } else { None } } fn syntax(&self) -> &SyntaxToken { &self.syntax } } impl fmt::Debug for FloatNumber { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("FloatNumber").field("syntax", &self.syntax).finish() } } impl Clone for FloatNumber { fn clone(&self) -> Self { Self { syntax: self.syntax.clone() } } } impl hash::Hash for FloatNumber { fn hash(&self, state: &mut H) { self.syntax.hash(state); } } impl Eq for FloatNumber {} impl PartialEq for FloatNumber { fn eq(&self, other: &Self) -> bool { self.syntax == other.syntax } } pub struct Ident { pub(crate) syntax: SyntaxToken, } impl std::fmt::Display for Ident { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { std::fmt::Display::fmt(&self.syntax, f) } } impl AstToken for Ident { fn can_cast(kind: SyntaxKind) -> bool { kind == IDENT } fn cast(syntax: SyntaxToken) -> Option { if Self::can_cast(syntax.kind()) { Some(Self { syntax }) } else { None } } fn syntax(&self) -> &SyntaxToken { &self.syntax } } impl fmt::Debug for Ident { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("Ident").field("syntax", &self.syntax).finish() } } impl Clone for Ident { fn clone(&self) -> Self { Self { syntax: self.syntax.clone() } } } impl hash::Hash for Ident { fn hash(&self, state: &mut H) { self.syntax.hash(state); } } impl Eq for Ident {} impl PartialEq for Ident { fn eq(&self, other: &Self) -> bool { self.syntax == other.syntax } } pub struct IntNumber { pub(crate) syntax: SyntaxToken, } impl std::fmt::Display for IntNumber { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { std::fmt::Display::fmt(&self.syntax, f) } } impl AstToken for IntNumber { fn can_cast(kind: SyntaxKind) -> bool { kind == INT_NUMBER } fn cast(syntax: SyntaxToken) -> Option { if Self::can_cast(syntax.kind()) { Some(Self { syntax }) } else { None } } fn syntax(&self) -> &SyntaxToken { &self.syntax } } impl fmt::Debug for IntNumber { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("IntNumber").field("syntax", &self.syntax).finish() } } impl Clone for IntNumber { fn clone(&self) -> Self { Self { syntax: self.syntax.clone() } } } impl hash::Hash for IntNumber { fn hash(&self, state: &mut H) { self.syntax.hash(state); } } impl Eq for IntNumber {} impl PartialEq for IntNumber { fn eq(&self, other: &Self) -> bool { self.syntax == other.syntax } } pub struct String { pub(crate) syntax: SyntaxToken, } impl std::fmt::Display for String { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { std::fmt::Display::fmt(&self.syntax, f) } } impl AstToken for String { fn can_cast(kind: SyntaxKind) -> bool { kind == STRING } fn cast(syntax: SyntaxToken) -> Option { if Self::can_cast(syntax.kind()) { Some(Self { syntax }) } else { None } } fn syntax(&self) -> &SyntaxToken { &self.syntax } } impl fmt::Debug for String { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("String").field("syntax", &self.syntax).finish() } } impl Clone for String { fn clone(&self) -> Self { Self { syntax: self.syntax.clone() } } } impl hash::Hash for String { fn hash(&self, state: &mut H) { self.syntax.hash(state); } } impl Eq for String {} impl PartialEq for String { fn eq(&self, other: &Self) -> bool { self.syntax == other.syntax } } pub struct Whitespace { pub(crate) syntax: SyntaxToken, } impl std::fmt::Display for Whitespace { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { std::fmt::Display::fmt(&self.syntax, f) } } impl AstToken for Whitespace { fn can_cast(kind: SyntaxKind) -> bool { kind == WHITESPACE } fn cast(syntax: SyntaxToken) -> Option { if Self::can_cast(syntax.kind()) { Some(Self { syntax }) } else { None } } fn syntax(&self) -> &SyntaxToken { &self.syntax } } impl fmt::Debug for Whitespace { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("Whitespace").field("syntax", &self.syntax).finish() } } impl Clone for Whitespace { fn clone(&self) -> Self { Self { syntax: self.syntax.clone() } } } impl hash::Hash for Whitespace { fn hash(&self, state: &mut H) { self.syntax.hash(state); } } impl Eq for Whitespace {} impl PartialEq for Whitespace { fn eq(&self, other: &Self) -> bool { self.syntax == other.syntax } }