pub struct Workflow {
pub name: String,
pub version: String,
pub tasks: HashMap<String, Task>,
}
Fields§
§name: String
§version: String
§tasks: HashMap<String, Task>
Implementations§
Source§impl Workflow
impl Workflow
Sourcepub fn get_dependencies(&self, task_name: &str) -> Option<Vec<String>>
pub fn get_dependencies(&self, task_name: &str) -> Option<Vec<String>>
Finds the list of dependencies that the given task depends on.
§Arguments
task_name
- A string slice that holds the name of the taskworkflow_index
- A integer that holds the index of the workflow where the given task is stored
§Returns
Option<Vec<String>>
- An option containing a vector of dependencies if the task is found, or None if the task have no dependency
Sourcepub fn get_flow(&self) -> Vec<String>
pub fn get_flow(&self) -> Vec<String>
Performs topological sort in the workflow graph. This method is invoked by the parse_module.
§Arguments
workflow_index
- An integer that holds the index of the workflow for which topological sort is to be performed
§Returns
Vec<String>
- A vector containing the list of task names in the order of the topological sort
Trait Implementations§
Source§impl AllocFrozenValue for Workflow
impl AllocFrozenValue for Workflow
Source§fn alloc_frozen_value(self, heap: &FrozenHeap) -> FrozenValue
fn alloc_frozen_value(self, heap: &FrozenHeap) -> FrozenValue
Allocate a value in the frozen heap and return a reference to the allocated value.
Source§impl<'v> AllocValue<'v> for Workflow
impl<'v> AllocValue<'v> for Workflow
Source§impl Allocative for Workflow
impl Allocative for Workflow
Source§impl<'de> Deserialize<'de> for Workflow
impl<'de> Deserialize<'de> for Workflow
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<'pst> ProvidesStaticType<'pst> for Workflow
impl<'pst> ProvidesStaticType<'pst> for Workflow
Source§type StaticType = Workflow
type StaticType = Workflow
Source§impl<'v> StarlarkTypeRepr for &'v Workflow
impl<'v> StarlarkTypeRepr for &'v Workflow
Source§fn starlark_type_repr() -> Ty
fn starlark_type_repr() -> Ty
The representation of a type that a user would use verbatim in starlark type annotations
Source§impl<'v> StarlarkValue<'v> for Workflow
impl<'v> StarlarkValue<'v> for Workflow
Source§const TYPE: &'static str = "Workflow"
const TYPE: &'static str = "Workflow"
Return a string describing the type of self, as returned by the type()
function. Read more
Source§type Canonical = Workflow
type Canonical = Workflow
Two implementations of
StarlarkValue
are considered to have the same type,
if Canonical
field points to the same type. Read moreSource§fn get_type_value_static() -> FrozenStringValue
fn get_type_value_static() -> FrozenStringValue
Like
TYPE
, but returns a reusable FrozenStringValue
pointer to it. This function deliberately doesn’t take a heap,
as it would not be performant to allocate a new value each time. Read moreSource§fn get_type_starlark_repr() -> Ty
fn get_type_starlark_repr() -> Ty
Return a string that is the representation of a type that a user would use in
type annotations. This often will be the same as
Self::TYPE
, but in
some instances it might be slightly different than what is returned by TYPE
. Read moreSource§fn matches_type(&self, ty: &str) -> bool
fn matches_type(&self, ty: &str) -> bool
Is this value a match for a named type. Usually returns
true
for
values matching get_type
, but might also work for subtypes it implements.Source§fn get_methods() -> Option<&'static Methods>where
Self: Sized,
fn get_methods() -> Option<&'static Methods>where
Self: Sized,
Get the members associated with this type, accessible via
this_type.x
.
These members will have dir
/getattr
/hasattr
properly implemented,
so it is the preferred way to go if possible. See
MethodsStatic
for an example of how
to define this method.Source§fn documentation(&self) -> Option<DocItem>where
Self: Sized,
fn documentation(&self) -> Option<DocItem>where
Self: Sized,
Return structured documentation for self, if available.
Source§fn typechecker_ty(&self) -> Option<Ty>
fn typechecker_ty(&self) -> Option<Ty>
Type of this instance for typechecker.
Note this can be more precise than generic type.
Source§fn collect_repr(&self, collector: &mut String)
fn collect_repr(&self, collector: &mut String)
Return a string representation of self, as returned by the
repr()
function.
Defaults to the Display
instance - which should be fine for nearly all types.
In many cases the repr()
representation will also be a Starlark expression
for creating the value. Read moreSource§fn collect_repr_cycle(&self, collector: &mut String)
fn collect_repr_cycle(&self, collector: &mut String)
Invoked to print
repr
when a cycle is the object stack is detected.Source§fn name_for_call_stack(&self, me: Value<'v>) -> String
fn name_for_call_stack(&self, me: Value<'v>) -> String
String used when printing call stack.
repr(self)
by default.Source§fn to_bool(&self) -> bool
fn to_bool(&self) -> bool
Convert self to a boolean, as returned by the bool() function.
The default implementation returns
true
.Source§fn write_hash(&self, hasher: &mut StarlarkHasher) -> Result<(), Error>
fn write_hash(&self, hasher: &mut StarlarkHasher) -> Result<(), Error>
Return a hash data for self to be used when self is placed as a key in a
Dict
.
Return an Err
if there is no hash for this value (e.g. list).
Must be stable between frozen and non-frozen values.Source§fn invoke(
&self,
_me: Value<'v>,
_args: &Arguments<'v, '_>,
_eval: &mut Evaluator<'v, '_>,
) -> Result<Value<'v>, Error>
fn invoke( &self, _me: Value<'v>, _args: &Arguments<'v, '_>, _eval: &mut Evaluator<'v, '_>, ) -> Result<Value<'v>, Error>
Directly invoke a function.
The number of
named
and names
arguments are guaranteed to be equal. Read moreSource§fn at(&self, index: Value<'v>, _heap: &'v Heap) -> Result<Value<'v>, Error>
fn at(&self, index: Value<'v>, _heap: &'v Heap) -> Result<Value<'v>, Error>
Return the result of
a[index]
if a
is indexable.Source§fn at2(
&self,
_index0: Value<'v>,
_index1: Value<'v>,
_heap: &'v Heap,
_private: Private,
) -> Result<Value<'v>, Error>
fn at2( &self, _index0: Value<'v>, _index1: Value<'v>, _heap: &'v Heap, _private: Private, ) -> Result<Value<'v>, Error>
Return the result of
a[index0, index1]
if a
is indexable by two parameters.Source§fn slice(
&self,
_start: Option<Value<'v>>,
_stop: Option<Value<'v>>,
_stride: Option<Value<'v>>,
_heap: &'v Heap,
) -> Result<Value<'v>, Error>
fn slice( &self, _start: Option<Value<'v>>, _stop: Option<Value<'v>>, _stride: Option<Value<'v>>, _heap: &'v Heap, ) -> Result<Value<'v>, Error>
Extract a slice of the underlying object if the object is indexable. The
result will be object between
start
and stop
(both of them are
added length() if negative and then clamped between 0 and length()).
stride
indicates the direction. Read moreSource§fn iterate_collect(&self, _heap: &'v Heap) -> Result<Vec<Value<'v>>, Error>
fn iterate_collect(&self, _heap: &'v Heap) -> Result<Vec<Value<'v>>, Error>
Implement iteration over the value of this container by providing
the values in a
Vec
.Source§unsafe fn iterate(
&self,
_me: Value<'v>,
heap: &'v Heap,
) -> Result<Value<'v>, Error>
unsafe fn iterate( &self, _me: Value<'v>, heap: &'v Heap, ) -> Result<Value<'v>, Error>
Returns an iterator over the value of this container if this value holds
an iterable container. Read more
Source§unsafe fn iter_size_hint(&self, _index: usize) -> (usize, Option<usize>)
unsafe fn iter_size_hint(&self, _index: usize) -> (usize, Option<usize>)
Returns the size hint for the iterator.
Source§unsafe fn iter_next(&self, _index: usize, _heap: &'v Heap) -> Option<Value<'v>>
unsafe fn iter_next(&self, _index: usize, _heap: &'v Heap) -> Option<Value<'v>>
Yield the next value from the iterator. Read more
Source§fn length(&self) -> Result<i32, Error>
fn length(&self) -> Result<i32, Error>
Returns the length of the value, if this value is a sequence.
Source§fn get_attr(&self, _attribute: &str, _heap: &'v Heap) -> Option<Value<'v>>
fn get_attr(&self, _attribute: &str, _heap: &'v Heap) -> Option<Value<'v>>
Get an attribute for the current value as would be returned by dotted
expression (i.e.
a.attribute
). Read moreSource§fn get_attr_hashed(
&self,
attribute: Hashed<&str>,
heap: &'v Heap,
) -> Option<Value<'v>>
fn get_attr_hashed( &self, attribute: Hashed<&str>, heap: &'v Heap, ) -> Option<Value<'v>>
A version of
get_attr
which takes BorrowHashed<str>
instead of &str
,
thus implementation may reuse the hash of the string if this is called
repeatedly with the same string. Read moreSource§fn has_attr(&self, attribute: &str, heap: &'v Heap) -> bool
fn has_attr(&self, attribute: &str, heap: &'v Heap) -> bool
Return true if an attribute of name
attribute
exists for the current
value. Read moreSource§fn dir_attr(&self) -> Vec<String>
fn dir_attr(&self) -> Vec<String>
Return a vector of string listing all attribute of the current value. Read more
Source§fn is_in(&self, other: Value<'v>) -> Result<bool, Error>
fn is_in(&self, other: Value<'v>) -> Result<bool, Error>
Tell whether
other
is in the current value, if it is a container. Read moreSource§fn plus(&self, _heap: &'v Heap) -> Result<Value<'v>, Error>
fn plus(&self, _heap: &'v Heap) -> Result<Value<'v>, Error>
Apply the
+
unary operator to the current value. Read moreSource§fn minus(&self, _heap: &'v Heap) -> Result<Value<'v>, Error>
fn minus(&self, _heap: &'v Heap) -> Result<Value<'v>, Error>
Apply the
-
unary operator to the current value. Read moreSource§fn radd(
&self,
_lhs: Value<'v>,
_heap: &'v Heap,
) -> Option<Result<Value<'v>, Error>>
fn radd( &self, _lhs: Value<'v>, _heap: &'v Heap, ) -> Option<Result<Value<'v>, Error>>
Add with the arguments the other way around. Should return
None
to fall through to normal add.Source§fn add(
&self,
_rhs: Value<'v>,
_heap: &'v Heap,
) -> Option<Result<Value<'v>, Error>>
fn add( &self, _rhs: Value<'v>, _heap: &'v Heap, ) -> Option<Result<Value<'v>, Error>>
Add
other
to the current value. Pass both self and
the Value form of self as original. Read moreSource§fn sub(&self, other: Value<'v>, _heap: &'v Heap) -> Result<Value<'v>, Error>
fn sub(&self, other: Value<'v>, _heap: &'v Heap) -> Result<Value<'v>, Error>
Subtract
other
from the current value. Read moreSource§fn rmul(
&self,
lhs: Value<'v>,
heap: &'v Heap,
) -> Option<Result<Value<'v>, Error>>
fn rmul( &self, lhs: Value<'v>, heap: &'v Heap, ) -> Option<Result<Value<'v>, Error>>
Called on
rhs
of lhs * rhs
when lhs.mul
returns None
.Source§fn mul(
&self,
_rhs: Value<'v>,
_heap: &'v Heap,
) -> Option<Result<Value<'v>, Error>>
fn mul( &self, _rhs: Value<'v>, _heap: &'v Heap, ) -> Option<Result<Value<'v>, Error>>
Multiply the current value with
other
. Read moreSource§fn div(&self, other: Value<'v>, _heap: &'v Heap) -> Result<Value<'v>, Error>
fn div(&self, other: Value<'v>, _heap: &'v Heap) -> Result<Value<'v>, Error>
Divide the current value by
other
. Always results in a float value. Read moreSource§fn percent(&self, other: Value<'v>, _heap: &'v Heap) -> Result<Value<'v>, Error>
fn percent(&self, other: Value<'v>, _heap: &'v Heap) -> Result<Value<'v>, Error>
Apply the percent operator between the current value and
other
. Usually used on
strings, as per
the Starlark spec. Read moreSource§fn floor_div(
&self,
other: Value<'v>,
_heap: &'v Heap,
) -> Result<Value<'v>, Error>
fn floor_div( &self, other: Value<'v>, _heap: &'v Heap, ) -> Result<Value<'v>, Error>
Floor division between the current value and
other
. Read moreSource§fn bit_and(&self, other: Value<'v>, _heap: &'v Heap) -> Result<Value<'v>, Error>
fn bit_and(&self, other: Value<'v>, _heap: &'v Heap) -> Result<Value<'v>, Error>
Bitwise
&
operator.Source§fn bit_or(&self, other: Value<'v>, _heap: &'v Heap) -> Result<Value<'v>, Error>
fn bit_or(&self, other: Value<'v>, _heap: &'v Heap) -> Result<Value<'v>, Error>
Bitwise
|
operator. Read moreSource§fn bit_xor(&self, other: Value<'v>, _heap: &'v Heap) -> Result<Value<'v>, Error>
fn bit_xor(&self, other: Value<'v>, _heap: &'v Heap) -> Result<Value<'v>, Error>
Bitwise
^
operator.Source§fn left_shift(
&self,
other: Value<'v>,
_heap: &'v Heap,
) -> Result<Value<'v>, Error>
fn left_shift( &self, other: Value<'v>, _heap: &'v Heap, ) -> Result<Value<'v>, Error>
Bitwise
<<
operator.Source§fn right_shift(
&self,
other: Value<'v>,
_heap: &'v Heap,
) -> Result<Value<'v>, Error>
fn right_shift( &self, other: Value<'v>, _heap: &'v Heap, ) -> Result<Value<'v>, Error>
Bitwise
>>
operator.Source§fn rbin_op_ty(_lhs: &TyBasic, _op: TypingBinOp) -> Option<Ty>
fn rbin_op_ty(_lhs: &TyBasic, _op: TypingBinOp) -> Option<Ty>
Typecheck
lhs op this
.Source§fn export_as(
&self,
_variable_name: &str,
_eval: &mut Evaluator<'v, '_>,
) -> Result<(), Error>
fn export_as( &self, _variable_name: &str, _eval: &mut Evaluator<'v, '_>, ) -> Result<(), Error>
Called when exporting a value under a specific name,
Source§fn set_at(&self, _index: Value<'v>, _new_value: Value<'v>) -> Result<(), Error>
fn set_at(&self, _index: Value<'v>, _new_value: Value<'v>) -> Result<(), Error>
Set the value at
index
with the new value. Read moreSource§impl<'v> UnpackValue<'v> for &'v Workflow
impl<'v> UnpackValue<'v> for &'v Workflow
Source§fn unpack_value(x: Value<'v>) -> Option<&'v Workflow>
fn unpack_value(x: Value<'v>) -> Option<&'v Workflow>
Given a
Value
, try and unpack it into the given type, which may involve some element of conversion.Source§fn unpack_value_err(value: Value<'v>) -> Result<Self, Error>
fn unpack_value_err(value: Value<'v>) -> Result<Self, Error>
Unpack a value, but return error instead of
None
if unpacking fails.impl Eq for Workflow
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 UnwindSafe for Workflow
Blanket Implementations§
Source§impl<'a, T> AnyLifetime<'a> for Twhere
T: ProvidesStaticType<'a> + 'a + ?Sized,
impl<'a, T> AnyLifetime<'a> for Twhere
T: ProvidesStaticType<'a> + 'a + ?Sized,
Source§fn static_type_id() -> TypeId
fn static_type_id() -> TypeId
Must return the
TypeId
of Self
but where the lifetimes are changed
to 'static
. Must be consistent with static_type_of
.Source§fn static_type_of(&self) -> TypeId
fn static_type_of(&self) -> TypeId
Must return the
TypeId
of Self
but where the lifetimes are changed
to 'static
. Must be consistent with static_type_id
. Must not
consult the self
parameter in any way.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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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
Compare self to
key
and return true
if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<Ok, Error>
Source§impl<'v, T> StarlarkTypeRepr for Twhere
T: StarlarkValue<'v> + ?Sized,
impl<'v, T> StarlarkTypeRepr for Twhere
T: StarlarkValue<'v> + ?Sized,
Source§fn starlark_type_repr() -> Ty
fn starlark_type_repr() -> Ty
The representation of a type that a user would use verbatim in starlark type annotations