content: [package]
  name = "beet_core"
  version.workspace = true
  edition.workspace = true
  authors.workspace = true
  documentation.workspace = true
  license.workspace = true
  readme.workspace = true
  description = "Core utilities and types for other beet crates"
  repository.workspace = true
  
  
  [[example]]
  name = "to_tokens"
  path = "examples/to_tokens.rs"
  required-features = ["tokens"]
  
  [[test]]
  name = "to_tokens"
  path = "tests/to_tokens.rs"
  required-features = ["tokens"]
  
  
  [features]
  default = ["serde"]
  nightly = []
  bevy_default = ["bevy_scene", "multi_threaded"]
  bevy_scene = ["bevy/bevy_scene", "serde"]
  multi_threaded = ["bevy/multi_threaded"]
  serde = ["beet_utils/serde", "dep:serde", "dep:serde_json", "dep:clap", "dep:ron", "dep:toml"]
  tokio = ["dep:tokio"]
  rand = ["dep:rand", "dep:rand_chacha", "dep:getrandom"]
  
  fs = [
  	"beet_utils/fs",
  	"dep:notify",
  	"dep:notify-debouncer-full",
  	"dep:ctrlc",
  	"dep:futures",
  ]
  tokens = [
  	"beet_utils/tokens",
  	"serde",
  	"dep:syn",
  	"dep:quote",
  	"dep:proc-macro2",
  	"dep:proc-macro2-diagnostics",
  	"dep:variadics_please",
  ]
  
  
  [dependencies]
  beet_utils.workspace = true
  beet_core_macros.workspace = true
  bevy.workspace = true
  
  tracing.workspace = true
  rapidhash.workspace = true
  send_wrapper.workspace = true
  web-time.workspace = true
  # async-task.workspace = true
  
  # serde
  serde = { workspace = true, optional = true }
  serde_json = { workspace = true, optional = true }
  ron = { workspace = true, optional = true }
  toml = { workspace = true, optional = true }
  # workspace config
  clap = { workspace = true, optional = true }
  heck.workspace = true
  
  #💡 async
  futures-lite = { workspace = true, features = ["race"] }
  async-channel.workspace = true
  
  # tokens dependencies
  syn = { workspace = true, optional = true }
  quote = { workspace = true, optional = true }
  proc-macro2 = { workspace = true, optional = true }
  proc-macro2-diagnostics = { workspace = true, optional = true }
  variadics_please = { workspace = true, optional = true }
  
  # rand
  rand = { workspace = true, optional = true }
  rand_chacha = { workspace = true, optional = true }
  getrandom = { workspace = true, optional = true }
  
  ## utils
  thiserror.workspace = true
  extend.workspace = true
  glob.workspace = true
  futures.workspace = true
  
  [target.'cfg(not(target_arch = "wasm32"))'.dependencies]
  ## async
  async-executor.workspace = true
  async-io.workspace = true
  async-task.workspace = true
  tokio = { workspace = true, optional = true, features = ["sync", "fs"] }
  
  ## fs
  notify = { version = "8", optional = true }
  notify-debouncer-full = { version = "0.5", optional = true }
  ctrlc = { version = "3", optional = true }
  futures = { workspace = true, optional = true }
  
  [target.'cfg(target_arch = "wasm32")'.dependencies]
  wasm-bindgen.workspace = true
  wasm-bindgen-futures.workspace = true
  js-sys.workspace = true
  #https://rustwasm.github.io/wasm-bindgen/api/web_sys/
  #https://github.com/rustwasm/wasm-bindgen/blob/main/crates/web-sys/Cargo.toml
  web-sys = {workspace = true, features = [
  	# HTML
  	"Text",
  	"Comment",
  	"Node",
  	"NodeList",
  	"Document",
  	"Element",
  	"Window",
  	"HtmlAnchorElement",
  	"HtmlButtonElement",
  	"HtmlCanvasElement",
  	"HtmlDivElement",
  	"HtmlHeadElement",
  	"HtmlInputElement",
  	"HtmlIFrameElement",
  	"HtmlLinkElement",
  	"HtmlParagraphElement",
  	"HtmlScriptElement",
  	# File
  	"File",
  	"FileList",
  	# Blob
  	'Blob',
  	'BlobEvent',
  	'BlobEventInit',
  	'BlobPropertyBag',
  	# Style
  	"MediaQueryList",
  	# Events
  	"MouseEvent",
  	"KeyboardEvent",
  	# JS
  	"console",
  	"Navigator",
  	"Performance",
  	# Url
  	"Url",
  	"History",
  	"Location",
  	"UrlSearchParams",
  	# Resize Observer
  	"ResizeObserver",
  	"ResizeObserverBoxOptions",
  	"ResizeObserverEntry",
  	"ResizeObserverOptions",
  	"ResizeObserverSize",
  	"DomRect",
  	"DomRectReadOnly"
  ]}
  
  [dev-dependencies]
  sweet.workspace = true
  serde_json.workspace = true
  tempfile.workspace = true
  
  [target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
  tokio.workspace = true
  