Vendor things
This commit is contained in:
parent
5deceec006
commit
977e3c17e5
19434 changed files with 10682014 additions and 0 deletions
99
third-party/vendor/object/src/lib.rs
vendored
Normal file
99
third-party/vendor/object/src/lib.rs
vendored
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
//! # `object`
|
||||
//!
|
||||
//! The `object` crate provides a unified interface to working with object files
|
||||
//! across platforms. It supports reading relocatable object files and executable files,
|
||||
//! and writing relocatable object files and some executable files.
|
||||
//!
|
||||
//! ## Raw struct definitions
|
||||
//!
|
||||
//! Raw structs are defined for: [ELF](elf), [Mach-O](macho), [PE/COFF](pe),
|
||||
//! [XCOFF](xcoff), [archive].
|
||||
//! Types and traits for zerocopy support are defined in the [`pod`] and [`endian`] modules.
|
||||
//!
|
||||
//! ## Unified read API
|
||||
//!
|
||||
//! The [`read`] module provides a unified read API using the [`read::Object`] trait.
|
||||
//! There is an implementation of this trait for [`read::File`], which allows reading any
|
||||
//! file format, as well as implementations for each file format.
|
||||
//!
|
||||
//! ## Low level read API
|
||||
//!
|
||||
//! The [`read#modules`] submodules define helpers that operate on the raw structs.
|
||||
//! These can be used instead of the unified API, or in conjunction with it to access
|
||||
//! details that are not available via the unified API.
|
||||
//!
|
||||
//! ## Unified write API
|
||||
//!
|
||||
//! The [`mod@write`] module provides a unified write API for relocatable object files
|
||||
//! using [`write::Object`]. This does not support writing executable files.
|
||||
//!
|
||||
//! ## Low level write API
|
||||
//!
|
||||
//! The [`mod@write#modules`] submodules define helpers for writing the raw structs.
|
||||
//!
|
||||
//! ## Shared definitions
|
||||
//!
|
||||
//! The crate provides a number of definitions that are used by both the read and write
|
||||
//! APIs. These are defined at the top level module, but none of these are the main entry
|
||||
//! points of the crate.
|
||||
|
||||
#![deny(missing_docs)]
|
||||
#![deny(missing_debug_implementations)]
|
||||
#![no_std]
|
||||
#![warn(rust_2018_idioms)]
|
||||
// Style.
|
||||
#![allow(clippy::collapsible_if)]
|
||||
#![allow(clippy::comparison_chain)]
|
||||
#![allow(clippy::manual_flatten)]
|
||||
#![allow(clippy::match_like_matches_macro)]
|
||||
#![allow(clippy::single_match)]
|
||||
#![allow(clippy::type_complexity)]
|
||||
// Occurs due to fallible iteration.
|
||||
#![allow(clippy::should_implement_trait)]
|
||||
// Unit errors are converted to other types by callers.
|
||||
#![allow(clippy::result_unit_err)]
|
||||
// Worse readability sometimes.
|
||||
#![allow(clippy::collapsible_else_if)]
|
||||
|
||||
#[cfg(feature = "cargo-all")]
|
||||
compile_error!("'--all-features' is not supported; use '--features all' instead");
|
||||
|
||||
#[cfg(any(feature = "read_core", feature = "write_core"))]
|
||||
#[allow(unused_imports)]
|
||||
#[macro_use]
|
||||
extern crate alloc;
|
||||
|
||||
#[cfg(feature = "std")]
|
||||
#[allow(unused_imports)]
|
||||
#[macro_use]
|
||||
extern crate std;
|
||||
|
||||
mod common;
|
||||
pub use common::*;
|
||||
|
||||
#[macro_use]
|
||||
pub mod endian;
|
||||
pub use endian::*;
|
||||
|
||||
#[macro_use]
|
||||
pub mod pod;
|
||||
pub use pod::*;
|
||||
|
||||
#[cfg(feature = "read_core")]
|
||||
pub mod read;
|
||||
#[cfg(feature = "read_core")]
|
||||
pub use read::*;
|
||||
|
||||
#[cfg(feature = "write_core")]
|
||||
pub mod write;
|
||||
|
||||
#[cfg(feature = "archive")]
|
||||
pub mod archive;
|
||||
#[cfg(feature = "elf")]
|
||||
pub mod elf;
|
||||
#[cfg(feature = "macho")]
|
||||
pub mod macho;
|
||||
#[cfg(any(feature = "coff", feature = "pe"))]
|
||||
pub mod pe;
|
||||
#[cfg(feature = "xcoff")]
|
||||
pub mod xcoff;
|
||||
Loading…
Add table
Add a link
Reference in a new issue