Skip to main content

ConfigFile

Struct ConfigFile 

Source
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: u32

Repository version. Currently 1 and 2 are supported

§id: RepositoryId

The [Id] identifying the repository

§chunker: Option<Chunker>

The chunker polynomial used to chunk data

§chunker_polynomial: String

The 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

Source

pub fn new(version: u32, id: RepositoryId, poly: u64) -> Self

Creates a new ConfigFile.

§Arguments
  • version - The version of the repository
  • id - The id of the repository
  • poly - The chunker polynomial
Source

pub fn poly(&self) -> RusticResult<u64>

Get the chunker polynomial

§Errors
  • If the polynomial could not be parsed
Source

pub fn zstd(&self) -> RusticResult<Option<i32>>

Get the compression level

§Errors
  • If the version is not supported
Source

pub fn extra_verify(&self) -> bool

Get whether an extra verification (decompressing/decrypting data before writing to the repository) should be performed.

Source

pub fn packsize(&self, blob: BlobType) -> (u32, u32, u32)

Get pack size parameter

§Arguments
  • blob - The blob type to get the pack size parameters for
§Returns

A tuple containing the pack size, the grow factor and the size limit

Source

pub fn packsize_ok_percents(&self) -> (u32, u32)

Get pack size toleration limits

§Returns
Source

pub fn chunker(&self) -> Chunker

Get the chunker

Source

pub fn chunk_size(&self) -> usize

Get the (average) chunk size

Source

pub fn chunk_min_size(&self) -> usize

Get the min chunk size

Source

pub fn chunk_max_size(&self) -> usize

Get the max chunk size

Source

pub fn has_same_chunker(&self, other: &Self) -> bool

Determine if two ConfigFiles have compatible chunker parameters

Trait Implementations§

Source§

impl Clone for ConfigFile

Source§

fn clone(&self) -> ConfigFile

Returns a duplicate 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 ConfigFile

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for ConfigFile

Source§

fn default() -> ConfigFile

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for ConfigFile

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for ConfigFile

Source§

fn eq(&self, other: &ConfigFile) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl RepoFile for ConfigFile

Source§

const TYPE: FileType = FileType::Config

The FileType associated with the repository file
Source§

type Id = ConfigId

The Id type associated with the repository file
Source§

const ENCRYPTED: bool = true

Indicate whether the files are stored encrypted
Source§

impl Serialize for ConfigFile

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Eq for ConfigFile

Source§

impl StructuralPartialEq for ConfigFile

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

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

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

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

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,