use zbus::proxy;
use crate::error;
#[proxy(
interface = "org.freedesktop.UDisks2.NVMe.Namespace",
default_service = "org.freedesktop.UDisks2",
default_path = "/org/freedesktop/UDisks2/NVMe"
)]
pub trait Namespace {
fn format_namespace(
&self,
options: std::collections::HashMap<&str, zbus::zvariant::Value<'_>>,
) -> error::Result<()>;
#[zbus(property, name = "EUI64")]
fn eui64(&self) -> error::Result<String>;
#[zbus(property)]
fn format_percent_remaining(&self) -> error::Result<i32>;
#[zbus(property, name = "FormattedLBASize")]
fn formatted_lbasize(&self) -> error::Result<(u16, u16, u8)>;
#[zbus(property, name = "LBAFormats")]
fn lbaformats(&self) -> error::Result<Vec<(u16, u16, u8)>>;
#[zbus(property, name = "NGUID")]
fn nguid(&self) -> error::Result<String>;
#[zbus(property, name = "NSID")]
fn nsid(&self) -> error::Result<u32>;
#[zbus(property)]
fn namespace_capacity(&self) -> error::Result<u64>;
#[zbus(property)]
fn namespace_size(&self) -> error::Result<u64>;
#[zbus(property)]
fn namespace_utilization(&self) -> error::Result<u64>;
#[zbus(property, name = "UUID")]
fn uuid(&self) -> error::Result<String>;
#[zbus(property, name = "WWN")]
fn wwn(&self) -> error::Result<String>;
}