Struct workerlib::workspace::Workspace

source ·
pub struct Workspace(pub PathBuf);
Expand description

Initialize the internal Lorry workspace reponsible for holding mirror and other relavent data. Workspace also contains a few lightweight methods that can return data about an existing mirror.

Directory structure:

git-repository # bare repository that contains mirrored upstream code raw-files # git worktree containing files synchronized via LFS

NOTE: Workspace methods are not asynchronous because these operations are all expected to take place on a single worker thread. Depending on the usage it may be desierable to wrap it in a tokio::Task. Since these are all IO operations and initialization steps blocking should be minimal.

Tuple Fields§

§0: PathBuf

Implementations§

source§

impl Workspace

source

pub fn new(working_dir: &Path, name: &str) -> Self

Create a new Workspace based on the workdir and Lorry name

source

pub fn repository_path(&self) -> PathBuf

Return the path to the underlying git repository mirror

source

pub fn lfs_data_path(&self) -> PathBuf

Return the path to the underlying LFS data directory

source

pub fn head(&self) -> Option<String>

return the HEAD of the repository within the workspace, NOTE: If the workspace as just initialized then the HEAD will always return None.

source

pub fn init_if_missing(&self, enable_lfs: bool) -> Result<bool, Error>

Initialize the internal directories of the workspace if they are missing otherwise this operation is NOOP. Returns true if the repository was not already initialized and false if it was setup already.

Trait Implementations§

source§

impl Clone for Workspace

source§

fn clone(&self) -> Workspace

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Workspace

source§

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

Formats the value using the given formatter. Read more

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

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

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

§

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<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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