Enum EncryptedSteVecTerm
#[non_exhaustive]pub enum EncryptedSteVecTerm {
Compat {
op: OpeCllw8VariableV1,
},
Standard {
oc: OreCllw8VariableV1,
},
}Expand description
The (optional) orderable term carried by a SteVec entry — the ONLY term
kind an entry can carry. Exact matching for every node kind is the
value-inclusive selector’s job (see
[super::priv_state::value_selector]), so no per-value MAC term (hm)
exists on entries.
A single tagged-plaintext orderable ciphertext in one of the two SteVec
modes — OPE in Compat mode (serialized under op), ORE in Standard mode
(serialized under oc). Numeric and string plaintexts share the same
orderable variant; domain separation is enforced on the plaintext bit
stream (see [super::priv_state::ste_plaintext_term::OrderableTerm]), not
by tagging the ciphertext after the fact.
The mode is the variant itself — there is no longer a per-mode wrapper
enum, because with hm retired each mode carries exactly one term kind.
Deserialization is #[serde(untagged)]: an op key selects Compat, an
oc key selects Standard, and the retired MAC key (hm) matches
neither, so a legacy payload carrying it fails to deserialize
(re-encryption is required — this is a breaking wire change).
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Compat
Compat mode: a CLLW OPE ciphertext for the single orderable domain
(Number ∪ String). Numeric and string plaintexts produce ciphertexts in
disjoint ranges because each plaintext is tagged at the bit-stream level
before OPE (see
[super::priv_state::ste_plaintext_term::OrderableTerm]). Lex byte
comparison of the ciphertext is correct under CLLW OPE.
Fields
Standard
Standard mode: a CLLW ORE ciphertext for the single orderable domain
(Number ∪ String). Numeric and string plaintexts produce ciphertexts in
disjoint ranges because each plaintext is tagged at the bit-stream level
before ORE (see
[super::priv_state::ste_plaintext_term::OrderableTerm]). The derived
PartialOrd uses OreCllw8VariableV1’s ORE-aware comparison
(first-differing-byte y + 1 == x), not plain lex order.
Fields
Trait Implementations§
§impl Debug for EncryptedSteVecTerm
impl Debug for EncryptedSteVecTerm
§impl<'de> Deserialize<'de> for EncryptedSteVecTerm
impl<'de> Deserialize<'de> for EncryptedSteVecTerm
§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>,
impl Eq for EncryptedSteVecTerm
§impl PartialEq for EncryptedSteVecTerm
impl PartialEq for EncryptedSteVecTerm
§impl PartialOrd for EncryptedSteVecTerm
impl PartialOrd for EncryptedSteVecTerm
§impl Serialize for EncryptedSteVecTerm
impl Serialize for EncryptedSteVecTerm
impl StructuralPartialEq for EncryptedSteVecTerm
Auto Trait Implementations§
impl Freeze for EncryptedSteVecTerm
impl RefUnwindSafe for EncryptedSteVecTerm
impl Send for EncryptedSteVecTerm
impl Sync for EncryptedSteVecTerm
impl Unpin for EncryptedSteVecTerm
impl UnsafeUnpin for EncryptedSteVecTerm
impl UnwindSafe for EncryptedSteVecTerm
Blanket Implementations§
impl<T> AuthStrategyBounds for T
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
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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>
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