Using anyhow in a library was a bad decision in the first place, as its intended for applications.
Get rid of it, in favour of explicit error types.
This also allows us to use eyre instead downstream, for example in rustsat-tools.
Additionally, in solver crates, turn invalid API errors into panics as they are either a bug in the crate, or in the solver itself.
For reference, this is the current dependency graph for anyhow:
anyhow v1.0.100
├── rustsat v0.7.4 (/home/christoph/Work/rustsat)
│ ├── rustsat-batsat v0.7.4 (/home/christoph/Work/rustsat/batsat)
│ ├── rustsat-cadical v0.7.4 (/home/christoph/Work/rustsat/cadical)
│ ├── rustsat-capi v0.7.4 (/home/christoph/Work/rustsat/capi)
│ ├── rustsat-glucose v0.7.4 (/home/christoph/Work/rustsat/glucose)
│ ├── rustsat-ipasir v0.7.4 (/home/christoph/Work/rustsat/ipasir)
│ ├── rustsat-kissat v0.7.4 (/home/christoph/Work/rustsat/kissat)
│ ├── rustsat-minisat v0.7.4 (/home/christoph/Work/rustsat/minisat)
│ │ └── rustsat-tools v0.7.4 (/home/christoph/Work/rustsat/tools)
│ │ [dev-dependencies]
│ │ ├── rustsat v0.7.4 (/home/christoph/Work/rustsat) (*)
│ │ └── rustsat v0.7.4 (/home/christoph/Work/rustsat)
│ │ ├── rustsat-solvertests v0.7.4 (proc-macro) (/home/christoph/Work/rustsat/solvertests)
│ │ │ [dev-dependencies]
│ │ │ ├── rustsat v0.7.4 (/home/christoph/Work/rustsat) (*)
│ │ │ ├── rustsat v0.7.4 (/home/christoph/Work/rustsat) (*)
│ │ │ ├── rustsat-batsat v0.7.4 (/home/christoph/Work/rustsat/batsat)
│ │ │ ├── rustsat-cadical v0.7.4 (/home/christoph/Work/rustsat/cadical)
│ │ │ ├── rustsat-glucose v0.7.4 (/home/christoph/Work/rustsat/glucose)
│ │ │ ├── rustsat-kissat v0.7.4 (/home/christoph/Work/rustsat/kissat)
│ │ │ └── rustsat-minisat v0.7.4 (/home/christoph/Work/rustsat/minisat) (*)
│ │ └── rustsat-tools v0.7.4 (/home/christoph/Work/rustsat/tools) (*)
│ │ [dev-dependencies]
│ │ ├── rustsat v0.7.4 (/home/christoph/Work/rustsat) (*)
│ │ └── rustsat v0.7.4 (/home/christoph/Work/rustsat) (*)
│ └── rustsat-pyapi v0.7.4 (/home/christoph/Work/rustsat/pyapi)
├── rustsat v0.7.4 (/home/christoph/Work/rustsat) (*)
├── rustsat-batsat v0.7.4 (/home/christoph/Work/rustsat/batsat)
├── rustsat-cadical v0.7.4 (/home/christoph/Work/rustsat/cadical)
├── rustsat-glucose v0.7.4 (/home/christoph/Work/rustsat/glucose)
├── rustsat-ipasir v0.7.4 (/home/christoph/Work/rustsat/ipasir)
├── rustsat-kissat v0.7.4 (/home/christoph/Work/rustsat/kissat)
├── rustsat-minisat v0.7.4 (/home/christoph/Work/rustsat/minisat) (*)
└── rustsat-tools v0.7.4 (/home/christoph/Work/rustsat/tools) (*)
Using
anyhowin a library was a bad decision in the first place, as its intended for applications.Get rid of it, in favour of explicit error types.
This also allows us to use
eyreinstead downstream, for example inrustsat-tools.Additionally, in solver crates, turn invalid API errors into panics as they are either a bug in the crate, or in the solver itself.
For reference, this is the current dependency graph for
anyhow: