# 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"
name = "is-it-slop-preprocessing"
version = "0.3.0"
authors = ["SamBroomy"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A Rust library and CLI tool to detect AI-generated slop text using machine learning."
readme = "README.md"
keywords = [
    "AI-text-detector",
    "ML",
]
categories = [
    "command-line-utilities",
    "science",
]
license = "MIT"
repository = "https://github.com/SamBroomy/is-it-slop"

[features]
bincode = ["dep:bincode"]
default = ["bincode"]
mimalloc = ["dep:mimalloc"]
progress-bars = ["dep:indicatif"]
python = [
    "pyo3",
    "numpy",
    "pyo3-log",
    "mimalloc",
    "serde",
    "bincode",
    "progress-bars",
]
serde = [
    "dep:serde",
    "dep:serde_json",
]

[lib]
name = "is_it_slop_preprocessing"
crate-type = [
    "cdylib",
    "rlib",
]
path = "src/lib.rs"

[dependencies.ahash]
version = "0.8.12"
features = ["serde"]

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

[dependencies.dashmap]
version = "6.1.0"

[dependencies.indicatif]
version = "0.18.3"
features = ["rayon"]
optional = true

[dependencies.mimalloc]
version = "0.1.48"
features = ["v3"]
optional = true

[dependencies.numpy]
version = "0.27"
optional = true

[dependencies.pyo3]
version = "0.27"
features = [
    "extension-module",
    "macros",
]
optional = true
default-features = false

[dependencies.pyo3-log]
version = "0.13.2"
optional = true

[dependencies.rayon]
version = "1.11.0"

[dependencies.serde]
version = "1.0.228"
features = ["derive"]
optional = true

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

[dependencies.smallvec]
version = "1.15"
features = [
    "serde",
    "union",
    "bincode",
    "impl_bincode",
]

[dependencies.sprs]
version = "0.11"

[dependencies.tiktoken-rs]
version = "0.9.1"

[dependencies.tracing]
version = "0.1.41"
features = ["log"]

[lints.clippy]
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
dbg-macro = "warn"
dbg_macro = "deny"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
multiple_crate_versions = "allow"
needless_pass_by_value = "warn"
option_if_let_else = "warn"
redundant_else = "warn"
redundant_pub_crate = "warn"
return_self_not_must_use = "allow"
similar_names = "allow"
too_many_lines = "allow"
unimplemented = "deny"
unreadable_literal = "allow"
use_self = "warn"

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

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

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

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

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

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

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

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

[lints.rust]
trivial_casts = "warn"
trivial_numeric_casts = "warn"
unsafe_code = "forbid"
unused_import_braces = "warn"
unused_qualifications = "warn"

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