pub struct ConfigFile {Show 19 fields
pub version: u32,
pub id: RepositoryId,
pub chunker: Option<Chunker>,
pub chunker_polynomial: String,
pub chunk_size: Option<usize>,
pub chunk_min_size: Option<usize>,
pub chunk_max_size: Option<usize>,
pub is_hot: Option<bool>,
pub append_only: Option<bool>,
pub compression: Option<i32>,
pub treepack_size: Option<u32>,
pub treepack_growfactor: Option<u32>,
pub treepack_size_limit: Option<u32>,
pub datapack_size: Option<u32>,
pub datapack_growfactor: Option<u32>,
pub datapack_size_limit: Option<u32>,
pub min_packsize_tolerate_percent: Option<u32>,
pub max_packsize_tolerate_percent: Option<u32>,
pub extra_verify: Option<bool>,
}Expand description
The config file describes all repository-wide information.
It is usually saved in the repository as config
Fields§
§version: u32Repository version. Currently 1 and 2 are supported
id: RepositoryIdThe [Id] identifying the repository
chunker: Option<Chunker>The chunker polynomial used to chunk data
chunker_polynomial: StringThe chunker polynomial used to chunk data in case of Rabin content defined chunking
chunk_size: Option<usize>The (average) chunk size. For FixedSized chunking, this is the chunk size, for Rabin chunking, this size
will be reached on average for chunks.
chunk_min_size: Option<usize>The minimum chunk size. For Rabin chunking, this defines the minimum chunk size before chunks are defined by
the Rabin fingerprint.
Has no effect for FixedSized chunking.
chunk_max_size: Option<usize>The maximum chunk size. For Rabin chunking, this defines the maximum chunk size, i.e. the size when chunks are cut
even if no cut point has been identified by the Rabin fingerprint.
Has no effect for FixedSized chunking.
is_hot: Option<bool>Marker if this is a hot repository. If not set, this is no hot repository
§Note
When using hot/cold repositories, this is only set within the hot part of the repository.
append_only: Option<bool>Marker if this is a append-only repository.
§Note
Commands which are not append-only won’t run once this is set.
compression: Option<i32>Compression level
§Note
Some(0) means no compression. If not set, use the default compression:
- for repository version 1, use no compression (as not supported)
- for repository version 2, use the zstd default compression
treepack_size: Option<u32>Size of tree packs. This will be enhanced by the treepack_growfactor depending on the repository size
If not set, defaults to 4 MiB
treepack_growfactor: Option<u32>Grow factor to increase size of tree packs depending on the repository size
If not set, defaults to 32
treepack_size_limit: Option<u32>Maximum targeted tree pack size.
datapack_size: Option<u32>Size of data packs. This will be enhanced by the datapack_growfactor depending on the repository size
If not set, defaults to 32 MiB
datapack_growfactor: Option<u32>Grow factor to increase size of data packs depending on the repository size
If not set, defaults to 32
datapack_size_limit: Option<u32>maximum targeted data pack size.
min_packsize_tolerate_percent: Option<u32>Tolerate pack sizes which are larger than given percentage of targeted pack size
If not set, defaults to 30
max_packsize_tolerate_percent: Option<u32>Tolerate pack sizes which are smaller than given percentage of targeted pack size
If not set or set to 0 this is unlimited.
extra_verify: Option<bool>Do an extra verification by decompressing/decrypting all data before uploading to the repository
Implementations§
Source§impl ConfigFile
impl ConfigFile
Sourcepub fn new(version: u32, id: RepositoryId, poly: u64) -> Self
pub fn new(version: u32, id: RepositoryId, poly: u64) -> Self
Creates a new ConfigFile.
§Arguments
version- The version of the repositoryid- The id of the repositorypoly- The chunker polynomial
Sourcepub fn poly(&self) -> RusticResult<u64>
pub fn poly(&self) -> RusticResult<u64>
Sourcepub fn zstd(&self) -> RusticResult<Option<i32>>
pub fn zstd(&self) -> RusticResult<Option<i32>>
Sourcepub fn extra_verify(&self) -> bool
pub fn extra_verify(&self) -> bool
Get whether an extra verification (decompressing/decrypting data before writing to the repository) should be performed.
Sourcepub fn packsize_ok_percents(&self) -> (u32, u32)
pub fn packsize_ok_percents(&self) -> (u32, u32)
Get pack size toleration limits
§Returns
Sourcepub fn chunk_size(&self) -> usize
pub fn chunk_size(&self) -> usize
Get the (average) chunk size
Sourcepub fn chunk_min_size(&self) -> usize
pub fn chunk_min_size(&self) -> usize
Get the min chunk size
Sourcepub fn chunk_max_size(&self) -> usize
pub fn chunk_max_size(&self) -> usize
Get the max chunk size
Sourcepub fn has_same_chunker(&self, other: &Self) -> bool
pub fn has_same_chunker(&self, other: &Self) -> bool
Determine if two ConfigFiles have compatible chunker parameters
Trait Implementations§
Source§impl Clone for ConfigFile
impl Clone for ConfigFile
Source§fn clone(&self) -> ConfigFile
fn clone(&self) -> ConfigFile
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ConfigFile
impl Debug for ConfigFile
Source§impl Default for ConfigFile
impl Default for ConfigFile
Source§fn default() -> ConfigFile
fn default() -> ConfigFile
Source§impl<'de> Deserialize<'de> for ConfigFile
impl<'de> Deserialize<'de> for ConfigFile
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for ConfigFile
impl PartialEq for ConfigFile
Source§impl RepoFile for ConfigFile
impl RepoFile for ConfigFile
Source§impl Serialize for ConfigFile
impl Serialize for ConfigFile
impl Eq for ConfigFile
impl StructuralPartialEq for ConfigFile
Auto Trait Implementations§
impl Freeze for ConfigFile
impl RefUnwindSafe for ConfigFile
impl Send for ConfigFile
impl Sync for ConfigFile
impl Unpin for ConfigFile
impl UnsafeUnpin for ConfigFile
impl UnwindSafe for ConfigFile
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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