Skip to content

Commit 299a9f7

Browse files
committed
doc: Crate organization -> Library Structure & Tips
Also added "UEFI Strings" subsection
1 parent 4f3c245 commit 299a9f7

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

uefi/src/lib.rs

+10-1
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,21 @@
5555
//!
5656
//! For more details of UEFI itself, see the latest [UEFI Specification][spec].
5757
//!
58-
//! # Crate organisation
58+
//! # Library Structure & Tips
5959
//!
6060
//! The top-level module contains some of the most used types and macros,
6161
//! including the [`Handle`] and [`Result`] types, the [`CStr16`] and
6262
//! [`CString16`] types for working with UCS-2 strings, and the [`entry`] and
6363
//! [`guid`] macros.
6464
//!
65+
//! ## UEFI Strings
66+
//!
67+
//! Rust string literals are UTF-8 encoded and thus, not compatible with most
68+
//! UEFI interfaces. We provide [`CStr16`] and [`CString16`] for proper working
69+
//! with UCS-2 strings, including various transformation functions from standard
70+
//! Rust strings. You can use [`ctr16!`] to create UCS-2 string literals at
71+
//! compile time.
72+
//!
6573
//! ## Tables
6674
//!
6775
//! The [`SystemTable`] provides access to almost everything in UEFI. It comes
@@ -177,6 +185,7 @@
177185
//! [`BootServices`]: table::boot::BootServices
178186
//! [`GlobalAlloc`]: alloc::alloc::GlobalAlloc
179187
//! [`SystemTable`]: table::SystemTable
188+
//! [`ctr16!`]: crate::cstr16
180189
//! [`unsafe_protocol`]: proto::unsafe_protocol
181190
//! [contributing]: https://github.com/rust-osdev/uefi-rs/blob/main/CONTRIBUTING.md
182191
//! [issue tracker]: https://github.com/rust-osdev/uefi-rs/issues

0 commit comments

Comments
 (0)