anki/rslib/Cargo.toml
Damien Elmes b73cb15888 Take another approach to dealing with conflicting flattened keys
The approach in #2542 unfortunately introduced a regression, as whilst
it ensured that duplicate keys are removed when downgrading, it no longer
prevented the duplicates from being removed when converting to a legacy
Schema11 object. This resulted in things like backend.get_notetype_legacy()
returning duplicate keys, and could break syncing:

https://forums.ankiweb.net/t/windows-desktop-sync-error/33128

As syncing and schema11 object usage is quite common compared to downgrading,
the extra Value deserialization seemed a bit expensive, so I've switched
back to explicitly removing the problem keys. To ensure we don't forget to
add new keys in the future, I've added some new tests that should alert us
whenever a newly-added key is missing from the reserved list.
2023-08-15 11:25:53 +10:00

109 lines
2.6 KiB
TOML

[package]
name = "anki"
version.workspace = true
authors.workspace = true
edition.workspace = true
license.workspace = true
publish = false
rust-version.workspace = true
workspace = ".."
description = "Anki's Rust library code"
[features]
bench = ["criterion"]
rustls = ["reqwest/rustls-tls", "reqwest/rustls-tls-native-roots"]
native-tls = ["reqwest/native-tls"]
[[bench]]
name = "benchmark"
harness = false
required-features = ["bench"]
[build-dependencies]
anki_io.workspace = true
anki_proto.workspace = true
anki_proto_gen.workspace = true
anyhow.workspace = true
inflections.workspace = true
itertools.workspace = true
prettyplease.workspace = true
prost.workspace = true
prost-reflect.workspace = true
syn.workspace = true
[dev-dependencies]
async-stream.workspace = true
wiremock.workspace = true
[dependencies]
criterion = { workspace = true, optional = true }
ammonia.workspace = true
anki_i18n.workspace = true
anki_io.workspace = true
anki_proto.workspace = true
async-compression.workspace = true
async-trait.workspace = true
axum.workspace = true
axum-client-ip.workspace = true
blake3.workspace = true
bytes.workspace = true
chrono.workspace = true
coarsetime.workspace = true
convert_case.workspace = true
csv.workspace = true
data-encoding.workspace = true
difflib.workspace = true
dirs.workspace = true
envy.workspace = true
flate2.workspace = true
fluent.workspace = true
fluent-bundle.workspace = true
fnv.workspace = true
futures.workspace = true
hex.workspace = true
htmlescape.workspace = true
hyper.workspace = true
id_tree.workspace = true
itertools.workspace = true
lazy_static.workspace = true
nom.workspace = true
num_cpus.workspace = true
num_enum.workspace = true
once_cell.workspace = true
percent-encoding-iri.workspace = true
phf.workspace = true
pin-project.workspace = true
prost.workspace = true
pulldown-cmark.workspace = true
rand.workspace = true
regex.workspace = true
reqwest.workspace = true
rusqlite.workspace = true
scopeguard.workspace = true
serde.workspace = true
serde-aux.workspace = true
serde_json.workspace = true
serde_repr.workspace = true
serde_tuple.workspace = true
sha1.workspace = true
snafu.workspace = true
strum.workspace = true
tempfile.workspace = true
tokio.workspace = true
tokio-util.workspace = true
tower-http.workspace = true
tracing.workspace = true
tracing-appender.workspace = true
tracing-subscriber.workspace = true
unic-ucd-category.workspace = true
unicase.workspace = true
unicode-normalization.workspace = true
utime.workspace = true
zip.workspace = true
zstd.workspace = true
[target.'cfg(windows)'.dependencies.windows]
version = "0.48.0"
features = ["Media_SpeechSynthesis", "Foundation_Collections", "Storage_Streams"]