lfest 0.138.3

A leveraged perpetual futures exchange for simulated trading and backtesting
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"
name = "lfest"
version = "0.138.3"
authors = ["MathisWellmann <wellmannmathis@gmail.com>"]
build = false
exclude = [
    "/img",
    "/data",
    "/.idea",
    "/vendor",
    "/.direnv",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A leveraged perpetual futures exchange for simulated trading and backtesting"
readme = "README.md"
keywords = [
    "exchange",
    "trading",
    "simulation",
    "backest",
    "leverage",
]
categories = [
    "finance",
    "simulation",
]
license-file = "LICENSE"
repository = "https://github.com/MathisWellmann/lfest-rs"

[features]
trade_aggregation = ["dep:trade_aggregation"]

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

[[example]]
name = "basic"
path = "examples/basic.rs"

[[test]]
name = "inverse_futures"
path = "tests/inverse_futures.rs"

[[test]]
name = "limit_orders_only"
path = "tests/limit_orders_only.rs"

[[test]]
name = "linear_futures"
path = "tests/linear_futures.rs"

[[bench]]
name = "check_active_orders"
path = "benches/check_active_orders.rs"
harness = false

[[bench]]
name = "decimal_comparison"
path = "benches/decimal_comparison.rs"
harness = false

[[bench]]
name = "order_book"
path = "benches/order_book.rs"

[[bench]]
name = "order_margin"
path = "benches/order_margin.rs"
harness = false

[[bench]]
name = "position"
path = "benches/position.rs"
harness = false

[[bench]]
name = "smart_candle"
path = "benches/smart_candle.rs"
harness = false

[[bench]]
name = "sorted_orders"
path = "benches/sorted_orders.rs"
harness = false

[[bench]]
name = "submit_limit_order"
path = "benches/submit_limit_order.rs"
harness = false

[[bench]]
name = "submit_market_order"
path = "benches/submit_market_order.rs"
harness = false

[[bench]]
name = "trade_update"
path = "benches/trade_update.rs"
harness = false

[[bench]]
name = "update_state"
path = "benches/update_state.rs"
harness = false

[dependencies.assert2]
version = "0.4"

[dependencies.const-decimal]
version = "0.4.0"
features = ["serde"]

[dependencies.csv]
version = "1"

[dependencies.derive_more]
version = "2"
features = ["full"]

[dependencies.getset]
version = "0.1.2"

[dependencies.glidesort]
version = "0.1"

[dependencies.mutants]
version = "0.0.4"

[dependencies.num]
version = "0.4"

[dependencies.num-traits]
version = "0.2"

[dependencies.serde]
version = "1"
features = ["derive"]

[dependencies.thiserror]
version = "2"

[dependencies.tracing]
version = "0.1"
features = ["release_max_level_info"]

[dependencies.trade_aggregation]
version = "13"
optional = true

[dependencies.typed-builder]
version = "0.23"

[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]

[dev-dependencies.fpdec]
version = "0.10.3"
features = [
    "serde-as-str",
    "num-traits",
]

[dev-dependencies.proptest]
version = "1.6"

[dev-dependencies.rand]
version = "0.10"

[dev-dependencies.test-case]
version = "3"

[dev-dependencies.tracing-test]
version = "0.2"
features = ["no-env-filter"]

[lints.clippy]
allow_attributes_without_reason = "deny"
as_underscore = "deny"
branches_sharing_code = "warn"
cast_possible_wrap = "deny"
clear_with_drain = "warn"
debug_assert_with_mut_call = "deny"
derive_partial_eq_without_eq = "warn"
disallowed_methods = "warn"
fallible_impl_from = "deny"
field_scoped_visibility_modifiers = "warn"
filter_map_next = "deny"
flat_map_option = "deny"
float_cmp_const = "warn"
fn_params_excessive_bools = "warn"
format_collect = "deny"
format_push_string = "deny"
implicit_clone = "warn"
needless_collect = "deny"
needless_continue = "warn"
needless_pass_by_ref_mut = "warn"
needless_raw_strings = "warn"
rc_mutex = "warn"
ref_option_ref = "warn"
too_many_lines = "warn"
unwrap_used = "deny"

[lints.rust]
ambiguous_negative_literals = "deny"
closure_returning_async_block = "deny"
dead_code = "warn"
deprecated = "warn"
double_negations = "deny"
dropping_copy_types = "deny"
dropping_references = "deny"
exported_private_dependencies = "deny"
for_loops_over_fallibles = "deny"
forgetting_copy_types = "deny"
impl_trait_redundant_captures = "deny"
irrefutable_let_patterns = "deny"
macro_use_extern_crate = "deny"
missing_docs = "warn"
non_ascii_idents = "deny"
noop_method_call = "deny"
overlapping_range_endpoints = "deny"
redundant_lifetimes = "warn"
redundant_semicolons = "deny"
special_module_name = "deny"
trivial_numeric_casts = "deny"
unit_bindings = "deny"
unreachable_pub = "warn"
unused_allocation = "deny"
unused_assignments = "deny"
unused_crate_dependencies = "deny"
unused_import_braces = "warn"
unused_imports = "deny"
unused_lifetimes = "deny"
unused_must_use = "deny"
unused_qualifications = "warn"
unused_variables = "warn"

[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(tarpaulin)"]