Trait Immutable

Source
pub unsafe trait Immutable { }
Expand description

Types which are free from interior mutability.

T: Immutable indicates that T does not permit interior mutation, except by ownership or an exclusive (&mut) borrow.

§Implementation

Do not implement this trait yourself! Instead, use #[derive(Immutable)] (requires the derive Cargo feature); e.g.:

#[derive(Immutable)]
struct MyStruct {
    ...
}

#[derive(Immutable)]
enum MyEnum {
    ...
}

#[derive(Immutable)]
union MyUnion {
    ...
}

This derive performs a sophisticated, compile-time safety analysis to determine whether a type is Immutable.

§Safety

Unsafe code outside of this crate must not make any assumptions about T based on T: Immutable. We reserve the right to relax the requirements for Immutable in the future, and if unsafe code outside of this crate makes assumptions based on T: Immutable, future relaxations may cause that code to become unsound.

Implementations on Foreign Types§

Source§

impl Immutable for bool

Source§

impl Immutable for char

Source§

impl Immutable for f32

Source§

impl Immutable for f64

Source§

impl Immutable for i8

Source§

impl Immutable for i16

Source§

impl Immutable for i32

Source§

impl Immutable for i64

Source§

impl Immutable for i128

Source§

impl Immutable for isize

Source§

impl Immutable for str

Source§

impl Immutable for u8

Source§

impl Immutable for u16

Source§

impl Immutable for u32

Source§

impl Immutable for u64

Source§

impl Immutable for u128

Source§

impl Immutable for ()

Source§

impl Immutable for usize

Source§

impl Immutable for __m128

Source§

impl Immutable for __m128d

Source§

impl Immutable for __m128i

Source§

impl Immutable for __m256

Source§

impl Immutable for __m256d

Source§

impl Immutable for __m256i

Source§

impl Immutable for NonZeroI8

Source§

impl Immutable for NonZeroI16

Source§

impl Immutable for NonZeroI32

Source§

impl Immutable for NonZeroI64

Source§

impl Immutable for NonZeroI128

Source§

impl Immutable for NonZeroIsize

Source§

impl Immutable for NonZeroU8

Source§

impl Immutable for NonZeroU16

Source§

impl Immutable for NonZeroU32

Source§

impl Immutable for NonZeroU64

Source§

impl Immutable for NonZeroU128

Source§

impl Immutable for NonZeroUsize

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M> Immutable for Option<fn(A, B, C, D, E, F, G, H, I, J, K, L) -> M>

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M> Immutable for Option<extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> M>

Source§

impl<B, C, D, E, F, G, H, I, J, K, L, M> Immutable for Option<fn(B, C, D, E, F, G, H, I, J, K, L) -> M>

Source§

impl<B, C, D, E, F, G, H, I, J, K, L, M> Immutable for Option<extern "C" fn(B, C, D, E, F, G, H, I, J, K, L) -> M>

Source§

impl<C, D, E, F, G, H, I, J, K, L, M> Immutable for Option<fn(C, D, E, F, G, H, I, J, K, L) -> M>

Source§

impl<C, D, E, F, G, H, I, J, K, L, M> Immutable for Option<extern "C" fn(C, D, E, F, G, H, I, J, K, L) -> M>

Source§

impl<D, E, F, G, H, I, J, K, L, M> Immutable for Option<fn(D, E, F, G, H, I, J, K, L) -> M>

Source§

impl<D, E, F, G, H, I, J, K, L, M> Immutable for Option<extern "C" fn(D, E, F, G, H, I, J, K, L) -> M>

Source§

impl<E, F, G, H, I, J, K, L, M> Immutable for Option<fn(E, F, G, H, I, J, K, L) -> M>

Source§

impl<E, F, G, H, I, J, K, L, M> Immutable for Option<extern "C" fn(E, F, G, H, I, J, K, L) -> M>

Source§

impl<F, G, H, I, J, K, L, M> Immutable for Option<fn(F, G, H, I, J, K, L) -> M>

Source§

impl<F, G, H, I, J, K, L, M> Immutable for Option<extern "C" fn(F, G, H, I, J, K, L) -> M>

Source§

impl<G, H, I, J, K, L, M> Immutable for Option<fn(G, H, I, J, K, L) -> M>

Source§

impl<G, H, I, J, K, L, M> Immutable for Option<extern "C" fn(G, H, I, J, K, L) -> M>

Source§

impl<H, I, J, K, L, M> Immutable for Option<fn(H, I, J, K, L) -> M>

Source§

impl<H, I, J, K, L, M> Immutable for Option<extern "C" fn(H, I, J, K, L) -> M>

Source§

