pub enum Capability {
Show 29 variants
MultiAck,
MultiAckDetailed,
NoDone,
SideBand,
SideBand64k,
ReportStatus,
ReportStatusv2,
OfsDelta,
DeepenSince,
DeepenNot,
DeepenRelative,
ThinPack,
Shallow,
IncludeTag,
DeleteRefs,
Quiet,
Atomic,
NoThin,
NoProgress,
AllowTipSha1InWant,
AllowReachableSha1InWant,
PushCert(String),
PushOptions,
ObjectFormat(String),
SessionId(String),
Filter(String),
Symref(String),
Agent(String),
Unknown(String),
}Expand description
Git protocol capabilities
§Implementation Status Overview
§Implemented capabilities:
- Data transmission: SideBand, SideBand64k - Multiplexed data streams via side-band formatter
- Status reporting: ReportStatus, ReportStatusv2 - Push status feedback via protocol handlers
- Pack optimization: OfsDelta, ThinPack, NoThin - Delta compression and efficient transmission
- Protocol control: MultiAckDetailed, NoDone - ACK mechanism optimization for upload-pack
- Push control: Atomic, DeleteRefs, Quiet - Atomic operations and reference management
- Tag handling: IncludeTag - Automatic tag inclusion for upload-pack
- Client identification: Agent - Client/server identification in capability negotiation
§Not yet implemented capabilities:
- Basic protocol: MultiAck - Basic multi-ack support (only detailed version implemented)
- Shallow cloning: Shallow, DeepenSince, DeepenNot, DeepenRelative - Depth control for shallow clones
- Progress control: NoProgress - Progress output suppression
- Special fetch: AllowTipSha1InWant, AllowReachableSha1InWant - SHA1 validation in want processing
- Security: PushCert - Push certificate verification mechanism
- Extensions: PushOptions, Filter, Symref - Extended parameter handling
- Session management: SessionId, ObjectFormat - Session and format negotiation
Variants§
MultiAck
Multi-ack capability for upload-pack protocol
MultiAckDetailed
Multi-ack-detailed capability for more granular acknowledgment
NoDone
No-done capability to optimize upload-pack protocol
SideBand
Side-band capability for multiplexing data streams
SideBand64k
Side-band-64k capability for larger side-band packets
ReportStatus
Report-status capability for push status reporting
ReportStatusv2
Report-status-v2 capability for enhanced push status reporting
OfsDelta
OFS-delta capability for offset-based delta compression
DeepenSince
Deepen-since capability for shallow clone with time-based depth
DeepenNot
Deepen-not capability for shallow clone exclusions
DeepenRelative
Deepen-relative capability for relative depth specification
ThinPack
Thin-pack capability for efficient pack transmission
Shallow
Shallow capability for shallow clone support
IncludeTag
Include-tag capability for automatic tag inclusion
DeleteRefs
Delete-refs capability for reference deletion
Quiet
Quiet capability to suppress output
Atomic
Atomic capability for atomic push operations
NoThin
No-thin capability to disable thin pack
NoProgress
No-progress capability to disable progress reporting
AllowTipSha1InWant
Allow-tip-sha1-in-want capability for fetching specific commits
AllowReachableSha1InWant
Allow-reachable-sha1-in-want capability for fetching reachable commits
PushCert(String)
Push-cert capability for signed push certificates
PushOptions
Push-options capability for additional push metadata
ObjectFormat(String)
Object-format capability for specifying hash algorithm
SessionId(String)
Session-id capability for session tracking
Filter(String)
Filter capability for partial clone support
Symref(String)
Symref capability for symbolic reference information
Agent(String)
Agent capability for client/server identification
Unknown(String)
Unknown capability for forward compatibility
Trait Implementations§
Source§impl Clone for Capability
impl Clone for Capability
Source§fn clone(&self) -> Capability
fn clone(&self) -> Capability
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for Capability
impl Debug for Capability
Source§impl Display for Capability
impl Display for Capability
Source§impl FromStr for Capability
impl FromStr for Capability
Source§impl PartialEq for Capability
impl PartialEq for Capability
impl StructuralPartialEq for Capability
Auto Trait Implementations§
impl Freeze for Capability
impl RefUnwindSafe for Capability
impl Send for Capability
impl Sync for Capability
impl Unpin for Capability
impl UnsafeUnpin for Capability
impl UnwindSafe for Capability
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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>
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