mirror of
https://github.com/ankitects/anki.git
synced 2025-11-20 11:37:12 -05:00
* 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?
26 lines
781 B
Rust
26 lines
781 B
Rust
// Copyright: Ankitects Pty Ltd and contributors
|
|
// License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|
|
|
pub use slog::{debug, Logger};
|
|
pub use snafu::ResultExt;
|
|
|
|
pub(crate) use crate::types::IntoNewtypeVec;
|
|
pub use crate::{
|
|
card::{Card, CardId},
|
|
collection::Collection,
|
|
config::BoolKey,
|
|
deckconfig::{DeckConfig, DeckConfigId},
|
|
decks::{Deck, DeckId, DeckKind, NativeDeckName},
|
|
error::{AnkiError, OrInvalid, OrNotFound, Result},
|
|
i18n::I18n,
|
|
invalid_input,
|
|
media::Sha1Hash,
|
|
notes::{Note, NoteId},
|
|
notetype::{Notetype, NotetypeId},
|
|
ops::{Op, OpChanges, OpOutput},
|
|
require,
|
|
revlog::RevlogId,
|
|
search::{SearchBuilder, TryIntoSearch},
|
|
timestamp::{TimestampMillis, TimestampSecs},
|
|
types::Usn,
|
|
};
|