From 0e3841d56d9e8b01ab2cfc7acaae265169939484 Mon Sep 17 00:00:00 2001 From: Joe McCain III Date: Thu, 29 Dec 2022 12:09:41 +0000 Subject: [PATCH] Update --- crates/acme/Cargo.toml | 2 +- crates/core/src/specs/apps.rs | 26 +++++++++++------------ crates/core/src/specs/mod.rs | 4 ---- crates/pipelines/src/lib.rs | 8 +++++-- crates/pipelines/src/pipeline.rs | 34 +++++++++++++++++++++--------- crates/pipelines/src/primitives.rs | 13 ------------ crates/pipelines/src/stages.rs | 21 ++++++++++++++++++ crates/pipelines/src/utils.rs | 9 -------- 8 files changed, 65 insertions(+), 52 deletions(-) delete mode 100644 crates/pipelines/src/primitives.rs create mode 100644 crates/pipelines/src/stages.rs diff --git a/crates/acme/Cargo.toml b/crates/acme/Cargo.toml index f48db6a1..0e705d4c 100644 --- a/crates/acme/Cargo.toml +++ b/crates/acme/Cargo.toml @@ -17,7 +17,7 @@ crate-type = ["cdylib", "rlib"] test = true [features] -default = ["clusters", "conduits", "core"] +default = ["core"] full = ["clusters", "conduits", "core", "compilers", "extras", "gateways", "pipelines",] core = ["acme-core"] diff --git a/crates/core/src/specs/apps.rs b/crates/core/src/specs/apps.rs index 0063fedc..40acea12 100644 --- a/crates/core/src/specs/apps.rs +++ b/crates/core/src/specs/apps.rs @@ -4,22 +4,22 @@ Description: ... summary ... */ use super::AsyncSpawable; -use scsys::prelude::{Locked, Logger, BoxResult}; +use scsys::prelude::{BoxResult, Locked, Logger}; /// Implements the base interface for creating compatible platform applications pub trait AppSpec: Default { -type Cnf; -type Ctx; -type State; -fn init() -> Self; -fn context(&self) -> Self::Ctx; -fn name(&self) -> String; -fn settings(&self) -> Self::Cnf; -fn setup(&mut self) -> BoxResult<&Self>; -fn slug(&self) -> String { - self.name().to_ascii_lowercase() -} -fn state(&self) -> &Locked; + type Cnf; + type Ctx; + type State; + fn init() -> Self; + fn context(&self) -> Self::Ctx; + fn name(&self) -> String; + fn settings(&self) -> Self::Cnf; + fn setup(&mut self) -> BoxResult<&Self>; + fn slug(&self) -> String { + self.name().to_ascii_lowercase() + } + fn state(&self) -> &Locked; } /// Extends the core interface to include logging capabilities diff --git a/crates/core/src/specs/mod.rs b/crates/core/src/specs/mod.rs index dc6067d8..1d30e076 100644 --- a/crates/core/src/specs/mod.rs +++ b/crates/core/src/specs/mod.rs @@ -7,8 +7,6 @@ pub use self::apps::*; pub(crate) mod apps; - - pub trait BaseApplication: BaseObject + Versionable { fn application(&self) -> &Self { self @@ -34,8 +32,6 @@ pub trait AsyncSpawable { async fn spawn(&mut self) -> scsys::AsyncResult<&Self>; } - - pub trait Versionable { type Error; diff --git a/crates/pipelines/src/lib.rs b/crates/pipelines/src/lib.rs index 86e6b31e..dd89d951 100644 --- a/crates/pipelines/src/lib.rs +++ b/crates/pipelines/src/lib.rs @@ -3,8 +3,12 @@ Contrib: FL03 Description: ... Summary ... */ -pub use self::{pipeline::*, primitives::*, utils::*}; +pub use self::{pipeline::*, primitives::*, stages::*, utils::*}; pub(crate) mod pipeline; -pub(crate) mod primitives; +pub(crate) mod stages; pub(crate) mod utils; + +pub(crate) mod primitives { + pub const DEFAULT_WORKDIR: &str = "."; +} diff --git a/crates/pipelines/src/pipeline.rs b/crates/pipelines/src/pipeline.rs index f6f65386..45abf14a 100644 --- a/crates/pipelines/src/pipeline.rs +++ b/crates/pipelines/src/pipeline.rs @@ -5,16 +5,30 @@ PipelineStage: Stages in the build process which specify when a particular hook will execute */ +use crate::PipelineStage; + +use scsys::prelude::{Message, Timestamp}; use serde::{Deserialize, Serialize}; +use std::sync::Arc; + +#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)] +pub struct Pipeline { + pub message: Message, + pub name: String, + pub stage: PipelineStage, + pub timestamp: i64, +} -#[allow(clippy::enum_variant_names)] -#[derive( - Clone, Copy, Debug, Default, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize, -)] -#[serde(rename_all = "snake_case")] -pub enum PipelineStage { - PreBuild, - #[default] - Build, - PostBuild, +impl Pipeline { + pub fn new(message: Option, name: String) -> Self { + let message = message.unwrap_or_default(); + let stage = PipelineStage::PreBuild; + let timestamp = Timestamp::default().into(); + Self { + message, + name, + stage, + timestamp, + } + } } diff --git a/crates/pipelines/src/primitives.rs b/crates/pipelines/src/primitives.rs deleted file mode 100644 index d8f73b8b..00000000 --- a/crates/pipelines/src/primitives.rs +++ /dev/null @@ -1,13 +0,0 @@ -/* - Appellation: primitives - Contrib: FL03 - Description: ... Summary ... -*/ -pub use self::{constants::*, types::*}; - -pub(crate) mod constants { - - pub const DEFAULT_WORKDIR: &str = "."; -} - -pub(crate) mod types {} diff --git a/crates/pipelines/src/stages.rs b/crates/pipelines/src/stages.rs new file mode 100644 index 00000000..38cc3d0f --- /dev/null +++ b/crates/pipelines/src/stages.rs @@ -0,0 +1,21 @@ +/* + Appellation: pipeline + Contrib: FL03 + Description: + Stages + - +*/ +use serde::{Deserialize, Serialize}; + +#[allow(clippy::enum_variant_names)] +#[derive( + Clone, Copy, Debug, Default, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize, +)] +#[serde(rename_all = "snake_case")] +pub enum PipelineStage { + PreBuild = 0, + #[default] + Build = 1, + + PostBuild = -1, +} diff --git a/crates/pipelines/src/utils.rs b/crates/pipelines/src/utils.rs index add2b1c9..fb8b2f29 100644 --- a/crates/pipelines/src/utils.rs +++ b/crates/pipelines/src/utils.rs @@ -4,13 +4,4 @@ Description: ... Summary ... */ -/// Remove the first and last charecters of a string -pub fn fnl_remove(data: T) -> String { - let data = data.to_string(); - let mut chars = data.chars(); - chars.next(); - chars.next_back(); - chars.as_str().to_string() -} - pub fn remove_dir_all() {}