spacetimedb_expr::check

Trait TypeChecker

Source
pub trait TypeChecker {
    type Ast;
    type Set;

    // Required methods
    fn type_ast(
        ctx: &mut TyCtx,
        ast: Self::Ast,
        tx: &impl SchemaView,
    ) -> TypingResult<RelExpr>;
    fn type_set(
        ctx: &mut TyCtx,
        ast: Self::Set,
        tx: &impl SchemaView,
    ) -> TypingResult<RelExpr>;

    // Provided methods
    fn type_from(
        ctx: &mut TyCtx,
        from: SqlFrom<Self::Ast>,
        tx: &impl SchemaView,
    ) -> TypingResult<(RelExpr, Option<Symbol>)> { ... }
    fn type_rel(
        ctx: &mut TyCtx,
        expr: RelExpr<Self::Ast>,
        tx: &impl SchemaView,
    ) -> TypingResult<(RelExpr, Option<Symbol>)> { ... }
}

Required Associated Types§

Required Methods§

Source

fn type_ast( ctx: &mut TyCtx, ast: Self::Ast, tx: &impl SchemaView, ) -> TypingResult<RelExpr>

Source

fn type_set( ctx: &mut TyCtx, ast: Self::Set, tx: &impl SchemaView, ) -> TypingResult<RelExpr>

Provided Methods§

Source

fn type_from( ctx: &mut TyCtx, from: SqlFrom<Self::Ast>, tx: &impl SchemaView, ) -> TypingResult<(RelExpr, Option<Symbol>)>

Source

fn type_rel( ctx: &mut TyCtx, expr: RelExpr<Self::Ast>, tx: &impl SchemaView, ) -> TypingResult<(RelExpr, Option<Symbol>)>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§