nt_list/list/traits.rs
1// Copyright 2022 Colin Finck <colin@reactos.org>
2// SPDX-License-Identifier: MIT OR Apache-2.0
3
4use crate::private::Sealed;
5use crate::traits::NtListType;
6
7/// Designates a list as an NT doubly linked list (`LIST_ENTRY` structure of the Windows NT API).
8///
9/// You usually want to use `#[derive(NtList)]` to implement [`NtTypedList`] with type set to `NtList`.
10///
11/// [`NtTypedList`]: crate::traits::NtTypedList
12pub enum NtList {}
13
14/// Doubly linked list type (`LIST_ENTRY` structure of the Windows NT API)
15impl NtListType for NtList {}
16impl Sealed for NtList {}
17
18/// Designates an empty enum as a doubly linked list.
19///
20/// Technically, this macro implements [`NtTypedList`] with type set to [`enum@NtList`].
21///
22/// [`NtTypedList`]: crate::traits::NtTypedList
23pub use nt_list_macros::NtList;