pub struct OptionSpec {
pub id: u16,
pub short: Option<u8>,
pub long: Option<&'static str>,
pub arity: Arity,
pub negatable: bool,
}Expand description
What:
struct OptionSpec is one row of a Git option table.
u16 is an unsigned 16-bit integer (siblings:
u8,
u32,
usize).
Option<u8> is “a byte or nothing”;
&'static str is text baked into the program.
Why:
id lets a command module ask about an option by a named constant instead of by
table position.
u16 (not usize) keeps rows small;
no table has 65 thousand rows.
In TS you’d write (pseudocode):
type OptionSpec = { id: number; short?: string; long?: string; arity: Arity; negatable: boolean };Fields§
§id: u16Identifier chosen by the command module;
UNREAD when no fact reads the option.
short: Option<u8>Git short_name:
the single letter after one dash.
long: Option<&'static str>Git long_name:
the spelling after two dashes;
it may itself start with no-.
arity: ArityValue relationship.
negatable: boolWhether --no-<long> is accepted (false for PARSE_OPT_NONEG).
Trait Implementations§
Source§impl Clone for OptionSpec
impl Clone for OptionSpec
impl Copy for OptionSpec
Source§impl Debug for OptionSpec
impl Debug for OptionSpec
impl Eq for OptionSpec
Source§impl PartialEq for OptionSpec
impl PartialEq for OptionSpec
impl StructuralPartialEq for OptionSpec
Auto Trait Implementations§
impl Freeze for OptionSpec
impl RefUnwindSafe for OptionSpec
impl Send for OptionSpec
impl Sync for OptionSpec
impl Unpin for OptionSpec
impl UnsafeUnpin for OptionSpec
impl UnwindSafe for OptionSpec
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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