[][src]Crate genie_drs

.drs is the resource archive file format for the Genie Engine, used by Age of Empires 1/2 and Star Wars: Galactic Battlegrounds. .drs files contain tables, each of which contain resources of a single type. Resources are identified by a numeric identifier.

Example

use std::fs::File;
use genie_drs::DRSReader;

let mut file = File::open("test.drs")?;
let drs = DRSReader::new(&mut file)?;

for table in drs.tables() {
    for resource in table.resources() {
        let content = drs.read_resource(&mut file, table.resource_type, resource.id)?;
        println!("{}: {:?}", resource.id, std::str::from_utf8(&content)?);
    }
}

Structs

DRSHeader

The DRS archive header.

DRSReader

A DRS archive reader.

DRSResource

A single resource in a DRS archive.

DRSTable

A table containing resource entries.

DRSWriter

Generator for .drs archives.

InMemoryStrategy

Create the entire DRS file in memory first, then flush it to the output.

ParseResourceTypeError

An error occurred while parsing a resource type.

ReserveDirectoryStrategy

Writer strategy that reserve space for metadata for the given amount of tables and files at the top of the file, then fills it in at the end.

ResourceType

A resource type name.

Traits

WriteStrategy

Strategy to use when writing files to the archive.

Type Definitions

DRSResourceIterator

An iterator over DRS resource metadata structs.

DRSTableIterator

An iterator over DRS table metadata structs.