Vendor things

This commit is contained in:
John Doty 2024-03-08 11:03:01 -08:00
parent 5deceec006
commit 977e3c17e5
19434 changed files with 10682014 additions and 0 deletions

View file

@ -0,0 +1,46 @@
// Copyright 2022 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#![allow(warnings)]
mod util;
use {core::marker::PhantomData, static_assertions::assert_impl_all, zerocopy::KnownLayout};
#[derive(KnownLayout)]
enum Foo {
A,
}
assert_impl_all!(Foo: KnownLayout);
#[derive(KnownLayout)]
enum Bar {
A = 0,
}
assert_impl_all!(Bar: KnownLayout);
#[derive(KnownLayout)]
enum Baz {
A = 1,
B = 0,
}
assert_impl_all!(Baz: KnownLayout);
// Deriving `KnownLayout` should work if the enum has bounded parameters.
#[derive(KnownLayout)]
#[repr(C)]
enum WithParams<'a: 'b, 'b: 'a, const N: usize, T: 'a + 'b + KnownLayout>
where
'a: 'b,
'b: 'a,
T: 'a + 'b + KnownLayout,
{
Variant([T; N], PhantomData<&'a &'b ()>),
}
assert_impl_all!(WithParams<'static, 'static, 42, u8>: KnownLayout);