tinyscript 0.2.0

Tiny, C-like scripting language.
Documentation
# Copyright © 2025 Stephan Kunz

[package]
resolver = "3"
name = "tinyscript"
version = "0.2.0"
edition = "2024"
license = "MIT OR Apache-2.0"
authors = ["stepkun <stephan.kunz@kabelbw.de>"]
description = "Tiny, C-like scripting language."
rust-version = "1.86.0"
repository = "https://github.com/stepkun/tinyscript"
homepage = "https://github.com/stepkun/tinyscript"
documentation = "https://docs.rs/tinyscript"
readme = "README.md"
keywords = ["automation", "script", "scripting"]
categories = ["development-tools"]
exclude = ["laze*", "benches/**", "embedded/**", "examples/**", "tests/**"]


[lib]
name = "tinyscript"

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = [
  'cfg(context, values(any()))',
] }
unsafe_code = "warn"
missing_docs = "warn"
#unused="allow" # for dev only

[lints.rustdoc]
private_intra_doc_links = "allow"

[lints.clippy]
enum_glob_use = "deny"
pedantic = { level = "deny", priority = -1 }
nursery = { level = "deny", priority = -1 }
unwrap_used = "deny"


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

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

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

[dependencies]
tinyscript-derive = { path = "derive", version = "0.2" }
spin = { version = "0.10.0", default-features = false, features = [
  "mutex",
  "rwlock",
  "use_ticket_mutex",
] } # spin_mutex??
thiserror = { version = "2", default-features = false }

[dev-dependencies]
criterion = "0.7.0"
doc-comment = "0.3.3"
rstest = "0.26.1"

[features]
default = ["std"]
std = []

[profile.release]
opt-level = 's'        # Optimize for size.
lto = true             # Enable Link Time Optimisation
codegen-units = 1      # Reduced to increase optimisations
overflow-checks = true # useful

[profile.production]
inherits = "release"
panic = 'abort'      # Abort on panic
strip = "symbols"    # Strip symbols from binary

[profile.samply]
inherits = "release"
debug = true         # Create debug symbols for profiling