content: [workspace]
  resolver = "2"
  members = [
      # Fidget crates
      "fidget",
      "fidget-core",
      "fidget-bytecode",
      "fidget-gui",
      "fidget-jit",
      "fidget-mesh",
      "fidget-raster",
      "fidget-rhai",
      "fidget-shapes",
      "fidget-solver",
  
      # Non-WASM demos
      "demos/constraints",
      "demos/cli",
      "demos/viewer",
  
      # `cargo hakari` package
      "workspace-hack",
  ]
  exclude = ["demos/web-editor/crate"]
  
  [workspace.package]
  rust-version = "1.87"
  edition = "2024"
  license = "MPL-2.0"
  repository = "https://github.com/mkeeter/fidget"
  description = "Infrastructure for complex closed-form implicit surfaces"
  authors = ["Matt Keeter <matt.j.keeter@gmail.com"]
  
  [profile.release]
  debug = true
  overflow-checks = true
  
  [profile.bench]
  lto = "thin"
  codegen-units = 1
  
  [profile.test]
  opt-level = 1
  
  [profile.fast-test]
  inherits = "test"
  opt-level = 0
  
  [workspace.dependencies]
  anyhow = "1"
  approx = "0.5.1"
  arrayvec = "0.7"
  bincode = "1.3"
  clap = { version = "4", features = ["derive"] }
  criterion = { version = "0.5", features = ["html_reports"] }
  crossbeam-channel = "0.5"
  document-features = "0.2"
  dynasmrt = "3.0"
  eframe = { version = "0.31", features = ["wgpu"] }
  enum-map = "2.7.3"
  facet = { version = "=0.28.1", features = ["reflect"] }
  env_logger = "0.11"
  heck = { version = "0.5" }
  image = { version = "0.25", default-features = false, features = ["png"] }
  libc = "0.2"
  log = "0.4"
  nalgebra = { version = "0.34", features = ["serde-serialize"] }
  notify = "8.0"
  ordered-float = "5"
  rand = "0.9"
  rayon = "1.10"
  rhai = { version = "=1.21.0", features = ["sync"] } # pinned due to rhai#1001
  serde = { version = "1.0", features = ["derive", "rc"] }
  static_assertions = "1"
  strum = { version = "0.27.2", features = ["derive"] }
  thiserror = "2"
  wasm-bindgen = "0.2"
  wasm-bindgen-futures = "0.4"
  windows = { version = "0.61", features = ["Win32_Foundation", "Win32_System_Memory"] }
  zerocopy = { version = "0.8", features = ["derive"] }
  
  # Local crates
  fidget.path     = "fidget"
  fidget-core     = { path = "fidget-core",     version = "=0.4.1" }
  fidget-bytecode = { path = "fidget-bytecode", version = "=0.4.1" }
  fidget-gui      = { path = "fidget-gui",      version = "=0.4.1" }
  fidget-jit      = { path = "fidget-jit",      version = "=0.4.1" }
  fidget-mesh     = { path = "fidget-mesh",     version = "=0.4.1" }
  fidget-raster   = { path = "fidget-raster",   version = "=0.4.1" }
  fidget-rhai     = { path = "fidget-rhai",     version = "=0.4.1" }
  fidget-shapes   = { path = "fidget-shapes",   version = "=0.4.1" }
  fidget-solver   = { path = "fidget-solver",   version = "=0.4.1" }
  workspace-hack  = { path = "workspace-hack",  version = "0.1" }
  