rakata_extract/lib.rs
1//! Archive and resource-resolution helpers.
2//!
3//! This crate hosts higher-level lookup composition built on `rakata-formats`
4//! and `rakata-core`.
5//!
6//! Installation detection/probing is intentionally out of scope for this
7//! workspace; downstream consumers own platform-specific discovery.
8
9#![forbid(unsafe_code)]
10#![deny(missing_docs)]
11#![warn(clippy::as_conversions)]
12
13/// Capsule archive (`ERF`/`RIM`) extraction primitives.
14pub mod capsule;
15/// `chitin.key` + KEY/BIF extraction primitives.
16pub mod chitin;
17/// Composite module composition and deterministic per-module resolution.
18pub mod composite_module;
19/// Loose-file extraction primitives.
20pub mod file;
21/// Unified game-installation resource access (RIM + KEY/BIF).
22pub mod game_resources;
23/// KEY/BIF extraction primitives.
24pub mod keyfile;
25/// Shared ordered resource resolver across source families.
26pub mod resolver;
27/// Talktable (`TLK`) extraction primitives.
28pub mod talktable;
29/// Resolver-backed lazy 2DA table cache for decoders.
30pub mod twoda_cache;
31/// Crate-internal shared utilities.
32mod util;
33
34/// In-memory capsule representation.
35pub use capsule::Capsule;
36/// Capsule archive family enum.
37pub use capsule::CapsuleArchive;
38/// Errors returned by capsule primitives.
39pub use capsule::CapsuleError;
40/// Borrowed capsule resource view.
41pub use capsule::CapsuleResourceRef;
42/// Canonical `chitin.key` wrapper for one game root.
43pub use chitin::Chitin;
44/// Errors returned by `chitin.key` primitives.
45pub use chitin::ChitinError;
46/// Composite KotOR module abstraction.
47pub use composite_module::CompositeModule;
48/// Composite module loading and query errors.
49pub use composite_module::CompositeModuleError;
50/// Source part where a resolved resource was found.
51pub use composite_module::CompositeModuleSource;
52/// Resolved resource view with source provenance.
53pub use composite_module::ResolvedResource;
54/// Reads one loose resource file and returns identifier + payload bytes.
55pub use file::read_resource_file;
56/// Errors returned by loose-file primitives.
57pub use file::FileResourceError;
58/// One loose on-disk resource file.
59pub use file::ResourceFile;
60/// Loaded loose-file payload.
61pub use file::ResourceFileData;
62/// Unified resource accessor for a game installation directory.
63pub use game_resources::GameResources;
64/// Errors produced by game-wide resource access.
65pub use game_resources::GameResourcesError;
66/// Result type for paired resource lookups.
67pub use game_resources::ResourcePair;
68/// Read-only KEY/BIF lookup wrapper.
69pub use keyfile::KeyFile;
70/// Errors returned by KEY/BIF primitives.
71pub use keyfile::KeyFileError;
72/// One KEY/BIF BIF-index binding.
73pub use resolver::KeyBifBinding;
74/// KEY/BIF source adapter for resolver APIs.
75pub use resolver::KeyBifSource;
76/// MDL handoff helper error type.
77pub use resolver::MdlHandoffError;
78/// MDL model resource plus optional MDX companion resolution view.
79pub use resolver::MdlWithMdxHandoffResult;
80/// Parsed MDL handoff view plus optional MDX vertex data.
81pub use resolver::MdlWithMdxResult;
82/// Deterministic in-memory override source for resolver APIs.
83pub use resolver::OverrideSource;
84/// Concrete provenance for resolver results.
85pub use resolver::ResolutionProvenance;
86/// Shared ordered resource resolver.
87pub use resolver::Resolver;
88/// Errors produced by resolver operations.
89pub use resolver::ResolverError;
90/// One resolver output view.
91pub use resolver::ResolverResult;
92/// High-level source family classification.
93pub use resolver::ResolverSourceFamily;
94/// Borrowed source reference for resolver composition.
95pub use resolver::ResolverSourceRef;
96/// Texture resource plus optional TXI sidecar resolution view.
97pub use resolver::TextureWithTxiResult;
98/// Conservative hint for interpreting TPC embedded payload bytes.
99pub use resolver::TpcEmbeddedPayloadHint;
100/// TPC handoff helper error type.
101pub use resolver::TpcHandoffError;
102/// Parsed TPC handoff view plus optional external TXI sidecar.
103pub use resolver::TpcWithTxiHandoffResult;
104/// Read-only TLK lookup wrapper.
105pub use talktable::TalkTable;
106/// Errors returned by talktable primitives.
107pub use talktable::TalkTableError;
108/// Compile-time-validated [`TwoDaName`] constants for vanilla K1 2DAs.
109pub use twoda_cache::tables;
110/// Resolver-backed lazy cache of parsed 2DA tables.
111pub use twoda_cache::TwoDaCache;
112/// Errors produced by [`TwoDaCache`] operations.
113pub use twoda_cache::TwoDaCacheError;
114/// Validated 2DA table name (cache key).
115pub use twoda_cache::TwoDaName;