Module archive

Source
Expand description

Support for archive files.

ยงExample

use object::{Object, ObjectSection};
use std::error::Error;
use std::fs;

/// Reads an archive and displays the name of each member.
fn main() -> Result<(), Box<dyn Error>> {
   let data = fs::read("path/to/binary")?;
   let file = object::read::archive::ArchiveFile::parse(&*data)?;
   for member in file.members() {
       let member = member?;
       println!("{}", String::from_utf8_lossy(member.name()));
   }
   Ok(())
}

Structsยง

ArchiveFile
A partially parsed archive file.
ArchiveMember
A partially parsed archive member.
ArchiveMemberIterator
An iterator over the members of an archive.
ArchiveOffset
An offset of a member in an archive.
ArchiveSymbol
A symbol in the archive symbol table.
ArchiveSymbolIterator
An iterator over the symbols in the archive symbol table.

Enumsยง

ArchiveKind
The kind of archive format.
MemberHeader ๐Ÿ”’
An archive member header.
Members ๐Ÿ”’
The list of members in the archive.
SymbolIteratorInternal ๐Ÿ”’

Functionsยง

parse_bsd_extended_name ๐Ÿ”’
Digits are a decimal length of the extended name, which is contained in data at offset. Modifies offset and size to start after the extended name.
parse_sysv_extended_name ๐Ÿ”’
Digits are a decimal offset into the extended name table. Name is terminated by โ€œ/\nโ€ (for GNU) or a null byte (for COFF).
parse_u64_digits ๐Ÿ”’