1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//! swipl provides a high-level interface to SWI-Prolog. It allows you
//! to write modules or foreign libraries which will be loaded by
//! SWI-Prolog to to provide predicates written in rust. It can also
//! be used to embed SWI-Prolog in a rust application.
//!
//! The code in this crate is divided up into multiple modules. The easiest way to make use of it all is to use the prelude module, which re-exports the contents of all the other modules:
//! ```
//! use swipl::prelude::*;
//! ```
#![doc(html_root_url = "https://terminusdb-labs.github.io/swipl-rs/swipl/")]

pub mod consts;
pub mod fli;

pub mod atom;
pub mod blob;
pub mod callable;
pub mod context;
pub mod dict;
pub mod engine;
pub mod functor;
pub mod init;
pub mod module;
pub mod predicate;
pub mod record;
pub mod result;
pub mod stream;
pub mod term;
pub mod text;

pub mod prelude;

pub use swipl_macros::{
    arc_blob, atom, clone_blob, functor, pred, predicates, prolog, term, wrapped_arc_blob,
    wrapped_clone_blob,
};