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§
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>)>
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.