pub struct Watchexec { /* private fields */ }Expand description
The main watchexec runtime.
All this really does is tie the pieces together in one convenient interface.
It creates the correct channels, spawns every available event sources, the action worker, the error hook, and provides an interface to change the runtime configuration during the runtime, inject synthetic events, and wait for graceful shutdown.
Implementations§
source§impl Watchexec
impl Watchexec
sourcepub fn new(
init: InitConfig,
runtime: RuntimeConfig
) -> Result<Arc<Self>, CriticalError>
pub fn new( init: InitConfig, runtime: RuntimeConfig ) -> Result<Arc<Self>, CriticalError>
Instantiates a new Watchexec runtime from configuration.
Returns an Arc for convenience; use try_unwrap to get the value
directly if needed.
Note that RuntimeConfig is not a “live” or “shared” instance: if using reconfiguration,
you’ll usually pass a clone() of your RuntimeConfig instance to this function; changes
made to the instance you keep will not automatically be used by Watchexec, you need to
call reconfigure() with your updated config to apply the changes.
Watchexec will subscribe to most signals sent to the process it runs in and send them, as
Events, to the action handler. At minimum, you should check for interrupt/ctrl-c events
and return an Outcome::Exit, otherwise hitting ctrl-c will do nothing.
sourcepub fn reconfigure(&self, config: RuntimeConfig) -> Result<(), ReconfigError>
pub fn reconfigure(&self, config: RuntimeConfig) -> Result<(), ReconfigError>
Applies a new RuntimeConfig to the runtime.
sourcepub async fn send_event(
&self,
event: Event,
priority: Priority
) -> Result<(), CriticalError>
pub async fn send_event( &self, event: Event, priority: Priority ) -> Result<(), CriticalError>
Inputs an Event directly.
This can be useful for testing, for custom event sources, or for one-off action triggers (for example, on start).
Hint: use Event::default() to send an empty event (which won’t be filtered).
sourcepub fn main(&self) -> JoinHandle<Result<(), CriticalError>> ⓘ
pub fn main(&self) -> JoinHandle<Result<(), CriticalError>> ⓘ
Start watchexec and obtain the handle to its main task.
This must only be called once.
Panics
Panics if called twice.