Skip to main content

PassStorageAdapter

Struct PassStorageAdapter 

Source
pub struct PassStorageAdapter { /* private fields */ }
Expand description

Pass storage wrapper that keeps the in-memory credential index coherent with repository changes performed by another process while Passless is running.

The underlying pass adapter builds its index once during construction and updates it for writes performed through that adapter. External git pull, checkout, or direct credential-file changes bypass those update hooks. This wrapper tracks the Git HEAD plus a cheap metadata fingerprint of fido2/*.gpg files and recreates the underlying adapter whenever either changes. Recreating the adapter rescans credential paths without decrypting them and clears the decrypted credential cache, preventing stale file contents from surviving an external update.

Implementations§

Source§

impl PassStorageAdapter

Source

pub fn new_with_options( store_path: PathBuf, path: PathBuf, gpg_backend: GpgBackend, allow_create_without_prompt: bool, ) -> Result<Self>

Trait Implementations§

Source§

impl CredentialStorage for PassStorageAdapter

Source§

fn read_first(&mut self, filter: CredentialFilter) -> Result<Credential>

Start a new iteration and return the first matching credential
Source§

fn read_next(&mut self) -> Result<Credential>

Continue the current iteration and return the next credential
Source§

fn read(&mut self, id: &[u8]) -> Result<Credential>

Read a specific credential by ID and RP
Source§

fn write(&mut self, cred: CredentialRef<'_>) -> Result<()>

Store a new credential
Source§

fn delete(&mut self, id: &[u8]) -> Result<()>

Delete a credential by ID
Source§

fn count_credentials(&self) -> usize

Count total number of stored credentials
Source§

fn disable_user_verification(&self) -> bool

Check if user verification should be disabled for this backend Read more
Source§

fn cleanup_expired_cache(&mut self)

Cleanup expired cache entries (if caching is supported) 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.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

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

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

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more