Skip to main content

NativeGitPlugin

Struct NativeGitPlugin 

Source
pub struct NativeGitPlugin;
Expand description

Native git-object handler.

Implementations§

Source§

impl NativeGitPlugin

Source

pub fn new() -> Self

Trait Implementations§

Source§

impl ArchiveTypePlugin for NativeGitPlugin

Source§

fn run_command(&self, cmd: &str, args: &[String]) -> Result<()>

CLI-only string dispatch (§13.3). A server never comes through here: it holds a GitStore and calls GitOps directly, typed.

refs is what that delegation looks like — open the store, call the trait method, print what it returned, and carry no logic of its own. The three commands beside it are older and are archive inspection, not store operations: they read a sealed archive’s sections, which is a different thing from a live store and is deliberately not modelled as a GitOps call. They are left as they are rather than bent through a trait that does not describe them.

Source§

fn matches_path(&self, path: &str) -> bool

A git archive’s entries are either oids — the whole relative_path is 40 or 64 lowercase hex characters — or the packs of a repository’s cold tier, pack-<id>.pack / pack-<id>.idx.

Both are the same ecosystem and so belong to one handler (P-1). Which of the two an archive holds is not a variant of the format: it is what the writer had. gunnar’s repack() produces a consolidated pack and seals that, because a pack preserves the pushing client’s own deflate and its delta chains, and an inflated per-oid tier destroys both permanently.

Source§

fn name(&self) -> &str

Human-readable name
Source§

fn type_id(&self) -> i8

DenseUnion type_id this plugin writes to
Source§

fn meta(&self) -> HandlerMeta

Discovery metadata — name, aliases, type_id, claimed extensions and the per-handler subcommand “API”. Used by the registry to list and select handlers at runtime. The default derives a minimal record from Self::name / Self::type_id; native handlers override it with a richer record (aliases, ecosystem, extensions, commands).
Source§

fn schema_fields(&self) -> Vec<Field>

The Arrow columns this module contributes to the index. The writer composes the on-disk schema as base columns + pkg_type + these fields. Each Field’s name must match the key the plugin uses in ExtensionRow::fields. Default: no columns.
Source§

fn extract_metadata(&self, path: &str, data: &[u8]) -> Option<ExtensionRow>

Per-file extraction. Return None to skip.
Source§

fn supports_batch(&self) -> bool

Whether this plugin benefits from batched processing.
Source§

fn batch_threshold(&self) -> usize

Byte threshold to trigger batch flush (default 200MB).
Source§

fn extract_batch(&self, items: &[BatchItem<'_>]) -> Vec<Option<ExtensionRow>>

Batch extraction — process many files at once (zero-copy borrows). Returns one Option per input item, in same order.
Source§

impl Default for NativeGitPlugin

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

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.

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