[package] name = "mecomp-storage" version.workspace = true edition.workspace = true authors.workspace = true description = "This library is responsible for storing and retrieving data about a user's music library to and from an embedded surrealdb database." repository.workspace = true keywords.workspace = true categories.workspace = true readme.workspace = true license.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [features] default = ["db", "analysis", "test_utils"] db = [ "serde", "one-or-many/surrealdb", "dep:surrealdb", "dep:surrealqlx", "dep:tempfile", ] serde = ["one-or-many/serde", "dep:serde"] test_utils = ["dep:tempfile", "dep:anyhow"] analysis = ["dep:futures", "dep:mecomp-analysis"] [dependencies] # shared dependencies lofty = { workspace = true } log = { workspace = true } once_cell = { workspace = true } one-or-many = { workspace = true } rand = { workspace = true } serde = { workspace = true, optional = true } surrealdb = { workspace = true, optional = true } surrealqlx = { workspace = true, optional = true } thiserror = { workspace = true } tracing = { workspace = true } tempfile = { workspace = true, optional = true } ulid = "1.1" # dependencies for the analysis feature futures = { workspace = true, optional = true } mecomp-analysis = { workspace = true, optional = true } # dependencies for the test_utils feature anyhow = { workspace = true, optional = true } [dev-dependencies] anyhow = { workspace = true } pretty_assertions = { workspace = true } surrealdb = { workspace = true } serde_json = { version = "1.0" } tempfile = { workspace = true } tokio = { workspace = true } rstest = { workspace = true } criterion = { workspace = true, features = ["async_tokio"] } [[bench]] name = "song" harness = false [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin_include)'] }