Skip to main content

Crate rakata_formats

Crate rakata_formats 

Source
Expand description

Binary and text format readers/writers for KotOR resources.

Modules in this crate are implementation-focused and designed to support deterministic roundtrip behavior.

Re-exports§

pub use bif::read_bif;
pub use bif::read_bif_from_bytes;
pub use bif::write_bif;
pub use bif::write_bif_to_vec;
pub use bif::Bif;
pub use bif::BifBinaryError;
pub use bif::BifContainer;
pub use bif::BifResource;
pub use bif::BifResourceStorage;
pub use binary::DecodeBinary;
pub use binary::EncodeBinary;
pub use bwm::read_bwm;
pub use bwm::read_bwm_ascii;
pub use bwm::read_bwm_from_bytes;
pub use bwm::write_bwm;
pub use bwm::write_bwm_ascii;
pub use bwm::write_bwm_to_vec;
pub use bwm::Bwm;
pub use bwm::BwmAabbNode;
pub use bwm::BwmAdjacency;
pub use bwm::BwmAsciiError;
pub use bwm::BwmBinaryError;
pub use bwm::BwmEdge;
pub use bwm::BwmFace;
pub use bwm::BwmType;
pub use bwm::BwmTypeCode;
pub use bwm::BwmVec3;
pub use content_source::ContentSource;
pub use content_source::NoSource;
pub use dds::read_dds;
pub use dds::read_dds_from_bytes;
pub use dds::write_dds;
pub use dds::write_dds_to_vec;
pub use dds::Dds;
pub use dds::DdsBinaryError;
pub use dds::DdsCaps2;
pub use dds::DdsD3dFormat;
pub use dds::DdsNewD3dParams;
pub use erf::read_erf;
pub use erf::read_erf_from_bytes;
pub use erf::read_erf_from_bytes_with_options;
pub use erf::read_erf_with_options;
pub use erf::read_save_archive;
pub use erf::read_save_archive_from_bytes;
pub use erf::write_erf;
pub use erf::write_erf_to_vec;
pub use erf::write_erf_to_vec_with_options;
pub use erf::write_erf_with_options;
pub use erf::write_save_archive;
pub use erf::write_save_archive_to_vec;
pub use erf::Erf;
pub use erf::ErfBinaryError;
pub use erf::ErfFileType;
pub use erf::ErfLocalizedString;
pub use erf::ErfReadMode;
pub use erf::ErfReadOptions;
pub use erf::ErfResource;
pub use erf::ErfWriteMode;
pub use erf::ErfWriteOptions;
pub use erf::ModLayout;
pub use gff::read_gff;
pub use gff::read_gff_from_bytes;
pub use gff::write_gff;
pub use gff::write_gff_to_vec;
pub use gff::Change;
pub use gff::Gff;
pub use gff::GffBinaryError;
pub use gff::GffDocument;
pub use gff::GffDocumentError;
pub use gff::GffField;
pub use gff::GffLocalizedString;
pub use gff::GffLocalizedSubstring;
pub use gff::GffPath;
pub use gff::GffPathError;
pub use gff::GffPathParseError;
pub use gff::GffPathSegment;
pub use gff::GffStruct;
pub use gff::GffValue;
pub use gff::GffWalk;
pub use gff::GENERIC_FILE_TYPE;
pub use key::pack_resource_id;
pub use key::read_key;
pub use key::read_key_from_bytes;
pub use key::write_key;
pub use key::write_key_to_vec;
pub use key::Key;
pub use key::KeyBifEntry;
pub use key::KeyBinaryError;
pub use key::KeyResourceEntry;
pub use lip::read_lip;
pub use lip::read_lip_from_bytes;
pub use lip::write_lip;
pub use lip::write_lip_to_vec;
pub use lip::Lip;
pub use lip::LipBinaryError;
pub use lip::LipKeyframe;
pub use lip::LipShape;
pub use lip::LipShapeCode;
pub use ltr::read_ltr;
pub use ltr::read_ltr_from_bytes;
pub use ltr::write_ltr;
pub use ltr::write_ltr_to_vec;
pub use ltr::Ltr;
pub use ltr::LtrBinaryError;
pub use ltr::LtrProbabilityBlock;
pub use ltr::LTR_CHARACTER_COUNT;
pub use lyt::read_lyt;
pub use lyt::read_lyt_from_bytes;
pub use lyt::write_lyt;
pub use lyt::write_lyt_to_vec;
pub use lyt::Lyt;
pub use lyt::LytDoorHook;
pub use lyt::LytError;
pub use lyt::LytObstacle;
pub use lyt::LytRoom;
pub use lyt::LytTrack;
pub use lyt::Quaternion;
pub use lyt::Vec3;
pub use mdl::assign_inverted_counters;
pub use mdl::read_mdl;
pub use mdl::read_mdl_ascii;
pub use mdl::read_mdl_ascii_from_str;
pub use mdl::read_mdl_from_bytes;
pub use mdl::write_mdl;
pub use mdl::write_mdl_ascii;
pub use mdl::write_mdl_ascii_to_string;
pub use mdl::write_mdl_to_vec;
pub use mdl::write_mdl_with_mdx_to_vec;
pub use mdl::AabbNode;
pub use mdl::Mdl;
pub use mdl::MdlAabb;
pub use mdl::MdlAnimEvent;
pub use mdl::MdlAnimMesh;
pub use mdl::MdlAnimNode;
pub use mdl::MdlAnimation;
pub use mdl::MdlAsciiError;
pub use mdl::MdlCamera;
pub use mdl::MdlController;
pub use mdl::MdlControllerType;
pub use mdl::MdlDangly;
pub use mdl::MdlEmitter;
pub use mdl::MdlError;
pub use mdl::MdlFace;
pub use mdl::MdlKey;
pub use mdl::MdlLight;
pub use mdl::MdlMesh;
pub use mdl::MdlNode;
pub use mdl::MdlNodeData;
pub use mdl::MdlReference;
pub use mdl::MdlSaber;
pub use mdl::MdlSkin;
pub use mdl::MdlWriteResult;
pub use rim::read_rim;
pub use rim::read_rim_from_bytes;
pub use rim::write_rim;
pub use rim::write_rim_to_vec;
pub use rim::Rim;
pub use rim::RimBinaryError;
pub use rim::RimResource;
pub use schema::gff_value_type;
pub use schema::GffType;
pub use ssf::read_ssf;
pub use ssf::read_ssf_from_bytes;
pub use ssf::write_ssf;
pub use ssf::write_ssf_to_vec;
pub use ssf::Ssf;
pub use ssf::SsfBinaryError;
pub use ssf::SsfSoundSlot;
pub use tga::read_tga;
pub use tga::read_tga_from_bytes;
pub use tga::read_tga_from_bytes_with_options;
pub use tga::read_tga_with_options;
pub use tga::write_tga;
pub use tga::write_tga_to_vec;
pub use tga::Tga;
pub use tga::TgaBinaryError;
pub use tga::TgaBitsPerPixel;
pub use tga::TgaCompression;
pub use tga::TgaDataType;
pub use tga::TgaHeader;
pub use tga::TgaOrigin;
pub use tga::TgaReadMode;
pub use tga::TgaReadOptions;
pub use tlk::read_tlk;
pub use tlk::read_tlk_from_bytes;
pub use tlk::write_tlk;
pub use tlk::write_tlk_to_vec;
pub use tlk::Tlk;
pub use tlk::TlkBinaryError;
pub use tlk::TlkEntry;
pub use tpc::read_tpc;
pub use tpc::read_tpc_from_bytes;
pub use tpc::write_tpc;
pub use tpc::write_tpc_to_vec;
pub use tpc::Tpc;
pub use tpc::TpcBinaryError;
pub use tpc::TpcHeader;
pub use tpc::TpcHeaderPixelFormat;
pub use tpc::TpcPixelFormatCode;
pub use twoda::read_twoda;
pub use twoda::read_twoda_from_bytes;
pub use twoda::read_twoda_from_bytes_with_options;
pub use twoda::read_twoda_with_options;
pub use twoda::write_twoda;
pub use twoda::write_twoda_to_vec;
pub use twoda::write_twoda_to_vec_with_options;
pub use twoda::write_twoda_with_options;
pub use twoda::TwoDa;
pub use twoda::TwoDaBinaryError;
pub use twoda::TwoDaBinaryOptions;
pub use twoda::TwoDaRow;
pub use txi::read_txi;
pub use txi::read_txi_from_bytes;
pub use txi::read_txi_from_bytes_with_options;
pub use txi::read_txi_with_options;
pub use txi::write_txi;
pub use txi::write_txi_to_vec;
pub use txi::write_txi_to_vec_with_options;
pub use txi::write_txi_with_options;
pub use txi::Txi;
pub use txi::TxiCoordinate;
pub use txi::TxiCoordinateBlock;
pub use txi::TxiDirective;
pub use txi::TxiEntry;
pub use txi::TxiError;
pub use txi::TxiReadOptions;
pub use txi::TxiWriteOptions;
pub use vis::read_vis;
pub use vis::read_vis_from_bytes;
pub use vis::write_vis;
pub use vis::write_vis_to_vec;
pub use vis::Vis;
pub use vis::VisError;
pub use wav::read_wav;
pub use wav::read_wav_from_bytes;
pub use wav::write_wav;
pub use wav::write_wav_to_vec;
pub use wav::write_wav_to_vec_with_options;
pub use wav::write_wav_with_options;
pub use wav::Wav;
pub use wav::WavAudioFormat;
pub use wav::WavEncoding;
pub use wav::WavEncodingCode;
pub use wav::WavError;
pub use wav::WavType;
pub use wav::WavWaveMetadata;
pub use wav::WavWrapperKind;
pub use wav::WavWriteMode;
pub use wav::WavWriteOptions;

