content: [workspace]
  members = [
      "crates/app",
      "crates/config",
      "crates/core",
      "crates/models",
      "crates/ui",
      "crates/utils",
  ]
  resolver = "2"
  
  [workspace.package]
  version = "0.8.0"
  edition = "2024"
  rust-version = "1.85"
  authors = ["Mikko Leppänen <mleppan23@gmail.com>"]
  description = "A modern, terminal-based media file organizer built with Rust"
  license = "MIT"
  readme = "README.md"
  homepage = "https://github.com/mikeleppane/visualvault"
  repository = "https://github.com/mikeleppane/visualvault"
  keywords = [
      "media",
      "organizer",
      "terminal",
      "tui",
      "file-management",
      "ratatui",
  ]
  categories = ["command-line-utilities", "filesystem"]
  
  [workspace.dependencies]
  visualvault-app = { path = "crates/app" }
  visualvault-config = { path = "crates/config" }
  visualvault-core = { path = "crates/core" }
  visualvault-models = { path = "crates/models" }
  visualvault-ui = { path = "crates/ui" }
  visualvault-utils = { path = "crates/utils" }
  tokio = { version = "1.47.0", features = ["full"] }
  ratatui = "0.29.0"
  crossterm = "0.29.0"
  color-eyre = "0.6"
  eyre = "0.6"
  serde = { version = "1.0", features = ["derive", "rc"] }
  serde_json = "1.0"
  toml = "0.9.4"
  chrono = { version = "0.4", features = ["serde"] }
  walkdir = "2.5"
  sha2 = "0.10"
  image = "0.25"
  regex = "1.10"
  dirs = "6.0.0"
  tracing = "0.1"
  tracing-subscriber = { version = "0.3", features = ["env-filter"] }
  num_cpus = "1.17.0"
  rayon = "1.10.0"
  ahash = { version = "0.8", features = ["serde"] }
  uuid = { version = "1.17.0", features = ["v4", "serde"] }
  thiserror = "2.0.12"
  smallvec = { version = "1.15.1", features = [
      "const_generics",
      "const_new",
      "serde",
      "write",
  ] }
  sqlx = { version = "0.8.6", features = ["chrono", "runtime-tokio", "sqlite"] }
  async-trait = "0.1.88"
  
  [package]
  name = "visualvault"
  version.workspace = true
  edition.workspace = true
  authors.workspace = true
  license.workspace = true
  
  [[bin]]
  name = "visualvault"
  path = "src/main.rs"
  bench = false
  
  [dependencies]
  visualvault-app = { workspace = true }
  visualvault-config = { workspace = true }
  visualvault-core = { workspace = true }
  visualvault-models = { workspace = true }
  visualvault-ui = { workspace = true }
  visualvault-utils = { workspace = true }
  color-eyre = { workspace = true }
  crossterm = { workspace = true }
  ratatui = { workspace = true }
  tokio = { workspace = true }
  tracing = { workspace = true }
  tracing-subscriber = { workspace = true }
  
  [dev-dependencies]
  dirs = { workspace = true }
  tempfile = "3.20"
  serde_json = "1.0"
  tokio = { version = "1", features = ["full", "test-util"] }
  color-eyre = "0.6"
  chrono = "0.4"
  criterion = { version = "3.0.4", package = "codspeed-criterion-compat" }
  proptest = "1.7"
  
  [target.'cfg(windows)'.dependencies]
  mimalloc = "0.1"
  
  [target.'cfg(not(windows))'.dependencies]
  jemallocator = "0.5"
  
  [profile.release]
  lto = true
  codegen-units = 1
  opt-level = 3
  strip = true
  
  [profile.dev]
  opt-level = 0
  debug = false
  incremental = true
  codegen-units = 256
  
  [profile.dev.package."*"]
  opt-level = 3
  
  [[bench]]
  name = "organizer_benchmark"
  harness = false
  
  [[bench]]
  name = "scanner_benchmark"
  harness = false
  
  [[bench]]
  name = "duplicate_benchmark"
  harness = false
  
  [lib]
  bench = false
  