impl<I, J, K, L, M> Immutable for Option<fn(I, J, K, L) -> M>

Source§

impl<I, J, K, L, M> Immutable for Option<extern "C" fn(I, J, K, L) -> M>

Source§

impl<J, K, L, M> Immutable for Option<fn(J, K, L) -> M>

Source§

impl<J, K, L, M> Immutable for Option<extern "C" fn(J, K, L) -> M>

Source§

impl<K, L, M> Immutable for Option<fn(K, L) -> M>

Source§

impl<K, L, M> Immutable for Option<extern "C" fn(K, L) -> M>

Source§

impl<L, M> Immutable for Option<fn(L) -> M>

Source§

impl<L, M> Immutable for Option<extern "C" fn(L) -> M>

Source§

impl<M> Immutable for Option<fn() -> M>

Source§

impl<M> Immutable for Option<extern "C" fn() -> M>

Source§

impl<T: Immutable> Immutable for Option<T>

Source§

impl<T: Immutable> Immutable for [T]

Source§

impl<T: Immutable> Immutable for Wrapping<T>

Source§

impl<T: Immutable> Immutable for CoreMaybeUninit<T>

Source§

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

Source§

impl<T: ?Sized + Immutable> Immutable for ManuallyDrop<T>

Source§

impl<T: ?Sized> Immutable for *const T

Source§

impl<T: ?Sized> Immutable for *mut T

Source§

impl<T: ?Sized> Immutable for &T

Source§

impl<T: ?Sized> Immutable for &mut T

Source§

impl<T: ?Sized> Immutable for PhantomData<T>

Source§

impl<T: ?Sized> Immutable for NonNull<T>

Implementors§

Source§

impl<O> Immutable for F32<O>

Source§

impl<O> Immutable for F64<O>

Source§

impl<O> Immutable for I16<O>

Source§

impl<O> Immutable for I32<O>

Source§

impl<O> Immutable for I64<O>

Source§

impl<O> Immutable for I128<O>

Source§

impl<O> Immutable for Isize<O>

Source§

impl<O> Immutable for U16<O>

Source§

impl<O> Immutable for U32<O>

Source§

impl<O> Immutable for U64<O>

Source§

impl<O> Immutable for U128<O>

Source§

impl<O> Immutable for Usize<O>

Source§

impl<T> Immutable for Unalign<T>
where T: Immutable,

impl Immutable for BlockFifoCommand
where u8: Immutable, [u8; 3]: Immutable, u32: Immutable,

impl Immutable for BlockFifoRequest
where block_fifo_command_t: Immutable, reqid_t: Immutable, groupid_t: Immutable, vmoid_t: Immutable, u32: Immutable, u64: Immutable,

impl Immutable for BlockFifoResponse
where zx_status_t: Immutable, reqid_t: Immutable, groupid_t: Immutable, u16: Immutable, u32: Immutable, [u64; 4]: Immutable,

impl Immutable for EapolFields
where ProtocolVersion: Immutable, PacketType: Immutable, BigEndianU16: Immutable,

impl Immutable for KeyDescriptor
where u8: Immutable,

impl Immutable for KeyFrameFields
where KeyDescriptor: Immutable, BigEndianU16: Immutable, BigEndianU64: Immutable, [u8; 32]: Immutable, [u8; 16]: Immutable, [u8; 8]: Immutable,

impl Immutable for KeyInformation
where u16: Immutable,

impl Immutable for PacketType
where u8: Immutable,

impl Immutable for ProtocolVersion
where u8: Immutable,

impl Immutable for BlockGroupDesc32
where U32: Immutable, U16: Immutable,

impl Immutable for DirEntryHeader
where U32: Immutable, U16: Immutable, u8: Immutable,

impl Immutable for Extent
where U32: Immutable, U16: Immutable,

impl Immutable for ExtentHeader
where U16: Immutable, U32: Immutable,

impl Immutable for ExtentIndex
where U32: Immutable, U16: Immutable,

impl Immutable for INode
where U16: Immutable, U32: Immutable, [u8; 4]: Immutable, [u8; 60]: Immutable,

impl Immutable for SuperBlock
where U32: Immutable, U16: Immutable, [u8; 16]: Immutable, [u8; 64]: Immutable, u8: Immutable, [U32; 4]: Immutable, [U32; 17]: Immutable, U64: Immutable, [u8; 32]: Immutable, [U32; 2]: Immutable, [u8; 4]: Immutable, [U32; 98]: Immutable,

impl Immutable for XattrEntryHeader
where u8: Immutable, U16: Immutable, U32: Immutable,

impl Immutable for XattrHeader
where U32: Immutable, [u8; 8]: Immutable,

