Skip to main content

StreamMagic

Enum StreamMagic 

Source
#[non_exhaustive]
pub enum StreamMagic { V1, }
Expand description

Stream-header magic version dispatch — cross-version forward-compat dispatch surface. Each enum variant maps to a distinct 8-byte ASCII tag at the start of an exported stream; the reader dispatches on the recognised tag to select the corresponding frame-format parser.

V1 (the ARKHEXP1 baseline) is the only currently-reserved variant. Additional variants (V2 / V3 / …) may be added alongside this enum and the reader-side recognize lookup. The #[non_exhaustive] attribute makes the additive expansion non-breaking for external matchers.

Wire-stability invariant: the byte mapping for V1 is pinned at *b"ARKHEXP1" (golden hex vector 0x41 0x52 0x4B 0x48 0x45 0x58 0x50 0x31). Any change to the V1 byte pattern is a wire-format break and requires the same migration mechanism as a new variant.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

V1

ARKHEXP1 — wire baseline. Currently the only supported version.

Implementations§

Source§

impl StreamMagic

Source

pub const fn bytes(self) -> &'static [u8; 8]

Return the 8-byte tag for this version. const fn so callers can pin the byte pattern at compile time + use the result in const contexts.

Source

pub fn recognize(bytes: &[u8; 8]) -> Option<Self>

Recognise a stream-header magic tag — Some(variant) when the 8-byte input matches a supported version, None for any unknown tag (caller surfaces via WalExportError::UnsupportedStreamVersion).

Fail-fast posture: this lookup runs against a stack 8-byte array — no heap allocation, no buffer slicing beyond the caller’s already-read header bytes.

Trait Implementations§

Source§

impl Clone for StreamMagic

Source§

fn clone(&self) -> StreamMagic

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for StreamMagic

Source§

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

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

impl PartialEq for StreamMagic

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · 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 Copy for StreamMagic

Source§

impl Eq for StreamMagic

Source§

impl StructuralPartialEq for StreamMagic

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

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