13个不稳定版本
0.8.0 | 2023年10月20日 |
---|---|
0.7.2 | 2021年8月27日 |
0.6.0 | 2020年1月3日 |
0.5.0 | 2019年11月4日 |
0.1.0 | 2017年5月4日 |
#131 in 算法
每月25次下载
用于 3 个crate(2个直接使用)
375KB
7.5K SLoC
clingo-rs

Rust风格的clingo库绑定。Clingo版本5.6.2。
使用方法
默认 - 动态链接
默认情况下,该crate通过动态链接使用clingo库。假设系统上已安装clingo动态库。在编译时,必须设置环境变量 CLINGO_LIBRARY_PATH
。例如
export CLINGO_LIBRARY_PATH=/scratch/miniconda3/envs/test/lib
对于运行与clingo动态链接的代码,请确保在您的 LD_LIBRARY_PATH
中有clingo库。
请参阅[clingo Readme](https://github.com/potassco/clingo#readme)了解获取clingo二进制发行版的不同方法。
使用static-linking
您还可以通过静态链接使用clingo库。构建系统将尝试在您的系统上为静态链接编译clingo。要为静态链接构建clingo,您需要安装以下工具
- 一个符合C++14的编译器
- 至少 GCC 版本 4.9
- Clang 版本 3.1(使用gcc 4.9提供的libstdc++或libc++)
- 至少 MSVC 15.0 (Visual Studio 2017)
- 其他编译器可能也可以工作
- cmake 构建系统
- 建议至少使用版本 3.18
- 至少需要版本 3.1
使用可选的静态链接支持的建议方法如下。
[dependencies]
clingo = { version = "0.8.0", features = ["static-linking"] }
使用derive
宏
该crate提供了一个derive宏,以帮助简化将rust数据类型用作事实的使用。
在您的 Cargo.toml
中添加
[dependencies]
clingo = { version = "0.8.0", features = ["derive"] }
在您的源代码中编写
use clingo::{ClingoError, FactBase, Symbol, ToSymbol};
#[derive(ToSymbol)]
struct MyPoint {
x: i32,
y: i32,
}
let p = MyPoint { x: 4, y: 2 };
let mut fb = FactBase::new();
fb.insert(&p);
该宏执行蛇形命名的转换。这意味着对于 MyPoint{x:4,y:2}
的对应事实是 my_point(4,2)
。
示例
cargo run --example=ast 0
cargo run --example=backend 0
cargo run --example=configuration
cargo run --example=control 0
cargo run --example=model 0
cargo run --example=propagator 0
cargo run --example=solve-async 0
cargo run --example=statistics 0
cargo run --example=symbol 0
cargo run --example=symbolic-atoms 0
cargo run --example=theory-atoms 0
cargo run --example=inject-terms 0
cargo run --example=version
贡献
任何有意提交并由您包含在作品中的贡献,应按照 MIT 许可证的条款许可,不得附加任何额外条款或条件。
依赖项
~12MB
~249K SLoC