Skip to main content

assetpack_transform_precomp2/
lib.rs

1mod 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::file_transform::{
13  FileTransform, FileTransformConfig, TRANSFORM_ID_PRECOMP2, TRANSFORM_ID_PRECOMP2_LZMA, TRANSFORM_ID_PRECOMP2_ZSTD, TransformSpec,
14};
15pub use precomp2::Precomp2Transform;
16pub use precomp2_lzma::Precomp2LzmaTransform;
17pub use precomp2_zstd::Precomp2ZstdTransform;
18
19fn precomp2_enabled(config: &FileTransformConfig) -> bool {
20  config.enabled && config.precomp2.enabled
21}
22
23fn precomp2_zstd_enabled(config: &FileTransformConfig) -> bool {
24  config.enabled && config.precomp2.enabled && config.precomp2_zstd.enabled
25}
26
27fn precomp2_lzma_enabled(config: &FileTransformConfig) -> bool {
28  config.enabled && config.precomp2.enabled && config.precomp2_lzma.enabled
29}
30
31fn build_precomp2(config: &FileTransformConfig) -> Arc<dyn FileTransform> {
32  Arc::new(Precomp2Transform::new(config))
33}
34
35fn build_precomp2_zstd(config: &FileTransformConfig) -> Arc<dyn FileTransform> {
36  Arc::new(Precomp2ZstdTransform::new(config))
37}
38
39fn build_precomp2_lzma(config: &FileTransformConfig) -> Arc<dyn FileTransform> {
40  Arc::new(Precomp2LzmaTransform::new(config))
41}
42
43pub fn default_specs() -> Vec<TransformSpec> {
44  vec![
45    TransformSpec {
46      id: TRANSFORM_ID_PRECOMP2,
47      name: "precomp2",
48      selectable: true,
49      use_quick_check: false,
50      enabled: precomp2_enabled,
51      build: build_precomp2,
52    },
53    TransformSpec {
54      id: TRANSFORM_ID_PRECOMP2_ZSTD,
55      name: "precomp2-zstd",
56      selectable: true,
57      use_quick_check: false,
58      enabled: precomp2_zstd_enabled,
59      build: build_precomp2_zstd,
60    },
61    TransformSpec {
62      id: TRANSFORM_ID_PRECOMP2_LZMA,
63      name: "precomp2-lzma",
64      selectable: true,
65      use_quick_check: false,
66      enabled: precomp2_lzma_enabled,
67      build: build_precomp2_lzma,
68    },
69  ]
70}