ink-analyzer-ir 0.3.0

Intermediate representations (IRs) and abstractions of ink! smart contract code for ink! analyzer.
Documentation
//! ink! attribute meta item separator.

use ra_ap_syntax::{AstToken, SyntaxKind, SyntaxToken};

/// An ink! attribute meta item separator (i.e `=` symbol).
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct MetaSeparator {
    syntax: SyntaxToken,
}

impl AstToken for MetaSeparator {
    fn can_cast(kind: SyntaxKind) -> bool {
        kind == SyntaxKind::EQ
    }

    fn cast(syntax: SyntaxToken) -> Option<Self> {
        if Self::can_cast(syntax.kind()) {
            Some(Self { syntax })
        } else {
            None
        }
    }

    fn syntax(&self) -> &SyntaxToken {
        &self.syntax
    }
}