- Breaking: The
entry
no longer accepts any arguments.
- Internal updates to the
entry
macro related to Deprecating SystemTable/BootServices/RuntimeServices.
- The
entry
macro now accepts a function with zero arguments in addition to the two-argument form.
- The
entry
macro now sets the global system table pointer withuefi::set_system_table
.
- Removed the
cstr8
andcstr16
macros. Use the declarative macros of the same names exported by theuefi
crate as a replacement.
- The dev-dependency on
uefi
is now path-only.
- The
unsafe_protocol
macro no longer makes protocols!Send
and!Sync
. Protocols can only be used while boot services are active, and that's already a single-threaded environment, so these negative traits do not have any effect. - The
unsafe_protocol
macro now accepts the path of aGuid
constant in addition to a string literal. - The
cstr8
and thecstr16
macros now both accept(nothing)
and""
(empty inputs) to create valid empty strings. They include the null-byte. - The
entry
macro now works correctly with docstrings.
- Errors produced by the
entry
macro have been improved.
- Added the
unsafe_protocol
macro to provide a slightly nicer way to implement protocols.
- The
unsafe_guid
attribute macro andProtocol
derive macro have been removed. For implementing protocols, use theunsafe_protocol
macro instead. For any other implementations of theIdentify
trait, implement it directly.
- Added a
guid!
macro. This is similar toGuid::from_values
, but takes a more convenient string argument like theunsafe_guid!
attribute macro.
- The
#[entry]
macro now callsBootServices::set_image_handle
to set the global image handle. Due to this change, the two arguments to main must both be named (e.g.image: Handle
and_image: Handle
are both OK, but not_: Handle
).
- Relaxed the version requirements for the
proc-macro2
,quote
, andsync
dependencies to allow earlier patch versions.
- Added
cstr8
andcstr16
macros for creatingCStr8
/CStr16
string literals at compile time.
- Updated to the 2021 edition.