Skip to content

Get rid of anyhow #577

@chrjabs

Description

@chrjabs

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) (*)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions