libyml 0.0.5

A safe and efficient Rust library for parsing, emitting, and manipulating YAML data.
Documentation
[package]
# Metadata about the package
authors = ["LibYML Contributors"]
categories = ["encoding", "parser-implementations", "no-std"]
description = "A safe and efficient Rust library for parsing, emitting, and manipulating YAML data."
documentation = "https://docs.rs/libyml"
edition = "2021"
exclude = ["/.git/*", "/.github/*", "/.gitignore", "/.vscode/*"]
homepage = "https://libyml.com"
keywords = ["yaml", "serde", "serialization"]
license = "MIT"
name = "libyml"
readme = "README.md"
repository = "https://github.com/sebastienrousseau/libyml"
rust-version = "1.56.0"
version = "0.0.5"

# Specify which files to include in the package
include = [
    "/CONTRIBUTING.md",
    "/LICENSE-MIT",
    "/benches/**",
    "/build.rs",
    "/Cargo.toml",
    "/examples/**",
    "/README.md",
    "/src/**",
    "/tests/**",
]

[dependencies]
# General dependencies for the package
anyhow = "1.0.86" # Rust library for reporting multiple error types through a single type.

[build-dependencies]
# Dependencies specifically for build scripts
version_check = "0.9.5" # Check the Rust version used to compile the package.

[dev-dependencies]
# Dependencies used during development and testing
pretty_assertions = "1.4.0" # Pretty assertions for tests.
libyml-test-suite = { path = "tests/data" } # Local dependency for test suite.

[features]
# Define optional features for the package
default = [] # No default features
test-utils = [] # Feature for test utilities

[lib]
# Library configuration options
crate-type = ["lib"]
name = "libyml"
path = "src/lib.rs"
doc-scrape-examples = false # Disable scraping of examples for documentation

[package.metadata.docs.rs]
# Metadata for generating documentation on docs.rs
targets = ["x86_64-unknown-linux-gnu"]
rustdoc-args = ["--generate-link-to-definition"]

# Linting configuration
[lints.rust]

## Warn
box_pointers = "warn" # Warn on usage of heap-allocated pointers
missing_copy_implementations = "warn" # Warn if a `Copy` implementation is missing
missing_docs = "warn" # Warn if documentation is missing
unstable_features = "warn" # Warn on unstable features
unused_extern_crates = "warn" # Warn on unused external crates
unused_results = "warn" # Warn if the result of a function is unused

## Allow
bare_trait_objects = "allow" # Allow usage of bare trait objects
elided_lifetimes_in_paths = "allow" # Allow omitted lifetimes in paths
non_camel_case_types = "allow" # Allow types not in camel case
non_upper_case_globals = "allow" # Allow global variables not in upper case
trivial_bounds = "allow" # Allow trivial bounds in trait declarations
unused_crate_dependencies = "allow" # Allow unused crate dependencies
unsafe_code = "allow" # Allow usage of unsafe code

## Forbid
missing_debug_implementations = "forbid" # Forbid missing Debug implementations
non_ascii_idents = "forbid" # Forbid non-ASCII identifiers
unreachable_pub = "forbid" # Forbid unreachable public items

## Deny
dead_code = "deny" # Deny dead code
deprecated_in_future = "deny" # Deny features deprecated in future Rust versions
ellipsis_inclusive_range_patterns = "deny" # Deny ellipsis in inclusive range patterns
explicit_outlives_requirements = "deny" # Deny unnecessary lifetime bounds
future_incompatible = { level = "deny", priority = -1 } # Deny future-incompatible changes
keyword_idents = { level = "deny", priority = -1 } # Deny keywords used as identifiers
macro_use_extern_crate = "deny" # Deny `extern crate` with `macro_use`
meta_variable_misuse = "deny" # Deny misuse of macro variables
missing_fragment_specifier = "deny" # Deny missing fragment specifiers in macros
noop_method_call = "deny" # Deny no-op method calls
rust_2018_idioms = { level = "deny", priority = -1 } # Deny idioms from the 2018 edition
rust_2021_compatibility = { level = "deny", priority = -1 } # Deny issues with Rust 2021 edition
single_use_lifetimes = "deny" # Deny single-use lifetimes
trivial_casts = "deny" # Deny trivial casts
trivial_numeric_casts = "deny" # Deny trivial numeric casts
unused = { level = "deny", priority = -1 } # Deny unused code
unused_features = "deny" # Deny unused features
unused_import_braces = "deny" # Deny unused import braces
unused_labels = "deny" # Deny unused labels
unused_lifetimes = "deny" # Deny unused lifetimes
unused_macro_rules = "deny" # Deny unused macro rules
unused_qualifications = "deny" # Deny unused qualifications
variant_size_differences = "deny" # Deny variant size differences

[package.metadata.clippy]
# Clippy linting configuration
warn-lints = [
    "clippy::all",
    "clippy::pedantic",
    "clippy::cargo",
    "clippy::nursery",
]

[profile.dev]
# Profile settings for development builds
codegen-units = 256
debug = true
debug-assertions = true
incremental = true
lto = false
opt-level = 0
overflow-checks = true
panic = 'unwind'
rpath = false
strip = false

[profile.release]
# Profile settings for release builds
codegen-units = 1
debug = false
debug-assertions = false
incremental = false
lto = true
opt-level = "s"
overflow-checks = false
panic = "abort"
rpath = false
strip = "symbols"

[profile.test]
# Profile settings for test builds
codegen-units = 256
debug = true
debug-assertions = true
incremental = true
lto = false
opt-level = 0
overflow-checks = true
rpath = false
strip = false