Skip to content

Commit fd62a73

Browse files
committed
rename crate features
1 parent 1068d2e commit fd62a73

File tree

26 files changed

+111
-75
lines changed

26 files changed

+111
-75
lines changed

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919

2020
### Changed
2121

22+
- renamed crate feature `alloc` to `global_allocator`
23+
- renamed crate feature `exts` to `alloc`
2224
- Fixed the definition of `AllocateType` so that `MaxAddress` and
2325
`Address` always take a 64-bit value, regardless of target platform.
2426
- The conversion methods on `DevicePathToText` and `DevicePathFromText`
@@ -34,7 +36,7 @@
3436
replaced with a derived `Debug` impl.
3537
- `CStr16::from_u16_with_nul_unchecked` and `cstr16!` are now allowed in
3638
`const` contexts.
37-
39+
3840
### Removed
3941

4042
- Removed `UnalignedCStr16`; use `UnalignedSlice` instead. An

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ license = "MPL-2.0"
2121
[features]
2222
default = ["panic-on-logger-errors"]
2323
alloc = []
24-
exts = []
24+
global_allocator = []
2525
logger = []
2626
# Ignore text output errors in logger as a workaround for firmware issues that
2727
# were observed on the VirtualBox UEFI implementation (see uefi-rs#121).

README.md

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,20 @@ Check out [the UEFI application template](template) for a quick start.
3131
This project contains multiple sub-crates:
3232

3333
- `uefi` (top directory): defines the standard UEFI tables / interfaces.
34-
The objective is to stay unopionated and safely wrap most interfaces.
35-
36-
Optional features:
37-
- `alloc`: implements a global allocator using UEFI functions.
38-
- This allows you to allocate objects on the heap.
34+
The objective is to stay opinionated and safely wrap most interfaces.
35+
36+
**Optional Crate Features:**
37+
- `alloc`: Enables functionality requiring the `alloc` crate from the Rust standard library.
38+
- For example, this allows many convenient `uefi-rs` functions to operate on heap data (`Box`).
39+
- It is up to the user to provide a `#[global allocator]`.
40+
- `global_allocator`: implements a `#[global allocator]` using UEFI functions.
41+
- This allows you to use all abstractions from the `alloc` crate from the Rust standard library
42+
during runtime. Hence, `Vec`, `Box`, etc. will be able to allocate memory.
43+
**This is optional**, so you can provide a custom `#[global allocator]` as well.
3944
- There's no guarantee of the efficiency of UEFI's allocator.
40-
- `logger`: logging implementation for the standard [log] crate.
41-
- Prints output to console.
45+
- `logger`: logging implementation for the standard [`log`] crate.
46+
- Prints output to UEFI console.
4247
- No buffering is done: this is not a high-performance logger.
43-
- `exts`: extensions providing utility functions for common patterns.
44-
- Requires the `alloc` crate (either enable the `alloc` optional feature or your own custom allocator).
4548

4649
- `uefi-macros`: procedural macros that are used to derive some traits in `uefi`.
4750

book/src/SUMMARY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
- [Running in a VM](tutorial/vm.md)
88
- [How-to](how_to/introduction.md)
99
- [Using Protocols](how_to/protocols.md)
10+
- [Crate Features](how_to/crate_features.md)
1011
- [Concepts](concepts/introduction.md)
1112
- [Boot Stages](concepts/boot_stages.md)
1213
- [Tables](concepts/tables.md)

book/src/how_to/crate_features.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Optional Crate Features
2+
3+
There are several optional crate features provided by the `uefi` crate.
4+
5+
## Optional Crate Features:
6+
- `alloc`: Enables functionality requiring the `alloc` crate from the Rust standard library.
7+
- For example, this allows many convenient `uefi-rs` functions to operate on heap data (`Box`).
8+
- It is up to the user to provide a `#[global allocator]`.
9+
- `global_allocator`: implements a `#[global allocator]` using UEFI functions.
10+
- This allows you to use all abstractions from the `alloc` crate from the Rust standard library
11+
during runtime. Hence, `Vec`, `Box`, etc. will be able to allocate memory.
12+
**This is optional**, so you can provide a custom `#[global allocator]` as well.
13+
- There's no guarantee of the efficiency of UEFI's allocator.
14+
- `logger`: logging implementation for the standard [`log`] crate.
15+
- Prints output to UEFI console.
16+
- No buffering is done: this is not a high-performance logger.

book/src/tutorial/building.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ Create `.cargo/config.toml` with these contents:
4949
target = "x86_64-unknown-uefi"
5050

5151
[unstable]
52-
build-std = ["core", "compiler_builtins", "alloc"]
52+
build-std = ["core", "compiler_builtins", "global_allocator"]
5353
build-std-features = ["compiler-builtins-mem"]
5454
```
5555

src/data_types/guid.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,9 +141,8 @@ pub use uefi_macros::unsafe_guid;
141141

142142
#[cfg(test)]
143143
mod tests {
144-
use uefi::{guid, unsafe_guid};
145-
extern crate alloc;
146144
use super::*;
145+
use uefi::{guid, unsafe_guid};
147146

148147
#[test]
149148
fn test_guid_display() {

src/data_types/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,9 +132,9 @@ pub use self::strs::{
132132
CStr16, CStr8, EqStrUntilNul, FromSliceWithNulError, FromStrWithBufError, UnalignedCStr16Error,
133133
};
134134

135-
#[cfg(feature = "exts")]
135+
#[cfg(feature = "alloc")]
136136
mod owned_strs;
137-
#[cfg(feature = "exts")]
137+
#[cfg(feature = "alloc")]
138138
pub use self::owned_strs::{CString16, FromStrError};
139139

140140
mod unaligned_slice;

src/data_types/owned_strs.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use super::chars::{Char16, NUL_16};
22
use super::strs::{CStr16, FromSliceWithNulError};
3-
use crate::alloc_api::vec::Vec;
3+
use crate::alloc::vec::Vec;
44
use crate::data_types::strs::EqStrUntilNul;
55
use crate::data_types::UnalignedSlice;
66
use core::fmt;
@@ -138,8 +138,8 @@ impl<StrType: AsRef<str>> EqStrUntilNul<StrType> for CString16 {
138138
#[cfg(test)]
139139
mod tests {
140140
use super::*;
141-
use crate::alloc_api::string::String;
142-
use crate::alloc_api::vec;
141+
use crate::alloc::string::String;
142+
use crate::alloc::vec;
143143

144144
#[test]
145145
fn test_cstring16_from_str() {

src/data_types/strs.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use core::mem::MaybeUninit;
66
use core::result::Result;
77
use core::slice;
88

9-
#[cfg(feature = "exts")]
9+
#[cfg(feature = "alloc")]
1010
use super::CString16;
1111

1212
/// Errors which can occur during checked `[uN]` -> `CStrN` conversions
@@ -397,7 +397,7 @@ impl fmt::Display for CStr16 {
397397
}
398398
}
399399

400-
#[cfg(feature = "exts")]
400+
#[cfg(feature = "alloc")]
401401
impl PartialEq<CString16> for &CStr16 {
402402
fn eq(&self, other: &CString16) -> bool {
403403
PartialEq::eq(*self, other.as_ref())
@@ -447,7 +447,7 @@ where
447447
#[cfg(test)]
448448
mod tests {
449449
use super::*;
450-
use crate::alloc_api::string::String;
450+
use crate::alloc::string::String;
451451
use uefi_macros::{cstr16, cstr8};
452452

453453
#[test]

0 commit comments

Comments
 (0)