1#![allow(clippy::disallowed_types)] #[cfg(feature = "loader")]
4mod config_cache;
5mod config_finder;
6#[cfg(feature = "loader")]
7mod config_loader;
8mod extensions_config;
9#[cfg(feature = "loader")]
10mod formats;
11mod inherited_tasks_config;
12#[cfg(feature = "loader")]
13mod inherited_tasks_manager;
14mod macros;
15pub mod patterns;
16mod project;
17mod project_config;
18mod shapes;
19mod task_config;
20mod task_options_config;
21mod template;
22mod template_config;
23pub mod test_utils;
24mod toolchain;
25mod toolchains_config;
26mod workspace;
27mod workspace_config;
28
29pub use config_finder::*;
30#[cfg(feature = "loader")]
31pub use config_loader::*;
32pub use extensions_config::*;
33pub use inherited_tasks_config::*;
34#[cfg(feature = "loader")]
35pub use inherited_tasks_manager::*;
36pub use project::*;
37pub use project_config::*;
38pub use schematic;
39pub use semver::{Version, VersionReq};
40pub use shapes::*;
41pub use task_config::*;
42pub use task_options_config::*;
43pub use template::*;
44pub use template_config::*;
45pub use toolchain::*;
46pub use toolchains_config::*;
47pub use version_spec::{CalVer, SemVer, UnresolvedVersionSpec, VersionSpec};
48pub use workspace::*;
49pub use workspace_config::*;
50
51use schematic::{Config, PartialConfig};
52
53pub fn finalize_config<T: Config>(config: T::Partial) -> miette::Result<T> {
54 Ok(T::from_partial(config.finalize(&Default::default())?))
55}