Skip to main content

ChildSpecification

Struct ChildSpecification 

Source
pub struct ChildSpecification<S = WorkerSpec> { /* private fields */ }
Expand description

A specification for a process to be added to a Supervisor.

A child specification describes how the supervisor should create and manage a child: the underlying future that represents the process, along with metadata such as its name and shutdown strategy. All processes in a supervisor, whether a worker or a (nested) supervisor, are represented by a ChildSpecification.

Generally, callers should prefer to use add_worker directly, which can accept either Supervisor or any value that implements Supervisable, without needing to explicitly create a ChildSpecification. This is preferred as it is more concise but also will ensure that relevant settings are configured properly for the given worker type, such as using the proper shutdown strategy for supervisors to allow for complete, graceful shutdown.

If more control is needed, ChildSpecification::worker can be used to create a specification directly, allowing access to configuring those more advanced settings. This is currently only valid for worker processes, as supervisors have no additional user-configurable settings.

Implementations§

Source§

impl ChildSpecification<WorkerSpec>

Source

pub fn worker<T: Supervisable + 'static>(worker: T) -> Self

Creates a specification for the given worker.

Source

pub fn with_restart_type(self, restart_type: RestartType) -> Self

Sets the restart policy for this worker.

Defaults to RestartType::Permanent.

Trait Implementations§

Source§

impl From<Supervisor> for ChildSpecification<SupervisorSpec>

Source§

fn from(supervisor: Supervisor) -> Self

Converts to this type from the input type.
Source§

impl<T> From<T> for ChildSpecification<WorkerSpec>
where T: Supervisable + 'static,

Source§

fn from(worker: T) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<S> Freeze for ChildSpecification<S>
where S: Freeze,

§

impl<S> RefUnwindSafe for ChildSpecification<S>
where S: RefUnwindSafe,

§

impl<S> Send for ChildSpecification<S>
where S: Send,

§

impl<S> Sync for ChildSpecification<S>
where S: Sync,

§

impl<S> Unpin for ChildSpecification<S>
where S: Unpin,

§

impl<S> UnsafeUnpin for ChildSpecification<S>
where S: UnsafeUnpin,

§

impl<S> UnwindSafe for ChildSpecification<S>
where S: UnwindSafe,

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

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 T
where U: From<T>,

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> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> Track for T

§

fn track_resources(self, token: ResourceGroupToken) -> Tracked<Self>

Instruments this type by attaching the given resource group token, returning a Tracked wrapper. Read more
§

fn in_current_resource_group(self) -> Tracked<Self>

Instruments this type by attaching the current resource group, returning a Tracked wrapper. Read more
Source§

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

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

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

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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