oeb25 / smtlib-rs

A high-level API for interacting with SMT solvers.
https://crates.io/crates/smtlib
23 stars 8 forks source link

Remove `async-trait` crate and `async`, `z3`, `cvc5` features #5

Closed oeb25 closed 10 months ago

oeb25 commented 10 months ago

With Rust 1.75 released we no have async fn and -> impl Trait in traits! This removes the need for the async-trait crate. It, however, requires us to bump MSRV to 1.75 which I am fine with.

Additionally, I chose to remove feature flags for async and the z3 and cvc5 brinary backends.

The async featrue flag includes almost only AsyncBackend and AsyncSolver which have no further dependencies, so they might as well be enabled by default. We might bring something back if we add tokio based BinaryBackend's.

The z3 and cvc5 added no additional dependencies and very little code, since all they do is call out to a binary, so we might as well include them by default and reduce the complexity.