pub struct Decisions {
pub tasks: BTreeMap<String, TaskDecisions>,
}Expand description
All decisions, by feature/task.
Fields§
§tasks: BTreeMap<String, TaskDecisions>By feature/task.
Implementations§
Source§impl Decisions
impl Decisions
Sourcepub fn load(dir: &Path) -> Result<Self, String>
pub fn load(dir: &Path) -> Result<Self, String>
Reads the decisions in dir; none when there is no file yet. A file
in an earlier shape (grants by class, not object) is an error naming
it: reading it as “no decisions” would drop its rejections.
Sourcepub fn save(&self, dir: &Path) -> Result<(), String>
pub fn save(&self, dir: &Path) -> Result<(), String>
Writes the decisions to dir (temporary file, then rename).
Sourcepub fn for_task(&self, feature: &str, task: &str) -> TaskDecisions
pub fn for_task(&self, feature: &str, task: &str) -> TaskDecisions
The decisions for feature/task.
Sourcepub fn for_run(&self, feature: &str, task: &str, run: &str) -> Vec<Object>
pub fn for_run(&self, feature: &str, task: &str, run: &str) -> Vec<Object>
The objects approved for feature/task in run: never another
run’s (a grant ends with its run).
Sourcepub fn take_once(&mut self, feature: &str, task: &str, run: &str) -> Vec<Object>
pub fn take_once(&mut self, feature: &str, task: &str, run: &str) -> Vec<Object>
Removes and returns the once-grants of feature/task claimed by
run: the attempt they are handed to may make each call one time,
and no later attempt has them.
Sourcepub fn approve_once(
&mut self,
feature: &str,
task: &str,
object: Object,
by: &Who,
)
pub fn approve_once( &mut self, feature: &str, task: &str, object: Object, by: &Who, )
Records an approval of object for one call of the task’s next
attempt (a call a lane stopped, decided in its run’s batch); a
rejection of the same object is withdrawn.
Sourcepub fn claim(&mut self, feature: &str, task: &str, run: &str) -> bool
pub fn claim(&mut self, feature: &str, task: &str, run: &str) -> bool
Binds the task’s unclaimed grants (decisions on a call a lane
stopped) to run, the run that now attempts it; whether any was.
Sourcepub fn approve(
&mut self,
feature: &str,
task: &str,
object: Object,
run: Option<&str>,
by: &Who,
)
pub fn approve( &mut self, feature: &str, task: &str, object: Object, run: Option<&str>, by: &Who, )
Records an approval of object in run; a rejection of the same
object is withdrawn.
Sourcepub fn note(&mut self, feature: &str, task: &str, decided: Decided)
pub fn note(&mut self, feature: &str, task: &str, decided: Decided)
Records a decision that changes nothing for the task (an inline approval or rejection of one call): the history only.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Decisions
impl<'de> Deserialize<'de> for Decisions
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>,
impl Eq for Decisions
impl StructuralPartialEq for Decisions
Auto Trait Implementations§
impl Freeze for Decisions
impl RefUnwindSafe for Decisions
impl Send for Decisions
impl Sync for Decisions
impl Unpin for Decisions
impl UnsafeUnpin for Decisions
impl UnwindSafe for Decisions
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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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> ⓘ
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> ⓘ
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 more