impl<B> Immutable for ExtentTreeNode<B>
where Ref<B, ExtentHeader>: Immutable, B: Immutable + SplitByteSlice,

impl Immutable for zbi_bootfs_dirent_t
where U32: Immutable,

impl Immutable for zbi_bootfs_header_t
where U32: Immutable,

impl Immutable for ZbiTopologyArm64Info
where u8: Immutable,

impl Immutable for ZbiTopologyCache
where u32: Immutable,

impl Immutable for ZbiTopologyCluster
where u8: Immutable,

impl Immutable for ZbiTopologyNode
where u8: Immutable, u16: Immutable, Entity: Immutable,

impl Immutable for ZbiTopologyNumaRegion
where u64: Immutable,

impl Immutable for ZbiTopologyProcessor
where [u16; 4]: Immutable, u8: Immutable, u16: Immutable, ArchitectureInfo: Immutable,

impl Immutable for ZbiTopologyX64Info
where [u32; 4]: Immutable, u32: Immutable,

impl Immutable for zbi_header_t
where U32: Immutable,

impl Immutable for ArchitectureInfo
where ZbiTopologyArm64Info: Immutable, ZbiTopologyX64Info: Immutable,

impl Immutable for Entity
where ZbiTopologyProcessor: Immutable, ZbiTopologyCluster: Immutable, ZbiTopologyNumaRegion: Immutable, ZbiTopologyCache: Immutable,

impl Immutable for ProxyFilename
where u64: Immutable, [u8; 149]: Immutable, [u8; 32]: Immutable,

impl Immutable for Header
where [u8; 8]: Immutable, u32: Immutable, u64: Immutable, [u8; 16]: Immutable,

impl Immutable for PartitionTableEntry
where [u8; 16]: Immutable, u64: Immutable, [u16; 36]: Immutable,

impl Immutable for Bssid
where [u8; 6]: Immutable,

impl Immutable for MacAddr
where [u8; 6]: Immutable,

impl Immutable for Type00Config
where u16: Immutable, u8: Immutable, [u32; 6]: Immutable, u32: Immutable, [u8; 3]: Immutable, [u8; 4]: Immutable,

impl Immutable for Type01Config
where u16: Immutable, u8: Immutable, [u32; 2]: Immutable, u32: Immutable, [u8; 3]: Immutable,

impl Immutable for magma_buffer_info
where u64: Immutable,

impl Immutable for magma_buffer_offset
where u64: Immutable,

impl Immutable for magma_exec_command_buffer
where u32: Immutable, u64: Immutable,

impl Immutable for magma_exec_resource
where magma_buffer_id_t: Immutable, u64: Immutable,

impl Immutable for magma_image_create_info
where u64: Immutable, [u64; 16]: Immutable, u32: Immutable,

impl Immutable for magma_image_info
where [u64; 4]: Immutable, [u32; 4]: Immutable, u64: Immutable, u32: Immutable,

impl Immutable for magma_total_time_query_result
where u64: Immutable,

impl Immutable for virtio_magma_buffer_clean_cache_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_buffer_clean_cache_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_buffer_export_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_buffer_export_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_buffer_get_cache_policy_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_buffer_get_cache_policy_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_buffer_get_handle_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_buffer_get_handle_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_buffer_get_info_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_buffer_get_info_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_buffer_set_cache_policy_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_buffer_set_cache_policy_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_buffer_set_name_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_buffer_set_name_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_config
where u64: Immutable,

impl Immutable for virtio_magma_connection_create_buffer_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_connection_create_buffer_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_connection_create_context_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_connection_create_context_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_connection_create_semaphore_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_connection_create_semaphore_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_connection_dump_performance_counters_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable, u32: Immutable,

impl Immutable for virtio_magma_connection_enable_performance_counter_access_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable, u32: Immutable,

impl Immutable for virtio_magma_connection_execute_command_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable, u32: Immutable,

impl Immutable for virtio_magma_connection_execute_command_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_connection_execute_immediate_commands_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable, u32: Immutable,

impl Immutable for virtio_magma_connection_execute_inline_commands_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable, u32: Immutable,

impl Immutable for virtio_magma_connection_flush_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_connection_flush_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_connection_get_error_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_connection_get_error_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_connection_import_buffer_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable, u32: Immutable,

impl Immutable for virtio_magma_connection_import_buffer_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_connection_import_semaphore2_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable, u32: Immutable,

impl Immutable for virtio_magma_connection_import_semaphore2_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_connection_map_buffer_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_connection_map_buffer_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_connection_perform_buffer_op_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable, u32: Immutable,

