Skip to main content

ReceiveAuthHandles

Trait ReceiveAuthHandles 

Source
pub trait ReceiveAuthHandles {
    // Required method
    fn receive_auth_handles(
        &mut self,
        handles: &mut impl Iterator<Item = u32>,
    ) -> Result<(), AuthTokenError>;
}
Expand description

Re-attach auth-token handles to every Signed value nested in self, drawing them from handles in declaration order. Signed decodes from zero XDR bytes with a sentinel handle; this trait fills in the real handles delivered out-of-band.

This is the read half of an order-matching pair with CollectAuthHandles: implementations of the two traits for a type MUST visit Signed fields in the identical order — a mismatch silently assigns auth tokens to the wrong fields. Derived implementations (via #[contract_type]) visit struct fields in declaration order.

Errors if handles runs out before every Signed field is filled. Callers that own the full handle list (the entrypoint path via receive_auth_handles_from_iter, and Signed::consume) additionally reject leftover handles after the walk.

Required Methods§

Source

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl ReceiveAuthHandles for ()

Source§

fn receive_auth_handles( &mut self, _handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl ReceiveAuthHandles for String

Source§

fn receive_auth_handles( &mut self, _handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl ReceiveAuthHandles for bool

Source§

fn receive_auth_handles( &mut self, _handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl ReceiveAuthHandles for i8

Source§

fn receive_auth_handles( &mut self, _handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl ReceiveAuthHandles for i16

Source§

fn receive_auth_handles( &mut self, _handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl ReceiveAuthHandles for i32

Source§

fn receive_auth_handles( &mut self, _handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl ReceiveAuthHandles for i64

Source§

fn receive_auth_handles( &mut self, _handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl ReceiveAuthHandles for i128

Source§

fn receive_auth_handles( &mut self, _handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl ReceiveAuthHandles for str

Source§

fn receive_auth_handles( &mut self, _handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl ReceiveAuthHandles for u8

Source§

fn receive_auth_handles( &mut self, _handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl ReceiveAuthHandles for u16

Source§

fn receive_auth_handles( &mut self, _handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl ReceiveAuthHandles for u32

Source§

fn receive_auth_handles( &mut self, _handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl ReceiveAuthHandles for u64

Source§

fn receive_auth_handles( &mut self, _handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl ReceiveAuthHandles for u128

Source§

fn receive_auth_handles( &mut self, _handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<A: ReceiveAuthHandles, B: ReceiveAuthHandles, C: ReceiveAuthHandles, D: ReceiveAuthHandles, E: ReceiveAuthHandles, F: ReceiveAuthHandles, G: ReceiveAuthHandles, H: ReceiveAuthHandles, I: ReceiveAuthHandles, J: ReceiveAuthHandles, K: ReceiveAuthHandles, L: ReceiveAuthHandles, M: ReceiveAuthHandles, N: ReceiveAuthHandles, O: ReceiveAuthHandles, P: ReceiveAuthHandles, Q: ReceiveAuthHandles, R: ReceiveAuthHandles, S: ReceiveAuthHandles, T: ReceiveAuthHandles> ReceiveAuthHandles for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T)

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<A: ReceiveAuthHandles, B: ReceiveAuthHandles, C: ReceiveAuthHandles, D: ReceiveAuthHandles, E: ReceiveAuthHandles, F: ReceiveAuthHandles, G: ReceiveAuthHandles, H: ReceiveAuthHandles, I: ReceiveAuthHandles, J: ReceiveAuthHandles, K: ReceiveAuthHandles, L: ReceiveAuthHandles, M: ReceiveAuthHandles, N: ReceiveAuthHandles, O: ReceiveAuthHandles, P: ReceiveAuthHandles, Q: ReceiveAuthHandles, R: ReceiveAuthHandles, S: ReceiveAuthHandles> ReceiveAuthHandles for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S)

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<A: ReceiveAuthHandles, B: ReceiveAuthHandles, C: ReceiveAuthHandles, D: ReceiveAuthHandles, E: ReceiveAuthHandles, F: ReceiveAuthHandles, G: ReceiveAuthHandles, H: ReceiveAuthHandles, I: ReceiveAuthHandles, J: ReceiveAuthHandles, K: ReceiveAuthHandles, L: ReceiveAuthHandles, M: ReceiveAuthHandles, N: ReceiveAuthHandles, O: ReceiveAuthHandles, P: ReceiveAuthHandles, Q: ReceiveAuthHandles, R: ReceiveAuthHandles> ReceiveAuthHandles for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R)

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<A: ReceiveAuthHandles, B: ReceiveAuthHandles, C: ReceiveAuthHandles, D: ReceiveAuthHandles, E: ReceiveAuthHandles, F: ReceiveAuthHandles, G: ReceiveAuthHandles, H: ReceiveAuthHandles, I: ReceiveAuthHandles, J: ReceiveAuthHandles, K: ReceiveAuthHandles, L: ReceiveAuthHandles, M: ReceiveAuthHandles, N: ReceiveAuthHandles, O: ReceiveAuthHandles, P: ReceiveAuthHandles, Q: ReceiveAuthHandles> ReceiveAuthHandles for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q)

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<A: ReceiveAuthHandles, B: ReceiveAuthHandles, C: ReceiveAuthHandles, D: ReceiveAuthHandles, E: ReceiveAuthHandles, F: ReceiveAuthHandles, G: ReceiveAuthHandles, H: ReceiveAuthHandles, I: ReceiveAuthHandles, J: ReceiveAuthHandles, K: ReceiveAuthHandles, L: ReceiveAuthHandles, M: ReceiveAuthHandles, N: ReceiveAuthHandles, O: ReceiveAuthHandles, P: ReceiveAuthHandles> ReceiveAuthHandles for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<A: ReceiveAuthHandles, B: ReceiveAuthHandles, C: ReceiveAuthHandles, D: ReceiveAuthHandles, E: ReceiveAuthHandles, F: ReceiveAuthHandles, G: ReceiveAuthHandles, H: ReceiveAuthHandles, I: ReceiveAuthHandles, J: ReceiveAuthHandles, K: ReceiveAuthHandles, L: ReceiveAuthHandles, M: ReceiveAuthHandles, N: ReceiveAuthHandles, O: ReceiveAuthHandles> ReceiveAuthHandles for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<A: ReceiveAuthHandles, B: ReceiveAuthHandles, C: ReceiveAuthHandles, D: ReceiveAuthHandles, E: ReceiveAuthHandles, F: ReceiveAuthHandles, G: ReceiveAuthHandles, H: ReceiveAuthHandles, I: ReceiveAuthHandles, J: ReceiveAuthHandles, K: ReceiveAuthHandles, L: ReceiveAuthHandles, M: ReceiveAuthHandles, N: ReceiveAuthHandles> ReceiveAuthHandles for (A, B, C, D, E, F, G, H, I, J, K, L, M, N)

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<A: ReceiveAuthHandles, B: ReceiveAuthHandles, C: ReceiveAuthHandles, D: ReceiveAuthHandles, E: ReceiveAuthHandles, F: ReceiveAuthHandles, G: ReceiveAuthHandles, H: ReceiveAuthHandles, I: ReceiveAuthHandles, J: ReceiveAuthHandles, K: ReceiveAuthHandles, L: ReceiveAuthHandles, M: ReceiveAuthHandles> ReceiveAuthHandles for (A, B, C, D, E, F, G, H, I, J, K, L, M)

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<A: ReceiveAuthHandles, B: ReceiveAuthHandles, C: ReceiveAuthHandles, D: ReceiveAuthHandles, E: ReceiveAuthHandles, F: ReceiveAuthHandles, G: ReceiveAuthHandles, H: ReceiveAuthHandles, I: ReceiveAuthHandles, J: ReceiveAuthHandles, K: ReceiveAuthHandles, L: ReceiveAuthHandles> ReceiveAuthHandles for (A, B, C, D, E, F, G, H, I, J, K, L)

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<A: ReceiveAuthHandles, B: ReceiveAuthHandles, C: ReceiveAuthHandles, D: ReceiveAuthHandles, E: ReceiveAuthHandles, F: ReceiveAuthHandles, G: ReceiveAuthHandles, H: ReceiveAuthHandles, I: ReceiveAuthHandles, J: ReceiveAuthHandles, K: ReceiveAuthHandles> ReceiveAuthHandles for (A, B, C, D, E, F, G, H, I, J, K)

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<A: ReceiveAuthHandles, B: ReceiveAuthHandles, C: ReceiveAuthHandles, D: ReceiveAuthHandles, E: ReceiveAuthHandles, F: ReceiveAuthHandles, G: ReceiveAuthHandles, H: ReceiveAuthHandles, I: ReceiveAuthHandles, J: ReceiveAuthHandles> ReceiveAuthHandles for (A, B, C, D, E, F, G, H, I, J)

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<A: ReceiveAuthHandles, B: ReceiveAuthHandles, C: ReceiveAuthHandles, D: ReceiveAuthHandles, E: ReceiveAuthHandles, F: ReceiveAuthHandles, G: ReceiveAuthHandles, H: ReceiveAuthHandles, I: ReceiveAuthHandles> ReceiveAuthHandles for (A, B, C, D, E, F, G, H, I)

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<A: ReceiveAuthHandles, B: ReceiveAuthHandles, C: ReceiveAuthHandles, D: ReceiveAuthHandles, E: ReceiveAuthHandles, F: ReceiveAuthHandles, G: ReceiveAuthHandles, H: ReceiveAuthHandles> ReceiveAuthHandles for (A, B, C, D, E, F, G, H)

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<A: ReceiveAuthHandles, B: ReceiveAuthHandles, C: ReceiveAuthHandles, D: ReceiveAuthHandles, E: ReceiveAuthHandles, F: ReceiveAuthHandles, G: ReceiveAuthHandles> ReceiveAuthHandles for (A, B, C, D, E, F, G)

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<A: ReceiveAuthHandles, B: ReceiveAuthHandles, C: ReceiveAuthHandles, D: ReceiveAuthHandles, E: ReceiveAuthHandles, F: ReceiveAuthHandles> ReceiveAuthHandles for (A, B, C, D, E, F)

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<A: ReceiveAuthHandles, B: ReceiveAuthHandles, C: ReceiveAuthHandles, D: ReceiveAuthHandles, E: ReceiveAuthHandles> ReceiveAuthHandles for (A, B, C, D, E)

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<A: ReceiveAuthHandles, B: ReceiveAuthHandles, C: ReceiveAuthHandles, D: ReceiveAuthHandles> ReceiveAuthHandles for (A, B, C, D)

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<A: ReceiveAuthHandles, B: ReceiveAuthHandles, C: ReceiveAuthHandles> ReceiveAuthHandles for (A, B, C)

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<A: ReceiveAuthHandles, B: ReceiveAuthHandles> ReceiveAuthHandles for (A, B)

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<A: ReceiveAuthHandles> ReceiveAuthHandles for (A,)

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<T: ReceiveAuthHandles + ?Sized> ReceiveAuthHandles for &T

Source§

fn receive_auth_handles( &mut self, _handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<T: ReceiveAuthHandles + ?Sized> ReceiveAuthHandles for &mut T

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<T: ReceiveAuthHandles + ?Sized> ReceiveAuthHandles for Box<T>

Available on crate feature alloc only.
Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<T: ReceiveAuthHandles, const N: usize> ReceiveAuthHandles for [T; N]

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<T: ReceiveAuthHandles> ReceiveAuthHandles for Option<T>

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<T: ReceiveAuthHandles> ReceiveAuthHandles for Vec<T>

Available on crate feature alloc only.
Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<T: ReceiveAuthHandles> ReceiveAuthHandles for [T]

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<const MAX: usize, T: ReceiveAuthHandles> ReceiveAuthHandles for Vec<T, MAX>

Source§

fn receive_auth_handles( &mut self, handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Source§

impl<const MAX: usize> ReceiveAuthHandles for String<MAX>

Source§

fn receive_auth_handles( &mut self, _handles: &mut impl Iterator<Item = u32>, ) -> Result<(), AuthTokenError>

Implementors§