asdi 0.2.5

Another Simplistic Datalog Implementation (in Rust)
Documentation
@startuml

!include options.plantuml

interface asdi::edb::Relation
hide "asdi::edb::Relation" members

namespace asdi::edb::io {

    namespace csv {
        class DelimitedLines #white
        class Options #white
    }
    namespace json {
        class Json #white
        class Options #white
    }
    namespace text {
        class TextTables
        class Options
        TextTables ..|> asdi::edb::io::Reader
        TextTables ..|> asdi::edb::io::Writer
        Options ..> asdi::edb::io::Reader::Options
        Options ..> asdi::edb::io::Writer::Options
    }

    class FilePragma
    enum Format {
        DelimitedLines
        Json
        Text
    }

    FilePragma *-down-> Format


    abstract class asdi::edb::io::Reader::Options
    hide "asdi::edb::io::Reader::Options" members
    asdi::edb::io::Reader::Options ..|> std::default::Default

    interface Reader
    Reader ..|> std::default::Default
    Reader +-- asdi::edb::io::Reader::Options
    Reader ..> asdi::edb::Relation

    abstract class asdi::edb::io::Writer::Options
    hide "asdi::edb::io::Writer::Options" members
    asdi::edb::io::Writer::Options ..|> std::default::Default

    interface Writer
    Writer ..|> std::default::Default
    Writer +-- asdi::edb::io::Writer::Options
    Writer ..> asdi::edb::Relation

    class io << module >> {
        print_relation(): Result<())>
        read_relation(): Result<Relation>
        write_relation(): Result<())>
    }

    io ..> asdi::edb::Relation
    Writer ..> asdi::edb::Relation
}

@enduml