pub enum AccountsFile {
AppendVec(AppendVec),
TieredStorage(TieredStorage),
}
Expand description
An enum for accessing an accounts file which can be implemented under different formats.
Variants§
AppendVec(AppendVec)
TieredStorage(TieredStorage)
Implementations§
Source§impl AccountsFile
impl AccountsFile
Sourcepub fn new_from_file(
path: impl Into<PathBuf>,
current_len: usize,
storage_access: StorageAccess,
) -> Result<(Self, usize)>
pub fn new_from_file( path: impl Into<PathBuf>, current_len: usize, storage_access: StorageAccess, ) -> Result<(Self, usize)>
Create an AccountsFile instance from the specified path.
The second element of the returned tuple is the number of accounts in the accounts file.
pub fn flush(&self) -> Result<()>
pub fn reset(&self)
pub fn remaining_bytes(&self) -> u64
pub fn len(&self) -> usize
pub fn is_empty(&self) -> bool
pub fn capacity(&self) -> u64
pub fn file_name(slot: Slot, id: AccountsFileId) -> String
Sourcepub fn get_stored_account_meta_callback<Ret>(
&self,
offset: usize,
callback: impl for<'local> FnMut(StoredAccountMeta<'local>) -> Ret,
) -> Option<Ret>
pub fn get_stored_account_meta_callback<Ret>( &self, offset: usize, callback: impl for<'local> FnMut(StoredAccountMeta<'local>) -> Ret, ) -> Option<Ret>
calls callback
with the account located at the specified index offset.
pub fn account_matches_owners( &self, offset: usize, owners: &[Pubkey], ) -> Result<usize, MatchAccountOwnerError>
Sourcepub fn scan_accounts(
&self,
callback: impl for<'local> FnMut(StoredAccountMeta<'local>),
)
pub fn scan_accounts( &self, callback: impl for<'local> FnMut(StoredAccountMeta<'local>), )
Iterate over all accounts and call callback
with each account.
Sourcepub fn scan_pubkeys(&self, callback: impl FnMut(&Pubkey))
pub fn scan_pubkeys(&self, callback: impl FnMut(&Pubkey))
iterate over all pubkeys
Sourcepub fn append_accounts<'a>(
&self,
accounts: &impl StorableAccounts<'a>,
skip: usize,
) -> Option<StoredAccountsInfo>
pub fn append_accounts<'a>( &self, accounts: &impl StorableAccounts<'a>, skip: usize, ) -> Option<StoredAccountsInfo>
Copy each account metadata, account and hash to the internal buffer.
If there is no room to write the first entry, None is returned.
Otherwise, returns the starting offset of each account metadata.
Plus, the final return value is the offset where the next entry would be appended.
So, return.len() is 1 + (number of accounts written)
After each account is appended, the internal current_len
is updated
and will be available to other threads.
Sourcepub fn internals_for_archive(&self) -> InternalsForArchive<'_>
pub fn internals_for_archive(&self) -> InternalsForArchive<'_>
Returns the way to access this accounts file when archiving
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for AccountsFile
impl RefUnwindSafe for AccountsFile
impl Send for AccountsFile
impl Sync for AccountsFile
impl Unpin for AccountsFile
impl UnwindSafe for AccountsFile
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> 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