1#![forbid(unsafe_code)]
2#![doc = "# nwnrs-nwpkg\n\n`nwnrs-nwpkg` defines the typed `nwproject.toml` and `nwproject.lock` behavior\nused by the workspace packaging tools.\n\nIt owns:\n\n- the supported `nwproject` kind taxonomy\n- serde-backed TOML manifest read/write behavior\n- JSON lockfile read/write behavior\n- repack optimization helpers such as source snapshots and original-file reuse\n\nThe crate depends on `nwnrs-types` for NWN-specific archive/resource vocabulary\nsuch as `ResRef`, ERF versions, KEY/BIF versions, checksum helpers, and\ncompression algorithms.\n"include_str!("../README.md")]
3
4mod fs;
5mod kind;
6mod lock;
7mod manifest;
8
9pub use fs::is_project_control_file;
10pub use kind::{ProjectKind, ProjectLayout};
11pub use lock::{
12 ErfPackMetadata, KeyPackMetadata, ResourcePackMetadata, copy_original_key_set,
13 read_erf_pack_metadata, read_key_pack_metadata, read_resource_pack_metadata,
14 resolve_existing_key_bif_path, should_copy_original_erf, should_copy_original_key,
15 should_copy_original_resource, write_erf_pack_metadata, write_key_pack_metadata,
16 write_new_erf_pack_metadata, write_new_key_pack_metadata, write_new_resource_pack_metadata,
17 write_resource_pack_metadata,
18};
19pub use manifest::{ProjectManifest, read_project_manifest, write_project_manifest};
20
21pub const PROJECT_MANIFEST_FILENAME: &str = "nwproject.toml";
23
24pub const PROJECT_LOCK_FILENAME: &str = "nwproject.lock";