#[unsafe_protocol]Expand description
Attribute macro for marking structs as UEFI protocols.
The macro can only be applied to a struct, and takes one argument, either a
GUID string or the path to a Guid constant.
The macro implements the Protocol trait and the unsafe Identify
trait for the struct. See the Protocol trait for details of how it is
used.
§Safety
The caller must ensure that the correct GUID is attached to the type. An incorrect GUID could lead to invalid casts and other unsound behavior.
§Example
use uefi::{Guid, Identify, guid};
use uefi::proto::unsafe_protocol;
#[unsafe_protocol("12345678-9abc-def0-1234-56789abcdef0")]
struct ExampleProtocol1 {}
const PROTO_GUID: Guid = guid!("12345678-9abc-def0-1234-56789abcdef0");
#[unsafe_protocol(PROTO_GUID)]
struct ExampleProtocol2 {}
assert_eq!(ExampleProtocol1::GUID, PROTO_GUID);
assert_eq!(ExampleProtocol2::GUID, PROTO_GUID);