datacat

Modules

join
module datacat.join
map
module datacat.map
range
module datacat.range

Members

Classes

Variable
class Variable(TupleT)

An monotonically increasing set of Tuples.

Functions

kvTuple
auto kvTuple(auto ref K k, auto ref V v)
auto kvTuple(auto ref K k)

Convenient function for creating a key/value tuple.

Interfaces

VariableTrait
interface VariableTrait

A type that can report on whether it has changed.

Structs

Iteration
struct Iteration

An iterative context for recursive evaluation.

Relation
struct Relation(TupleT)

A static, ordered list of key-value pairs.

Templates

Variable
template Variable(Args...)

Create a Variable type with a tuple of the provided types (Args).

relation
template relation(Args...)

Create a Relation type with a tuple of the provided types (Args).

Meta

Authors

Joakim BrännströmJoakim Brännström (joakim.brannstrom@gmx.com)

Port of DataFrog to D.

A lightweight Datalog engine in Rust

The intended design is that one has static Relation types that are sets of tuples, and Variable types that represent monotonically increasing sets of tuples.

The types are mostly wrappers around Vec<Tuple> indicating sorted-ness, and the intent is that this code can be dropped in the middle of an otherwise normal Rust program, run to completion, and then the results extracted as vectors again.