Skip to main content

UnitLookup

Struct UnitLookup 

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

A connection to PID 1’s unit API that remembers what it has already asked.

Built once per collection cycle. The cache matters because the same unit can be wanted by more than one caller in a cycle — a .service can be both in [services] and the target of a tracked timer — and a miss costs a round trip to PID 1, which serves varlink requests one at a time.

Implementations§

Source§

impl UnitLookup

Source

pub async fn connect(socket_path: &str) -> Result<Self>

Source

pub async fn get(&mut self, name: &str) -> Result<Option<&ListOutput>>

Look a unit up, returning Ok(None) if systemd does not know it.

A transport or protocol failure is an error rather than None, so the caller can fall back to D-Bus for the whole phase. Collapsing the two would leave service stats silently empty on a broken socket while reporting success.

A unit that is genuinely absent is cached as absent: the answer will not change within a cycle, and re-asking would cost another round trip.

Source

pub fn fetches(&self) -> u64

Number of units fetched from PID 1 so far, for collection timings.

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

§

impl<T> Instrument for T

§

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

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

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, 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.
§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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