pub struct Ambiguous1;Expand description
A fake FIDL type that can encode from and decode into any Rust type.
This exists solely to prevent the compiler from inferring T: TypeMarker,
allowing us to add new generic impls without source breakage. It also
improves error messages when no suitable T: TypeMarker exists, preventing
spurious guesses about what you should do (e.g. implement HandleBased).
Trait Implementations§
Source§impl<D> Decode<Ambiguous1, D> for AmbiguousNeverwhere
D: ResourceDialect,
impl<D> Decode<Ambiguous1, D> for AmbiguousNeverwhere
D: ResourceDialect,
Source§fn new_empty() -> AmbiguousNever
fn new_empty() -> AmbiguousNever
Creates a valid instance of
Self. The specific value does not matter,
since it will be overwritten by decode.Source§impl ResourceTypeMarker for Ambiguous1
impl ResourceTypeMarker for Ambiguous1
Source§type Borrowed<'a> = AmbiguousNever
type Borrowed<'a> = AmbiguousNever
The Rust type to use for encoding. This is a particular
Encode<Self>
type cheaply obtainable from &mut Self::Owned. There are three cases: Read moreSource§fn take_or_borrow(
value: &mut <Ambiguous1 as TypeMarker>::Owned,
) -> <Ambiguous1 as ResourceTypeMarker>::Borrowed<'_>where
Ambiguous1: TypeMarker,
fn take_or_borrow(
value: &mut <Ambiguous1 as TypeMarker>::Owned,
) -> <Ambiguous1 as ResourceTypeMarker>::Borrowed<'_>where
Ambiguous1: TypeMarker,
Cheaply converts from
&mut Self::Owned to Self::Borrowed. For
HandleBased types this is “take” (it returns an owned handle and
replaces value with Handle::invalid), and for all other types it is
“borrow” (just converts from one reference to another).Source§impl TypeMarker for Ambiguous1
impl TypeMarker for Ambiguous1
Source§type Owned = AmbiguousNever
type Owned = AmbiguousNever
The owned Rust type which this FIDL type decodes into.
Source§fn inline_align(_context: Context) -> usize
fn inline_align(_context: Context) -> usize
Returns the minimum required alignment of the inline portion of the
encoded object. It must be a (nonzero) power of two.
Source§fn inline_size(_context: Context) -> usize
fn inline_size(_context: Context) -> usize
Returns the size of the inline portion of the encoded object, including
padding for alignment. Must be a multiple of
inline_align.Source§fn encode_is_copy() -> bool
fn encode_is_copy() -> bool
Returns true if the memory layout of
Self::Owned matches the FIDL wire
format and encoding requires no validation. When true, we can optimize
encoding arrays and vectors of Self::Owned to a single memcpy. Read moreSource§fn decode_is_copy() -> bool
fn decode_is_copy() -> bool
Returns true if the memory layout of
Self::Owned matches the FIDL wire
format and decoding requires no validation. When true, we can optimize
decoding arrays and vectors of Self::Owned to a single memcpy.Source§impl ValueTypeMarker for Ambiguous1
impl ValueTypeMarker for Ambiguous1
Source§type Borrowed<'a> = AmbiguousNever
type Borrowed<'a> = AmbiguousNever
The Rust type to use for encoding. This is a particular
Encode<Self>
type cheaply obtainable from &Self::Owned. There are three cases: Read moreSource§fn borrow(
value: &<Ambiguous1 as TypeMarker>::Owned,
) -> <Ambiguous1 as ValueTypeMarker>::Borrowed<'_>
fn borrow( value: &<Ambiguous1 as TypeMarker>::Owned, ) -> <Ambiguous1 as ValueTypeMarker>::Borrowed<'_>
Cheaply converts from
&Self::Owned to Self::Borrowed.Auto Trait Implementations§
impl Freeze for Ambiguous1
impl RefUnwindSafe for Ambiguous1
impl Send for Ambiguous1
impl Sync for Ambiguous1
impl Unpin for Ambiguous1
impl UnwindSafe for Ambiguous1
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
Mutably borrows from an owned value. Read more