GstPipelineStudio/src/macros.rs

34 lines
773 B
Rust
Raw Permalink Normal View History

2021-11-19 11:34:19 +00:00
// Macro for upgrading a weak reference or returning the given value
//
// This works for glib/gtk objects as well as anything else providing an upgrade method
macro_rules! upgrade_weak {
($x:ident, $r:expr) => {{
match $x.upgrade() {
Some(o) => o,
None => return $r,
}
}};
($x:ident) => {
upgrade_weak!($x, ())
};
}
macro_rules! str_some_value (
($value:expr, $t:ty) => (
{
let value = $value.get::<$t>().expect("ser_some_value macro");
value
}
);
);
macro_rules! str_opt_value (
($value:expr, $t:ty) => (
{
match $value.get::<$t>() {
Ok(v) => Some(v),
Err(_e) => None
}
}
);
);