multiboot2 0.27.0

Convenient and safe parsing of Multiboot2 Boot Information (MBI) structures and the contained information tags. Usable in `no_std` environments, such as a kernel. The default `builder` feature also allows the construction of the corresponding structures.
Documentation
# multiboot2

[![crates.io](https://img.shields.io/crates/v/multiboot2.svg)](https://crates.io/crates/multiboot2)
[![docs](https://docs.rs/multiboot2/badge.svg)](https://docs.rs/multiboot2/)

Convenient and safe parsing of Multiboot2 Boot Information (MBI)
structures and the contained information tags. Usable in `no_std` environments,
such as a kernel. The default `builder` feature also allows the construction of
the corresponding structures.

It follows the [Multiboot 2.0 specification].

[Multiboot 2.0 specification]: https://www.gnu.org/software/grub/manual/multiboot2/multiboot.html

## Design

For every Multiboot2 structure, there is an ABI-compatible rusty type. This
enables a zero-copying parsing design while also enabling the creation of these
structures via convenient constructors on the corresponding types.

## Features and `no_std` Compatibility

This library is always `no_std`. The default `builder` feature enables `alloc`;
using it requires an `#[global_allocator]`. Remove that feature if you do not
need to construct boot information structures.

## Background: The Multiboot 2 Information Structure

The Multiboot information structure looks like this:

 Field            | Type
------------------|------------
 total size       | u32
 reserved         | u32
 tags             | variable
 end tag = (0, 8) | (u32, u32)

There are many different types of tags, but they all have the same beginning:

 Field        | Type
--------------|----------
 type         | u32
 size         | u32
 other fields | variable

## MSRV

The MSRV is 1.85.1 stable.

## License & Contribution

See main [README](https://github.com/rust-osdev/multiboot2/blob/main/README.md)
file.