impl Immutable for virtio_magma_connection_perform_buffer_op_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_connection_release_buffer_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_connection_release_context_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable, u32: Immutable,

impl Immutable for virtio_magma_connection_release_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_connection_release_semaphore_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_connection_unmap_buffer_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_ctrl_hdr
where u32: Immutable,

impl Immutable for virtio_magma_device_create_connection_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_device_create_connection_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_device_import_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u32: Immutable,

impl Immutable for virtio_magma_device_import_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_device_query_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_device_query_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_device_release_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_device_release_resp
where virtio_magma_ctrl_hdr_t: Immutable,

impl Immutable for virtio_magma_initialize_logging_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u32: Immutable,

impl Immutable for virtio_magma_initialize_logging_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_initialize_tracing_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u32: Immutable,

impl Immutable for virtio_magma_initialize_tracing_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_internal_map_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u32: Immutable, u64: Immutable,

impl Immutable for virtio_magma_internal_map_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_internal_release_handle_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u32: Immutable,

impl Immutable for virtio_magma_internal_release_handle_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_internal_unmap_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u32: Immutable, u64: Immutable,

impl Immutable for virtio_magma_internal_unmap_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_poll_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable, u32: Immutable,

impl Immutable for virtio_magma_poll_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_semaphore_export_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_semaphore_export_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_semaphore_reset_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_semaphore_signal_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_virt_connection_create_image_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_virt_connection_create_image_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_virt_connection_get_image_info_ctrl
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtio_magma_virt_connection_get_image_info_resp
where virtio_magma_ctrl_hdr_t: Immutable, u64: Immutable,

impl Immutable for virtmagma_buffer_set_name_wrapper
where __u64: Immutable,

impl Immutable for virtmagma_command_descriptor
where __u64: Immutable,

impl Immutable for virtmagma_create_image_wrapper
where __u64: Immutable,

impl Immutable for virtmagma_get_image_info_wrapper
where __u64: Immutable,

impl Immutable for virtmagma_ioctl_args_handshake
where __u32: Immutable,

impl Immutable for virtmagma_ioctl_args_magma_command
where __u64: Immutable,

impl Immutable for A
where [u8; 4]: Immutable,

impl Immutable for Aaaa
where [u8; 16]: Immutable,

impl Immutable for Header
where U16: Immutable,

impl Immutable for Mac
where [u8; 6]: Immutable,

impl Immutable for Ipv4Addr
where [u8; 4]: Immutable,

impl Immutable for Ipv6Addr
where [u8; 16]: Immutable,

impl Immutable for PacketHead
where U32: Immutable,

impl Immutable for UninstantiableRecord

impl Immutable for Mldv1Message
where U16: Immutable, Ipv6Addr: Immutable,

impl Immutable for Mldv2QueryMessageHeader
where U16: Immutable, Ipv6Addr: Immutable, u8: Immutable,

impl Immutable for Mldv2ReportHeader
where [u8; 2]: Immutable, U16: Immutable,

impl Immutable for Mldv2ReportRecordHeader
where u8: Immutable, U16: Immutable, Ipv6Addr: Immutable,

impl Immutable for MulticastListenerDone

impl Immutable for MulticastListenerQuery

impl Immutable for MulticastListenerQueryV2

impl Immutable for MulticastListenerReport

impl Immutable for MulticastListenerReportV2

impl Immutable for PrefixInformation
where u8: Immutable, U32: Immutable, [u8; 4]: Immutable, Ipv6Addr: Immutable,

impl Immutable for NeighborAdvertisement
where u8: Immutable, [u8; 3]: Immutable, Ipv6Addr: Immutable,

impl Immutable for NeighborSolicitation
where [u8; 4]: Immutable, Ipv6Addr: Immutable,

impl Immutable for Redirect
where [u8; 4]: Immutable, Ipv6Addr: Immutable,

impl Immutable for RouterAdvertisement
where u8: Immutable, U16: Immutable, U32: Immutable,

impl Immutable for RouterSolicitation
where [u8; 4]: Immutable,

impl Immutable for IcmpDestUnreachable
where [u8; 2]: Immutable, U16: Immutable,

impl Immutable for IcmpEchoReply
where IdAndSeq: Immutable,

impl Immutable for IcmpEchoRequest
where IdAndSeq: Immutable,

impl Immutable for IcmpTimeExceeded
where [u8; 4]: Immutable,

impl Immutable for Icmpv4ParameterProblem
where u8: Immutable, [u8; 3]: Immutable,

impl Immutable for Icmpv4Redirect
where Ipv4Addr: Immutable,

impl Immutable for Icmpv4TimestampReply
where Timestamp: Immutable,

