content: [package]
  name = "rdev"
  version = "0.6.0"
  authors = ["Nicolas Patry <patry.nicolas@protonmail.com>"]
  edition = "2024"
  
  description = "Listen and send keyboard and mouse events on Windows, Linux and MacOS."
  documentation = "https://docs.rs/rdev/"
  homepage = "https://github.com/Narsil/rdev"
  repository = "https://github.com/Narsil/rdev"
  readme = "README.md"
  keywords = ["input", "mouse", "testing", "keyboard", "automation"]
  categories = ["development-tools::testing", "api-bindings", "hardware-support"]
  license = "MIT"
  
  [dependencies]
  serde = {version = "1.0", features = ["derive"], optional=true}
  lazy_static = "1.4"
  serde_json = { version = "1.0", optional = true }
  
  [features]
  default = []
  serialize = ["serde"]
  unstable_grab = ["evdev-rs", "epoll", "inotify", "dep:serde_json", "serialize"]
  wayland = ["input", "input-linux", "xkbcommon"]
  x11 = ["dep:x11"]
  
  [target.'cfg(target_os = "macos")'.dependencies]
  # cocoa = "0.26"
  # core-graphics = {version = "0.24.0", features = ["highsierra"]}
  core-foundation = {version = "0.10"}
  core-foundation-sys = {version = "0.8"}
  dispatch = "0.2"
  objc2-foundation = "0.3.1"
  objc2-core-graphics = "0.3.1"
  objc2-core-foundation = "0.3.1"
  objc2 = "0.6.1"
  
  
  [target.'cfg(all(target_family = "unix", not(target_os = "macos")))'.dependencies]
  libc = "0.2"
  x11 = {version = "2.18", features = ["xlib", "xrecord", "xinput"], optional = true}
  evdev-rs = {version = "0.6", optional=true}
  epoll = {version = "4.1.0", optional=true}
  inotify = {version = "0.11", default-features=false, optional=true}
  input = {version = "0.9", optional=true}
  input-linux = { version = "0.7.1", optional = true }
  xkbcommon = { version = "0.8", optional = true }
  
  [target.'cfg(target_os = "windows")'.dependencies]
  winapi = { version = "0.3", features = ["winuser", "errhandlingapi", "processthreadsapi"] }
  
  [dev-dependencies]
  serde_json = "1.0"
  # Some tests interact with the real OS. We can't hit the OS in parallel
  # because that leads to unexpected behavior and flaky tests, so we need
  # to run thoses tests in sequence instead.
  serial_test = "3"
  tokio = {version = "1.5", features=["sync", "macros", "rt-multi-thread"]}
  
  [[example]]
  name = "serialize"
  required-features = ["serialize"]
  
  [[example]]
  name = "grab"
  required-features = ["unstable_grab"]
  
  [[example]]
  name = "tokio_channel"
  required-features = []
  
  [[test]]
  name = "grab"
  path = "tests/grab.rs"
  required-features = ["unstable_grab"]
  