pub struct CompressedFheBool { /* private fields */ }Expand description
Compressed FheBool
Meant to save in storage space / transfer.
- A Compressed type must be decompressed before it can be used.
- It is not possible to compress an existing FheBool, compression can only be achieved at encryption time
§Example
use tfhe::prelude::*;
use tfhe::{generate_keys, CompressedFheBool, ConfigBuilder};
let (client_key, _) = generate_keys(ConfigBuilder::default());
let compressed = CompressedFheBool::encrypt(true, &client_key);
let decompressed = compressed.decompress();
let decrypted: bool = decompressed.decrypt(&client_key);
assert!(decrypted);Implementations§
Source§impl CompressedFheBool
impl CompressedFheBool
Sourcepub fn decompress(&self) -> FheBool
pub fn decompress(&self) -> FheBool
Decompresses itself into a FheBool
See CompressedFheBool example.
Trait Implementations§
Source§impl Clone for CompressedFheBool
impl Clone for CompressedFheBool
Source§fn clone(&self) -> CompressedFheBool
fn clone(&self) -> CompressedFheBool
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<'de> Deserialize<'de> for CompressedFheBool
impl<'de> Deserialize<'de> for CompressedFheBool
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl FheTryEncrypt<bool, ClientKey> for CompressedFheBool
impl FheTryEncrypt<bool, ClientKey> for CompressedFheBool
Source§impl Named for CompressedFheBool
impl Named for CompressedFheBool
Source§impl ParameterSetConformant for CompressedFheBool
impl ParameterSetConformant for CompressedFheBool
type ParameterSet = CompressedFheBoolConformanceParams
fn is_conformant(&self, params: &CompressedFheBoolConformanceParams) -> bool
Source§impl Serialize for CompressedFheBool
impl Serialize for CompressedFheBool
Source§impl Tagged for CompressedFheBool
impl Tagged for CompressedFheBool
Source§impl Unversionize for CompressedFheBoolwhere
CompressedFheBoolVersions: VersionsDispatch<Self>,
impl Unversionize for CompressedFheBoolwhere
CompressedFheBoolVersions: VersionsDispatch<Self>,
Source§fn unversionize(
versioned: Self::VersionedOwned,
) -> Result<Self, UnversionizeError>
fn unversionize( versioned: Self::VersionedOwned, ) -> Result<Self, UnversionizeError>
Creates an object from a versioned enum, and eventually upgrades from previous
variants.
Source§impl UnversionizeVec for CompressedFheBoolwhere
CompressedFheBoolVersions: VersionsDispatch<Self>,
impl UnversionizeVec for CompressedFheBoolwhere
CompressedFheBoolVersions: VersionsDispatch<Self>,
fn unversionize_vec( versioned: Self::VersionedVec, ) -> Result<Vec<Self>, UnversionizeError>
Source§impl Version for CompressedFheBoolwhere
InnerCompressedFheBool: VersionizeOwned + Unversionize + Versionize,
Tag: VersionizeOwned + Unversionize + Versionize,
impl Version for CompressedFheBoolwhere
InnerCompressedFheBool: VersionizeOwned + Unversionize + Versionize,
Tag: VersionizeOwned + Unversionize + Versionize,
Source§impl Versionize for CompressedFheBoolwhere
CompressedFheBoolVersions: VersionsDispatch<Self>,
impl Versionize for CompressedFheBoolwhere
CompressedFheBoolVersions: VersionsDispatch<Self>,
Source§type Versioned<'vers> = <CompressedFheBoolVersions as VersionsDispatch<CompressedFheBool>>::Ref<'vers>
type Versioned<'vers> = <CompressedFheBoolVersions as VersionsDispatch<CompressedFheBool>>::Ref<'vers>
The equivalent versioned type. It should have a variant for each version.
It may own the underlying data or only hold a read-only reference to it.
Source§fn versionize(&self) -> Self::Versioned<'_>
fn versionize(&self) -> Self::Versioned<'_>
Wraps the object into a versioned enum with a variant for each version. This will
use references on the underlying types if possible.
Source§impl VersionizeOwned for CompressedFheBoolwhere
CompressedFheBoolVersions: VersionsDispatch<Self>,
impl VersionizeOwned for CompressedFheBoolwhere
CompressedFheBoolVersions: VersionsDispatch<Self>,
type VersionedOwned = <CompressedFheBoolVersions as VersionsDispatch<CompressedFheBool>>::Owned
Source§fn versionize_owned(self) -> Self::VersionedOwned
fn versionize_owned(self) -> Self::VersionedOwned
Wraps the object into a versioned enum with a variant for each version. This will
clone the underlying types.
Source§impl VersionizeSlice for CompressedFheBoolwhere
CompressedFheBoolVersions: VersionsDispatch<Self>,
impl VersionizeSlice for CompressedFheBoolwhere
CompressedFheBoolVersions: VersionsDispatch<Self>,
type VersionedSlice<'vers> = Vec<<CompressedFheBool as Versionize>::Versioned<'vers>>
fn versionize_slice(slice: &[Self]) -> Self::VersionedSlice<'_>
Source§impl VersionizeVec for CompressedFheBoolwhere
CompressedFheBoolVersions: VersionsDispatch<Self>,
impl VersionizeVec for CompressedFheBoolwhere
CompressedFheBoolVersions: VersionsDispatch<Self>,
type VersionedVec = Vec<<CompressedFheBool as VersionizeOwned>::VersionedOwned>
fn versionize_vec(vec: Vec<Self>) -> Self::VersionedVec
Auto Trait Implementations§
impl Freeze for CompressedFheBool
impl RefUnwindSafe for CompressedFheBool
impl Send for CompressedFheBool
impl Sync for CompressedFheBool
impl Unpin for CompressedFheBool
impl UnwindSafe for CompressedFheBool
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Clear, Key, T> FheEncrypt<Clear, Key> for Twhere
T: FheTryEncrypt<Clear, Key>,
impl<Clear, Key, T> FheEncrypt<Clear, Key> for Twhere
T: FheTryEncrypt<Clear, Key>,
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>
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 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>
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