Trait TypeChecker

Source
pub trait TypeChecker {
    type Ast;
    type Set;

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

    // Provided methods
    fn type_from(
        from: SqlFrom,
        vars: &mut Relvars,
        tx: &impl SchemaView,
    ) -> TypingResult<RelExpr> { ... }
    fn type_relvar(
        tx: &impl SchemaView,
        name: &str,
    ) -> TypingResult<Arc<TableSchema>> { ... }
}

Required Associated Types§

Required Methods§

Source

fn type_ast(ast: Self::Ast, tx: &impl SchemaView) -> TypingResult<ProjectList>

Source

fn type_set( ast: Self::Set, vars: &mut Relvars, tx: &impl SchemaView, ) -> TypingResult<ProjectList>

Provided Methods§

Source

fn type_from( from: SqlFrom, vars: &mut Relvars, tx: &impl SchemaView, ) -> TypingResult<RelExpr>

Source

fn type_relvar( tx: &impl SchemaView, name: &str, ) -> TypingResult<Arc<TableSchema>>

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§