pub struct ImportMemberPermissionV1 {
pub format_version: u32,
pub identity: Option<ImportIdentityV1>,
pub logical_job_id: Vec<u8>,
pub retry_lineage_id: Vec<u8>,
pub subject_public_key: Vec<u8>,
pub purpose: i32,
pub scope: Option<ImportPermissionScopeV1>,
pub not_before_unix_seconds: i64,
pub expires_at_unix_seconds: i64,
pub cancellation_id: Vec<u8>,
pub owner_chain_digest: Vec<u8>,
pub nonce: Vec<u8>,
}Expand description
P2 #1: NEW direct owner -> device permission, unrelated to PURGE, timeline, self-PoP or online Developer/Admin grants. Exactly one logical job/lineage; grants genesis binding and bounded IMPORT_CONVERSION delegation, no device subdelegation. Durable accounting is (permission digest, logical job) and slot identity is (logical job, branch, slot); byte totals never reset by key/retry.
Fields§
§format_version: u32§identity: Option<ImportIdentityV1>§logical_job_id: Vec<u8>16 bytes.
retry_lineage_id: Vec<u8>Caller UUID, reserved first physical operation ID; non-nil.
subject_public_key: Vec<u8>§purpose: i32§scope: Option<ImportPermissionScopeV1>§not_before_unix_seconds: i64§expires_at_unix_seconds: i64§cancellation_id: Vec<u8>CSPRNG 32 bytes for this job’s sole member permission; retries preserve it. The delegation has a separate ID. Namespace heddle-import-cancel-v1.
owner_chain_digest: Vec<u8>Exact independently verified public chain digest.
nonce: Vec<u8>Fresh CSPRNG 32 bytes per new grant. Byte-identical replay preserves it.
Implementations§
Source§impl ImportMemberPermissionV1
impl ImportMemberPermissionV1
Sourcepub fn purpose(&self) -> ImportDelegationPurpose
pub fn purpose(&self) -> ImportDelegationPurpose
Returns the enum value of purpose, or the default if the field is set to an invalid enum value.
Sourcepub fn set_purpose(&mut self, value: ImportDelegationPurpose)
pub fn set_purpose(&mut self, value: ImportDelegationPurpose)
Sets purpose to the provided enum value.
Trait Implementations§
Source§impl Canonical for ImportMemberPermissionV1
impl Canonical for ImportMemberPermissionV1
Source§impl Clone for ImportMemberPermissionV1
impl Clone for ImportMemberPermissionV1
Source§fn clone(&self) -> ImportMemberPermissionV1
fn clone(&self) -> ImportMemberPermissionV1
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ImportMemberPermissionV1
impl Debug for ImportMemberPermissionV1
Source§impl Default for ImportMemberPermissionV1
impl Default for ImportMemberPermissionV1
Source§fn default() -> ImportMemberPermissionV1
fn default() -> ImportMemberPermissionV1
Source§impl Message for ImportMemberPermissionV1
impl Message for ImportMemberPermissionV1
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.Source§impl PartialEq for ImportMemberPermissionV1
impl PartialEq for ImportMemberPermissionV1
impl StructuralPartialEq for ImportMemberPermissionV1
Auto Trait Implementations§
impl Freeze for ImportMemberPermissionV1
impl RefUnwindSafe for ImportMemberPermissionV1
impl Send for ImportMemberPermissionV1
impl Sync for ImportMemberPermissionV1
impl Unpin for ImportMemberPermissionV1
impl UnsafeUnpin for ImportMemberPermissionV1
impl UnwindSafe for ImportMemberPermissionV1
Blanket Implementations§
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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