anki/Cargo.toml
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

66 lines
1.8 KiB
TOML

[package]
name = "anki_workspace"
version = "0.0.0"
authors = ["Ankitects Pty Ltd and contributors"]
license = "AGPL-3.0-or-later"
[workspace]
members = ["rslib", "rslib/i18n", "rslib/i18n_helpers", "rslib/linkchecker", "pylib/rsbridge"]
exclude = ["qt/bundle"]
[lib]
# dummy top level for tooling
name = "anki"
path = "rslib/empty.rs"
[package.metadata.raze]
workspace_path = "//cargo"
package_aliases_dir = "cargo"
rust_rules_workspace_name = "rules_rust"
# pull requests that add other targets (eg Arm Linux, FreeBSD) welcome - you'll
# need to update platforms/, BUILD.request.bazel and pylib/anki/BUILD.bazel as
# well.
targets = [
"x86_64-apple-darwin",
"x86_64-apple-ios",
"x86_64-pc-windows-msvc",
"x86_64-unknown-linux-gnu",
"aarch64-apple-darwin",
"aarch64-apple-ios",
"aarch64-apple-ios-sim",
"aarch64-unknown-linux-gnu",
]
genmode = "Remote"
default_gen_buildrs = true
[package.metadata.raze.crates.pyo3.'*']
compile_data_attr = "glob([\"**/*.md\"])"
[package.metadata.raze.crates.prost.'*']
compile_data_attr = "glob([\"**/*.md\"])"
[package.metadata.raze.crates.ring.'*']
compile_data_attr = "glob([\"src/**/*.der\"])"
[package.metadata.raze.crates.webpki.'*']
compile_data_attr = "glob([\"src/**/*.der\"])"
[package.metadata.raze.crates.unic-ucd-version.'*']
compile_data_attr = "glob([\"**/*.rsv\"])"
[package.metadata.raze.crates.unic-ucd-category.'*']
compile_data_attr = "glob([\"**/*.rsv\"])"
[package.metadata.raze.crates.bstr.'*']
compile_data_attr = "glob([\"**/*.dfa\"])"
[package.metadata.raze.crates.snafu.'*']
compile_data_attr = "glob([\"**/*.md\"])"
[package.metadata.raze.crates.pyo3-build-config.'*']
buildrs_additional_environment_variables = { "PYO3_NO_PYTHON" = "1" }
[patch.crates-io]
reqwest = { git="https://github.com/ankitects/reqwest.git", rev="7591444614de02b658ddab125efba7b2bb4e2335" }