Anki/rslib/src
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
..
backend Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
card Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
card_rendering Update to latest rules_rust and Rust 1.64 2022-09-24 11:12:58 +10:00
collection Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
config 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
decks Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
error Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
import_export Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
media Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
notes Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
notetype Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
revlog Update to latest rules_rust and Rust 1.64 2022-09-24 11:12:58 +10:00
scheduler Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
search Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
stats Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
storage Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
sync Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
tags Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
undo Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
adding.rs Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
browser_table.rs Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
cloze.rs Expose cloze text as HTML attribute on question side (#1968) 2022-07-19 04:22:57 +10:00
dbcheck.rs Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
findreplace.rs Remove redundant error mapping (#1593) 2022-01-16 13:46:27 +10:00
i18n.rs drop the legacy enum from rslib, and pass separate module/message idx 2021-03-27 11:56:31 +10:00
io.rs Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
latex.rs Update to latest rules_rust and Rust 1.64 2022-09-24 11:12:58 +10:00
lib.rs Partially migrate type answer to backend 2022-07-22 19:28:34 +10:00
links.rs Expose backend_proto publicly for AnkiDroid, and rename to pb 2022-06-27 15:27:53 +10:00
log.rs Backups (#1685) 2022-03-07 15:11:31 +10:00
markdown.rs render deck description with markdown; strip images 2021-02-06 15:02:40 +10:00
ops.rs Update to latest rules_rust and Rust 1.64 2022-09-24 11:12:58 +10:00
pb.rs Update to latest rules_rust and Rust 1.64 2022-09-24 11:12:58 +10:00
preferences.rs Expose backend_proto publicly for AnkiDroid, and rename to pb 2022-06-27 15:27:53 +10:00
prelude.rs Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
serde.rs Update to latest rules_rust and Rust 1.64 2022-09-24 11:12:58 +10:00
template.rs Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
template_filters.rs Expose cloze text as HTML attribute on question side (#1968) 2022-07-19 04:22:57 +10:00
tests.rs Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
text.rs More template checks (#2032) 2022-09-05 16:52:25 +10:00
timestamp.rs Refactor error handling (#2136) 2022-10-21 18:02:12 +10:00
typeanswer.rs Update to latest rules_rust and Rust 1.64 2022-09-24 11:12:58 +10:00
types.rs update scheduling ops 2021-04-06 16:38:42 +10:00
version.rs tidy up Rust imports 2021-04-18 18:38:54 +10:00