Skip to main content

ClaimGrant

Struct ClaimGrant 

Source
pub struct ClaimGrant {
    pub execution_id: ExecutionId,
    pub partition_key: PartitionKey,
    pub grant_key: String,
    pub expires_at_ms: u64,
}
Expand description

A claim grant issued by the scheduler for a specific execution.

The worker uses this to call ff_claim_execution (or ff_acquire_lease), which atomically consumes the grant and creates the lease.

Shared wire-level type between ff-scheduler (issuer) and ff-sdk (consumer, via FlowFabricWorker::claim_from_grant). Lives in ff-core so neither crate needs a dep on the other.

Lane asymmetry with ReclaimGrant: ClaimGrant does NOT carry lane_id. The issuing scheduler’s caller already picked a lane (that’s how admission reached this grant) and passes it through to claim_from_grant as a separate argument. The grant handle stays narrow to what uniquely identifies the admission decision. The matching field on ReclaimGrant is an intentional divergence — see the note on that type.

Fields§

§execution_id: ExecutionId

The execution that was granted.

§partition_key: PartitionKey

Opaque partition handle for this execution’s hash-tag slot.

Public wire type: consumers pass it back to FlowFabric but must not parse the interior hash tag for routing decisions. Internal consumers that need the typed crate::partition::Partition call Self::partition.

§grant_key: String

The Valkey key holding the grant hash (for the worker to reference).

§expires_at_ms: u64

When the grant expires if not consumed.

Implementations§

Source§

impl ClaimGrant

Source

pub fn partition(&self) -> Result<Partition, PartitionKeyParseError>

Parse partition_key into a typed crate::partition::Partition. Intended for internal consumers (scheduler emitter, SDK worker claim path) that need the family/index pair. Fails only on malformed keys (which indicates a producer bug).

Alias collapse applies: a grant issued against Execution family round-trips to Flow (see crate::partition::PartitionKey for the rationale — routing is preserved, only the metadata family label normalises).

Trait Implementations§

Source§

impl Clone for ClaimGrant

Source§

fn clone(&self) -> ClaimGrant

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 ClaimGrant

Source§

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

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

impl PartialEq for ClaimGrant

Source§

fn eq(&self, other: &ClaimGrant) -> 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 ClaimGrant

Source§

impl StructuralPartialEq for ClaimGrant

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.