Skip to main content

OffloadKey

Enum OffloadKey 

Source
pub enum OffloadKey {
    Keyed {
        key: CacheKey,
        kind: SmolStr,
    },
    Explicit {
        kind: SmolStr,
        id: u64,
    },
    Auto {
        kind: SmolStr,
    },
}
Expand description

Key for identifying offloaded tasks.

This enum represents different types of keys that can be used to identify background tasks.

§Variants

  • Keyed: Key derived from a cache key.
  • Explicit: Key with explicit id provided by caller.
  • Auto: Key with auto-assigned id (manager assigns).

Variants§

§

Keyed

Key derived from cache key.

Fields

§key: CacheKey

The cache key.

§kind: SmolStr

Kind of the task (e.g., “revalidate”, “cache_write”).

§

Explicit

Key with explicit id provided by caller.

Fields

§kind: SmolStr

Kind of the task (e.g., “cleanup”, “metrics”).

§id: u64

Unique identifier within the kind.

§

Auto

Key with auto-assigned id (manager assigns internally).

Fields

§kind: SmolStr

Kind of the task (e.g., “race_loser”, “background”).

Implementations§

Source§

impl OffloadKey

Source

pub fn keyed(key: CacheKey, kind: impl Into<SmolStr>) -> Self

Create a keyed offload key derived from a cache key.

§Example
use hitbox_core::{CacheKey, OffloadKey};

let cache_key = CacheKey::from_str("user", "123");
let key = OffloadKey::keyed(cache_key, "revalidate");
Source

pub fn explicit(kind: impl Into<SmolStr>, id: u64) -> Self

Create a key with explicit id provided by caller.

§Example
use hitbox_core::OffloadKey;

let key = OffloadKey::explicit("cleanup", 42);
Source

pub fn auto(kind: impl Into<SmolStr>) -> Self

Create an auto key where manager assigns id internally.

§Example
use hitbox_core::OffloadKey;

let key = OffloadKey::auto("race_loser");
Source

pub fn kind(&self) -> &SmolStr

Returns the kind of this key.

Used for metrics labels and tracing.

Trait Implementations§

Source§

impl Clone for OffloadKey

Source§

fn clone(&self) -> OffloadKey

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for OffloadKey

Source§

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

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

impl<S: Into<SmolStr>> From<(CacheKey, S)> for OffloadKey

Conversion from (CacheKey, S) tuple to OffloadKey::Keyed.

§Example

use hitbox_core::{CacheKey, OffloadKey};

let cache_key = CacheKey::from_str("user", "123");
let offload_key: OffloadKey = (cache_key, "revalidate").into();
Source§

fn from((key, kind): (CacheKey, S)) -> Self

Converts to this type from the input type.
Source§

impl Hash for OffloadKey

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for OffloadKey

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · 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 Eq for OffloadKey

Source§

impl StructuralPartialEq for OffloadKey

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