impl Immutable for Icmpv4TimestampRequest
where Timestamp: Immutable,

impl Immutable for Icmpv6PacketTooBig
where U32: Immutable,

impl Immutable for Icmpv6ParameterProblem
where U32: Immutable,

impl Immutable for GroupRecordHeader
where u8: Immutable, U16: Immutable, Ipv4Addr: Immutable,

impl Immutable for MembershipQueryData
where Ipv4Addr: Immutable, u8: Immutable, U16: Immutable,

impl Immutable for MembershipReportV3Data
where [u8; 2]: Immutable, U16: Immutable,

impl Immutable for HeaderPrefix
where u8: Immutable, [u8; 2]: Immutable,

impl Immutable for DscpAndEcn
where u8: Immutable,

impl Immutable for HeaderPrefix
where u8: Immutable, DscpAndEcn: Immutable, U16: Immutable, [u8; 2]: Immutable, Ipv4Addr: Immutable,

impl Immutable for FixedHeader
where [u8; 4]: Immutable, U16: Immutable, u8: Immutable, Ipv6Addr: Immutable,

impl Immutable for TcpSackBlock
where U32: Immutable,

impl Immutable for TcpFlowAndSeqNum
where TcpFlowHeader: Immutable, U32: Immutable,

impl Immutable for TcpFlowHeader
where U16: Immutable,

impl Immutable for ErrorStatusCode

impl Immutable for MessageType

impl Immutable for Elf32Dyn
where u32: Immutable,

impl Immutable for Elf32FileHeader
where ElfIdent: Immutable, u16: Immutable, u32: Immutable,

impl Immutable for Elf32ProgramHeader
where u32: Immutable,

impl Immutable for Elf64Dyn
where u64: Immutable,

impl Immutable for Elf64FileHeader
where ElfIdent: Immutable, u16: Immutable, u32: Immutable, usize: Immutable,

impl Immutable for Elf64ProgramHeader
where u32: Immutable, usize: Immutable, u64: Immutable,

impl Immutable for ElfIdent
where [u8; 4]: Immutable, u8: Immutable, [u8; 7]: Immutable,

impl Immutable for elf32_sym
where Elf32Word: Immutable, Elf32Addr: Immutable, u8: Immutable, Elf32Half: Immutable,

impl Immutable for elf64_sym
where Elf64Word: Immutable, u8: Immutable, Elf64Half: Immutable, Elf64Addr: Immutable, Elf64Xword: Immutable,

impl Immutable for EUI48
where [u8; 6]: Immutable,

impl Immutable for EUI64
where [u8; 8]: Immutable,

impl Immutable for PacketType

impl Immutable for Header
where [u8; 3]: Immutable, PacketType: Immutable, U32: Immutable,

impl Immutable for BigEndianU128
where [u8; 16]: Immutable,

impl Immutable for BigEndianU16
where [u8; 2]: Immutable,

impl Immutable for BigEndianU32
where [u8; 4]: Immutable,

impl Immutable for BigEndianU64
where [u8; 8]: Immutable,

impl Immutable for AmpduParams
where u8: Immutable,

impl Immutable for ApWmmInfo
where u8: Immutable,

impl Immutable for AselCapability
where u8: Immutable,

impl Immutable for BitmapControl
where u8: Immutable,

impl Immutable for BssMaxIdlePeriod
where u16: Immutable, IdleOptions: Immutable,

impl Immutable for ChannelSwitchAnnouncement
where u8: Immutable,

impl Immutable for ClientWmmInfo
where u8: Immutable,

impl Immutable for DsssParamSet
where u8: Immutable,

impl Immutable for EcwMinMax
where u8: Immutable,

impl Immutable for ExtCapabilitiesOctet1
where u8: Immutable,

impl Immutable for ExtCapabilitiesOctet2
where u8: Immutable,

impl Immutable for ExtCapabilitiesOctet3
where u8: Immutable,

impl Immutable for ExtendedChannelSwitchAnnouncement
where u8: Immutable,

impl Immutable for Header
where Id: Immutable, u8: Immutable,

impl Immutable for HtCapabilities
where HtCapabilityInfo: Immutable, AmpduParams: Immutable, SupportedMcsSet: Immutable, HtExtCapabilities: Immutable, TxBfCapability: Immutable, AselCapability: Immutable,

impl Immutable for HtCapabilityInfo
where u16: Immutable,

impl Immutable for HtExtCapabilities
where u16: Immutable,

impl Immutable for HtOpInfo
where [u8; 5]: Immutable,

impl Immutable for HtOperation
where u8: Immutable, HtOpInfo: Immutable, SupportedMcsSet: Immutable,

