assetpack_transform_precomp2/
lib.rs1mod common;
2mod guards;
3mod precomp2;
4mod precomp2_lzma;
5mod precomp2_zstd;
6
7#[cfg(test)]
8mod tests;
9
10use std::sync::Arc;
11
12use assetpack_core::{
13 TRANSFORM_ID_PRECOMP2, TRANSFORM_ID_PRECOMP2_LZMA, TRANSFORM_ID_PRECOMP2_ZSTD, TransformDecoder,
14 file_transform::{FileTransform, FileTransformConfig, TransformSpec},
15};
16pub use precomp2::Precomp2Transform;
17pub use precomp2_lzma::Precomp2LzmaTransform;
18pub use precomp2_zstd::Precomp2ZstdTransform;
19
20fn precomp2_enabled(config: &FileTransformConfig) -> bool {
21 config.enabled && config.precomp2.enabled
22}
23
24fn precomp2_zstd_enabled(config: &FileTransformConfig) -> bool {
25 config.enabled && config.precomp2.enabled && config.precomp2_zstd.enabled
26}
27
28fn precomp2_lzma_enabled(config: &FileTransformConfig) -> bool {
29 config.enabled && config.precomp2.enabled && config.precomp2_lzma.enabled
30}
31
32fn build_precomp2(config: &FileTransformConfig) -> Arc<dyn FileTransform> {
33 Arc::new(Precomp2Transform::new(config))
34}
35
36fn build_precomp2_zstd(config: &FileTransformConfig) -> Arc<dyn FileTransform> {
37 Arc::new(Precomp2ZstdTransform::new(config))
38}
39
40fn build_precomp2_lzma(config: &FileTransformConfig) -> Arc<dyn FileTransform> {
41 Arc::new(Precomp2LzmaTransform::new(config))
42}
43
44pub fn default_specs() -> Vec<TransformSpec> {
45 vec![
46 TransformSpec {
47 id: TRANSFORM_ID_PRECOMP2,
48 name: "precomp2",
49 selectable: true,
50 use_quick_check: false,
51 enabled: precomp2_enabled,
52 build: build_precomp2,
53 },
54 TransformSpec {
55 id: TRANSFORM_ID_PRECOMP2_ZSTD,
56 name: "precomp2-zstd",
57 selectable: true,
58 use_quick_check: false,
59 enabled: precomp2_zstd_enabled,
60 build: build_precomp2_zstd,
61 },
62 TransformSpec {
63 id: TRANSFORM_ID_PRECOMP2_LZMA,
64 name: "precomp2-lzma",
65 selectable: true,
66 use_quick_check: false,
67 enabled: precomp2_lzma_enabled,
68 build: build_precomp2_lzma,
69 },
70 ]
71}
72
73pub fn default_decoders(config: &FileTransformConfig) -> Vec<Arc<dyn TransformDecoder>> {
74 vec![
75 Arc::new(Precomp2Transform::new(config)),
76 Arc::new(Precomp2ZstdTransform::new(config)),
77 Arc::new(Precomp2LzmaTransform::new(config)),
78 ]
79}