use crate::{accessible::Role, InterfaceSet, StateSet};
use serde::{Deserialize, Serialize};
use zbus::dbus_proxy;
use zbus::zvariant::{OwnedObjectPath, Type};
#[allow(clippy::module_name_repetitions)]
#[derive(Clone, Debug, Serialize, Deserialize, Type, PartialEq, Eq, Hash)]
pub struct CacheItem {
pub object: (String, OwnedObjectPath),
pub app: (String, OwnedObjectPath),
pub parent: (String, OwnedObjectPath),
pub index: i32,
pub children: i32,
pub ifaces: InterfaceSet,
pub short_name: String,
pub role: Role,
pub name: String,
pub states: StateSet,
}
#[test]
fn zvariant_type_signature_of_cache_item() {
assert_eq!(
CacheItem::signature(),
zbus::zvariant::Signature::from_static_str("((so)(so)(so)iiassusau)").unwrap()
);
}
#[dbus_proxy(interface = "org.a11y.atspi.Cache", default_path = "/org/a11y/atspi/cache")]
trait Cache {
fn get_items(&self) -> zbus::Result<Vec<CacheItem>>;
#[dbus_proxy(signal)]
fn add_accessible(&self, node_added: CacheItem) -> zbus::Result<()>;
#[dbus_proxy(signal)]
fn remove_accessible(&self, node_removed: (String, OwnedObjectPath)) -> zbus::Result<()>;
}
use crate::{AtspiProxy, Interface};
impl<'a> AtspiProxy for CacheProxy<'a> {
const INTERFACE: Interface = Interface::Cache;
}