Anki/rslib/src/storage
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
..
card Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
config update to latest rusqlite 2021-06-25 16:22:21 +10:00
deck Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
deckconfig Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
graves Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
note Improve temporary table handling (#1976) 2022-07-22 17:51:26 +10:00
notetype Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
revlog Expose backend_proto publicly for AnkiDroid, and rename to pb 2022-06-27 15:27:53 +10:00
tag add basic tag completion to backend 2021-09-09 15:38:08 +02:00
upgrades Refactor export-import code and resolve fixmes (#1723) 2022-03-18 19:31:55 +10:00
collection_timestamps.rs update to latest rusqlite 2021-06-25 16:22:21 +10:00
mod.rs Update to latest rules_rust and Rust 1.64 2022-09-24 11:12:58 +10:00
schema11.sql Add comment explaining why sfld column has type integer 2021-01-25 18:39:59 +08:00
sqlite.rs Fix collection load failure on Android 2022-06-10 23:21:35 +10:00
sync.rs Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
sync_check.rs zero out graves before comparison, instead of at creation 2021-06-30 10:08:52 +10:00