impl Immutable for Id
where u8: Immutable,

impl Immutable for IdleOptions
where u8: Immutable,

impl Immutable for MpmProtocol
where u16: Immutable,

impl Immutable for PerrDestinationFlags
where u8: Immutable,

impl Immutable for PerrDestinationHeader
where PerrDestinationFlags: Immutable, MacAddr: Immutable, u32: Immutable,

impl Immutable for PerrHeader
where u8: Immutable,

impl Immutable for PrepFlags
where u8: Immutable,

impl Immutable for PrepHeader
where PrepFlags: Immutable, u8: Immutable, MacAddr: Immutable, u32: Immutable,

impl Immutable for PrepTail
where u32: Immutable, MacAddr: Immutable,

impl Immutable for PreqFlags
where u8: Immutable,

impl Immutable for PreqHeader
where PreqFlags: Immutable, u8: Immutable, u32: Immutable, MacAddr: Immutable,

impl Immutable for PreqMiddle
where u32: Immutable, u8: Immutable,

impl Immutable for PreqPerTarget
where PreqPerTargetFlags: Immutable, MacAddr: Immutable, u32: Immutable,

impl Immutable for PreqPerTargetFlags
where u8: Immutable,

impl Immutable for RmEnabledCapabilities
where [u8; 5]: Immutable,

impl Immutable for SecChanOffset
where u8: Immutable,

impl Immutable for SupportedMcsSet
where u128: Immutable,

impl Immutable for SupportedRate
where u8: Immutable,

impl Immutable for TimHeader
where u8: Immutable, BitmapControl: Immutable,

impl Immutable for TransmitPower
where u8: Immutable,

impl Immutable for TransmitPowerInfo
where u8: Immutable,

impl Immutable for TxBfCapability
where u32: Immutable,

impl Immutable for VhtCapabilities
where VhtCapabilitiesInfo: Immutable, VhtMcsNssSet: Immutable,

impl Immutable for VhtCapabilitiesInfo
where u32: Immutable,

impl Immutable for VhtChannelBandwidth
where u8: Immutable,

impl Immutable for VhtMcsNssMap
where u16: Immutable,

impl Immutable for VhtMcsNssSet
where u64: Immutable,

impl Immutable for VhtOperation
where VhtChannelBandwidth: Immutable, u8: Immutable, VhtMcsNssMap: Immutable,

impl Immutable for WideBandwidthChannelSwitch
where VhtChannelBandwidth: Immutable, u8: Immutable,

impl Immutable for WmmAcParams
where WmmAciAifsn: Immutable, EcwMinMax: Immutable, u16: Immutable,

impl Immutable for WmmAciAifsn
where u8: Immutable,

impl Immutable for WmmInfo
where u8: Immutable,

impl Immutable for WmmParam
where WmmInfo: Immutable, u8: Immutable, WmmAcParams: Immutable,

impl Immutable for AttributeHeader
where Id: Immutable, BigEndianU16: Immutable,

impl Immutable for Id
where [u8; 2]: Immutable,

impl Immutable for WpsState
where u8: Immutable,

impl Immutable for ActionCategory
where u8: Immutable,

impl Immutable for ActionHdr
where ActionCategory: Immutable,

impl Immutable for AddbaReqHdr
where BlockAckAction: Immutable, u8: Immutable, BlockAckParameters: Immutable, u16: Immutable, BlockAckStartingSequenceControl: Immutable,

impl Immutable for AddbaRespHdr
where BlockAckAction: Immutable, u8: Immutable, StatusCode: Immutable, BlockAckParameters: Immutable, u16: Immutable,

impl Immutable for AmsduSubframeHdr
where MacAddr: Immutable, BigEndianU16: Immutable,

impl Immutable for AssocReqHdr
where CapabilityInfo: Immutable, u16: Immutable,

impl Immutable for AssocRespHdr
where CapabilityInfo: Immutable, StatusCode: Immutable, Aid: Immutable,

impl Immutable for AuthAlgorithmNumber
where u16: Immutable,

impl Immutable for AuthHdr
where AuthAlgorithmNumber: Immutable, u16: Immutable, StatusCode: Immutable,

impl Immutable for BeaconHdr
where u64: Immutable, TimeUnit: Immutable, CapabilityInfo: Immutable,

impl Immutable for BlockAckAction
where u8: Immutable,

impl Immutable for BlockAckParameters
where u16: Immutable,

impl Immutable for BlockAckPolicy
where u8: Immutable,

impl Immutable for BlockAckStartingSequenceControl
where u16: Immutable,

impl Immutable for CapabilityInfo
where u16: Immutable,

