pub struct SafeElement<X> { /* private fields */ }Expand description
Definition of safe element
- Safe element combines the element’s actual encoding (which generally gives no information about the original lattice) with the hash of its lattice
X: type of the encoding
Implementations§
Source§impl<X> SafeElement<X>
impl<X> SafeElement<X>
Sourcepub unsafe fn unsafe_new(element: X, lattice_hash: u128slx) -> Self
pub unsafe fn unsafe_new(element: X, lattice_hash: u128slx) -> Self
Unsafe constructor for safe element
- the constructor is unsafe, as there is no consistency check that the encoded element comes from the lattice
element: X: encoded elementlattice_hash: u128slx: lattice hash- Output: safe element
Sourcepub fn lattice_hash(&self) -> u128slx
pub fn lattice_hash(&self) -> u128slx
Get lattice hash
- Output: lattice hash
Trait Implementations§
Source§impl<X> Archive for SafeElement<X>
impl<X> Archive for SafeElement<X>
Source§impl<X: Clone> Clone for SafeElement<X>
impl<X: Clone> Clone for SafeElement<X>
Source§fn clone(&self) -> SafeElement<X>
fn clone(&self) -> SafeElement<X>
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<X: Debug> Debug for SafeElement<X>
impl<X: Debug> Debug for SafeElement<X>
Source§impl<'de, X> Deserialize<'de> for SafeElement<X>where
X: SerdeDeserialize<'de>,
impl<'de, X> Deserialize<'de> for SafeElement<X>where
X: SerdeDeserialize<'de>,
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<__D: Fallible + ?Sized, X> Deserialize<SafeElement<X>, __D> for Archived<SafeElement<X>>where
X: Archive,
Archived<X>: Deserialize<X, __D>,
u128slx: Archive,
Archived<u128slx>: Deserialize<u128slx, __D>,
impl<__D: Fallible + ?Sized, X> Deserialize<SafeElement<X>, __D> for Archived<SafeElement<X>>where
X: Archive,
Archived<X>: Deserialize<X, __D>,
u128slx: Archive,
Archived<u128slx>: Deserialize<u128slx, __D>,
Source§fn deserialize(
&self,
deserializer: &mut __D,
) -> Result<SafeElement<X>, __D::Error>
fn deserialize( &self, deserializer: &mut __D, ) -> Result<SafeElement<X>, __D::Error>
Deserializes using the given deserializer
Source§impl<X> Display for SafeElement<X>where
X: Display,
impl<X> Display for SafeElement<X>where
X: Display,
Source§impl<X: Hash> Hash for SafeElement<X>
impl<X: Hash> Hash for SafeElement<X>
Source§impl<X> HashedTypeDef for SafeElement<X>
impl<X> HashedTypeDef for SafeElement<X>
Source§impl<X> Index<&SafeElement<X>> for Assignment<X>
impl<X> Index<&SafeElement<X>> for Assignment<X>
Source§impl<X: Ord> Ord for SafeElement<X>
impl<X: Ord> Ord for SafeElement<X>
Source§fn cmp(&self, other: &SafeElement<X>) -> Ordering
fn cmp(&self, other: &SafeElement<X>) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl<X: PartialEq> PartialEq for SafeElement<X>
impl<X: PartialEq> PartialEq for SafeElement<X>
Source§impl<X: PartialOrd> PartialOrd for SafeElement<X>
impl<X: PartialOrd> PartialOrd for SafeElement<X>
Source§impl<X> Serialize for SafeElement<X>where
X: Clone + SerdeSerialize,
impl<X> Serialize for SafeElement<X>where
X: Clone + SerdeSerialize,
impl<X: Copy> Copy for SafeElement<X>
impl<X: Eq> Eq for SafeElement<X>
impl<X> StructuralPartialEq for SafeElement<X>
Auto Trait Implementations§
impl<X> Freeze for SafeElement<X>where
X: Freeze,
impl<X> RefUnwindSafe for SafeElement<X>where
X: RefUnwindSafe,
impl<X> Send for SafeElement<X>where
X: Send,
impl<X> Sync for SafeElement<X>where
X: Sync,
impl<X> Unpin for SafeElement<X>where
X: Unpin,
impl<X> UnwindSafe for SafeElement<X>where
X: UnwindSafe,
Blanket Implementations§
Source§impl<U> ArchSized for Uwhere
U: SlxData + Serialize<CompositeSerializer<AlignedSerializer<AlignedVec>, FallbackScratch<HeapScratch<silx_core::::traits::arch::{impl#0}::{constant#0}>, AllocScratch>, SharedSerializeMap>>,
impl<U> ArchSized for Uwhere
U: SlxData + Serialize<CompositeSerializer<AlignedSerializer<AlignedVec>, FallbackScratch<HeapScratch<silx_core::::traits::arch::{impl#0}::{constant#0}>, AllocScratch>, SharedSerializeMap>>,
Source§type Archivable = U
type Archivable = U
Type of the slx data
Source§fn arch_sized(&self) -> Result<ArchData<<U as ArchSized>::Archivable>, String>
fn arch_sized(&self) -> Result<ArchData<<U as ArchSized>::Archivable>, String>
Build the archive data from a slx data reference Read more
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
Source§impl<T> ArchiveUnsized for Twhere
T: Archive,
impl<T> ArchiveUnsized for Twhere
T: Archive,
Source§type Archived = <T as Archive>::Archived
type Archived = <T as Archive>::Archived
The archived counterpart of this type. Unlike
Archive, it may be unsized. Read moreSource§type MetadataResolver = ()
type MetadataResolver = ()
The resolver for the metadata of this type. Read more
Source§unsafe fn resolve_metadata(
&self,
_: usize,
_: <T as ArchiveUnsized>::MetadataResolver,
_: *mut <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata,
)
unsafe fn resolve_metadata( &self, _: usize, _: <T as ArchiveUnsized>::MetadataResolver, _: *mut <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata, )
Creates the archived version of the metadata for this value at the given position and writes
it to the given output. Read more
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> CallHasher for T
impl<T> CallHasher for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
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
Compare self to
key and return true if they are equal.Source§impl<T> HashedTypeMethods for T
impl<T> HashedTypeMethods for T
Source§fn type_hash_native<REF>() -> u128where
Self: HashedTypeDef<REF>,
fn type_hash_native<REF>() -> u128where
Self: HashedTypeDef<REF>,
return native type hash
Source§fn type_hash_le<REF>() -> u128where
Self: HashedTypeDef<REF>,
fn type_hash_le<REF>() -> u128where
Self: HashedTypeDef<REF>,
return little endianess type hash
Source§fn type_hash_be<REF>() -> u128where
Self: HashedTypeDef<REF>,
fn type_hash_be<REF>() -> u128where
Self: HashedTypeDef<REF>,
return big endianess type hash
Source§fn type_uuid<REF>() -> Uuidwhere
Self: HashedTypeDef<REF>,
fn type_uuid<REF>() -> Uuidwhere
Self: HashedTypeDef<REF>,
return uuid derived from type hash
Source§fn type_uuid_hyphenated<REF>() -> Stringwhere
Self: HashedTypeDef<REF>,
fn type_uuid_hyphenated<REF>() -> Stringwhere
Self: HashedTypeDef<REF>,
return uuid hyphenated string
Source§fn self_type_hash_native<REF>(&self) -> u128where
Self: HashedTypeDef<REF>,
fn self_type_hash_native<REF>(&self) -> u128where
Self: HashedTypeDef<REF>,
return native type hash from instance
Source§fn self_type_hash_le<REF>(&self) -> u128where
Self: HashedTypeDef<REF>,
fn self_type_hash_le<REF>(&self) -> u128where
Self: HashedTypeDef<REF>,
return little endianess type hash from instance
Source§fn self_type_hash_be<REF>(&self) -> u128where
Self: HashedTypeDef<REF>,
fn self_type_hash_be<REF>(&self) -> u128where
Self: HashedTypeDef<REF>,
return big endianess type hash from instance
Source§fn self_type_uuid<REF>(&self) -> Uuidwhere
Self: HashedTypeDef<REF>,
fn self_type_uuid<REF>(&self) -> Uuidwhere
Self: HashedTypeDef<REF>,
return type hash-derived uuid from instance
Source§fn self_type_uuid_hyphenated<REF>(&self) -> Stringwhere
Self: HashedTypeDef<REF>,
fn self_type_uuid_hyphenated<REF>(&self) -> Stringwhere
Self: HashedTypeDef<REF>,
return uuid hyphenated string from instance
Source§impl<T> HashedTypeUuid for T
impl<T> HashedTypeUuid for T
Source§fn type_hash_native<REF>() -> u128where
Self: HashedTypeDef<REF>,
fn type_hash_native<REF>() -> u128where
Self: HashedTypeDef<REF>,
👎Deprecated since 0.1.2: please use
HashedTypeMethods traitreturn native type hash
Source§fn type_hash_le<REF>() -> u128where
Self: HashedTypeDef<REF>,
fn type_hash_le<REF>() -> u128where
Self: HashedTypeDef<REF>,
👎Deprecated since 0.1.2: please use
HashedTypeMethods traitreturn little endianess type hash
Source§fn type_hash_be<REF>() -> u128where
Self: HashedTypeDef<REF>,
fn type_hash_be<REF>() -> u128where
Self: HashedTypeDef<REF>,
👎Deprecated since 0.1.2: please use
HashedTypeMethods traitreturn big endianess type hash
Source§fn type_uuid<REF>() -> Uuidwhere
Self: HashedTypeDef<REF>,
fn type_uuid<REF>() -> Uuidwhere
Self: HashedTypeDef<REF>,
👎Deprecated since 0.1.2: please use
HashedTypeMethods traitreturn uuid derived from type hash
Source§fn type_uuid_hyphenated<REF>() -> Stringwhere
Self: HashedTypeDef<REF>,
fn type_uuid_hyphenated<REF>() -> Stringwhere
Self: HashedTypeDef<REF>,
👎Deprecated since 0.1.2: please use
HashedTypeMethods traitreturn uuid hyphenated string
Source§fn self_type_hash_native<REF>(&self) -> u128where
Self: HashedTypeDef<REF>,
fn self_type_hash_native<REF>(&self) -> u128where
Self: HashedTypeDef<REF>,
👎Deprecated since 0.1.2: please use
HashedTypeMethods traitreturn native type hash from instance
Source§fn self_type_hash_le<REF>(&self) -> u128where
Self: HashedTypeDef<REF>,
fn self_type_hash_le<REF>(&self) -> u128where
Self: HashedTypeDef<REF>,
👎Deprecated since 0.1.2: please use
HashedTypeMethods traitreturn little endianess type hash from instance
Source§fn self_type_hash_be<REF>(&self) -> u128where
Self: HashedTypeDef<REF>,
fn self_type_hash_be<REF>(&self) -> u128where
Self: HashedTypeDef<REF>,
👎Deprecated since 0.1.2: please use
HashedTypeMethods traitreturn big endianess type hash from instance
Source§fn self_type_uuid<REF>(&self) -> Uuidwhere
Self: HashedTypeDef<REF>,
fn self_type_uuid<REF>(&self) -> Uuidwhere
Self: HashedTypeDef<REF>,
👎Deprecated since 0.1.2: please use
HashedTypeMethods traitreturn type hash-derived uuid from instance
Source§fn self_type_uuid_hyphenated<REF>(&self) -> Stringwhere
Self: HashedTypeDef<REF>,
fn self_type_uuid_hyphenated<REF>(&self) -> Stringwhere
Self: HashedTypeDef<REF>,
👎Deprecated since 0.1.2: please use
HashedTypeMethods traitreturn uuid hyphenated string from instance
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.
Source§impl<T> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>
fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>
Source§impl<T, S> SerializeUnsized<S> for T
impl<T, S> SerializeUnsized<S> for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.