pptr 0.3.0

Type-Driven Asynchronous Actor Runtime
Documentation
[package]
name = "pptr"
description = "Type-Driven Asynchronous Actor Runtime"
license = "Unlicense"
version = "0.3.0"
authors = ["Rafał Krzyważnia <r.krzywaznia@gmail.com>"]
edition = "2021"
readme = "README.md"
repository = "https://github.com/ribelo/pptr"

[desc]

[dependencies]
async-trait = "0.1"
strum = { version = "0.26", features = ["derive"] }
thiserror = "1.0"
tokio = { version = "1.3", features = ["full"] }
tracing = "0.1"
indexmap = "2.1"
rustc-hash = "1.1"
anyhow = "1.0"
async-recursion = "1.0"
atomic-take = "1.1.0"
tokio-util = "0.7.10"
num_cpus = "1.16.0"

[dev-dependencies]
actix = "0.13.1"
vin = "9.1"
ractor = "0.9"
criterion = "0.5"
coerce = "0.8.10"
crossbeam = { version = "0.8.2", features = ["crossbeam-channel"] }
parking_lot = "0.12.1"

[lints.clippy]
all = { level = "warn", priority = -2 }

# restriction
dbg_macro = "warn"
todo = "warn"
unimplemented = "warn"

# I like the explicitness of this rule as it removes confusion around `clone`.
# This increases readability, avoids `clone` mindlessly and heap allocating on accident.
clone_on_ref_ptr = "warn"

# These two are mutually exclusive, I like `mod.rs` files for better fuzzy searches on module entries.
self_named_module_files = "warn"         # "-Wclippy::mod_module_files"
empty_drop = "warn"
empty_structs_with_brackets = "warn"
exit = "warn"
filetype_is_file = "warn"
get_unwrap = "warn"
impl_trait_in_params = "warn"
rc_buffer = "warn"
rc_mutex = "warn"
rest_pat_in_fully_bound_structs = "warn"
unnecessary_safety_comment = "warn"
undocumented_unsafe_blocks = "warn"

# I want to write the best Rust code so pedantic is enabled.
# We should only disable rules globally if they are either false positives, chaotic, or does not make sense.
pedantic = { level = "warn", priority = -1 }

# Allowed rules
# pedantic
# This rule is too pedantic, I don't want to force this because naming things are hard.
module_name_repetitions = "allow"

# All triggers are mostly ignored in this codebase, so this is ignored globally.
struct_excessive_bools = "allow"
too_many_lines = "allow"
doc_markdown = "allow"

# nursery
# `const` functions do not make sense for our project because this is not a `const` library.
# This rule also confuses new comers and forces them to add `const` blindlessly without any reason.
missing_const_for_fn = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"