impl Immutable for DeauthHdr
where ReasonCode: Immutable,

impl Immutable for DelbaHdr
where BlockAckAction: Immutable, DelbaParameters: Immutable, ReasonCode: Immutable,

impl Immutable for DelbaParameters
where u16: Immutable,

impl Immutable for DisassocHdr
where ReasonCode: Immutable,

impl Immutable for EthernetIIHdr
where MacAddr: Immutable, BigEndianU16: Immutable,

impl Immutable for FixedDataHdrFields
where FrameControl: Immutable, u16: Immutable, MacAddr: Immutable, SequenceControl: Immutable,

impl Immutable for FrameControl
where u16: Immutable,

impl Immutable for HtControl
where u32: Immutable,

impl Immutable for LlcHdr
where u8: Immutable, [u8; 3]: Immutable, BigEndianU16: Immutable,

impl Immutable for MgmtHdr
where FrameControl: Immutable, u16: Immutable, MacAddr: Immutable, SequenceControl: Immutable,

impl Immutable for ProbeRespHdr
where u64: Immutable, TimeUnit: Immutable, CapabilityInfo: Immutable,

impl Immutable for PsPoll
where u16: Immutable, Bssid: Immutable, MacAddr: Immutable,

impl Immutable for QosControl
where u16: Immutable,

impl Immutable for ReasonCode
where u16: Immutable,

impl Immutable for SequenceControl
where u16: Immutable,

impl Immutable for SpectrumMgmtAction
where u8: Immutable,

impl Immutable for StatusCode
where u16: Immutable,

impl Immutable for Oui
where [u8; 3]: Immutable,

impl Immutable for TimeUnit
where u16: Immutable,

impl Immutable for HandleCountInfo
where u32: Immutable,

impl Immutable for Koid
where zx_koid_t: Immutable,

impl Immutable for MapInfo
where Name: Immutable, usize: Immutable, zx_info_maps_type_t: Immutable, InfoMapsTypeUnion: Immutable,

impl Immutable for MappingDetails
where VmarFlagsExtended: Immutable, [PadByte; 4]: Immutable, Koid: Immutable, u64: Immutable, usize: Immutable,

impl Immutable for MemStats
where u64: Immutable,

impl Immutable for MemStatsCompression
where u64: Immutable, zx_duration_t: Immutable, [u64; 8]: Immutable,

impl Immutable for MemStatsExtended
where u64: Immutable,

impl Immutable for MemoryStall
where zx_duration_mono_t: Immutable,

impl Immutable for Name
where [u8; 32]: Immutable,

impl Immutable for PerCpuStats
where u32: Immutable, zx_duration_t: Immutable, u64: Immutable,

impl Immutable for ProcessHandleStats
where [u32; 64]: Immutable,

impl Immutable for ProcessInfo
where i64: Immutable, zx_time_t: Immutable, u32: Immutable,

impl Immutable for ResourceInfo
where u32: Immutable, u64: Immutable, usize: Immutable, [u8; 32]: Immutable,

impl Immutable for Rights
where zx_rights_t: Immutable,

impl Immutable for TaskRuntimeInfo
where zx_duration_t: Immutable,

impl Immutable for TaskStatsInfo
where usize: Immutable, u64: Immutable,

impl Immutable for VmarFlags
where zx_vm_option_t: Immutable,

impl Immutable for VmarFlagsExtended
where zx_vm_option_t: Immutable,

impl Immutable for VmarInfo
where usize: Immutable,

impl Immutable for VmoInfo
where Koid: Immutable, Name: Immutable, u64: Immutable, usize: Immutable, VmoInfoFlags: Immutable, [PadByte; 4]: Immutable, Rights: Immutable, u32: Immutable,

impl Immutable for VmoInfoFlags
where u32: Immutable,

impl<T, U> Immutable for Duration<T, U>
where zx_duration_t: Immutable, PhantomData<(T, U)>: Immutable,

impl<T, U> Immutable for Instant<T, U>
where zx_time_t: Immutable, PhantomData<(T, U)>: Immutable,

impl<T: Timeline> Immutable for TimerInfo<T>
where u32: Immutable, Instant<T>: Immutable, Duration<T>: Immutable,

impl Immutable for PadByte
where u8: Immutable,

impl Immutable for priority_params
where i32: Immutable, [PadByte; 20]: Immutable,

impl Immutable for zx_arm64_exc_data_t
where u32: Immutable, [PadByte; 4]: Immutable, u64: Immutable, [PadByte; 8]: Immutable,

impl Immutable for zx_cpu_set_t
where [u64; 8]: Immutable,

