101 lines
1.4 KiB
Rust
101 lines
1.4 KiB
Rust
// Copyright 2019 The Fuchsia Authors
|
|
//
|
|
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
|
|
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
|
|
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
|
|
// This file may not be copied, modified, or distributed except according to
|
|
// those terms.
|
|
|
|
#![allow(warnings)]
|
|
|
|
use {static_assertions::assert_impl_all, zerocopy::AsBytes};
|
|
|
|
// An enum is `AsBytes` if if has a defined repr.
|
|
|
|
#[derive(AsBytes)]
|
|
#[repr(C)]
|
|
enum C {
|
|
A,
|
|
}
|
|
|
|
assert_impl_all!(C: AsBytes);
|
|
|
|
#[derive(AsBytes)]
|
|
#[repr(u8)]
|
|
enum U8 {
|
|
A,
|
|
}
|
|
|
|
assert_impl_all!(U8: AsBytes);
|
|
|
|
#[derive(AsBytes)]
|
|
#[repr(u16)]
|
|
enum U16 {
|
|
A,
|
|
}
|
|
|
|
assert_impl_all!(U16: AsBytes);
|
|
|
|
#[derive(AsBytes)]
|
|
#[repr(u32)]
|
|
enum U32 {
|
|
A,
|
|
}
|
|
|
|
assert_impl_all!(U32: AsBytes);
|
|
|
|
#[derive(AsBytes)]
|
|
#[repr(u64)]
|
|
enum U64 {
|
|
A,
|
|
}
|
|
|
|
assert_impl_all!(U64: AsBytes);
|
|
|
|
#[derive(AsBytes)]
|
|
#[repr(usize)]
|
|
enum Usize {
|
|
A,
|
|
}
|
|
|
|
assert_impl_all!(Usize: AsBytes);
|
|
|
|
#[derive(AsBytes)]
|
|
#[repr(i8)]
|
|
enum I8 {
|
|
A,
|
|
}
|
|
|
|
assert_impl_all!(I8: AsBytes);
|
|
|
|
#[derive(AsBytes)]
|
|
#[repr(i16)]
|
|
enum I16 {
|
|
A,
|
|
}
|
|
|
|
assert_impl_all!(I16: AsBytes);
|
|
|
|
#[derive(AsBytes)]
|
|
#[repr(i32)]
|
|
enum I32 {
|
|
A,
|
|
}
|
|
|
|
assert_impl_all!(I32: AsBytes);
|
|
|
|
#[derive(AsBytes)]
|
|
#[repr(i64)]
|
|
enum I64 {
|
|
A,
|
|
}
|
|
|
|
assert_impl_all!(I64: AsBytes);
|
|
|
|
#[derive(AsBytes)]
|
|
#[repr(isize)]
|
|
enum Isize {
|
|
A,
|
|
}
|
|
|
|
assert_impl_all!(Isize: AsBytes);
|