pub struct Workflow {Show 15 fields
pub run: Option<RunMachine>,
pub verbs: BTreeMap<String, Vec<Transition>>,
pub derived: BTreeMap<String, Expr>,
pub relations: BTreeMap<String, Value>,
pub flags: BTreeMap<String, Value>,
pub stored_as: Vec<StorageRule>,
pub losses: Vec<String>,
pub description: Option<String>,
pub params: Map<String, Value>,
pub roles: BTreeMap<String, Expr>,
pub initial: Vec<Transition>,
pub statuses: BTreeMap<String, Status>,
pub on: BTreeMap<String, Vec<Transition>>,
pub dispatch: Dispatch,
pub notify: BTreeMap<String, BTreeMap<String, String>>,
}Expand description
A board’s workflow.
Fields§
§run: Option<RunMachine>The run machine; absent for legacy homes during migration.
verbs: BTreeMap<String, Vec<Transition>>Card verbs declared once, with source statuses on each transition.
derived: BTreeMap<String, Expr>Derived card conditions, such as ready.
relations: BTreeMap<String, Value>Relation policies, interpreted by the engine’s relation primitives.
flags: BTreeMap<String, Value>Flag policies, interpreted by the engine’s flag primitives.
stored_as: Vec<StorageRule>Ordered Hermes projection and its explicitly accepted losses.
losses: Vec<String>§description: Option<String>What a person reads about it.
params: Map<String, Value>Named values the expressions read (params.failure_limit); a home’s config.yaml kanban: keys override
them by name, so Hermes’s settings are this workflow’s parameters.
roles: BTreeMap<String, Expr>Who acts on a card, each an expression naming a profile (implementer: card.assignee) or a person.
initial: Vec<Transition>Where a new card starts: the first transition whose guard holds.
statuses: BTreeMap<String, Status>Every status, by name.
on: BTreeMap<String, Vec<Transition>>Events that apply in every status (a status’s own on for the same event is tried first).
dispatch: DispatchThe dispatcher.
notify: BTreeMap<String, BTreeMap<String, String>>Who is told what: for each audience (creator, worker, dependency, chat: who a card’s subscriptions
are), the event kinds it hears and the template each is told in. A kind not named is not sent.
Implementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Workflow
impl<'de> Deserialize<'de> for Workflow
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Workflow, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Workflow, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
impl Eq for Workflow
Source§impl JsonSchema for Workflow
impl JsonSchema for Workflow
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl Serialize for Workflow
impl Serialize for Workflow
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for Workflow
Auto Trait Implementations§
impl Freeze for Workflow
impl RefUnwindSafe for Workflow
impl Send for Workflow
impl Sync for Workflow
impl Unpin for Workflow
impl UnsafeUnpin for Workflow
impl UnwindSafe for Workflow
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.