impl Immutable for zx_exception_context_t
where zx_exception_header_arch_t: Immutable, zx_excp_policy_code_t: Immutable, u32: Immutable,

impl Immutable for zx_exception_header_t
where u32: Immutable, zx_excp_type_t: Immutable,

impl Immutable for zx_exception_info_t
where zx_koid_t: Immutable, zx_excp_type_t: Immutable, [PadByte; 4]: Immutable,

impl Immutable for zx_exception_report_t
where zx_exception_header_t: Immutable, zx_exception_context_t: Immutable,

impl Immutable for zx_info_cpu_stats_t
where u32: Immutable, zx_duration_t: Immutable, u64: Immutable,

impl Immutable for zx_info_handle_basic_t
where zx_koid_t: Immutable, zx_rights_t: Immutable, zx_obj_type_t: Immutable, [PadByte; 4]: Immutable,

impl Immutable for zx_info_handle_count_t
where u32: Immutable,

impl Immutable for zx_info_job_t
where i64: Immutable, u8: Immutable,

impl Immutable for zx_info_kmem_stats_compression_t
where u64: Immutable, zx_duration_t: Immutable, [u64; 8]: Immutable,

impl Immutable for zx_info_kmem_stats_extended_t
where u64: Immutable,

impl Immutable for zx_info_kmem_stats_t
where u64: Immutable,

impl Immutable for zx_info_maps_mapping_t
where zx_vm_option_t: Immutable, [PadByte; 4]: Immutable, zx_koid_t: Immutable, u64: Immutable, usize: Immutable,

impl Immutable for zx_info_maps_t
where [u8; 32]: Immutable, zx_vaddr_t: Immutable, usize: Immutable, zx_info_maps_type_t: Immutable, InfoMapsTypeUnion: Immutable,

impl Immutable for zx_info_memory_stall_t
where zx_duration_mono_t: Immutable,

impl Immutable for zx_info_process_handle_stats_t
where [u32; 64]: Immutable,

impl Immutable for zx_info_process_t
where i64: Immutable, zx_time_t: Immutable, u32: Immutable,

impl Immutable for zx_info_resource_t
where u32: Immutable, u64: Immutable, usize: Immutable, [u8; 32]: Immutable,

impl Immutable for zx_info_socket_t
where u32: Immutable, usize: Immutable,

impl Immutable for zx_info_task_runtime_t
where zx_duration_t: Immutable,

impl Immutable for zx_info_task_stats_t
where usize: Immutable, u64: Immutable,

impl Immutable for zx_info_thread_stats_t
where zx_duration_t: Immutable, u32: Immutable,

impl Immutable for zx_info_thread_t
where zx_thread_state_t: Immutable, u32: Immutable, zx_cpu_set_t: Immutable,

impl Immutable for zx_info_timer_t
where u32: Immutable, zx_clock_t: Immutable, zx_time_t: Immutable, zx_duration_t: Immutable,

impl Immutable for zx_info_vmar_t
where usize: Immutable,

impl Immutable for zx_info_vmo_t
where zx_koid_t: Immutable, [u8; 32]: Immutable, u64: Immutable, usize: Immutable, u32: Immutable, [PadByte; 4]: Immutable, zx_rights_t: Immutable,

impl Immutable for zx_log_record_t
where u64: Immutable, [PadByte; 4]: Immutable, u16: Immutable, u8: Immutable, zx_instant_boot_t: Immutable, [u8; 216]: Immutable,

impl Immutable for zx_packet_guest_vcpu_exit_t
where i64: Immutable, [PadByte; 8]: Immutable,

impl Immutable for zx_packet_guest_vcpu_interrupt_t
where u64: Immutable, u8: Immutable, [PadByte; 7]: Immutable,

impl Immutable for zx_packet_guest_vcpu_startup_t
where u64: Immutable, zx_gpaddr_t: Immutable,

impl Immutable for zx_riscv64_exc_data_t
where u64: Immutable, [PadByte; 8]: Immutable,

impl Immutable for zx_sched_deadline_params_t
where zx_duration_t: Immutable,

impl Immutable for zx_thread_state_general_regs_t
where u64: Immutable,

impl Immutable for zx_x86_64_exc_data_t
where u64: Immutable,

impl Immutable for InfoMapsTypeUnion
where zx_info_maps_mapping_t: Immutable,

impl Immutable for zx_exception_header_arch_t
where zx_x86_64_exc_data_t: Immutable, zx_arm64_exc_data_t: Immutable, zx_riscv64_exc_data_t: Immutable,

impl Immutable for zx_profile_info_union
where priority_params: Immutable, zx_sched_deadline_params_t: Immutable,