Anki/rslib/src/search
RumovZ c521753057
Refactor error handling (#2136)
* Add crate snafu

* Replace all inline structs in AnkiError

* Derive Snafu on AnkiError

* Use snafu for card type errors

* Use snafu whatever error for InvalidInput

* Use snafu for NotFoundError and improve message

* Use snafu for FileIoError to attach context

Remove IoError.
Add some context-attaching helpers to replace code returning bare
io::Errors.

* Add more context-attaching io helpers

* Add message, context and backtrace to new snafus

* Utilize error context and backtrace on frontend

* Rename LocalizedError -> BackendError.
* Remove DocumentedError.
* Have all backend exceptions inherit BackendError.

* Rename localized(_description) -> message

* Remove accidentally committed experimental trait

* invalid_input_context -> ok_or_invalid

* ensure_valid_input! -> require!

* Always return `Err` from `invalid_input!`

Instead of a Result to unwrap, the macro accepts a source error now.

* new_tempfile_in_parent -> new_tempfile_in_parent_of

* ok_or_not_found -> or_not_found

* ok_or_invalid -> or_invalid

* Add crate convert_case

* Use unqualified lowercase type name

* Remove uses of snafu::ensure

* Allow public construction of InvalidInputErrors (dae)

Needed to port the AnkiDroid changes.

* Make into_protobuf() public (dae)

Also required for AnkiDroid. Not sure why it worked previously - possible
bug in older Rust version?
2022-10-21 18:02:12 +10:00
..
builder.rs Adjust remaining steps after config update (#1956) 2022-07-14 11:24:34 +10:00
card_mod_order.sql Add card mod column for notes mode 2021-04-08 20:14:10 +02:00
deck_order.sql reformat .sql files 2021-01-09 14:08:55 +10:00
mod.rs Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
note_cards_order.sql squash merge browser refactor 2021-03-29 16:14:54 +10:00
note_decks_order.sql Add deck column for notes mode 2021-04-08 19:46:06 +02:00
note_due_order.sql Add note due column 2021-03-30 21:39:15 +02:00
note_ease_order.sql squash merge browser refactor 2021-03-29 16:14:54 +10:00
note_interval_order.sql Add note interval column 2021-03-30 23:44:35 +02:00
note_lapses_order.sql Add note lapses column 2021-03-29 16:06:15 +02:00
note_reps_order.sql Add note reps column 2021-03-29 15:52:02 +02:00
notetype_order.sql reformat .sql files 2021-01-09 14:08:55 +10:00
parser.rs Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
sqlwriter.rs Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
template_order.sql reformat .sql files 2021-01-09 14:08:55 +10:00
writer.rs Fix some clippy lints + imports 2022-03-17 21:03:39 +10:00