diff --git a/cadical/src/lib.rs b/cadical/src/lib.rs index 95c1d04d..65c18db8 100644 --- a/cadical/src/lib.rs +++ b/cadical/src/lib.rs @@ -1,22 +1,22 @@ //! # rustsat-cadical - Interface to the CaDiCaL SAT Solver for RustSAT -//! +//! //! Armin Biere's SAT solver [CaDiCaL](https://github.com/arminbiere/cadical) to be used with the [RustSAT](https://github.com/chrjabs/rustsat) library. -//! +//! //! **Note**: at the moment this crate is known to not work on Windows since CaDiCaL is non-trivial to get to work on Windows. -//! +//! //! ## Features -//! +//! //! - `debug`: if this feature is enables, the C++ library will be built with debug and check functionality if the Rust project is built in debug mode //! - `safe`: disable writing through 'popen' for more safe usage of the library in applications //! - `quiet`: exclude message and profiling code (logging too) //! - `logging`: include logging code (but disabled by default) -//! +//! //! ## CaDiCaL Versions -//! +//! //! CaDiCaL versions can be selected via cargo crate features. //! All CaDiCaL versions up to [Version 1.9.4](https://github.com/arminbiere/cadical/releases/tag/rel-1.9.4) are available. //! For the full list of versions and the changelog see [the CaDiCaL releases](https://github.com/arminbiere/cadical/releases). -//! +//! //! Without any features selected, the newest version will be used. //! If conflicting CaDiCaL versions are requested, the newest requested version will be selected. diff --git a/glucose/src/lib.rs b/glucose/src/lib.rs index 4662cc29..d28e37b1 100644 --- a/glucose/src/lib.rs +++ b/glucose/src/lib.rs @@ -1,13 +1,13 @@ //! # rustsat-glucose - Interface to the Glucose SAT Solver for RustSAT -//! +//! //! The Glucose SAT solver to be used with the [RustSAT](https://github.com/chrjabs/rustsat) library. -//! +//! //! ## Features -//! +//! //! - `debug`: if this feature is enables, the C++ library will be built with debug and check functionality if the Rust project is built in debug mode -//! +//! //! ## Glucose Version -//! +//! //! The version of Glucose in this crate is Version 4.2.1. //! The used C++ source repository can be found [here](https://github.com/chrjabs/glucose4). diff --git a/kissat/src/lib.rs b/kissat/src/lib.rs index 4551e5ea..d6ca2d5b 100644 --- a/kissat/src/lib.rs +++ b/kissat/src/lib.rs @@ -1,17 +1,17 @@ //! # rustsat-kissat - Interface to the kissat SAT Solver for RustSAT -//! +//! //! Armin Biere's SAT solver [Kissat](https://github.com/arminbiere/kissat) to be used with the [RustSAT](https://github.com/chrjabs/rustsat) library. -//! +//! //! **Note**: at the moment this crate is known to not work on Windows since Kissat is non-trivial to get to work on Windows. -//! +//! //! ## Features -//! +//! //! - `debug`: if this feature is enables, the C library will be built with debug functionality if the Rust project is built in debug mode //! - `safe`: disable writing through 'popen' for more safe usage of the library in applications //! - `quiet`: exclude message and profiling code (logging too) -//! +//! //! ## Kissat Versions -//! +//! //! Kissat versions can be selected via cargo crate features. //! The following Kissat versions are available: //! - `v3-1-0`: [Version 3.1.0](https://github.com/arminbiere/kissat/releases/tag/rel-3.1.0) @@ -19,7 +19,7 @@ //! - `sc2022-light`: [SAT Competition 2022 Light](https://github.com/arminbiere/kissat/releases/tag/sc2022-light) //! - `sc2022-hyper`: [SAT Competition 2022 Hyper](https://github.com/arminbiere/kissat/releases/tag/sc2022-hyper) //! - `sc2022-bulky`: [SAT Competition 2022 Bulky](https://github.com/arminbiere/kissat/releases/tag/sc2022-bulky) -//! +//! //! Without any features selected, the newest version will be used. //! If conflicting Kissat versions are requested, the newest requested version will be selected. diff --git a/minisat/src/lib.rs b/minisat/src/lib.rs index a8c33d75..5c738443 100644 --- a/minisat/src/lib.rs +++ b/minisat/src/lib.rs @@ -1,13 +1,13 @@ //! # rustsat-minisat - Interface to the Minisat SAT Solver for RustSAT -//! +//! //! The Minisat SAT solver to be used with the [RustSAT](https://github.com/chrjabs/rustsat) library. -//! +//! //! ## Features -//! +//! //! - `debug`: if this feature is enables, the C++ library will be built with debug and check functionality if the Rust project is built in debug mode -//! +//! //! ## Minisat Version -//! +//! //! The version of minisat in this crate is Version 2.2.0. //! The used C++ source repository can be found [here](https://github.com/chrjabs/minisat). diff --git a/rustsat/src/lib.rs b/rustsat/src/lib.rs index c1d07aa6..88baeba2 100644 --- a/rustsat/src/lib.rs +++ b/rustsat/src/lib.rs @@ -1,11 +1,11 @@ //! # rustsat - A Comprehensive SAT Library for Rust -//! +//! //! `rustsat` is a collection of interfaces and utilities for working with the boolean satisfiability problem in Rust. //! This library aims to provide implementations of elements commonly used in the development of software in the area of satisfiability solving. //! The focus of the library is to provide as much ease of use without giving up on performance. -//! +//! //! ## Example -//! +//! //! ``` //! # use rustsat::{instances::SatInstance, solvers::{Solve, SolverResult}, types::TernaryVal}; //! let mut instance: SatInstance = SatInstance::new(); @@ -22,28 +22,28 @@ //! assert_eq!(sol[l1.var()], TernaryVal::True); //! assert_eq!(sol[l2.var()], TernaryVal::True); //! ``` -//! +//! //! ## Crates -//! +//! //! The RustSAT project is split up into multiple crates that are all contained in [this repository](https://github.com/chrjabs/rustsat/). //! These are the crates the project consists of: -//! +//! //! | Crate | Description | //! | --- | --- | //! | `rustsat` | The main library, containing basic types, traits, encodings, parsers, and more. | //! | `rustsat-tools` | A collection of small helpful tools based on RustSAT that can be installed as binaries. For a list of available tools, see [this directory](https://github.com/chrjabs/rustsat/tree/main/tools/src/bin) with short descriptions of the tools in the headers of the files. | //! | `rustsat-` | Interfaces to SAT solvers that can be used alongside `rustsat`. Currently interfaces are available for `cadical`, `kissat`, `glucose`, and `minisat`. | -//! +//! //! ## Installation -//! +//! //! To use the RustSAT library as a dependency in your project, simply run `cargo add rustsat`. //! To use an SAT solver interface in your project, run `cargo add rustsat-`. //! Typically, the version of the SAT solver can be selected via crate features, refer to the documentation of the respective SAT solver crate for details. -//! +//! //! To install the binary tools in `rustsat-tools` run `cargo install rustsat-tools`. -//! +//! //! ## Features -//! +//! //! | Feature name | Description | //! | --- | --- | //! | `internals` | Make some internal data structures for e.g. encodings public. This is useful when basing a more complex encoding on the `rustsat` implementation of another encoding. Note that the internal API might change between releases. | @@ -54,14 +54,14 @@ //! | `compression` | Enable parsing and writing compressed input. | //! | `bench` | Enable benchmark tests. Behind feature flag since it requires unstable Rust. | //! | `rand` | Enable randomization features. (Shuffling clauses etc.) | -//! +//! //! ## Examples -//! +//! //! For example usage refer to the small example tools in the [`rustsat-tools` //! crate](https://crates.io/crates/rustsat_tools) at `tools/src/bin`. For a bigger //! example you can look at this [multi-objective optimization //! solver](https://github.com/chrjabs/scuttle). -//! +//! //! For an example of how to use the C-API, see `rustsat/examples/capi*.cpp`. //! Similarly, for an example of using the Python API, see `rustsat/examples/pyapi*.py`. diff --git a/tools/src/lib.rs b/tools/src/lib.rs index 18e7819f..8d5011ae 100644 --- a/tools/src/lib.rs +++ b/tools/src/lib.rs @@ -1,5 +1,5 @@ //! # rustsat-tools - Tools for and with the RustSAT Library -//! +//! //! This crate contains tools for and built on the RustSAT library. pub mod utils;