Struct watchexec::Watchexec

source ·
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

source

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.

source

pub fn reconfigure(&self, config: RuntimeConfig) -> Result<(), ReconfigError>

Applies a new RuntimeConfig to the runtime.

source

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).

source

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.

Trait Implementations§

source§

impl Debug for Watchexec

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more