core-dev 0.0.1

core-dev library is an utility library for rust. It contains a lot of useful functions and APIs to speed up development cycle.
Documentation
[package]
name = "core-dev"
version = "0.0.1"
edition = "2021"
description = "core-dev library is an utility library for rust. It contains a lot of useful functions and APIs to speed up development cycle."
authors = [ "alexzanderr <alexzander.dot.dev@gmail.com>" ]
license = "MIT"
homepage = "https://github.com/alexzanderr/rust-core-dev"
repository = "https://github.com/alexzanderr/rust-core-dev"
documentation = "https://docs.rs/rust-core-dev"
readme = "README.md"
keywords = ["core", "development", "api"]
categories = ["accessibility"]

exclude = [
    "fuzz",
    "scripts"
]

[[bin]]
name = "factorial"
path = "src/main.rs"


[[bench]]
name = "bench_algorithms"
harness = false




[dependencies]
reqwest = { version = "0.11.9", features = ["blocking"], optional = true}
doc-comment = { version = "0.3.3", optional = true }

default-args = { version = "1.0.0", optional = true }

globwalk = { version = "0.8.1", optional = true }

color-backtrace = { version = "0.5.1", optional = true }
color-eyre = { version = "0.6.1", optional = true }

ansi_term = { version = "0.12.1", features = [ "derive_serde_style", "serde" ], optional = true }
ansi-hex-color = { version = "0.1.1", optional = true }

hex_color = { version = "1.0.0", optional = true }

rand = { version = "0.8.5", optional = true }
bincode = { version = "1.3.3", optional = true }
string_template = { version = "0.2.1", optional = true }


rodio = { version = "0.15.0", optional = true }

# datetime
chrono = { version = "0.4.19", optional = true }
tz-rs = { version = "0.6.7", optional = true }
tzdb = { version = "0.2.0", optional = true }
ctrlc = { version = "3.2.1", features = ["termination"], optional = true }

lazy_static = { version = "1.4.0", optional = true }

notify-rust = { version = "4.5.8", features = ["images"], optional = true }
xdg-utils = { version = "0.4.0", optional = true }
open = { version = "2.1.1", optional = true }

clipboard-ext = { version = "0.2.0", optional = true }

soloud = { version = "1.0.2", optional = true }
image = { version = "0.24.1", optional = true }
syntect = { version = "4.6.0", optional = true }
crossterm = { version = "0.23.2", optional = true }
termion = { version = "1.5.6", optional = true }
pad = { version = "0.1.6", optional = true }
openweathermap = { version = "0.2.4", optional = true }
log = { version = "0.4.17", optional = true }
paste = { version = "1.0.7", optional = true }
lettre = { version = "0.10.0", optional = true }


[lib]
name = "core_dev"


[dev-dependencies]
rstest = "0.12.0"
pretty_assertions = "1.1.0"
rstest_reuse = "0.3.0"
assert_cmd = "2.0.4"
quickcheck = "1.0.3"
quickcheck_macros = "1.0.0"
criterion = "0.3.5"
test-generator = "0.3.0"
assert2 = "0.3.6"

[features]
default = []
synh = ["syntect"]
shell = []
weather = ["openweathermap"]
traits = []
icons = []
core = ["clipboard-ext", "ctrlc"]
datetime = ["chrono", "tz-rs", "tzdb", "lazy_static",
    # because traits feature is used in datetime feature
    "traits"
]
algorithms = []
pathlib = ["globwalk"]
stringlib = ["pad"]
random = ["rand"]
aesthetics = ["ansi_term", "reqwest", "hex_color", "ansi-hex-color", "paste"]
spinners = ["ansi_term", "hex_color", "ansi-hex-color", "color-backtrace"]
time = []
terminal = [
    "ansi_term",
    "termion",
    "color-backtrace",
    "pad"
]
image = ["dep:image"]
linuxapi = ["dep:image", "dep:notify-rust"]
audio = ["soloud"]

examples = [
    "color-eyre",
    "string_template"
]

email = [
    "lettre"
]

all = [
    "terminal",
    "datetime",
    "algorithms",
    "pathlib",
    "random",
    "aesthetics",
    "spinners",
    "time",
    "icons",
    "audio",
    "traits",
    "synh",
    "stringlib",
    "core",
    "examples",
    "shell",
    "email"
]



[profile.dev]
# opt-level = 'z'

[profile.release]
# Link-time optimization (LTO) is a whole-program optimization technique that can improve runtime performance by 10-20% or more, at the cost of increased build times. For any individual Rust program it is easy to see if the runtime versus compile-time trade-off is worthwhile.
# The simplest way to try LTO is to add the following lines to the Cargo.toml file and do a release build.
lto = true
# opt-level = 's'



[workspace]
members = [
    "examples/terminal",
    "examples/stringlib",
]


# you dont need this if you have this
# cargo test --features all -j 8 --test test_lib datetime
[[test]]
name = "datetime"
path = "tests/test_lib/datetime.rs"


[[test]]
name = "aesthetics"
path = "tests/test_lib/aesthetics.rs"

[[test]]
name = "collections"
path = "tests/test_lib/collections.rs"

[[test]]
name = "core"
path = "tests/test_lib/core.rs"


[[test]]
name = "pathlib"
path = "tests/test_lib/pathlib.rs"

[[test]]
name = "shell"
path = "tests/test_lib/shell.rs"


[[test]]
name = "stringlib"
path = "tests/test_lib/stringlib.rs"


[[test]]
name = "traits"
path = "tests/test_lib/traits.rs"


[[test]]
name = "random"
path = "tests/test_lib/random.rs"

[[example]]
name = "musicplayer"
required-features = ["audio"]