pub struct AdoptionPlan { /* private fields */ }Expand description
An organization’s proposed Rakkotan adoption.
Implementations§
Source§impl AdoptionPlan
impl AdoptionPlan
Sourcepub fn new(organization: impl Into<String>) -> Result<Self, AdoptionError>
pub fn new(organization: impl Into<String>) -> Result<Self, AdoptionError>
Creates an unassessed plan for a non-blank organization name.
Examples found in repository?
examples/review_adoption.rs (line 4)
3fn main() -> Result<(), Box<dyn std::error::Error>> {
4 let plan = AdoptionPlan::new("Example Corp")?
5 .assess(
6 P::PurposeAndOutcome,
7 Finding::Satisfied,
8 "pilot goal is measurable",
9 )?
10 .assess(
11 P::AuthorityAndTerms,
12 Finding::Satisfied,
13 "approver and terms recorded",
14 )?
15 .assess(
16 P::DataGovernance,
17 Finding::Satisfied,
18 "data flow and retention recorded",
19 )?
20 .assess(
21 P::UserProtection,
22 Finding::Satisfied,
23 "support and access needs reviewed",
24 )?
25 .assess(
26 P::OperationalOwnership,
27 Finding::NeedsRevision,
28 "backup owner is not assigned",
29 )?
30 .assess(
31 P::ReversibleAdoption,
32 Finding::Satisfied,
33 "exit process documented",
34 )?;
35
36 let report = AdoptionPolicy::evaluate(&plan);
37 println!("organization: {}", plan.organization());
38 println!("decision: {:?}", report.decision());
39 println!("unresolved: {:?}", report.unresolved());
40 Ok(())
41}Sourcepub fn assess(
self,
principle: AdoptionPrinciple,
finding: Finding,
evidence: impl Into<String>,
) -> Result<Self, AdoptionError>
pub fn assess( self, principle: AdoptionPrinciple, finding: Finding, evidence: impl Into<String>, ) -> Result<Self, AdoptionError>
Adds or replaces an assessment and returns the plan for chaining.
Examples found in repository?
examples/review_adoption.rs (lines 5-9)
3fn main() -> Result<(), Box<dyn std::error::Error>> {
4 let plan = AdoptionPlan::new("Example Corp")?
5 .assess(
6 P::PurposeAndOutcome,
7 Finding::Satisfied,
8 "pilot goal is measurable",
9 )?
10 .assess(
11 P::AuthorityAndTerms,
12 Finding::Satisfied,
13 "approver and terms recorded",
14 )?
15 .assess(
16 P::DataGovernance,
17 Finding::Satisfied,
18 "data flow and retention recorded",
19 )?
20 .assess(
21 P::UserProtection,
22 Finding::Satisfied,
23 "support and access needs reviewed",
24 )?
25 .assess(
26 P::OperationalOwnership,
27 Finding::NeedsRevision,
28 "backup owner is not assigned",
29 )?
30 .assess(
31 P::ReversibleAdoption,
32 Finding::Satisfied,
33 "exit process documented",
34 )?;
35
36 let report = AdoptionPolicy::evaluate(&plan);
37 println!("organization: {}", plan.organization());
38 println!("decision: {:?}", report.decision());
39 println!("unresolved: {:?}", report.unresolved());
40 Ok(())
41}Sourcepub fn set_assessment(
&mut self,
principle: AdoptionPrinciple,
finding: Finding,
evidence: impl Into<String>,
) -> Result<(), AdoptionError>
pub fn set_assessment( &mut self, principle: AdoptionPrinciple, finding: Finding, evidence: impl Into<String>, ) -> Result<(), AdoptionError>
Adds or replaces one assessment in place.
Sourcepub fn organization(&self) -> &str
pub fn organization(&self) -> &str
Returns the organization name.
Examples found in repository?
examples/review_adoption.rs (line 37)
3fn main() -> Result<(), Box<dyn std::error::Error>> {
4 let plan = AdoptionPlan::new("Example Corp")?
5 .assess(
6 P::PurposeAndOutcome,
7 Finding::Satisfied,
8 "pilot goal is measurable",
9 )?
10 .assess(
11 P::AuthorityAndTerms,
12 Finding::Satisfied,
13 "approver and terms recorded",
14 )?
15 .assess(
16 P::DataGovernance,
17 Finding::Satisfied,
18 "data flow and retention recorded",
19 )?
20 .assess(
21 P::UserProtection,
22 Finding::Satisfied,
23 "support and access needs reviewed",
24 )?
25 .assess(
26 P::OperationalOwnership,
27 Finding::NeedsRevision,
28 "backup owner is not assigned",
29 )?
30 .assess(
31 P::ReversibleAdoption,
32 Finding::Satisfied,
33 "exit process documented",
34 )?;
35
36 let report = AdoptionPolicy::evaluate(&plan);
37 println!("organization: {}", plan.organization());
38 println!("decision: {:?}", report.decision());
39 println!("unresolved: {:?}", report.unresolved());
40 Ok(())
41}Sourcepub fn assessment(&self, principle: AdoptionPrinciple) -> Option<&Assessment>
pub fn assessment(&self, principle: AdoptionPrinciple) -> Option<&Assessment>
Returns an assessment when recorded.
Trait Implementations§
Source§impl Clone for AdoptionPlan
impl Clone for AdoptionPlan
Source§fn clone(&self) -> AdoptionPlan
fn clone(&self) -> AdoptionPlan
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AdoptionPlan
impl Debug for AdoptionPlan
impl Eq for AdoptionPlan
Source§impl PartialEq for AdoptionPlan
impl PartialEq for AdoptionPlan
impl StructuralPartialEq for AdoptionPlan
Auto Trait Implementations§
impl Freeze for AdoptionPlan
impl RefUnwindSafe for AdoptionPlan
impl Send for AdoptionPlan
impl Sync for AdoptionPlan
impl Unpin for AdoptionPlan
impl UnsafeUnpin for AdoptionPlan
impl UnwindSafe for AdoptionPlan
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
Mutably borrows from an owned value. Read more