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: boolEvery session, claim, handover and review, not the summary
live_claims: boolOnly 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: boolOnly 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: MeshQueryArgsWhere the repository is and how to answer.
Implementations§
Source§impl MeshViewArgs
impl MeshViewArgs
Sourcepub fn pairs(&self) -> Vec<String>
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
impl Args for MeshViewArgs
Source§fn group_id() -> Option<Id>
fn group_id() -> Option<Id>
ArgGroup::id][crate::ArgGroup::id] for this set of argumentsSource§fn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
Source§fn augment_args_for_update<'b>(__clap_app: Command) -> Command
fn augment_args_for_update<'b>(__clap_app: Command) -> Command
Command] so it can instantiate self via
[FromArgMatches::update_from_arg_matches_mut] Read moreSource§impl Debug for MeshViewArgs
impl Debug for MeshViewArgs
Source§impl FromArgMatches for MeshViewArgs
impl FromArgMatches for MeshViewArgs
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches to self.