Modules§

archive
Shared vocabulary for the lazy archive indexes. Shared vocabulary for the lazy archive indexes.
bif
BIF archive support. BIF binary reader and writer.
binary
Shared binary utilities and lightweight format codec traits. Shared binary helpers and lightweight codec traits.
bwm
BWM/WOK binary walkmesh support. BWM/WOK binary reader and writer.
content_source
Capability trait for the external references a decoded view resolves. What a reader is allowed to ask the outside world for.
dds
DDS texture-container support. DDS (DirectDraw Surface) reader and writer.
derive_support
One declaration per field, emitting reader, writer and schema entry. Items the GffModel derive’s generated code names. What the GffModel derive’s generated code calls.
erf
ERF-family archive support. ERF/MOD/HAK binary reader and writer.
gff
GFF binary container support. GFF V3.2 binary reader and writer.
gff_compare
Comparing a rewritten GFF tree against its original. Comparing a GFF tree against the one it was derived from.
key
KEY index support. KEY binary reader and writer.
lip
LIP binary lip-sync support. LIP binary reader and writer.
ltr
LTR binary letter-table support. LTR binary reader and writer.
lyt
LYT ASCII layout support. LYT ASCII reader and writer.
mdl
MDL binary model support. MDL binary model reader and writer.
rim
RIM archive support. RIM binary reader and writer.
schema
What is established about one GFF field, and the vocabulary for saying it.
section_reader
Bounded, seekable windows over a shared source. Bounded, seekable windows over a shared source.
ssf
SSF binary sound-set support. SSF binary reader and writer.
tga
TGA texture-image support. TGA (Targa) reader and writer.
tlk
Talk table (TLK) binary support. TLK V3.0 binary reader and writer.
tpc
TPC binary texture-container support. TPC binary reader and writer.
twoda
2DA binary table support. 2DA V2.b binary reader and writer.
txi
TXI ASCII texture-info support. TXI ASCII reader and writer.
vis
VIS ASCII visibility support. VIS ASCII reader and writer.
wav
WAV audio container support. WAV reader and writer with KotOR obfuscation handling.

Macros§

gff_label
Builds a GffLabel from a literal, rejecting an invalid one at compile time.

Derive Macros§

GffModel
Generates a typed view’s reader, writer, schema and Default from one declaration per field.