Skip to main content

MeshViewArgs

Struct MeshViewArgs 

Source
pub struct MeshViewArgs {
    pub full: bool,
    pub live_claims: bool,
    pub after: Option<u64>,
    pub session: Option<String>,
    pub runtime: Option<String>,
    pub kind: Option<String>,
    pub limit: Option<usize>,
    pub open: bool,
    pub matching: Option<String>,
    pub query: MeshQueryArgs,
}
Expand description

mesh peers and mesh state: how much of the mesh to show. Without a flag the answer is the summary, which stays the same size however long the mesh’s history grows; --full is every session, claim, handover and review the fold holds. The filters narrow either.

use clap::Parser;
use majordomus_cli::cli::{Cli, Command, MeshCommand, MeshViewArgs};

let cli = Cli::try_parse_from(["majordomus", "mesh", "state", "--full", "--live-claims",
    "--after", "42", "--session", "s1", "--runtime", "a1b2", "--kind", "claims",
    "--limit", "5", "--open", "--matching", "#905"]).unwrap();
let Command::Mesh(mesh) = cli.command else { panic!("expected `mesh`") };
let MeshCommand::State(view) = mesh.command else { panic!("expected `state`") };
let view: &MeshViewArgs = &view;
assert!(view.full && view.live_claims);
assert_eq!(view.pairs(), ["view=full", "claims=live", "after=42", "session=s1",
    "runtime=a1b2", "kind=claims", "limit=5", "open=true", "matching=#905"]);

// no flag is the summary, asked for by asking for nothing
let cli = Cli::try_parse_from(["majordomus", "mesh", "peers"]).unwrap();
let Command::Mesh(mesh) = cli.command else { panic!("expected `mesh`") };
let MeshCommand::Peers(view) = mesh.command else { panic!("expected `peers`") };
assert!(view.pairs().is_empty());

Fields§

§full: bool

Every session, claim, handover and review, not the summary

§live_claims: bool

Only claims that are still held

§after: Option<u64>

Only what moved after this Lamport stamp

§session: Option<String>

Only this session: its key or its bare id

§runtime: Option<String>

Only this runtime (<node>-<runtime>), or every runtime of a node id

§kind: Option<String>

Only this collection: sessions, claims, overlaps, handovers or reviews

§limit: Option<usize>

At most this many of each collection, the newest first kept

§open: bool

Only what is still open: active sessions, live claims, unanswered reviews, untaken handovers

§matching: Option<String>

Only what mentions this text: a path, a branch, an issue, a pull request, a word

§query: MeshQueryArgs

Where the repository is and how to answer.

Implementations§

Source§

impl MeshViewArgs

Source

pub fn pairs(&self) -> Vec<String>

The query string’s pairs, unencoded, in the order the flags are declared: what mesh state and mesh peers send to the running server. No flag is no pair, which asks the server for its default, the summary.

use clap::Parser;
use majordomus_cli::cli::{Cli, Command, MeshCommand};

let cli = Cli::try_parse_from(["majordomus", "mesh", "peers", "--open"]).unwrap();
let Command::Mesh(mesh) = cli.command else { panic!("expected `mesh`") };
let MeshCommand::Peers(view) = mesh.command else { panic!("expected `peers`") };
assert_eq!(view.pairs(), ["open=true"]);

Trait Implementations§

Source§

impl Args for MeshViewArgs

Source§

fn group_id() -> Option<Id>

Report the [ArgGroup::id][crate::ArgGroup::id] for this set of arguments
Source§

fn augment_args<'b>(__clap_app: Command) -> Command

Append to [Command] so it can instantiate Self via [FromArgMatches::from_arg_matches_mut] Read more
Source§

fn augment_args_for_update<'b>(__clap_app: Command) -> Command

Append to [Command] so it can instantiate self via [FromArgMatches::update_from_arg_matches_mut] Read more
Source§

impl Debug for MeshViewArgs

Source§

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

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

impl FromArgMatches for MeshViewArgs

Source§

fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
Source§

fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>

Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
Source§

fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.
Source§

fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.

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
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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.

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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