first pass of merging in warp (doesn't build)
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
use cloud_objects::cloud_object::{
|
||||
GenericCloudObject, GenericServerObject, GenericStringModel, JsonObjectType,
|
||||
};
|
||||
use cloud_objects::ids::GenericStringObjectId;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::{JsonModel, JsonSerializer};
|
||||
|
||||
/// Data model for a workflow enum, one type of argument that can be inserted into a workflow
|
||||
/// A workflow enum can either be static or dynamic, as determined by the type of `EnumVariants` it uses
|
||||
///
|
||||
/// A `Static` enum contains a finite set of user-specified string values
|
||||
/// A `Dynamic` enum contains a single shell command, which is executed to determine suggested variants for that argument
|
||||
#[derive(Clone, Debug, Deserialize, Serialize, Eq, PartialEq, Hash, PartialOrd)]
|
||||
pub struct WorkflowEnum {
|
||||
/// Enum name
|
||||
pub name: String,
|
||||
/// Whether or not the variable should be visible to other workflows
|
||||
pub is_shared: bool,
|
||||
/// The variants for this enum
|
||||
pub variants: EnumVariants,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, Serialize, Eq, PartialEq, Hash, PartialOrd)]
|
||||
pub enum EnumVariants {
|
||||
Static(Vec<String>), // contains the explicit variants for a static enum
|
||||
Dynamic(String), // contains the value of the shell command associated with the dynamic enum
|
||||
}
|
||||
|
||||
impl JsonModel for WorkflowEnum {
|
||||
fn json_object_type() -> JsonObjectType {
|
||||
JsonObjectType::WorkflowEnum
|
||||
}
|
||||
}
|
||||
|
||||
pub type CloudWorkflowEnum = GenericCloudObject<GenericStringObjectId, CloudWorkflowEnumModel>;
|
||||
pub type CloudWorkflowEnumModel = GenericStringModel<WorkflowEnum, JsonSerializer>;
|
||||
pub type ServerWorkflowEnum = GenericServerObject<GenericStringObjectId, CloudWorkflowEnumModel>;
|
||||
Reference in New Issue
Block a user