Skip to main content

Module object_store

Module object_store 

Source

Re-exports§

pub use data_object_handle::DataObjectHandle;
pub use data_object_handle::DirectWriter;
pub use data_object_handle::FileExtent;
pub use data_object_handle::FsverityState;
pub use data_object_handle::FsverityStateInner;
pub use data_object_handle::RangeType;
pub use directory::Directory;
pub use object_record::ChildValue;
pub use object_record::DirType;
pub use object_record::ObjectDescriptor;
pub use object_record::PosixAttributes;
pub use object_record::Timestamp;
pub use extent::Extent;
pub use object_record::AttributeId;
pub use object_record::AttributeKey;
pub use object_record::EncryptionKey;
pub use object_record::EncryptionKeys;
pub use object_record::ExtendedAttributeValue;
pub use object_record::FsverityMetadata;
pub use object_record::FxfsKey;
pub use object_record::FxfsKeyV40;
pub use object_record::FxfsKeyV49;
pub use object_record::ObjectAttributes;
pub use object_record::ObjectKey;
pub use object_record::ObjectKeyData;
pub use object_record::ObjectKind;
pub use object_record::ObjectValue;
pub use object_record::ProjectProperty;
pub use object_record::RootDigest;
pub use project_id::ProjectId;
pub use project_id::ProjectIdExt;
pub use transaction::Mutation;

Modules§

allocator
The Allocator
caching_object_handle
data_object_handle
directory
extent
graveyard
journal
The journal is implemented as an ever extending file which contains variable length records that describe mutations to be applied to various objects. The journal file consists of blocks, with a checksum at the end of each block, but otherwise it can be considered a continuous stream.
object_manager
object_record
project_id
transaction
volume

Structs§

EncryptedMutationsV40
EncryptedMutationsV49
HandleOptions
NewChildStoreOptions
ObjectEncryptionOptions
Parameters for encrypting a newly created object.
ObjectStore
An object store supports a file like interface for objects. Objects are keyed by a 64 bit identifier. And object store has to be backed by a parent object store (which stores metadata for the object store). The top-level object store (a.k.a. the root parent object store) is in-memory only.
ReservedId
StoreInfoV40
StoreInfoV49
StoreInfoV52
StoreObjectHandle
StoreObjectHandle is the lowest-level, untyped handle to an object with the id [object_id] in a particular store, [owner]. It provides functionality shared across all objects, such as reading and writing attributes and managing encryption keys.
StoreOptions

Enums§

LockState
SetExtendedAttributeMode
The mode of operation when setting extended attributes. This is the same as the fidl definition but is replicated here so we don’t have fuchsia.io structures in the api, so this can be used on host.
TombstoneMode
Sets the mode for tombstoning (either at the object or attribute level).
TrimMode
Argument to the trim_some method.
TrimResult
Result of the trim_some method.

Constants§

FSCRYPT_KEY_ID
MAX_ENCRYPTED_MUTATIONS_SIZE
MAX_STORE_INFO_SERIALIZED_SIZE
NO_OWNER
A constant that can be used where an owner is expected of type Weak<dyn StoreOwner> but no owner is required.
VOLUME_DATA_KEY_ID

Traits§

HandleOwner
DataObjectHandle stores an owner that must implement this trait, which allows the handle to get back to an ObjectStore.
StoreOwner

Functions§

load_store_info
Loads store info.

Type Aliases§

EncryptedMutations
ExtentMode
The mode the extent is operating in. This changes how writes work to this region of the file.
ExtentValue
ExtentValue is the payload for an extent in the object store, which describes where the extent is physically located.
StoreInfo
StoreInfo stores information about the object store. This is stored within the parent object store, and is used, for example, to get the persistent layer objects.