-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
52 lines (45 loc) · 1.8 KB
/
Cargo.toml
File metadata and controls
52 lines (45 loc) · 1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
[package]
name = "spatial-typestate"
version = "0.0.2"
edition = "2024"
rust-version = "1.85"
repository = "https://github.com/TelemetryWorks/spatial-typestate"
homepage = "https://github.com/TelemetryWorks/spatial-typestate"
description = "A Rust library for type-state enforced 3D coordinate systems, units, and transforms to prevent frame-mixing errors at compile time."
license = "Apache-2.0"
readme = "README.md"
keywords = ["typestate", "3d", "spatial", "coordinate-system", "safety"]
categories = ["science", "aerospace", "mathematics", "embedded"]
authors = ["TelemetryWorks"]
exclude = ["/docs", "/.github"] # Prevent docs + workflows bloating crate publish
# Safety-critical posture — avoid accidental features
[profile.release]
debug = false
lto = true
opt-level = 3
codegen-units = 1
panic = "abort" # Safety-critical expectation: no unwinding in production
[profile.dev]
panic = "unwind" # easier debugging in development
[features]
default = ["std"]
std = []
no_std = []
# math backend selection
nalgebra = ["nalgebra_dep"]
glam = ["glam_dep"]
[dependencies]
# Standard math backends — optional (Allow switching without rewriting library)
nalgebra_dep = { package = "nalgebra", version = "0.32", optional = true, default-features = false, features = ["alloc"] }
glam_dep = { package = "glam", version = "0.24", optional = true, default-features = false }
# Phantom type state + compile-time utilities (Ideal for typestate + units encoded in type system)
typenum = "1.17"
# If we later use const generics for units:
num-traits = "0.2"
# Error reporting (small footprint)
thiserror = "1.0"
[dev-dependencies]
criterion = "0.5" # Benchmarks (Supports measurable + provable behavior)
proptest = "1.4" # Property-based testing (Supports measurable + provable behavior)
rand = "0.8"
trybuild = "1.0"