Implement std::fmt::Display for the error types

This commit is contained in:
Mika Attila 2015-03-10 19:14:18 +01:00
parent a0955acabd
commit 445f0b6d13
2 changed files with 29 additions and 4 deletions

View File

@ -1,9 +1,12 @@
extern crate libnotify;
fn main() {
let notify = libnotify::Context::new("hello").unwrap();
let notify = libnotify::Context::new("hello").unwrap_or_else(|e| {
panic!("{}", e);
});
let body_text = Some("This is the optional body text.");
let n = notify.new_notification("This is the summary.",
Some("This is the optional body text."),
None).unwrap();
n.show().unwrap();
body_text,
None).unwrap_or_else(|e| panic!("{}", e));
n.show().ok().expect("Failed to show notification");
}

View File

@ -17,6 +17,7 @@ extern crate "glib-2_0-sys" as glib;
use std::ffi::CString;
use std::marker::PhantomData;
use std::fmt;
use glib::types::{
TRUE,
@ -32,12 +33,33 @@ pub enum ContextCreationError {
NulError
}
impl fmt::Display for ContextCreationError {
fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> {
use ContextCreationError::*;
match *self {
AlreadyExists => write!(f, "A Libnotify context already exists."),
InitFailure => write!(f, "Failed to initialize libnotify."),
NulError => write!(f, "Argument contains a nul character.")
}
}
}
#[derive(Debug)]
pub enum NotificationCreationError {
NulError,
Unknown
}
impl fmt::Display for NotificationCreationError {
fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> {
use NotificationCreationError::*;
match *self {
NulError => write!(f, "Argument contains a nul character."),
Unknown => write!(f, "Unknown error")
}
}
}
/// The context which within libnotify operates.
///
/// Only one context can exist at a time.