Skip to main content

Engine

Trait Engine 

Source
pub trait Engine {
    type Table;

    // Required methods
    fn head(&self) -> &str;
    fn proof_kind(&self) -> &str;
    fn run(&self, tables: &[Self::Table]) -> Result<Self::Table, Refusal>;
}
Expand description

An engine: tables in, a table out, under a symbol of the head table, held by proof files of one kind. The relation type is the implementor’s, since the port of VLA_Relation (PORT.9) defines it; the first implementations are SQL, DATALOG, PROLOG and OPTIMIZE, and a fifth proves the seam takes additions.

Required Associated Types§

Source

type Table

The relation an engine takes and gives.

Required Methods§

Source

fn head(&self) -> &str

The head-table symbol the engine answers to, such as datalog.

Source

fn proof_kind(&self) -> &str

The proof-file kind that holds it, such as test-datalog.

Source

fn run(&self, tables: &[Self::Table]) -> Result<Self::Table, Refusal>

The tables in, the table out, or a refusal from the catalogue.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§