Enum EqlCiphertextV3
pub enum EqlCiphertextV3 {
SteVec(SteVecPayloadV3),
Encrypted(EncryptedPayloadV3),
}Expand description
EQL v3 storage payload — the v3 analogue of EqlCiphertext.
Unlike v2, the two root shapes are NOT both k-tagged: a scalar payload
carries no k at all, while a SteVec document keeps k: "sv". The enum is
therefore untagged and distinguished structurally (a SteVec doc has an
sv array; a scalar has c).
Variants§
SteVec(SteVecPayloadV3)
SteVec document payload ({v, k: "sv", i, sv}). Listed first so untagged
deserialization matches the discriminated shape before the bare scalar.
Encrypted(EncryptedPayloadV3)
Scalar storage payload — a bare {v, i, c, <terms>} object, no k.
Implementations§
§impl EqlCiphertextV3
impl EqlCiphertextV3
pub fn identifier(&self) -> &Identifier
pub fn identifier(&self) -> &Identifier
The table/column Identifier this payload belongs to.
pub fn version(&self) -> u16
pub fn version(&self) -> u16
The EQL schema version recorded on this payload (always
EQL_SCHEMA_VERSION_V3).
pub fn into_query_operand(self) -> EqlQueryPayloadV3
pub fn into_query_operand(self) -> EqlQueryPayloadV3
Project this stored payload into its query operand by dropping the record
ciphertext c (and, for SteVec, the envelope + per-entry c/a).
The v3→v3 counterpart of casting a stored payload to its query_<name>
operand: a query operand carries exactly the column’s terms but never a
decryptable ciphertext. This is how a multi-term scalar operand (e.g.
{v, i, hm, ob} for query_text_ord) is built — a single
EqlOperation::Query produces only one term, so callers encrypt in Store
mode and project the result here. SteVec documents project to the bare
jsonb containment needle {sv: [{s, op?}]}.
Trait Implementations§
§impl Clone for EqlCiphertextV3
impl Clone for EqlCiphertextV3
§fn clone(&self) -> EqlCiphertextV3
fn clone(&self) -> EqlCiphertextV3
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for EqlCiphertextV3
impl Debug for EqlCiphertextV3
§impl<'de> Deserialize<'de> for EqlCiphertextV3
impl<'de> Deserialize<'de> for EqlCiphertextV3
§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 Serialize for EqlCiphertextV3
impl Serialize for EqlCiphertextV3
Auto Trait Implementations§
impl Freeze for EqlCiphertextV3
impl RefUnwindSafe for EqlCiphertextV3
impl Send for EqlCiphertextV3
impl Sync for EqlCiphertextV3
impl Unpin for EqlCiphertextV3
impl UnsafeUnpin for EqlCiphertextV3
impl UnwindSafe for EqlCiphertextV3
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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