Skip to main content

LogSink

Struct LogSink 

Source
pub struct LogSink { /* private fields */ }
Expand description

Reads a daemon’s output on stdin and writes it to the log store

Spawned by the supervisor as a sibling of the daemon, holding the read end of the daemon’s output pipe. Keeping the reader in its own process is what makes logging survive a supervisor crash: the pipe still has a reader, so the daemon is neither killed by SIGPIPE nor blocked, and no output is lost. Exits when the pipe reaches end of file, which happens once the daemon and every descendant holding the write end have gone.

Implementations§

Source§

impl LogSink

Source

pub async fn run(&self) -> Result<()>

Trait Implementations§

Source§

impl CommandArgs for LogSink

Source§

const COMMAND: &'static Command<'static>

The parse tables for this command. Read more
Source§

const META: &'static CommandMeta<'static>

The metadata for this command.
Source§

type Partial = Partial

Values collected so far. Partly-filled by construction, since a parse can stop early. Read more
Source§

fn start() -> Self::Partial

A partial with any declared defaults already in place. Read more
Source§

fn apply(partial: &mut Self::Partial, event: &Event<'_, '_, '_>) -> bool

Take one event, and say whether it belonged to this command. Read more
Source§

fn apply_mirrored_global( partial: &mut Self::Partial, event: &Event<'_, '_, '_>, ) -> bool

Mirror a redeclared child flag’s value into this command’s matching global field. Read more
Source§

fn deprecations(partial: &Self::Partial, out: &mut Vec<Warning<'static>>)

The deprecated declarations this command line actually used. Read more
Source§

fn check<'t, 'v>(partial: &mut Self::Partial) -> Result<(), Error<'t, 'v>>

Everything this command decides after the last token: required-ness, choices, and how many values a variadic got. Read more
Source§

fn check_with_args_override_self<'t, 'v>( partial: &mut Self::Partial, args_override_self: bool, ) -> Result<(), Error<'t, 'v>>

Run checks under the repeat policy of the command that composed these args. Read more
Source§

fn check_with_args_override_self_for_view<'t, 'v>( partial: &mut Self::Partial, args_override_self: bool, view: Option<&'static ViewMeta<'static>>, ) -> Result<(), Error<'t, 'v>>

Run checks under a parent command’s repeat policy and executable projection.
Source§

fn check_update<'t, 'v>( partial: &mut Self::Partial, standing: &Self, ) -> Result<(), Error<'t, 'v>>

CommandArgs::check against the union of this argv and what the caller had. Read more
Source§

fn check_update_with_args_override_self<'t, 'v>( partial: &mut Self::Partial, args_override_self: bool, standing: &Self, ) -> Result<(), Error<'t, 'v>>

Source§

fn any_given(partial: &Self::Partial) -> Option<&'static str>

One declaration in this command that ended up being given, if any. Read more
Source§

fn exclusive_given(partial: &Self::Partial) -> Option<&'static str>

One exclusive flag in this command that was given, if any. Read more
Source§

fn argument_state( partial: &Self::Partial, selector: &str, ) -> Option<ArgumentState>

Find an argument by any selector it accepts. Read more
Source§

fn canonical_selector(selector: &str) -> Option<&'static str>

The portable spelling for a selector accepted by this typed command.
Source§

fn argument_matches( partial: &Self::Partial, selector: &str, value: &[u8], ) -> Option<bool>

Whether a selected argument has an explicitly supplied value. Read more
Source§

fn standing_state(standing: &Self, selector: &str) -> Option<ArgumentState>

Find an argument by selector in a value the caller already holds.
Source§

fn standing_matches( standing: &Self, selector: &str, value: &[u8], ) -> Option<bool>

Whether an argument in a value the caller already holds matches value.
Source§

fn displace(partial: &mut Self::Partial, selector: &str) -> bool

Reset the flag named by selector after an overriding token wins.
Source§

fn event_matches(event: &Event<'_, '_, '_>, selector: &str) -> bool

Whether this event binds the flag named by selector.
Source§

fn any_standing(__usage_s: &Self) -> Option<&'static str>

One declaration in this command whose value the caller already had. Read more
Source§

fn apply_defaults(partial: &mut Self::Partial)

Fill fields in this command from their declared defaults. Read more
Source§

fn apply_defaults_for_view( partial: &mut Self::Partial, __usage_view: Option<&'static ViewMeta<'static>>, )

Fill defaults for fields visible through an executable view. Read more
Source§

fn apply_defaults_update(partial: &mut Self::Partial, standing: &Self)

CommandArgs::apply_defaults, filling only what the caller does not already have. Read more
Source§

fn apply_env(partial: &mut Self::Partial)

Fill fields in this command from their declared environment variables. Read more
Source§

fn apply_env_for_view( partial: &mut Self::Partial, __usage_view: Option<&'static ViewMeta<'static>>, )

Fill environment fallbacks for fields visible through an executable view.
Source§

fn apply_env_update(partial: &mut Self::Partial, standing: &Self)

CommandArgs::apply_env, filling only what the caller does not already have.
Source§

fn omit_own_for_view(partial: &mut Self::Partial)

Mark this command’s own fields as outside an injected executable-view path. Read more
Source§

fn build<'t, 'v>(partial: Self::Partial) -> Result<Self, Error<'t, 'v>>

Build the struct from what was collected. Read more
Source§

fn merge<'t, 'v>( partial: Self::Partial, standing: &mut Self, ) -> Result<(), Error<'t, 'v>>

Overwrite the fields this argv gave, and leave the rest of standing alone. Read more
Source§

const SETTINGS_BINDINGS: &'static [(&'static str, &'static str)] = _

Every flag this command reads into a setting, and the setting it sets. Read more
Source§

fn settings_given(partial: &Self::Partial) -> Vec<(&'static str, SettingGiven)>

The settings this command line gave values for. Read more
Source§

fn deprecations_for_view_path( partial: &Self::Partial, remaining_descendants: usize, out: &mut Vec<Warning<'static>>, )

Report deprecations while traversing the injected parents of a view. Read more
Source§

fn apply_env_for_view_path( partial: &mut Self::Partial, remaining_descendants: usize, )

Fill environment fallbacks while traversing the injected parents of a view. Read more
Source§

fn check_for_view_path<'t, 'v>( partial: &mut Self::Partial, remaining_descendants: usize, ) -> Result<(), Error<'t, 'v>>

Check a command while traversing the injected parents of a view. Read more
Source§

impl Debug for LogSink

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<__UsageOmitter> ViewCommandArgs<__UsageOmitter> for LogSink
where __UsageOmitter: Omitted<String> + Omitted<Option<String>> + Omitted<u64> + Omitted<bool>,

Source§

fn build_for_view<'t, 'v>(partial: Self::Partial) -> Result<Self, Error<'t, 'v>>

Auto Trait Implementations§

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<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<D> OwoColorize for D

Source§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
Source§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
Source§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
Source§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
Source§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
Source§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
Source§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
Source§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
Source§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
Source§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
Source§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
Source§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
Source§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
Source§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
Source§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
Source§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
Source§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
Source§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
Source§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
Source§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
Source§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
Source§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
Source§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
Source§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
Source§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
Source§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
Source§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
Source§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
Source§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
Source§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
Source§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
Source§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
Source§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
Source§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
Source§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
Source§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
Source§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
Source§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
Source§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
Source§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
Source§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
Source§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
Source§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
Source§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
Source§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
Source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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