mzcore 0.2.0

Core logic for handling massspectrometry in Rust.
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.88.0"
name = "mzcore"
version = "0.2.0"
authors = [
    "Douwe Schulte <d.schulte@uu.nl>",
    "Ralf Gabriels",
    "Auke Heerdink",
]
build = false
include = [
    "src/**/*",
    "images/**/*",
    "README.md",
    "benches/**/*",
]
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Core logic for handling massspectrometry in Rust."
readme = "README.md"
keywords = [
    "spectra",
    "mass-spectrometry",
    "bio",
    "fragmentation",
    "proforma",
]
categories = [
    "science::bioinformatics::proteomics",
    "science::bioinformatics::sequence-analysis",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/rusteomics/mzcore"
resolver = "2"

[package.metadata.docs.rs]
cargo-args = [
    "-Zunstable-options",
    "-Zrustdoc-scrape-examples",
]
features = [
    "isotopes",
    "glycan-render-bitmap",
]

[features]
coloured-errors = ["context_error/colored"]
default = ["flate2"]
glycan-render = []
glycan-render-bitmap = [
    "dep:zeno",
    "dep:swash",
    "glycan-render",
]
http = ["mzcv/http"]
internal-no-data = []
isotopes = [
    "dep:probability",
    "dep:ndarray",
]
search-index = ["mzcv/search-index"]

[lib]
name = "mzcore"
path = "src/lib.rs"

[dependencies.bincode]
version = "2.0"
features = ["serde"]

[dependencies.context_error]
version = "0.3.0"
features = ["serde"]

[dependencies.flate2]
version = "1.0"
optional = true

[dependencies.itertools]
version = ">0.12, <=0.15"

[dependencies.mzcv]
version = "0.3.0"
features = ["serde"]

[dependencies.ndarray]
version = "0.17"
optional = true

[dependencies.ordered-float]
version = "5.0"
features = ["serde"]

[dependencies.probability]
version = "0.20"
optional = true

[dependencies.roxmltree]
version = "0.21"

[dependencies.serde]
version = ">1.0.150, <=1.0"
features = [
    "derive",
    "rc",
]

[dependencies.serde_json]
version = "1.0"

[dependencies.sha2]
version = "0.11"

[dependencies.swash]
version = "0.2"
optional = true

[dependencies.thin-vec]
version = ">0.2.10, <=0.2"
features = ["serde"]

[dependencies.uom]
version = ">0.32, <=0.38"
features = [
    "use_serde",
    "usize",
    "isize",
    "f64",
    "f32",
    "i8",
]
default-features = false

[dependencies.zeno]
version = "0.3.2"
optional = true

[dev-dependencies.base64]
version = ">0.15, <=0.23"

[dev-dependencies.directories]
version = "6.0"

[dev-dependencies.paste]
version = ">1.0.5"

[dev-dependencies.png]
version = "0.18"

[lints.clippy]
cast_possible_truncation = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
cognitive_complexity = "allow"
literal_string_with_formatting_args = "allow"
module_inception = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
panic_in_result_fn = "warn"
redundant_pub_crate = "allow"
too_long_first_doc_paragraph = "allow"
too_many_lines = "allow"
unreadable_literal = "allow"
unsafe_derive_deserialize = "allow"
unwrap_in_result = "warn"
wildcard_imports = "allow"

[lints.clippy.all]
level = "warn"
priority = -1

[lints.clippy.nursery]
level = "warn"
priority = -1

[lints.clippy.pedantic]
level = "warn"
priority = -1

[lints.rust]
ambiguous_glob_reexports = "deny"
ambiguous_negative_literals = "warn"
clashing_extern_declarations = "deny"
const_item_mutation = "deny"
dangling_pointers_from_temporaries = "deny"
deref_nullptr = "deny"
drop_bounds = "deny"
future_incompatible = "deny"
hidden_glob_reexports = "deny"
improper_ctypes = "deny"
improper_ctypes_definitions = "deny"
invalid_from_utf8 = "deny"
invalid_macro_export_arguments = "deny"
invalid_nan_comparisons = "deny"
invalid_reference_casting = "deny"
invalid_value = "deny"
keyword_idents = "warn"
let_underscore = "warn"
macro_use_extern_crate = "warn"
meta_variable_misuse = "warn"
missing_abi = "warn"
missing_copy_implementations = "warn"
missing_debug_implementations = "warn"
missing_docs = "warn"
noop_method_call = "warn"
opaque_hidden_inferred_bound = "deny"
overlapping_range_endpoints = "deny"
redundant_imports = "warn"
redundant_lifetimes = "warn"
single_use_lifetimes = "warn"
suspicious_double_ref_op = "deny"
trivial_casts = "warn"
trivial_numeric_casts = "warn"
unconditional_recursion = "deny"
unnameable_test_items = "deny"
unnameable_types = "warn"
unreachable_pub = "deny"
unsafe_op_in_unsafe_fn = "deny"
unstable_syntax_pre_expansion = "deny"
unused_crate_dependencies = "warn"
unused_extern_crates = "warn"
unused_import_braces = "warn"
unused_imports = "warn"
unused_lifetimes = "deny"
unused_qualifications = "warn"
variant_size_differences = "warn"

[lints.rust.unexpected_cfgs]
level = "allow"
priority = 0
check-cfg = [
    "cfg(f32)",
    "cfg(github_action)",
    "cfg(si)",
]

[lints.rust.unused]
level = "warn"
priority = -1