diff --git a/examples/bind.rs b/examples/bind.rs index b389eef..9ed5a9f 100644 --- a/examples/bind.rs +++ b/examples/bind.rs @@ -30,12 +30,12 @@ fn main() -> hyprland::Result<()> { Keyword::set("submap", "reset")?; let instance = Instance::from_current_env()?; - dispatch!(&instance, Custom, "submap", "example")?; + dispatch!(&instance; Custom, "submap", "example")?; println!("Press enter to revert to default keymap"); let _ = std::io::stdin() .read(&mut [0u8]) .expect("Crashed: Run `hyprctl dispatch submap reset` to return to default submap"); - dispatch!(&instance, Custom, "submap", "reset")?; + dispatch!(&instance; Custom, "submap", "reset")?; Ok(()) } diff --git a/examples/bind_async.rs b/examples/bind_async.rs index 3c0bfc9..9230a10 100644 --- a/examples/bind_async.rs +++ b/examples/bind_async.rs @@ -31,9 +31,9 @@ async fn main() -> hyprland::Result<()> { Keyword::set_async("submap", "reset").await?; let instance3 = Instance::from_current_env()?; - dispatch!(async; &instance3, Custom, "submap", "example").await?; + dispatch!(async; &instance3; Custom, "submap", "example").await?; println!("Press enter to revert to default keymap"); let _ = std::io::stdin().read(&mut [0u8])?; - dispatch!(async; &instance3, Custom, "submap", "reset").await?; + dispatch!(async; &instance3; Custom, "submap", "reset").await?; Ok(()) } diff --git a/examples/dispatch.rs b/examples/dispatch.rs index 3790ab5..67e4567 100644 --- a/examples/dispatch.rs +++ b/examples/dispatch.rs @@ -53,17 +53,17 @@ fn main() -> hyprland::Result<()> { Dispatch::call(ToggleFloating(None))?; describe("Toggling split layout"); - Dispatch::call(ToggleSplit)?; + dispatch!(ToggleSplit)?; describe("Reverting split layout"); Dispatch::call(ToggleSplit)?; describe("Toggling opaque"); - Dispatch::call(ToggleOpaque)?; + dispatch!(ToggleOpaque)?; describe("Reverting opaque"); Dispatch::call(ToggleOpaque)?; describe("Closing window"); - Dispatch::call(KillActiveWindow)?; + dispatch!(KillActiveWindow)?; Ok(()) } diff --git a/examples/dispatch_async.rs b/examples/dispatch_async.rs index a4afdd8..37b673f 100644 --- a/examples/dispatch_async.rs +++ b/examples/dispatch_async.rs @@ -46,17 +46,17 @@ async fn main() -> hyprland::Result<()> { Dispatch::call_async(ToggleFloating(None)).await?; describe("Toggling split layout"); - Dispatch::call_async(ToggleSplit).await?; + dispatch!(async; ToggleSplit).await?; describe("Reverting split layout"); Dispatch::call_async(ToggleSplit).await?; describe("Toggling opaque"); - Dispatch::call_async(ToggleOpaque).await?; + dispatch!(async; ToggleOpaque).await?; describe("Reverting opaque"); Dispatch::call_async(ToggleOpaque).await?; describe("Closing window"); - Dispatch::call_async(KillActiveWindow).await?; + dispatch!(async; KillActiveWindow).await?; Ok(()) } diff --git a/src/dispatch.rs b/src/dispatch.rs index fee8262..bdfbcab 100644 --- a/src/dispatch.rs +++ b/src/dispatch.rs @@ -835,16 +835,28 @@ impl Dispatch { /// Macro abstraction over [Dispatch::call] #[macro_export] macro_rules! dispatch { - (async; $instance:expr, $dis:ident, $( $arg:expr ), *) => { - $crate::dispatch::Dispatch::instance_call_async($instance, $crate::dispatch::DispatchType::$dis($($arg), *)) + (async; $dis:ident) => { + $crate::dispatch::Dispatch::call_async($crate::dispatch::DispatchType::$dis) }; (async; $dis:ident, $( $arg:expr ), *) => { $crate::dispatch::Dispatch::call_async($crate::dispatch::DispatchType::$dis($($arg), *)) }; - ($instance:expr, $dis:ident, $( $arg:expr ), *) => { - $crate::dispatch::Dispatch::instance_call($instance, $crate::dispatch::DispatchType::$dis($($arg), *)) + (async; $instance:expr; $dis:ident) => { + $crate::dispatch::Dispatch::instance_call_async($instance, $crate::dispatch::DispatchType::$dis) + }; + (async; $instance:expr; $dis:ident, $( $arg:expr ), *) => { + $crate::dispatch::Dispatch::instance_call_async($instance, $crate::dispatch::DispatchType::$dis($($arg), *)) + }; + ($dis:ident) => { + $crate::dispatch::Dispatch::call($crate::dispatch::DispatchType::$dis) }; ($dis:ident, $( $arg:expr ), *) => { $crate::dispatch::Dispatch::call($crate::dispatch::DispatchType::$dis($($arg), *)) }; + ($instance:expr; $dis:ident) => { + $crate::dispatch::Dispatch::instance_call($instance, $crate::dispatch::DispatchType::$dis) + }; + ($instance:expr; $dis:ident, $( $arg:expr ), *) => { + $crate::dispatch::Dispatch::instance_call($instance, $crate::dispatch::DispatchType::$dis($($arg), *)) + }; }