util: Include Result logger
This commit is contained in:
17
src/style.rs
17
src/style.rs
@ -21,6 +21,7 @@
|
|||||||
use std::env;
|
use std::env;
|
||||||
|
|
||||||
use glib::object::ObjectExt;
|
use glib::object::ObjectExt;
|
||||||
|
use util::Warn;
|
||||||
|
|
||||||
/// Gathers stuff defined in C or called by C
|
/// Gathers stuff defined in C or called by C
|
||||||
pub mod c {
|
pub mod c {
|
||||||
@ -61,22 +62,6 @@ pub mod c {
|
|||||||
// not Adwaita, but rather fall back to default
|
// not Adwaita, but rather fall back to default
|
||||||
const DEFAULT_THEME_NAME: &str = "";
|
const DEFAULT_THEME_NAME: &str = "";
|
||||||
|
|
||||||
/// Sugar for logging errors in results
|
|
||||||
trait Warn {
|
|
||||||
type Value;
|
|
||||||
fn ok_warn(self, msg: &str) -> Option<Self::Value>;
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<T, E: std::error::Error> Warn for Result<T, E> {
|
|
||||||
type Value = T;
|
|
||||||
fn ok_warn(self, msg: &str) -> Option<T> {
|
|
||||||
self.map_err(|e| {
|
|
||||||
eprintln!("{}: {}", msg, e);
|
|
||||||
e
|
|
||||||
}).ok()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
struct GtkTheme {
|
struct GtkTheme {
|
||||||
name: String,
|
name: String,
|
||||||
variant: Option<String>,
|
variant: Option<String>,
|
||||||
|
|||||||
16
src/util.rs
16
src/util.rs
@ -177,6 +177,22 @@ impl<T> Borrow<Rc<T>> for Pointer<T> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Sugar for logging errors in results
|
||||||
|
pub trait Warn {
|
||||||
|
type Value;
|
||||||
|
fn ok_warn(self, msg: &str) -> Option<Self::Value>;
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<T, E: std::error::Error> Warn for Result<T, E> {
|
||||||
|
type Value = T;
|
||||||
|
fn ok_warn(self, msg: &str) -> Option<T> {
|
||||||
|
self.map_err(|e| {
|
||||||
|
eprintln!("{}: {}", msg, e);
|
||||||
|
e
|
||||||
|
}).ok()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub trait WarningHandler {
|
pub trait WarningHandler {
|
||||||
/// Handle a warning
|
/// Handle a warning
|
||||||
fn handle(&mut self, warning: &str);
|
fn handle(&mut self, warning: &str);
|
||||||
|
|||||||
Reference in New Issue
Block a user