radixdb-sql 1.1.0

SQL syntax contracts and parser for RadixDB
Documentation
use radixdb_sql::{CommitStatement, Expression, Identifier, Position, Statement, Token, TokenType};

#[test]
fn ast_nodes_preserve_clone_and_equality_contracts() {
    let token = Token::new(TokenType::Identifier, "account_id", Position::new(7, 2, 4));
    let expression = Expression::Identifier(Identifier::new(token, "account_id"));
    assert_eq!(expression.clone(), expression);

    let statement = Statement::Commit(CommitStatement {
        token: Token::new(TokenType::Keyword, "COMMIT", Position::new(0, 1, 1)),
    });
    assert_eq!(statement.clone(), statement);
}

#[cfg(target_pointer_width = "64")]
#[test]
fn ast_layout_does_not_expand_during_the_crate_move() {
    use std::mem::size_of;

    assert_eq!(size_of::<Token>(), 48);
    assert_eq!(size_of::<Identifier>(), 80);
    assert_eq!(size_of::<Expression>(), 136);
    assert_eq!(size_of::<Statement>(), 344);
}