atspi-proxies-0.13.0/.cargo_vcs_info.json0000644000000001530000000000100137230ustar { "git": { "sha1": "f486755b9bf993613f63a779133aafc54925004a" }, "path_in_vcs": "atspi-proxies" }atspi-proxies-0.13.0/Cargo.lock0000644000001013510000000000100117000ustar # This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[package]] name = "addr2line" version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ "gimli", ] [[package]] name = "adler2" version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "async-broadcast" version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" dependencies = [ "event-listener", "event-listener-strategy", "futures-core", "pin-project-lite", ] [[package]] name = "async-channel" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" dependencies = [ "concurrent-queue", "event-listener-strategy", "futures-core", "pin-project-lite", ] [[package]] name = "async-executor" version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "497c00e0fd83a72a79a39fcbd8e3e2f055d6f6c7e025f3b3d91f4f8e76527fb8" dependencies = [ "async-task", "concurrent-queue", "fastrand", "futures-lite", "pin-project-lite", "slab", ] [[package]] name = "async-io" version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" dependencies = [ "autocfg", "cfg-if", "concurrent-queue", "futures-io", "futures-lite", "parking", "polling", "rustix", "slab", "windows-sys 0.61.0", ] [[package]] name = "async-lock" version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" dependencies = [ "event-listener", "event-listener-strategy", "pin-project-lite", ] [[package]] name = "async-process" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" dependencies = [ "async-channel", "async-io", "async-lock", "async-signal", "async-task", "blocking", "cfg-if", "event-listener", "futures-lite", "rustix", ] [[package]] name = "async-recursion" version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "async-signal" version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43c070bbf59cd3570b6b2dd54cd772527c7c3620fce8be898406dd3ed6adc64c" dependencies = [ "async-io", "async-lock", "atomic-waker", "cfg-if", "futures-core", "futures-io", "rustix", "signal-hook-registry", "slab", "windows-sys 0.61.0", ] [[package]] name = "async-stream" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" dependencies = [ "async-stream-impl", "futures-core", "pin-project-lite", ] [[package]] name = "async-stream-impl" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "async-task" version = "4.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "atomic-waker" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "atspi-common" version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20c5617155740c98003016429ad13fe43ce7a77b007479350a9f8bf95a29f63d" dependencies = [ "enumflags2", "serde", "static_assertions", "zbus", "zbus-lockstep", "zbus-lockstep-macros", "zbus_names", "zvariant", ] [[package]] name = "atspi-proxies" version = "0.13.0" dependencies = [ "atspi-common", "byteorder", "futures-lite", "rename-item", "serde", "serde_json", "serde_plain", "tokio", "tokio-stream", "tokio-test", "tracing", "zbus", ] [[package]] name = "autocfg" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "backtrace" version = "0.3.75" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" dependencies = [ "addr2line", "cfg-if", "libc", "miniz_oxide", "object", "rustc-demangle", "windows-targets 0.52.6", ] [[package]] name = "bitflags" version = "2.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" [[package]] name = "blocking" version = "1.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" dependencies = [ "async-channel", "async-task", "futures-io", "futures-lite", "piper", ] [[package]] name = "byteorder" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "cfg-if" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" [[package]] name = "cfg_aliases" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "concurrent-queue" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "darling" version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" dependencies = [ "darling_core", "darling_macro", ] [[package]] name = "darling_core" version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "syn", ] [[package]] name = "darling_macro" version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", "syn", ] [[package]] name = "endi" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" [[package]] name = "enumflags2" version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" dependencies = [ "enumflags2_derive", "serde", ] [[package]] name = "enumflags2_derive" version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "equivalent" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", "windows-sys 0.61.0", ] [[package]] name = "event-listener" version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" dependencies = [ "concurrent-queue", "parking", "pin-project-lite", ] [[package]] name = "event-listener-strategy" version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" dependencies = [ "event-listener", "pin-project-lite", ] [[package]] name = "fastrand" version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fnv" version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "futures-core" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-io" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" dependencies = [ "fastrand", "futures-core", "futures-io", "parking", "pin-project-lite", ] [[package]] name = "getrandom" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ "cfg-if", "libc", "r-efi", "wasi 0.14.7+wasi-0.2.4", ] [[package]] name = "gimli" version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "hashbrown" version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" [[package]] name = "heck" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" [[package]] name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "ident_case" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "indexmap" version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92119844f513ffa41556430369ab02c295a3578af21cf945caa3e9e0c2481ac3" dependencies = [ "equivalent", "hashbrown", ] [[package]] name = "io-uring" version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" dependencies = [ "bitflags", "cfg-if", "libc", ] [[package]] name = "itoa" version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "libc" version = "0.2.175" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" [[package]] name = "linux-raw-sys" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "memchr" version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "memoffset" version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" dependencies = [ "autocfg", ] [[package]] name = "miniz_oxide" version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", ] [[package]] name = "mio" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", "wasi 0.11.1+wasi-snapshot-preview1", "windows-sys 0.59.0", ] [[package]] name = "nix" version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ "bitflags", "cfg-if", "cfg_aliases", "libc", "memoffset", ] [[package]] name = "object" version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "memchr", ] [[package]] name = "once_cell" version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "ordered-stream" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" dependencies = [ "futures-core", "pin-project-lite", ] [[package]] name = "parking" version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "pin-project-lite" version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "piper" version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ "atomic-waker", "fastrand", "futures-io", ] [[package]] name = "polling" version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" dependencies = [ "cfg-if", "concurrent-queue", "hermit-abi", "pin-project-lite", "rustix", "windows-sys 0.61.0", ] [[package]] name = "proc-macro-crate" version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" dependencies = [ "toml_edit", ] [[package]] name = "proc-macro2" version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] [[package]] name = "quick-xml" version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe" dependencies = [ "memchr", "serde", ] [[package]] name = "quote" version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] [[package]] name = "r-efi" version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "rename-item" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f80b251729e529bbe8893766fb6e20594f6e8dc1e495b8d795a98beb609666a1" dependencies = [ "darling", "heck", "proc-macro2", "quote", "syn", ] [[package]] name = "rustc-demangle" version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] name = "rustix" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ "bitflags", "errno", "libc", "linux-raw-sys", "windows-sys 0.61.0", ] [[package]] name = "ryu" version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "serde" version = "1.0.225" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd6c24dee235d0da097043389623fb913daddf92c76e9f5a1db88607a0bcbd1d" dependencies = [ "serde_core", "serde_derive", ] [[package]] name = "serde_core" version = "1.0.225" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "659356f9a0cb1e529b24c01e43ad2bdf520ec4ceaf83047b83ddcc2251f96383" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" version = "1.0.225" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ea936adf78b1f766949a4977b91d2f5595825bd6ec079aa9543ad2685fc4516" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "serde_json" version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ "itoa", "memchr", "ryu", "serde", "serde_core", ] [[package]] name = "serde_plain" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ce1fc6db65a611022b23a0dec6975d63fb80a302cb3388835ff02c097258d50" dependencies = [ "serde", ] [[package]] name = "serde_repr" version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "signal-hook-registry" version = "1.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" dependencies = [ "libc", ] [[package]] name = "slab" version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "static_assertions" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "syn" version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "tempfile" version = "3.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84fa4d11fadde498443cca10fd3ac23c951f0dc59e080e9f4b93d4df4e4eea53" dependencies = [ "fastrand", "getrandom", "once_cell", "rustix", "windows-sys 0.61.0", ] [[package]] name = "tokio" version = "1.47.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" dependencies = [ "backtrace", "io-uring", "libc", "mio", "pin-project-lite", "slab", "tokio-macros", ] [[package]] name = "tokio-macros" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "tokio-stream" version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ "futures-core", "pin-project-lite", "tokio", ] [[package]] name = "tokio-test" version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2468baabc3311435b55dd935f702f42cd1b8abb7e754fb7dfb16bd36aa88f9f7" dependencies = [ "async-stream", "bytes", "futures-core", "tokio", "tokio-stream", ] [[package]] name = "toml_datetime" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a197c0ec7d131bfc6f7e82c8442ba1595aeab35da7adbf05b6b73cd06a16b6be" dependencies = [ "serde_core", ] [[package]] name = "toml_edit" version = "0.23.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2ad0b7ae9cfeef5605163839cb9221f453399f15cfb5c10be9885fcf56611f9" dependencies = [ "indexmap", "toml_datetime", "toml_parser", "winnow", ] [[package]] name = "toml_parser" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b551886f449aa90d4fe2bdaa9f4a2577ad2dde302c61ecf262d80b116db95c10" dependencies = [ "winnow", ] [[package]] name = "tracing" version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "pin-project-lite", "tracing-attributes", "tracing-core", ] [[package]] name = "tracing-attributes" version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "tracing-core" version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", ] [[package]] name = "uds_windows" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" dependencies = [ "memoffset", "tempfile", "winapi", ] [[package]] name = "unicode-ident" version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" [[package]] name = "wasi" version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" version = "0.14.7+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" dependencies = [ "wasip2", ] [[package]] name = "wasip2" version = "1.0.1+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ "wit-bindgen", ] [[package]] name = "winapi" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ "winapi-i686-pc-windows-gnu", "winapi-x86_64-pc-windows-gnu", ] [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-link" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] name = "windows-link" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" [[package]] name = "windows-sys" version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ "windows-targets 0.52.6", ] [[package]] name = "windows-sys" version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ "windows-targets 0.53.3", ] [[package]] name = "windows-sys" version = "0.61.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" dependencies = [ "windows-link 0.2.0", ] [[package]] name = "windows-targets" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", "windows_i686_gnullvm 0.52.6", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] [[package]] name = "windows-targets" version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" dependencies = [ "windows-link 0.1.3", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", "windows_i686_gnu 0.53.0", "windows_i686_gnullvm 0.53.0", "windows_i686_msvc 0.53.0", "windows_x86_64_gnu 0.53.0", "windows_x86_64_gnullvm 0.53.0", "windows_x86_64_msvc 0.53.0", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_gnullvm" version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_aarch64_msvc" version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" [[package]] name = "windows_i686_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnu" version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_gnullvm" version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_i686_msvc" version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnu" version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_gnullvm" version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" [[package]] name = "windows_x86_64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "windows_x86_64_msvc" version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" dependencies = [ "memchr", ] [[package]] name = "wit-bindgen" version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "zbus" version = "5.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d07e46d035fb8e375b2ce63ba4e4ff90a7f73cf2ffb0138b29e1158d2eaadf7" dependencies = [ "async-broadcast", "async-executor", "async-io", "async-lock", "async-process", "async-recursion", "async-task", "async-trait", "blocking", "enumflags2", "event-listener", "futures-core", "futures-lite", "hex", "nix", "ordered-stream", "serde", "serde_repr", "tracing", "uds_windows", "windows-sys 0.60.2", "winnow", "zbus_macros", "zbus_names", "zvariant", ] [[package]] name = "zbus-lockstep" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29e96e38ded30eeab90b6ba88cb888d70aef4e7489b6cd212c5e5b5ec38045b6" dependencies = [ "zbus_xml", "zvariant", ] [[package]] name = "zbus-lockstep-macros" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc6821851fa840b708b4cbbaf6241868cabc85a2dc22f426361b0292bfc0b836" dependencies = [ "proc-macro2", "quote", "syn", "zbus-lockstep", "zbus_xml", "zvariant", ] [[package]] name = "zbus_macros" version = "5.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57e797a9c847ed3ccc5b6254e8bcce056494b375b511b3d6edcec0aeb4defaca" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", "syn", "zbus_names", "zvariant", "zvariant_utils", ] [[package]] name = "zbus_names" version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7be68e64bf6ce8db94f63e72f0c7eb9a60d733f7e0499e628dfab0f84d6bcb97" dependencies = [ "serde", "static_assertions", "winnow", "zvariant", ] [[package]] name = "zbus_xml" version = "5.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589e9a02bfafb9754bb2340a9e3b38f389772684c63d9637e76b1870377bec29" dependencies = [ "quick-xml", "serde", "static_assertions", "zbus_names", "zvariant", ] [[package]] name = "zvariant" version = "5.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "999dd3be73c52b1fccd109a4a81e4fcd20fab1d3599c8121b38d04e1419498db" dependencies = [ "endi", "enumflags2", "serde", "winnow", "zvariant_derive", "zvariant_utils", ] [[package]] name = "zvariant_derive" version = "5.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6643fd0b26a46d226bd90d3f07c1b5321fe9bb7f04673cb37ac6d6883885b68e" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", "syn", "zvariant_utils", ] [[package]] name = "zvariant_utils" version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6949d142f89f6916deca2232cf26a8afacf2b9fdc35ce766105e104478be599" dependencies = [ "proc-macro2", "quote", "serde", "syn", "winnow", ] atspi-proxies-0.13.0/Cargo.toml0000644000000040300000000000100117170ustar # THIS FILE IS AUTOMATICALLY GENERATED BY CARGO # # When uploading crates to the registry Cargo will automatically # "normalize" Cargo.toml files for maximal compatibility # with all versions of Cargo and also rewrite `path` dependencies # to registry (e.g., crates.io) dependencies. # # If you are reading this file be aware that the original Cargo.toml # will likely look very different (and much more reasonable). # See Cargo.toml.orig for the original contents. [package] edition = "2021" rust-version = "1.77.2" name = "atspi-proxies" version = "0.13.0" build = false include = [ "LICENSE-*", "README.md", "src/**/*", ] autolib = false autobins = false autoexamples = false autotests = false autobenches = false description = "AT-SPI2 proxies to query or manipulate UI objects" homepage = "https://github.com/odilia-app/atspi" readme = "README.md" keywords = [ "a11y", "accessibility", "linux", "screen-reader", "tts", ] categories = [ "accessibility", "api-bindings", ] license = "Apache-2.0 OR MIT" repository = "https://github.com/odilia-app/atspi" [package.metadata.release] publish = true release = true [features] default = ["wrappers"] wrappers = [] [lib] name = "atspi_proxies" path = "src/lib.rs" [dependencies.atspi-common] version = "0.13.0" [dependencies.serde] version = "^1.0.200" features = ["derive"] default-features = false [dependencies.zbus] version = "5.5" features = ["async-io"] default-features = false [dev-dependencies.atspi-common] version = "0.13.0" [dev-dependencies.byteorder] version = "1.4" [dev-dependencies.futures-lite] version = "2.6.0" default-features = false [dev-dependencies.rename-item] version = "0.1.0" [dev-dependencies.serde_json] version = "1.0.96" [dev-dependencies.serde_plain] version = "1.0.1" [dev-dependencies.tokio] version = "1.38.2" features = [ "macros", "rt-multi-thread", ] default-features = false [dev-dependencies.tokio-stream] version = "0.1.1" [dev-dependencies.tokio-test] version = "0.4.2" [dev-dependencies.tracing] version = "0.1.40" atspi-proxies-0.13.0/Cargo.toml.orig000064400000000000000000000025261046102023000154100ustar 00000000000000[package] categories = ["accessibility", "api-bindings"] description = "AT-SPI2 proxies to query or manipulate UI objects" edition = "2021" homepage = "https://github.com/odilia-app/atspi" include = ["LICENSE-*", "README.md", "src/**/*"] keywords = ["a11y", "accessibility", "linux", "screen-reader", "tts"] license = "Apache-2.0 OR MIT" name = "atspi-proxies" readme = "README.md" repository = "https://github.com/odilia-app/atspi" rust-version.workspace = true version = "0.13.0" [package.metadata.release] publish = true release = true [features] default = ["wrappers"] wrappers = [] [dependencies] atspi-common = { path = "../atspi-common", version = "0.13.0" } serde = { version = "^1.0.200", default-features = false, features = ["derive"] } zbus = { workspace = true } [dev-dependencies] atspi-common = { path = "../atspi-common", version = "0.13.0" } byteorder = "1.4" futures-lite = { version = "2.6.0", default-features = false } rename-item = "0.1.0" serde_json = "1.0.96" serde_plain = "1.0.1" tokio = { version = "1.38.2", default-features = false, features = ["macros", "rt-multi-thread"] } tokio-stream = "0.1.1" tokio-test = "0.4.2" tracing = "0.1.40" atspi-proxies-0.13.0/LICENSE-APACHE2.txt000064400000000000000000000260741046102023000153510ustar 00000000000000Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. atspi-proxies-0.13.0/LICENSE-MIT.txt000064400000000000000000000020571046102023000147720ustar 00000000000000Copyright (c) 2022 Tait Hoyem Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. atspi-proxies-0.13.0/README.md000064400000000000000000000001621046102023000137720ustar 00000000000000# `atspi-proxies` An internal crate used by other `atspi-*` crates. This handles direct communication with DBus. atspi-proxies-0.13.0/src/accessible.rs000064400000000000000000000316701046102023000157550ustar 00000000000000//! # `AccessibleProxy` //! //! A handle for a remote object implementing the `org.a11y.atspi.Accessible` //! interface. //! //! Accessible is the interface which is implemented by all accessible objects. //! use crate::common::{InterfaceSet, ObjectRef, RelationType, Role, StateSet}; use crate::AtspiError; use atspi_common::object_ref::ObjectRefOwned; use zbus::names::BusName; /// # `AccessibleProxy` /// /// A handle for a remote object implementing the `org.a11y.atspi.Accessible` /// interface. /// /// Accessible is the interface which is implemented by all accessible objects. /// #[zbus::proxy( interface = "org.a11y.atspi.Accessible", default_path = "/org/a11y/atspi/accessible/root", assume_defaults = true )] pub trait Accessible { /// Returns an [`ObjectRef`] which refers to the `Application` object of the application. /// This object will have [`Application`] interface implemented. /// /// The application object is the root of the accessibility hierarchy for the application. /// It is the only object in the hierarchy that does not have a parent. /// /// ## Notes /// The application object is the only object in the accessibility hierarchy that is /// guaranteed to be persistent for the lifetime of the application. /// All other objects in the accessibility hierarchy may be created and destroyed dynamically. /// /// [`ObjectRef`]: [`crate::common::events::ObjectRef`] /// [`Application`]: [`crate::application::ApplicationProxy`] fn get_application(&self) -> zbus::Result; /// Gets a list of name/value pairs of attributes or annotations for this object. /// /// ## Disambiguation /// For typographic, textual, or textually-semantic attributes, /// see [`TextProxy`]'s [`get_attributes`] method instead. /// /// [`TextProxy`]: [`crate::text::TextProxy`] /// [`get_attributes`]: [`crate::text::TextProxy#method.get_attributes`] fn get_attributes(&self) -> zbus::Result>; /// Retrieve child by index (starting from 0), /// /// Queries the N-th accessible child of `self`. It is expected that this /// will correspond to the order that the [`get_children`] method would return. /// /// ## Notes /// Implementations vary in their behavior when the index is out of range. /// GTK4 returns an error, while atk-adaptor (e.g. Gtk3) returns the /// null object path "/org/a11y/atspi/null". /// /// Documentation advises implementors to return a `DBus` Error when the index is /// out of range, to "keep the type system gods happy". /// /// [`get_children`]: #method.get_children fn get_child_at_index(&self, index: i32) -> zbus::Result; /// Retrieves a list of the object's accessible children. /// /// Each array element is an [`Accessible`] representing the accessible child object. /// /// ## Registry /// /// On the [`Accessible`] interface of `org.a11y.atspi.Registry`, the registry daemon, this method retrieves a list /// of all accessible applications' root objects on the bus. /// /// [`Accessible`]: [`crate::accessible::AccessibleProxy`] fn get_children(&self) -> zbus::Result>; /// This object resides in its parent's list of children. /// This returns its position in this list of children, starting from 0. /// /// The function returns -1 if the object does not have a parent or /// if an exception occurs. fn get_index_in_parent(&self) -> zbus::Result; /// Returns an [`InterfaceSet`] accessible interface names supported by the `self` object. /// [`InterfaceSet`]: [`crate::common::InterfaceSet`] fn get_interfaces(&self) -> zbus::Result; /// Gets a `String` corresponding to the name of the role played by an object, /// translated to the current locale. /// /// ## Notes /// /// This method will return useful values for roles that fall outside the /// enumeration used in the [`get_role`] method. /// /// For applications, implementing this method is optional, and it may be removed /// in a future version of the API. /// /// For example, [`libatspi`] will only call it in the event of an unknown role. /// /// [`libatspi`]: /// [`get_role`]: #method.get_role fn get_localized_role_name(&self) -> zbus::Result; /// Returns a set of relationships between the this `self` object and others. /// /// This vector of tuples contains a [`RelationType`] and a vector of [`Accessible`]'s to which that /// relationship applies. /// These relationships allow for better identification of how objects are associated with one another. /// /// For example, the relationship [`RelationType::LabelledBy`] can be used to identify labeling information /// that should accompany the accessible [`name`] property when presenting an object's content or identity /// to the end user. /// /// Similarly, [`RelationType::ControllerFor`] can be used to specify the context in which a valuator is useful /// and/or the other UI components that are directly affected by user interactions with the valuator. /// Common examples include the association of scrollbars with the viewport or panel that they control. /// /// [`RelationType`]: [`crate::common::RelationType`] /// [`RelationType::LabelledBy`]: [`crate::common::RelationType::LabelledBy`] /// [`RelationType::ControllerFor`]: [`crate::common::RelationType::ControllerFor`] /// [`name`]: #method.name /// [`Accessible`]: [`crate::common::events::Accessible`] fn get_relation_set(&self) -> zbus::Result)>>; /// Gets the [`Role`] that the current accessible object represents. /// /// Roles make it possible for various UI toolkits to expose their controls to /// assistive technologies (ATs) with a standard interface, regardless of toolkit. /// /// For example, a widget that acts like a conventional push button /// (appears unpressed; presses when acted upon; invokes a certain action /// when pressed) can expose an [`Role::Button`] role. /// /// [`Role::Button`]: [`crate::common::Role::Button`] /// [`Role`]: [`crate::common::Role`] fn get_role(&self) -> zbus::Result; /// Gets a `String` corresponding to the name of the role played by an object, /// translated to the current locale. /// /// ## Notes /// /// This method will return useful values for roles that fall outside the /// enumeration used in the `get_role` method. /// /// For applications, implementing this method is optional, and it may be removed /// in a future version of the API. /// /// [`libatspi`]: /// [`libatspi`]: fn get_role_name(&self) -> zbus::Result; /// Method to retrieve the [`StateSet`] of states currently held by `self`. /// [`StateSet`]: [`crate::common::StateSet`] fn get_state(&self) -> zbus::Result; /// Application-specific identifier for the current object. /// /// A special id given to an object. /// Accessible application developers can use this to give a special id to an object /// to use in tests, for example, "`my_widget`". /// /// Note that there is no way to directly find an object by its id; /// a test program may have to recursively get the children to find a specific id. /// This is because accessible objects can be created dynamically, and they do not always /// correspond to a static view of an application's data. #[zbus(property)] fn accessible_id(&self) -> zbus::Result; /// Number of accessible children for the current object. #[zbus(property)] fn child_count(&self) -> zbus::Result; /// Human-readable, localized description of `self` in more detail. /// /// This is a longer description than the [`Name`][name] property. /// /// For example, a button might have a name of "OK", but a description of "OK button". /// /// While the Name property is meant to be a short string that screen readers say /// during normal navigation, the Description property is for when the user asks for /// more detail. /// /// [name]: #method.name #[zbus(property)] fn description(&self) -> zbus::Result; /// Unix locale for the current object. /// /// This is a string in the form of "`language_territory.codeset`". /// For example, "en_US.UTF-8" or "de_DE.UTF-8". /// /// For an application, this may be the locale for the language that the application /// shows in its user interface. /// /// For a document being shown in an application, or a paragraph within a document, /// the locale may refer to that object exclusively. For example: /// an application may be showing itself in English ("en"), but it may be used to /// display a document in Spanish ("es"). /// In the latter case, a screen reader will want to know that it should switch to /// Spanish while reading the document. #[zbus(property)] fn locale(&self) -> zbus::Result; /// Human-readable, localized, short name for the object. /// /// Applications should have this set for objects which do not /// have a [`RelationType::LabelledBy`] relation. /// /// Consider a widget to select RGB colors by setting three sliders. /// The names for the sliders would be "Red", "Green", "Blue", respectively, or /// their translations to application's locale. The names would be unnecessary if each /// slider had a `LabeledBy` relation to corresponding labels visible in the user /// interface. /// /// [`RelationType::LabelledBy`]: [`crate::common::RelationType::LabelledBy`] #[zbus(property)] fn name(&self) -> zbus::Result; /// `ObjectRef` parent object of the current object. /// /// Null parent: /// If the object has no parent (e.g. the application's root object is being queried), /// The application should return "" for the application name name and "/org/a11y/atspi/null" /// for the object path. /// /// Root object: /// An application must have a single root object, called "/org/a11y/atspi/accessible/root". /// All other objects should have that one as their highest-level ancestor. #[zbus(property)] fn parent(&self) -> zbus::Result; /// Help text for the current object. #[zbus(property)] fn help_text(&self) -> zbus::Result; } impl TryFrom> for ObjectRefOwned { type Error = AtspiError; fn try_from(proxy: AccessibleProxy<'_>) -> Result { let sender = proxy.inner().destination(); let path = proxy.inner().path(); let object_ref = ObjectRef::try_from_bus_name_and_path(sender.into(), path.into())?; Ok(ObjectRefOwned::from(object_ref)) } } impl TryFrom<&AccessibleProxy<'_>> for ObjectRefOwned { type Error = AtspiError; fn try_from(proxy: &AccessibleProxy<'_>) -> Result { let sender = proxy.inner().destination().clone(); let path = proxy.inner().path().clone(); let object_ref = ObjectRef::try_from_bus_name_and_path(sender, path)?; Ok(ObjectRefOwned::from(object_ref)) } } pub trait ObjectRefExt { /// Returns an [`AccessibleProxy`], the handle to the object's `Accessible` interface. /// /// # Errors /// If the `ObjectRef` is null, this method returns an error. /// Users are advised to check if the `ObjectRef` is null before calling this method. fn as_accessible_proxy( &self, conn: &zbus::Connection, ) -> impl std::future::Future, AtspiError>> + Send; /// Returns an [`AccessibleProxy`], the handle to the object's `Accessible` interface. /// /// # Errors /// If the `ObjectRef` is null, this method returns an error. /// Users are advised to check if the `ObjectRef` is null before calling this method. fn into_accessible_proxy( self, conn: &zbus::Connection, ) -> impl std::future::Future, AtspiError>> + Send; } impl ObjectRefExt for ObjectRefOwned { async fn as_accessible_proxy( &self, conn: &zbus::Connection, ) -> Result, AtspiError> { if self.is_null() { return Err(AtspiError::NullRef( "`as_accessible_proxy` called on null-reference ObjectRef", )); } let name: BusName = self.name().ok_or(AtspiError::MissingName)?.clone().into(); let path = self.path(); AccessibleProxy::builder(conn) .destination(name)? .path(path)? .cache_properties(zbus::proxy::CacheProperties::No) .build() .await .map_err(AtspiError::from) } async fn into_accessible_proxy( self, conn: &zbus::Connection, ) -> Result, AtspiError> { if self.is_null() { return Err(AtspiError::NullRef( "`into_accessible_proxy` called on null-reference ObjectRef", )); } let name: BusName = self.name().ok_or(AtspiError::MissingName)?.clone().into(); let path = self.path(); AccessibleProxy::builder(conn) .destination(name)? .path(path)? .cache_properties(zbus::proxy::CacheProperties::No) .build() .await .map_err(AtspiError::from) } } #[cfg(test)] mod tests { use crate::accessible::Role; #[test] fn test_output_of_role_name() { assert_eq!(Role::Invalid.name(), "invalid"); assert_eq!(Role::PushButtonMenu.name(), "push button menu"); } } atspi-proxies-0.13.0/src/action.rs000064400000000000000000000123671046102023000151370ustar 00000000000000//! # [`ActionProxy`] //! //! A handle for a remote object implementing the `org.a11y.atspi.Action` //! interface. //! //! The `Action` interface allows exploring and invoking the actions of a //! user-actionable UI component. //! //! For example, a button may expose a "click" action - a popup menu may //! expose an "open" action. //! //! Components which are not "passive" providers of UI information should //! implement this interface, unless there is a more specialized interface for //! interaction like [`org.a11y.atspi.Text`][TextProxy] or [`org.a11y.atspi.Value`][ValueProxy]. //! //! [ActionProxy]: crate::action::ActionProxy //! [TextProxy]: crate::text::TextProxy //! [ValueProxy]: crate::value::ValueProxy use atspi_common::Action; /// A handle for a remote object implementing the `org.a11y.atspi.Action` /// interface. /// /// The `Action` interface allows exploring and invoking the actions of a /// user-actionable UI component. /// /// For example, a button may expose a "click" action - a popup menu may /// expose an "open" action. /// /// Components which are not "passive" providers of UI information should /// implement this interface, unless there is a more specialized interface for /// interaction like [`org.a11y.atspi.Text`][TextProxy] or [`org.a11y.atspi.Value`][ValueProxy]. /// /// [TextProxy]: crate::text::TextProxy /// [ValueProxy]: crate::value::ValueProxy #[zbus::proxy(interface = "org.a11y.atspi.Action", assume_defaults = true)] pub trait Action { /// Performs the specified action on the object. /// /// Returns: Ok(true) on success, Ok(false) otherwise. /// /// # Arguments /// /// * `index` - The index of the action to perform. fn do_action(&self, index: i32) -> zbus::Result; /// Returns an array of localized name, localized /// description, keybinding for the actions that an object /// supports. /// /// See [`get_key_binding`] method for a description of that /// field's syntax. /// /// This is equivalent to using the methods [`get_localized_name`], /// [`get_description`] and [`get_key_binding`] for each action, /// but with a single call and thus less `DBus` traffic. /// /// By convention, if there is more than one action available, /// the first one is considered the "default" action of the object. /// /// [`get_key_binding`]: ActionProxy#method.get_key_binding /// [`get_localized_name`]: ActionProxy#method.get_localized_name /// [`get_description`]: ActionProxy#method.get_description fn get_actions(&self) -> zbus::Result>; /// Returns the localized description for the action at the specified /// index, starting at zero. /// /// For example, a screen reader will read out this description when /// the user asks for extra detail on an action. /// For example, "Clicks the button" for the "click" action of a button. fn get_description(&self, index: i32) -> zbus::Result; /// Returns the keybinding for the action, specified by a /// zero-based index. /// /// Gets the keybinding which can be used to invoke this action, /// if one exists. /// /// The string returned should contain localized, human-readable, /// key sequences as they would appear when displayed on screen. /// It must be in the format "mnemonic;sequence;shortcut". /// /// - The mnemonic key activates the object if it is presently /// enabled on screen. /// This typically corresponds to the underlined letter within /// the widget. Example: "n" in a traditional "Ṉew..." menu /// item or the "a" in "Apply" for a button. /// /// - The sequence is the full list of keys which invoke the action /// even if the relevant element is not currently shown on screen. /// For instance, for a menu item the sequence is the keybindings /// used to open the parent menus before invoking. /// /// The sequence string is colon-delimited. Example: "Alt+F:N" in a /// traditional "Ṉew..." menu item. /// /// - The shortcut, if it exists, will invoke the same action without /// showing the component or its enclosing menus or dialogs. /// Example: "Ctrl+N" in a traditional "Ṉew..." menu item. /// The shortcut string is colon-delimited. Example: "Ctrl+N" in a /// traditional "Ṉew..." menu item. /// /// Example: For a traditional "Ṉew..." menu item, the expected return /// value would be: "N;Alt+F:N;Ctrl+N" for the English locale and /// "N;Alt+D:N;Strg+N" for the German locale. /// If, hypothetically, this menu item lacked a mnemonic, it would be /// represented by ";;Ctrl+N" and ";;Strg+N" respectively. /// /// If there is no key binding for this action, "" is returned. fn get_key_binding(&self, index: i32) -> zbus::Result; /// Returns a short, localized name for the action at the specified by a /// zero-based index. /// /// This is what screen readers will read out during normal navigation. /// For example, "Click" for a button. fn get_localized_name(&self, index: i32) -> zbus::Result; /// Returns a machine-readable name for the action at the specified, /// zero-based index. fn get_name(&self, index: i32) -> zbus::Result; /// Returns the number of available actions. /// /// By convention, if there is more than one action available, /// the first one is considered the "default" action of the object. #[zbus(property)] fn nactions(&self) -> zbus::Result; } atspi-proxies-0.13.0/src/application.rs000064400000000000000000000125361046102023000161630ustar 00000000000000//! # [`ApplicationProxy`] //! //! A handle for a remote object implementing the `org.a11y.atspi.Application` //! interface. //! //! `Application` is the interface which is implemented by each accessible application. //! It is implemented for the root object of an application. //! //! It provides information about the application itself. //! //! ## Status //! //! A number of methods and properties of this interface have fallen in disuse or //! are / may be deprecated in the future. //! //! * [`id`] //! * [`set_id`] //! * [`atspi_version`] //! * [`get_locale`] //! //! [`toolkit_name`] and [`version`] are still in use. //! //! See the documentation of the individual methods and properties for details. //! //! [`ApplicationProxy`]: crate::application::ApplicationProxy //! [`id`]: ApplicationProxy#method.id //! [`set_id`]: ApplicationProxy#method.set_id //! [`atspi_version`]: ApplicationProxy#method.atspi_version //! [`get_locale`]: ApplicationProxy#method.get_locale //! [`toolkit_name`]: ApplicationProxy#method.toolkit_name //! [`version`]: ApplicationProxy#method.version //! /// `Application` is the interface which is implemented by each accessible application. /// It is implemented for the root object of an application. /// /// It provides information about the application itself. /// /// ## Status /// /// A number of methods and properties of this interface have fallen in disuse or /// are / may be deprecated in the future. /// /// * [`id`] /// * [`set_id`] /// * [`atspi_version`] /// * [`get_locale`] /// /// [`toolkit_name`] and [`version`] are still in use. /// /// See the documentation of the individual methods and properties for details. /// /// [`id`]: ApplicationProxy#method.id /// [`set_id`]: ApplicationProxy#method.set_id /// [`atspi_version`]: ApplicationProxy#method.atspi_version /// [`get_locale`]: ApplicationProxy#method.get_locale /// [`toolkit_name`]: ApplicationProxy#method.toolkit_name /// [`version`]: ApplicationProxy#method.version /// #[zbus::proxy( interface = "org.a11y.atspi.Application", default_path = "/org/a11y/atspi/accessible/root", assume_defaults = true )] pub trait Application { /// Method to retrieve the application's locale. /// /// ## Deprecation /// /// This method is likely to be removed in the future. /// /// There is no need to call this method because there is also /// [`locale`] which offers the same functionality /// at the accessible object level. /// /// See also: [Orca issues: "Plans for per-object locale?"]() /// /// member: `GetLocale`, type: method /// /// [`locale`]: crate::accessible::AccessibleProxy#method.locale fn get_locale(&self, lctype: u32) -> zbus::Result; /// retrieves AT-SPI2 version. /// /// Applications are advised to return "2.1" here, thus that is what /// users should expect. /// /// This was intended to be the version of the atspi interfaces /// that the application supports, but atspi will probably move to /// using versioned interface names instead. /// /// member: `AtspiVersion`, type: property #[zbus(property)] fn atspi_version(&self) -> zbus::Result; /// Retrieve numerical id of the application. /// /// The 'id' is set an arbitrary numerical id when /// an application registers with the registry. /// /// When a freshly-started application uses the /// [`org.a11y.atspi.Socket`]'s [`embed`] method to /// register with the accessibility registry, the /// registry will set a numerical id on the application. /// /// ## status /// /// The property has fallen in disuse. /// /// As per [AT-SPI2-CORE issue #82]() /// it may turn out that this id is not actually used subsequently. /// This is a remnant of the time when registryd actually had to /// make up identifiers for each application. /// With `DBus`, however, it is the bus that assigns unique names to applications that /// connect to it. /// /// Applications or toolkits can remember the `Id` passed when the accessibility /// registry sets this property, and return it back when the property is read. /// /// member: `Id`, type: property /// /// [`embed`]: crate::socket::SocketProxy#method.embed /// [`org.a11y.atspi.Socket`]: crate::socket::SocketProxy #[zbus(property)] fn id(&self) -> zbus::Result; /// Set ID of the application. /// /// This method is used by the accessibility registry to set the /// application's id. /// /// ## status /// /// The property has fallen in disuse. /// /// See [`id`] for details. /// /// member: `Id`, type: property /// /// [`id`]: crate::application::ApplicationProxy#method.id #[zbus(property)] fn set_id(&self, value: i32) -> zbus::Result<()>; /// Retrieves the name of the toolkit used to implement the application's /// user interface. /// /// member: `ToolkitName`, type: property #[zbus(property)] fn toolkit_name(&self) -> zbus::Result; /// Returns the version of the toolkit used to implement the /// application's user interface. /// /// member: `Version`, type: property #[zbus(property)] fn version(&self) -> zbus::Result; /// Method to obtain the unix socket address. /// The unix socket can be used to setup a connection, to perform peer-to-peer (P2P) method calls. /// /// Known implementors include `Gtk3` and `Firefox`. fn get_application_bus_address(&self) -> zbus::Result; } atspi-proxies-0.13.0/src/bus.rs000064400000000000000000000031011046102023000144350ustar 00000000000000//! # `DBus` interface proxies for: `org.a11y.Status`, `org.a11y.Bus` //! //! This code was generated by `zbus-xmlgen` `2.0.1` from `DBus` introspection data. //! Source: `Interface '/org/a11y/bus' from service 'org.a11y.Bus' on session bus`. //! //! You may prefer to adapt it, instead of using it verbatim. //! //! More information can be found in the //! [Writing a client proxy](https://dbus.pages.freedesktop.org/zbus/client.html) //! section of the zbus documentation. //! //! This `DBus` object implements //! [standard `DBus` interfaces](https://dbus.freedesktop.org/doc/dbus-specification.html), //! (`org.freedesktop.DBus.*`) for which the following zbus proxies can be used: //! //! * [`zbus::fdo::PropertiesProxy`] //! * [`zbus::fdo::IntrospectableProxy`] //! * [`zbus::fdo::PeerProxy`] //! //! …consequently `zbus-xmlgen` did not generate code for the above interfaces. #[zbus::proxy( interface = "org.a11y.Status", default_service = "org.a11y.Bus", default_path = "/org/a11y/bus" )] pub trait Status { /// `IsEnabled` property #[zbus(property)] fn is_enabled(&self) -> zbus::Result; #[zbus(property)] fn set_is_enabled(&self, value: bool) -> zbus::Result<()>; /// `ScreenReaderEnabled` property #[zbus(property)] fn screen_reader_enabled(&self) -> zbus::Result; #[zbus(property)] fn set_screen_reader_enabled(&self, value: bool) -> zbus::Result<()>; } #[zbus::proxy( interface = "org.a11y.Bus", default_service = "org.a11y.Bus", default_path = "/org/a11y/bus" )] pub trait Bus { /// `GetAddress` method fn get_address(&self) -> zbus::Result; } atspi-proxies-0.13.0/src/cache.rs000064400000000000000000000011601046102023000147120ustar 00000000000000//! # `DBus` interface proxy for: `org.a11y.atspi.Cache` //! //! This code was generated by `zbus-xmlgen` `2.0.1` from `DBus` introspection data. //! Source: `Cache.xml`. //! use crate::common::{CacheItem, LegacyCacheItem}; #[zbus::proxy(interface = "org.a11y.atspi.Cache", default_path = "/org/a11y/atspi/cache")] pub trait Cache { /// `GetItems` method fn get_items(&self) -> zbus::Result>; /// `GetItems` method to support legacy servers (old Qt-based applications and old AT-SPI /// registry daemons) #[zbus(name = "GetItems")] fn get_legacy_items(&self) -> zbus::Result>; } atspi-proxies-0.13.0/src/collection.rs000064400000000000000000000101101046102023000157750ustar 00000000000000//! # [`CollectionProxy`] //! //! A handle to a remote object implementing the `org.a11y.atspi.Collection` //! interface. //! //! `Collection` is the interface which is implemented by objects that contain //! other objects, such as a window or a table. //! //! See the documentation on the individual methods for details: //! //! * [`get_matches`](struct.CollectionProxy.html#method.get_matches) //! * [`get_matches_from`](struct.CollectionProxy.html#method.get_matches_from) //! * [`get_matches_to`](struct.CollectionProxy.html#method.get_matches_to) //! //! [`CollectionProxy`]: crate::collection::CollectionProxy use atspi_common::object_ref::ObjectRefOwned; use crate::common::{ObjectMatchRule, SortOrder, TreeTraversalType}; #[zbus::proxy(interface = "org.a11y.atspi.Collection", assume_defaults = true)] pub trait Collection { /// The active descendant of the given object. /// /// May not be implemented by any known toolkit or private implementation. /// /// See [atspi/collection.c](https://gitlab.gnome.org/GNOME/at-spi2-core/-/blob/main/atspi/atspi-collection.c?ref_type=heads#L272) /// fn get_active_descendant(&self) -> zbus::Result; /// Retrieves a list of objects that match the specified `ObjectMatchRule`, ordered according to `SortOrder` and limited by the count parameter. /// /// # Arguments /// /// * `rule` - An [`ObjectMatchRule`] describing the match criteria. /// * `sortby` - A [`SortOrder`] specifying the way the results are to be sorted. /// * `count` - The maximum number of results to return, or 0 for no limit. /// * `traverse` - Not supported. /// /// [`ObjectMatchRule`]: [`atspi_common::object_match::ObjectMatchRule`] /// [`SortOrder`]: [`atspi_common::SortOrder`] fn get_matches( &self, rule: ObjectMatchRule, sortby: SortOrder, count: i32, traverse: bool, ) -> zbus::Result>; /// Retrieves objects from the collection, after `current_object`, matching a given `rule`. /// /// # Arguments /// /// * `current_object` - The object at which to start searching. /// * `rule` - An [`ObjectMatchRule`] describing the match criteria. /// * `sortby` - A [`SortOrder`] specifying the way the results are to be sorted. /// * `tree` - A [`TreeTraversalType`] specifying restrictions on the objects to be traversed. /// * `count` - The maximum number of results to return, or 0 for no limit. /// * `traverse` - Not supported by the known implementation (atk-collection). /// /// [`ObjectMatchRule`]: atspi_common::object_match::ObjectMatchRule /// [`SortOrder`]: atspi_common::SortOrder /// [`TreeTraversalType`]: atspi_common::TreeTraversalType fn get_matches_from( &self, current_object: &zbus::zvariant::ObjectPath<'_>, rule: ObjectMatchRule, sortby: SortOrder, tree: TreeTraversalType, count: i32, traverse: bool, ) -> zbus::Result>; /// Retrieves objects from the collection, before `current_object`, matching a given `rule`. /// /// # Arguments /// /// * `current_object` - The object at which to start searching. /// * `rule` - An [`ObjectMatchRule`] describing the match criteria. /// * `sortby` - A [`SortOrder`] specifying the way the results are to be sorted. /// * `tree` - A [`TreeTraversalType`] specifying restrictions on the objects to be traversed. /// * `limit_scope` - If `true`, only descendants of `current_object`'s parent will be returned. /// Otherwise (if `false`), any accessible may be returned if it would preceed `current_object` in a flattened hierarchy. /// * `count` - The maximum number of results to return, or 0 for no limit. /// * `traverse` - Not supported by the known implementation (atk-collection). /// /// [`ObjectMatchRule`]: atspi_common::object_match::ObjectMatchRule /// [`SortOrder`]: atspi_common::SortOrder /// [`TreeTraversalType`]: atspi_common::TreeTraversalType #[allow(clippy::too_many_arguments)] fn get_matches_to( &self, current_object: &zbus::zvariant::ObjectPath<'_>, rule: ObjectMatchRule, sortby: SortOrder, tree: TreeTraversalType, limit_scope: bool, count: i32, traverse: bool, ) -> zbus::Result>; } atspi-proxies-0.13.0/src/component.rs000064400000000000000000000042721046102023000156600ustar 00000000000000//! # `DBus` interface proxy for: `org.a11y.atspi.Component` //! //! This code was generated by `zbus-xmlgen` `2.0.1` from `DBus` introspection data. //! Source: `Component.xml`. //! //! You may prefer to adapt it, instead of using it verbatim. //! //! More information can be found in the //! [Writing a client proxy](https://dbus.pages.freedesktop.org/zbus/client.html) //! section of the zbus documentation. //! use crate::common::{CoordType, Layer, ScrollType}; use atspi_common::object_ref::ObjectRefOwned; #[zbus::proxy(interface = "org.a11y.atspi.Component", assume_defaults = true)] pub trait Component { /// `Contains` method fn contains(&self, x: i32, y: i32, coord_type: CoordType) -> zbus::Result; /// `GetAccessibleAtPoint` method /// To get an accessible at a point inside a frame of a particular app, you must use `CoordType::Window` fn get_accessible_at_point( &self, x: i32, y: i32, coord_type: CoordType, ) -> zbus::Result; /// `GetAlpha` method fn get_alpha(&self) -> zbus::Result; /// `GetExtents` method fn get_extents(&self, coord_type: CoordType) -> zbus::Result<(i32, i32, i32, i32)>; /// `GetLayer` method fn get_layer(&self) -> zbus::Result; /// `GetMDIZOrder` method #[zbus(name = "GetMDIZOrder")] fn get_mdiz_order(&self) -> zbus::Result; /// `GetPosition` method /// To get the position of a frame of a particular app, you must use `CoordType::Screen` fn get_position(&self, coord_type: CoordType) -> zbus::Result<(i32, i32)>; /// `GetSize` method fn get_size(&self) -> zbus::Result<(i32, i32)>; /// `GrabFocus` method fn grab_focus(&self) -> zbus::Result; /// `ScrollTo` method fn scroll_to(&self, type_: ScrollType) -> zbus::Result; /// `ScrollToPoint` method fn scroll_to_point(&self, coord_type: CoordType, x: i32, y: i32) -> zbus::Result; /// `SetExtents` method fn set_extents( &self, x: i32, y: i32, width: i32, height: i32, coord_type: CoordType, ) -> zbus::Result; /// `SetPosition` method fn set_position(&self, x: i32, y: i32, coord_type: CoordType) -> zbus::Result; /// `SetSize` method fn set_size(&self, width: i32, height: i32) -> zbus::Result; } atspi-proxies-0.13.0/src/device_event_controller.rs000064400000000000000000000070511046102023000205570ustar 00000000000000//! # `DBus` interface proxy for: `org.a11y.atspi.DeviceEventController` //! //! This code was generated by `zbus-xmlgen` `2.0.1` from `DBus` introspection data. //! Source: `DeviceEventController.xml`. //! //! You may prefer to adapt it, instead of using it verbatim. //! //! More information can be found in the //! [Writing a client proxy](https://dbus.pages.freedesktop.org/zbus/client.html) //! section of the zbus documentation. //! use serde::{Deserialize, Serialize}; use zbus::zvariant::Type; #[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize, Type)] #[repr(u32)] pub enum EventType { KeyPressed, KeyReleased, ButtonPressed, ButtonReleased, } #[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize, Type)] #[repr(u32)] pub enum KeySynthType { Press, Release, Pressrelease, Sym, String, Lockmodifiers, Unlockmodifiers, } #[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize, Type)] pub struct DeviceEvent<'a> { pub event_type: EventType, pub id: i32, pub hw_code: i32, pub modifiers: i32, pub timestamp: i32, pub event_string: &'a str, pub is_text: bool, } #[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize, Type)] pub struct EventListenerMode { /// Whether events are delivered synchronously, before the currently focused application sees them. /// If `false`, events may be delivered asynchronously, which means in some /// cases they may already have been delivered to the /// application before the AT client receives the notification. pub synchronous: bool, /// Whether events may be consumed by the AT client. /// Requires [`EventListenerMode::synchronous`] to be set to `true`. pub preemptive: bool, /// If `true`, indicates that events are received not from the application toolkit layer, /// but from the device driver or windowing system subsystem. pub global: bool, } #[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize, Type)] pub struct KeyDefinition<'a> { pub keycode: i32, pub keysym: i32, pub keystring: &'a str, pub unused: i32, } #[zbus::proxy( interface = "org.a11y.atspi.DeviceEventController", default_path = "/org/a11y/atspi/registry/deviceeventcontroller", default_service = "org.a11y.atspi.Registry" )] pub trait DeviceEventController { /// `DeregisterDeviceEventListener` method fn deregister_device_event_listener( &self, listener: &zbus::zvariant::ObjectPath<'_>, types: EventType, ) -> zbus::Result<()>; /// `DeregisterKeystrokeListener` method fn deregister_keystroke_listener( &self, listener: &zbus::zvariant::ObjectPath<'_>, keys: &[KeyDefinition<'_>], mask: u32, type_: EventType, ) -> zbus::Result<()>; /// `GenerateKeyboardEvent` method fn generate_keyboard_event( &self, keycode: i32, keystring: &str, type_: KeySynthType, ) -> zbus::Result<()>; /// `GenerateMouseEvent` method fn generate_mouse_event(&self, x: i32, y: i32, event_name: &str) -> zbus::Result<()>; /// `NotifyListenersAsync` method fn notify_listeners_async(&self, event: &DeviceEvent<'_>) -> zbus::Result<()>; /// `NotifyListenersSync` method fn notify_listeners_sync(&self, event: &DeviceEvent<'_>) -> zbus::Result; /// `RegisterDeviceEventListener` method fn register_device_event_listener( &self, listener: &zbus::zvariant::ObjectPath<'_>, types: EventType, ) -> zbus::Result; /// `RegisterKeystrokeListener` method fn register_keystroke_listener( &self, listener: &zbus::zvariant::ObjectPath<'_>, keys: &[KeyDefinition<'_>], mask: u32, type_: &[EventType], mode: &EventListenerMode, ) -> zbus::Result; } atspi-proxies-0.13.0/src/device_event_listener.rs000064400000000000000000000013031046102023000202130ustar 00000000000000//! # `DBus` interface proxy for: `org.a11y.atspi.DeviceEventListener` //! //! This code was generated by `zbus-xmlgen` `2.0.1` from `DBus` introspection data. //! Source: `DeviceEventListener.xml`. //! //! You may prefer to adapt it, instead of using it verbatim. //! //! More information can be found in the //! [Writing a client proxy](https://dbus.pages.freedesktop.org/zbus/client.html) //! section of the zbus documentation. //! use crate::device_event_controller::DeviceEvent; #[zbus::proxy(interface = "org.a11y.atspi.DeviceEventListener", assume_defaults = true)] pub trait DeviceEventListener { /// `NotifyEvent` method fn notify_event(&self, event: &DeviceEvent<'_>) -> zbus::Result; } atspi-proxies-0.13.0/src/document.rs000064400000000000000000000023571046102023000154760ustar 00000000000000//! # `DBus` interface proxy for: `org.a11y.atspi.Document` //! //! This code was generated by `zbus-xmlgen` `2.0.1` from `DBus` introspection data. //! Source: `Document.xml`. //! //! You may prefer to adapt it, instead of using it verbatim. //! //! More information can be found in the //! [Writing a client proxy](https://dbus.pages.freedesktop.org/zbus/client.html) //! section of the zbus documentation. //! use crate::common::TextSelection; #[zbus::proxy(interface = "org.a11y.atspi.Document", assume_defaults = true)] pub trait Document { /// `GetTextSelections` method fn get_text_selections(&self) -> zbus::Result>; /// `SetTextSelections` method fn set_text_selections(&self, selections: Vec) -> zbus::Result; /// `GetAttributeValue` method fn get_attribute_value(&self, attributename: &str) -> zbus::Result; /// `GetAttributes` method fn get_attributes(&self) -> zbus::Result>; /// `GetLocale` method fn get_locale(&self) -> zbus::Result; /// `CurrentPageNumber` property #[zbus(property)] fn current_page_number(&self) -> zbus::Result; /// `PageCount` property #[zbus(property)] fn page_count(&self) -> zbus::Result; } atspi-proxies-0.13.0/src/editable_text.rs000064400000000000000000000021441046102023000164670ustar 00000000000000//! # `DBus` interface proxy for: `org.a11y.atspi.EditableText` //! //! This code was generated by `zbus-xmlgen` `2.0.1` from `DBus` introspection data. //! Source: `EditableText.xml`. //! //! You may prefer to adapt it, instead of using it verbatim. //! //! More information can be found in the //! [Writing a client proxy](https://dbus.pages.freedesktop.org/zbus/client.html) //! section of the zbus documentation. //! #[zbus::proxy(interface = "org.a11y.atspi.EditableText", assume_defaults = true)] pub trait EditableText { /// `CopyText` method fn copy_text(&self, start_pos: i32, end_pos: i32) -> zbus::Result<()>; /// `CutText` method fn cut_text(&self, start_pos: i32, end_pos: i32) -> zbus::Result; /// `DeleteText` method fn delete_text(&self, start_pos: i32, end_pos: i32) -> zbus::Result; /// `InsertText` method fn insert_text(&self, position: i32, text: &str, length: i32) -> zbus::Result; /// `PasteText` method fn paste_text(&self, position: i32) -> zbus::Result; /// `SetTextContents` method fn set_text_contents(&self, new_contents: &str) -> zbus::Result; } atspi-proxies-0.13.0/src/hyperlink.rs000064400000000000000000000020771046102023000156640ustar 00000000000000//! # `DBus` interface proxy for: `org.a11y.atspi.Hyperlink` //! //! This code was generated by `zbus-xmlgen` `2.0.1` from `DBus` introspection data. //! Source: `Hyperlink.xml`. //! //! You may prefer to adapt it, instead of using it verbatim. //! //! More information can be found in the //! [Writing a client proxy](https://dbus.pages.freedesktop.org/zbus/client.html) //! section of the zbus documentation. //! use atspi_common::object_ref::ObjectRefOwned; #[zbus::proxy(interface = "org.a11y.atspi.Hyperlink", assume_defaults = true)] pub trait Hyperlink { /// `GetObject` method fn get_object(&self, i: i32) -> zbus::Result; /// `GetURI` method #[zbus(name = "GetURI")] fn get_uri(&self, i: i32) -> zbus::Result; /// `IsValid` method fn is_valid(&self) -> zbus::Result; /// `EndIndex` property #[zbus(property)] fn end_index(&self) -> zbus::Result; /// `NAnchors` property #[zbus(property)] fn n_anchors(&self) -> zbus::Result; /// `StartIndex` property #[zbus(property)] fn start_index(&self) -> zbus::Result; } atspi-proxies-0.13.0/src/hypertext.rs000064400000000000000000000014711046102023000157100ustar 00000000000000//! # `DBus` interface proxy for: `org.a11y.atspi.Hypertext` //! //! This code was generated by `zbus-xmlgen` `2.0.1` from `DBus` introspection data. //! Source: `Hypertext.xml`. //! //! You may prefer to adapt it, instead of using it verbatim. //! //! More information can be found in the //! [Writing a client proxy](https://dbus.pages.freedesktop.org/zbus/client.html) //! section of the zbus documentation. //! use atspi_common::object_ref::ObjectRefOwned; #[zbus::proxy(interface = "org.a11y.atspi.Hypertext", assume_defaults = true)] pub trait Hypertext { /// `GetLink` method fn get_link(&self, link_index: i32) -> zbus::Result; /// `GetLinkIndex` method fn get_link_index(&self, character_index: i32) -> zbus::Result; /// `GetNLinks` method fn get_nlinks(&self) -> zbus::Result; } atspi-proxies-0.13.0/src/image.rs000064400000000000000000000020301046102023000147260ustar 00000000000000//! # `DBus` interface proxy for: `org.a11y.atspi.Image` //! //! This code was generated by `zbus-xmlgen` `2.0.1` from `DBus` introspection data. //! Source: `Image.xml`. //! //! You may prefer to adapt it, instead of using it verbatim. //! //! More information can be found in the //! [Writing a client proxy](https://dbus.pages.freedesktop.org/zbus/client.html) //! section of the zbus documentation. //! use crate::CoordType; #[zbus::proxy(interface = "org.a11y.atspi.Image", assume_defaults = true)] pub trait Image { /// `GetImageExtents` method fn get_image_extents(&self, coord_type: CoordType) -> zbus::Result<(i32, i32, i32, i32)>; /// `GetImagePosition` method fn get_image_position(&self, coord_type: CoordType) -> zbus::Result<(i32, i32)>; /// `GetImageSize` method fn get_image_size(&self) -> zbus::Result<(i32, i32)>; /// `ImageDescription` property #[zbus(property)] fn image_description(&self) -> zbus::Result; /// `ImageLocale` property #[zbus(property)] fn image_locale(&self) -> zbus::Result; } atspi-proxies-0.13.0/src/lib.rs000064400000000000000000000014031046102023000144150ustar 00000000000000//! All proxy structures for communicating using AT-SPI. //! Each proxy uses a different interface for communication. #![deny(clippy::all, clippy::pedantic, clippy::cargo, unsafe_code, rustdoc::all)] #![allow(clippy::multiple_crate_versions)] pub use atspi_common as common; pub mod accessible; pub mod action; pub mod application; pub mod bus; pub mod cache; pub mod collection; pub mod component; pub mod device_event_controller; pub mod device_event_listener; pub mod document; pub mod editable_text; pub mod proxy_ext; pub use common::{events, AtspiError, CoordType, Interface, InterfaceSet}; pub mod hyperlink; pub mod hypertext; pub mod image; pub mod registry; pub mod selection; pub mod socket; pub mod table; pub mod table_cell; pub mod text; pub mod value; atspi-proxies-0.13.0/src/proxy_ext.rs000064400000000000000000000216101046102023000157120ustar 00000000000000use crate::{ accessible::AccessibleProxy, action::ActionProxy, application::ApplicationProxy, cache::CacheProxy, collection::CollectionProxy, component::ComponentProxy, document::DocumentProxy, editable_text::EditableTextProxy, hyperlink::HyperlinkProxy, hypertext::HypertextProxy, image::ImageProxy, selection::SelectionProxy, table::TableProxy, table_cell::TableCellProxy, text::TextProxy, value::ValueProxy, AtspiError, }; use atspi_common::{Interface, InterfaceSet, Result}; /// Acquire the other interface proxies an object may have implemented. /// /// Equip objects with conversions to proxies of the objects' implemented interfaces /// by extending `AccessibleProxy`. /// /// The `proxies` method returns a `Proxies` struct. pub trait ProxyExt<'a> { /// Get `Proxies` for the current object. fn proxies(&self) -> impl std::future::Future>>; } /// An object for safe conversion to the related interface proxies. #[derive(Clone, Debug)] pub struct Proxies<'a> { interfaces: InterfaceSet, proxy: zbus::Proxy<'a>, } impl<'a> ProxyExt<'a> for AccessibleProxy<'a> { async fn proxies(&self) -> Result> { let iface_set: InterfaceSet = self.get_interfaces().await?; let proxy = self.inner().clone(); Ok(Proxies { interfaces: iface_set, proxy }) } } impl<'a> Proxies<'a> { /// Get the `Action` interface proxy. /// /// # Errors /// /// Returns an error if the interface is not available. pub async fn action(&self) -> Result> { if self.interfaces.contains(Interface::Action) { Ok(ActionProxy::builder(self.proxy.connection()) .cache_properties(zbus::proxy::CacheProperties::No) .destination(self.proxy.destination())? .path(self.proxy.path())? .build() .await?) } else { Err(AtspiError::InterfaceNotAvailable("Action")) } } /// Get the `Application` interface proxy. /// /// # Errors /// /// Returns an error if the interface is not available. pub async fn application(&self) -> Result> { if self.interfaces.contains(Interface::Application) { Ok(ApplicationProxy::builder(self.proxy.connection()) .cache_properties(zbus::proxy::CacheProperties::No) .destination(self.proxy.destination())? .path(self.proxy.path())? .build() .await?) } else { Err(AtspiError::InterfaceNotAvailable("Application")) } } /// Get the `Cache` interface proxy. /// /// # Errors /// /// Returns an error if the interface is not available. pub async fn cache(&self) -> Result> { if self.interfaces.contains(Interface::Cache) { Ok(CacheProxy::builder(self.proxy.connection()) .cache_properties(zbus::proxy::CacheProperties::No) .destination(self.proxy.destination())? .path(self.proxy.path())? .build() .await?) } else { Err(AtspiError::InterfaceNotAvailable("Cache")) } } /// Get the `Collection` interface proxy. /// /// # Errors /// /// Returns an error if the interface is not available. pub async fn collection(&self) -> Result> { if self.interfaces.contains(Interface::Collection) { Ok(CollectionProxy::builder(self.proxy.connection()) .cache_properties(zbus::proxy::CacheProperties::No) .destination(self.proxy.destination())? .path(self.proxy.path())? .build() .await?) } else { Err(AtspiError::InterfaceNotAvailable("Collection")) } } /// Get the `Component` interface proxy. /// /// # Errors /// /// Returns an error if the interface is not available. pub async fn component(&self) -> Result> { if self.interfaces.contains(Interface::Component) { Ok(ComponentProxy::builder(self.proxy.connection()) .cache_properties(zbus::proxy::CacheProperties::No) .destination(self.proxy.destination())? .path(self.proxy.path())? .build() .await?) } else { Err(AtspiError::InterfaceNotAvailable("Component")) } } /// Get the `Document` interface proxy. /// /// # Errors /// /// Returns an error if the interface is not available. pub async fn document(&self) -> Result> { if self.interfaces.contains(Interface::Document) { Ok(DocumentProxy::builder(self.proxy.connection()) .cache_properties(zbus::proxy::CacheProperties::No) .destination(self.proxy.destination())? .path(self.proxy.path())? .build() .await?) } else { Err(AtspiError::InterfaceNotAvailable("Document")) } } /// Get the `EditableText` interface proxy. /// /// # Errors /// /// Returns an error if the interface is not available. pub async fn editable_text(&self) -> Result> { if self.interfaces.contains(Interface::EditableText) { Ok(EditableTextProxy::builder(self.proxy.connection()) .cache_properties(zbus::proxy::CacheProperties::No) .destination(self.proxy.destination())? .path(self.proxy.path())? .build() .await?) } else { Err(AtspiError::InterfaceNotAvailable("EditableText")) } } /// Get the `Hyperlink` interface proxy. /// /// # Errors /// /// Returns an error if the interface is not available. pub async fn hyperlink(&self) -> Result> { if self.interfaces.contains(Interface::Hyperlink) { Ok(HyperlinkProxy::builder(self.proxy.connection()) .cache_properties(zbus::proxy::CacheProperties::No) .destination(self.proxy.destination())? .path(self.proxy.path())? .build() .await?) } else { Err(AtspiError::InterfaceNotAvailable("Hyperlink")) } } /// Get the `Hypertext` interface proxy. /// /// # Errors /// /// Returns an error if the interface is not available. pub async fn hypertext(&self) -> Result> { if self.interfaces.contains(Interface::Hypertext) { Ok(HypertextProxy::builder(self.proxy.connection()) .cache_properties(zbus::proxy::CacheProperties::No) .destination(self.proxy.destination())? .path(self.proxy.path())? .build() .await?) } else { Err(AtspiError::InterfaceNotAvailable("Hypertext")) } } /// Get the `Image` interface proxy. /// /// # Errors /// /// Returns an error if the interface is not available. pub async fn image(&self) -> Result> { if self.interfaces.contains(Interface::Image) { Ok(ImageProxy::builder(self.proxy.connection()) .cache_properties(zbus::proxy::CacheProperties::No) .destination(self.proxy.destination())? .path(self.proxy.path())? .build() .await?) } else { Err(AtspiError::InterfaceNotAvailable("Image")) } } /// Get the `Registry` interface proxy. /// /// # Errors /// /// Returns an error if the interface is not available. pub async fn selection(&self) -> Result> { if self.interfaces.contains(Interface::Selection) { Ok(SelectionProxy::builder(self.proxy.connection()) .cache_properties(zbus::proxy::CacheProperties::No) .destination(self.proxy.destination())? .path(self.proxy.path())? .build() .await?) } else { Err(AtspiError::InterfaceNotAvailable("Selection")) } } /// Get the `Table` interface proxy. /// /// # Errors /// /// Returns an error if the interface is not available. pub async fn table(&self) -> Result> { if self.interfaces.contains(Interface::Table) { Ok(TableProxy::builder(self.proxy.connection()) .cache_properties(zbus::proxy::CacheProperties::No) .destination(self.proxy.destination())? .path(self.proxy.path())? .build() .await?) } else { Err(AtspiError::InterfaceNotAvailable("Table")) } } /// Get the `TableCell` interface proxy. /// /// # Errors /// /// Returns an error if the interface is not available. pub async fn table_cell(&self) -> Result> { if self.interfaces.contains(Interface::TableCell) { Ok(TableCellProxy::builder(self.proxy.connection()) .cache_properties(zbus::proxy::CacheProperties::No) .destination(self.proxy.destination())? .path(self.proxy.path())? .build() .await?) } else { Err(AtspiError::InterfaceNotAvailable("TableCell")) } } /// Get the `Text` interface proxy. /// /// # Errors /// /// Returns an error if the interface is not available. pub async fn text(&self) -> Result> { if self.interfaces.contains(Interface::Text) { Ok(TextProxy::builder(self.proxy.connection()) .cache_properties(zbus::proxy::CacheProperties::No) .destination(self.proxy.destination())? .path(self.proxy.path())? .build() .await?) } else { Err(AtspiError::InterfaceNotAvailable("Text")) } } /// Get the `Value` interface proxy. /// /// # Errors /// /// Returns an error if the interface is not available. pub async fn value(&self) -> Result> { if self.interfaces.contains(Interface::Value) { Ok(ValueProxy::builder(self.proxy.connection()) .cache_properties(zbus::proxy::CacheProperties::No) .destination(self.proxy.destination())? .path(self.proxy.path())? .build() .await?) } else { Err(AtspiError::InterfaceNotAvailable("Value")) } } } atspi-proxies-0.13.0/src/registry.rs000064400000000000000000000016621046102023000155260ustar 00000000000000//! # `DBus` interface proxy for: `org.a11y.atspi.Registry` //! //! This code was generated by `zbus-xmlgen` `2.0.1` from `DBus` introspection data. //! Source: `Registry.xml`. //! //! You may prefer to adapt it, instead of using it verbatim. //! //! More information can be found in the //! [Writing a client proxy](https://dbus.pages.freedesktop.org/zbus/client.html) //! section of the zbus documentation. //! use zbus::names::OwnedBusName; #[zbus::proxy( interface = "org.a11y.atspi.Registry", default_service = "org.a11y.atspi.Registry", default_path = "/org/a11y/atspi/registry" )] pub trait Registry { /// `DeregisterEvent` method fn deregister_event(&self, event: &str) -> zbus::Result<()>; /// `GetRegisteredEvents` method #[zbus(name = "GetRegisteredEvents")] fn registered_events(&self) -> zbus::Result>; /// `RegisterEvent` method fn register_event(&self, event: &str) -> zbus::Result<()>; } atspi-proxies-0.13.0/src/result.rs000064400000000000000000000000701046102023000151640ustar 00000000000000pub type AtspiResult = Result; atspi-proxies-0.13.0/src/selection.rs000064400000000000000000000025111046102023000156350ustar 00000000000000//! # `DBus` interface proxy for: `org.a11y.atspi.Selection` //! //! This code was generated by `zbus-xmlgen` `2.0.1` from `DBus` introspection data. //! Source: `Selection.xml`. //! //! You may prefer to adapt it, instead of using it verbatim. //! //! More information can be found in the //! [Writing a client proxy](https://dbus.pages.freedesktop.org/zbus/client.html) //! section of the zbus documentation. //! use atspi_common::object_ref::ObjectRefOwned; #[zbus::proxy(interface = "org.a11y.atspi.Selection", assume_defaults = true)] pub trait Selection { /// `ClearSelection` method fn clear_selection(&self) -> zbus::Result; /// `DeselectChild` method fn deselect_child(&self, child_index: i32) -> zbus::Result; /// `DeselectSelectedChild` method fn deselect_selected_child(&self, selected_child_index: i32) -> zbus::Result; /// `GetSelectedChild` method fn get_selected_child(&self, selected_child_index: i32) -> zbus::Result; /// `IsChildSelected` method fn is_child_selected(&self, child_index: i32) -> zbus::Result; /// `SelectAll` method fn select_all(&self) -> zbus::Result; /// `SelectChild` method fn select_child(&self, child_index: i32) -> zbus::Result; /// `NSelectedChildren` property #[zbus(property)] fn nselected_children(&self) -> zbus::Result; } atspi-proxies-0.13.0/src/socket.rs000064400000000000000000000042501046102023000151420ustar 00000000000000//! # `DBus` interface proxy for: `org.a11y.atspi.Socket` //! //! This code was generated by `zbus-xmlgen` `2.0.1` from `DBus` introspection data. //! Source: `Socket.xml`. //! //! You may prefer to adapt it, instead of using it verbatim. //! //! More information can be found in the //! [Writing a client proxy](https://dbus.pages.freedesktop.org/zbus/client.html) //! section of the zbus documentation. //! use atspi_common::object_ref::ObjectRefOwned; #[zbus::proxy( interface = "org.a11y.atspi.Socket", default_path = "/org/a11y/atspi/accessible/root", default_service = "org.a11y.atspi.Registry" )] pub trait Socket { /// @plug: a string for the unique bus name of the application, and an object path /// for the application's' root object. /// /// This is the entry point for an application that wants to register itself against /// the accessibility registry. The application's root object, which it passes in /// @plug, must support the org.a11y.atspi.Application interface. /// /// When an application calls this method on the registry, the following handshake happens: /// /// * Application calls this method on the registry to identify itself. /// * The registry sets the "Id" property on the org.a11y.atspi.Application interface on the @plug object. /// * The Embed method returns with the bus name and object path for the registry's root object. /// Returns: the bus name and object path of the registry's root object. fn embed(&self, plug: &(&str, zbus::zvariant::ObjectPath<'_>)) -> zbus::Result; /// This method is called by a socket to inform the plug that it is being /// embedded. The plug should register the embedding socket as its parent. fn embedded(&self, path: zbus::zvariant::ObjectPath<'_>) -> zbus::Result<()>; /// Unembed method /// @plug: a string for the unique bus name of the application, and an object path /// for the application's' root object. /// /// Unregisters an application from the accesibility registry. It is not necessary to /// call this method; the accessibility registry detects when an application /// disconnects from the bus. fn unembed(&self, plug: &(&str, zbus::zvariant::ObjectPath<'_>)) -> zbus::Result<()>; } atspi-proxies-0.13.0/src/table.rs000064400000000000000000000061221046102023000147410ustar 00000000000000//! # `DBus` interface proxy for: `org.a11y.atspi.Table` //! //! This code was generated by `zbus-xmlgen` `2.0.1` from `DBus` introspection data. //! Source: `Table.xml`. //! //! You may prefer to adapt it, instead of using it verbatim. //! //! More information can be found in the //! [Writing a client proxy](https://dbus.pages.freedesktop.org/zbus/client.html) //! section of the zbus documentation. //! use atspi_common::object_ref::ObjectRefOwned; #[zbus::proxy(interface = "org.a11y.atspi.Table", assume_defaults = true)] pub trait Table { /// `AddColumnSelection` method fn add_column_selection(&self, column: i32) -> zbus::Result; /// `AddRowSelection` method fn add_row_selection(&self, row: i32) -> zbus::Result; /// `GetAccessibleAt` method fn get_accessible_at(&self, row: i32, column: i32) -> zbus::Result; /// `GetColumnAtIndex` method fn get_column_at_index(&self, index: i32) -> zbus::Result; /// `GetColumnDescription` method fn get_column_description(&self, column: i32) -> zbus::Result; /// `GetColumnExtentAt` method fn get_column_extent_at(&self, row: i32, column: i32) -> zbus::Result; /// `GetColumnHeader` method fn get_column_header(&self, column: i32) -> zbus::Result; /// `GetIndexAt` method fn get_index_at(&self, row: i32, column: i32) -> zbus::Result; /// `GetRowAtIndex` method fn get_row_at_index(&self, index: i32) -> zbus::Result; /// `GetRowColumnExtentsAtIndex` method fn get_row_column_extents_at_index( &self, index: i32, ) -> zbus::Result<(bool, i32, i32, i32, i32, bool)>; /// `GetRowDescription` method fn get_row_description(&self, row: i32) -> zbus::Result; /// `GetRowExtentAt` method fn get_row_extent_at(&self, row: i32, column: i32) -> zbus::Result; /// `GetRowHeader` method fn get_row_header(&self, row: i32) -> zbus::Result; /// `GetSelectedColumns` method fn get_selected_columns(&self) -> zbus::Result>; /// `GetSelectedRows` method fn get_selected_rows(&self) -> zbus::Result>; /// `IsColumnSelected` method fn is_column_selected(&self, column: i32) -> zbus::Result; /// `IsRowSelected` method fn is_row_selected(&self, row: i32) -> zbus::Result; /// `IsSelected` method fn is_selected(&self, row: i32, column: i32) -> zbus::Result; /// `RemoveColumnSelection` method fn remove_column_selection(&self, column: i32) -> zbus::Result; /// `RemoveRowSelection` method fn remove_row_selection(&self, row: i32) -> zbus::Result; /// `Caption` property #[zbus(property)] fn caption(&self) -> zbus::Result; /// `NColumns` property #[zbus(property)] fn ncolumns(&self) -> zbus::Result; /// `NRows` property #[zbus(property)] fn nrows(&self) -> zbus::Result; /// `NSelectedColumns` property #[zbus(property)] fn nselected_columns(&self) -> zbus::Result; /// `NSelectedRows` property #[zbus(property)] fn nselected_rows(&self) -> zbus::Result; /// `Summary` property #[zbus(property)] fn summary(&self) -> zbus::Result; } atspi-proxies-0.13.0/src/table_cell.rs000064400000000000000000000023411046102023000157370ustar 00000000000000//! # `DBus` interface proxy for: `org.a11y.atspi.TableCell` //! //! This code was generated by `zbus-xmlgen` `2.0.1` from `DBus` introspection data. //! Source: `TableCell.xml`. //! //! You may prefer to adapt it, instead of using it verbatim. //! //! More information can be found in the //! [Writing a client proxy](https://dbus.pages.freedesktop.org/zbus/client.html) //! section of the zbus documentation. //! use atspi_common::object_ref::ObjectRefOwned; #[zbus::proxy(interface = "org.a11y.atspi.TableCell", assume_defaults = true)] pub trait TableCell { /// `GetColumnHeaderCells` method fn get_column_header_cells(&self) -> zbus::Result>; /// `GetRowColumnSpan` method fn get_row_column_span(&self) -> zbus::Result<(bool, i32, i32, i32, i32)>; /// `GetRowHeaderCells` method fn get_row_header_cells(&self) -> zbus::Result>; /// `ColumnSpan` property #[zbus(property)] fn column_span(&self) -> zbus::Result; /// `Position` property #[zbus(property)] fn position(&self) -> zbus::Result<(i32, i32)>; /// `RowSpan` property #[zbus(property)] fn row_span(&self) -> zbus::Result; /// `Table` property #[zbus(property)] fn table(&self) -> zbus::Result; } atspi-proxies-0.13.0/src/text.rs000064400000000000000000000100601046102023000146320ustar 00000000000000//! # `DBus` interface proxy for: `org.a11y.atspi.Text` //! //! This code was generated by `zbus-xmlgen` `2.0.1` from `DBus` introspection data. //! Source: `Text.xml`. //! //! You may prefer to adapt it, instead of using it verbatim. //! //! More information can be found in the //! [Writing a client proxy](https://dbus.pages.freedesktop.org/zbus/client.html) //! section of the zbus documentation. //! #![allow(clippy::too_many_arguments)] // this is to silence clippy due to zbus expanding parameter expressions use crate::common::{ClipType, CoordType, Granularity}; #[zbus::proxy(interface = "org.a11y.atspi.Text", assume_defaults = true)] pub trait Text { /// `AddSelection` method fn add_selection(&self, start_offset: i32, end_offset: i32) -> zbus::Result; /// `GetAttributeRun` method fn get_attribute_run( &self, offset: i32, include_defaults: bool, ) -> zbus::Result<(std::collections::HashMap, i32, i32)>; /// `GetAttributeValue` method fn get_attribute_value(&self, offset: i32, attribute_name: &str) -> zbus::Result; /// `GetAttributes` method fn get_attributes( &self, offset: i32, ) -> zbus::Result<(std::collections::HashMap, i32, i32)>; /// `GetBoundedRanges` method fn get_bounded_ranges( &self, x: i32, y: i32, width: i32, height: i32, coord_type: CoordType, x_clip_type: ClipType, y_clip_type: ClipType, ) -> zbus::Result>; /// `GetCharacterAtOffset` method fn get_character_at_offset(&self, offset: i32) -> zbus::Result; /// `GetCharacterExtents` method fn get_character_extents( &self, offset: i32, coord_type: CoordType, ) -> zbus::Result<(i32, i32, i32, i32)>; /// `GetDefaultAttributeSet` method fn get_default_attribute_set(&self) -> zbus::Result>; /// `GetDefaultAttributes` method fn get_default_attributes(&self) -> zbus::Result>; /// `GetNSelections` method fn get_nselections(&self) -> zbus::Result; /// `GetOffsetAtPoint` method fn get_offset_at_point(&self, x: i32, y: i32, coord_type: CoordType) -> zbus::Result; /// `GetRangeExtents` method fn get_range_extents( &self, start_offset: i32, end_offset: i32, coord_type: CoordType, ) -> zbus::Result<(i32, i32, i32, i32)>; /// `GetSelection` method fn get_selection(&self, selection_num: i32) -> zbus::Result<(i32, i32)>; /// `GetStringAtOffset` method fn get_string_at_offset( &self, offset: i32, granularity: Granularity, ) -> zbus::Result<(String, i32, i32)>; /// `GetText` method /// This should be called with explicitly known offsets. Calling with an arbitrary /// large offset can cause undefined behavior or no text to be returned. fn get_text(&self, start_offset: i32, end_offset: i32) -> zbus::Result; /// `GetTextAfterOffset` method fn get_text_after_offset(&self, offset: i32, type_: u32) -> zbus::Result<(String, i32, i32)>; /// `GetTextAtOffset` method fn get_text_at_offset(&self, offset: i32, type_: u32) -> zbus::Result<(String, i32, i32)>; /// `GetTextBeforeOffset` method fn get_text_before_offset(&self, offset: i32, type_: u32) -> zbus::Result<(String, i32, i32)>; /// `RemoveSelection` method fn remove_selection(&self, selection_num: i32) -> zbus::Result; /// `ScrollSubstringTo` method fn scroll_substring_to( &self, start_offset: i32, end_offset: i32, type_: u32, ) -> zbus::Result; /// `ScrollSubstringToPoint` method fn scroll_substring_to_point( &self, start_offset: i32, end_offset: i32, type_: u32, x: i32, y: i32, ) -> zbus::Result; /// `SetCaretOffset` method fn set_caret_offset(&self, offset: i32) -> zbus::Result; /// `SetSelection` method fn set_selection( &self, selection_num: i32, start_offset: i32, end_offset: i32, ) -> zbus::Result; /// `CaretOffset` property #[zbus(property)] fn caret_offset(&self) -> zbus::Result; /// `CharacterCount` property #[zbus(property)] fn character_count(&self) -> zbus::Result; } atspi-proxies-0.13.0/src/value.rs000064400000000000000000000021031046102023000147610ustar 00000000000000//! # `DBus` interface proxy for: `org.a11y.atspi.Value` //! //! This code was generated by `zbus-xmlgen` `2.0.1` from `DBus` introspection data. //! Source: `Value.xml`. //! //! You may prefer to adapt it, instead of using it verbatim. //! //! More information can be found in the //! [Writing a client proxy](https://dbus.pages.freedesktop.org/zbus/client.html) //! section of the zbus documentation. //! #[zbus::proxy(interface = "org.a11y.atspi.Value", assume_defaults = true)] pub trait Value { /// `CurrentValue` property #[zbus(property)] fn current_value(&self) -> zbus::Result; /// Set `CurrentValue` property #[zbus(property)] fn set_current_value(&self, value: f64) -> zbus::Result<()>; /// `MaximumValue` property #[zbus(property)] fn maximum_value(&self) -> zbus::Result; /// `MinimumIncrement` property #[zbus(property)] fn minimum_increment(&self) -> zbus::Result; /// `MinimumValue` property #[zbus(property)] fn minimum_value(&self) -> zbus::Result; /// `Text` property #[zbus(property)] fn text(&self) -> zbus::Result; }