assemble_std/
lib.rs

1//! # The Assemble Standard Library
2//!
3//! Contains extra stuff for assemble-daemon-rs that don't need to be in the core crate, but provide
4//! good content.
5
6#![deny(missing_docs)]
7#![deny(rustdoc::broken_intra_doc_links)]
8
9#[macro_use]
10extern crate log;
11
12pub mod dependencies;
13pub mod extensions;
14pub mod specs;
15pub mod tasks;
16
17pub use crate::extensions::project_extensions::ProjectExec;
18pub use crate::tasks::exec::Exec;
19pub use crate::tasks::files::{Delete, Dupe};
20use assemble_core::Project;
21use assemble_core::__export::ProjectResult;
22
23pub use assemble_core::defaults::tasks::Empty;
24
25#[cfg(feature = "core")]
26pub use assemble_core::*;
27
28#[macro_use]
29extern crate assemble_core;
30
31/// The default plugin for the std library. Is a no-op.
32#[derive(Debug, Default)]
33pub struct Plugin;
34impl assemble_core::Plugin<Project> for Plugin {
35    fn apply_to(&self, _project: &mut Project) -> ProjectResult {
36        Ok(())
37    }
38}
39
40mod private {
41    use assemble_core::Project;
42
43    /// Trait can only be implemented in the assemble std library for the Project type.
44    pub trait ProjectSealed {}
45
46    impl ProjectSealed for Project {}
47}