#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum Unsupported {
TrayAnchor,
ClientPositioning,
}
impl std::fmt::Display for Unsupported {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Unsupported::TrayAnchor => f.write_str("tray-anchored styled popup"),
Unsupported::ClientPositioning => f.write_str("client-side toplevel positioning"),
}
}
}
#[derive(Debug)]
pub enum Error {
Unsupported(Unsupported),
BadIcon(String),
Platform(String),
}
impl std::fmt::Display for Error {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Error::Unsupported(u) => write!(f, "unsupported on this platform: {u}"),
Error::BadIcon(m) => write!(f, "bad icon: {m}"),
Error::Platform(m) => write!(f, "platform error: {m}"),
}
}
}
impl std::error::Error for Error {}
pub type Result<T> = std::result::Result<T, Error>;