pub struct RemediationPlan {Show 15 fields
pub plan_id: Uuid,
pub finding_id: Uuid,
pub description: String,
pub responsible_party: String,
pub target_date: NaiveDate,
pub actual_completion_date: Option<NaiveDate>,
pub status: RemediationStatus,
pub validation_approach: String,
pub validated_by: Option<String>,
pub validated_date: Option<NaiveDate>,
pub validation_result: Option<ValidationResult>,
pub milestones: Vec<RemediationMilestone>,
pub notes: String,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
}Expand description
Remediation plan for a finding.
Fields§
§plan_id: UuidPlan ID
finding_id: UuidFinding ID this plan addresses
description: StringPlan description
responsible_party: StringResponsible party
target_date: NaiveDateTarget completion date
actual_completion_date: Option<NaiveDate>Actual completion date
status: RemediationStatusPlan status
validation_approach: StringValidation approach
validated_by: Option<String>Validated by auditor ID
validated_date: Option<NaiveDate>Validation date
validation_result: Option<ValidationResult>Validation result
milestones: Vec<RemediationMilestone>Milestones
notes: StringNotes
created_at: DateTime<Utc>§updated_at: DateTime<Utc>Implementations§
Source§impl RemediationPlan
impl RemediationPlan
Sourcepub fn new(
finding_id: Uuid,
description: &str,
responsible_party: &str,
target_date: NaiveDate,
) -> Self
pub fn new( finding_id: Uuid, description: &str, responsible_party: &str, target_date: NaiveDate, ) -> Self
Create a new remediation plan.
Sourcepub fn add_milestone(&mut self, description: &str, target_date: NaiveDate)
pub fn add_milestone(&mut self, description: &str, target_date: NaiveDate)
Add a milestone.
Sourcepub fn mark_complete(&mut self, completion_date: NaiveDate)
pub fn mark_complete(&mut self, completion_date: NaiveDate)
Mark as complete.
Sourcepub fn validate(
&mut self,
validator: &str,
date: NaiveDate,
result: ValidationResult,
)
pub fn validate( &mut self, validator: &str, date: NaiveDate, result: ValidationResult, )
Add validation result.
Sourcepub fn is_overdue(&self) -> bool
pub fn is_overdue(&self) -> bool
Check if plan is overdue.
Trait Implementations§
Source§impl Clone for RemediationPlan
impl Clone for RemediationPlan
Source§fn clone(&self) -> RemediationPlan
fn clone(&self) -> RemediationPlan
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 RemediationPlan
impl Debug for RemediationPlan
Source§impl<'de> Deserialize<'de> for RemediationPlan
impl<'de> Deserialize<'de> for RemediationPlan
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
Auto Trait Implementations§
impl Freeze for RemediationPlan
impl RefUnwindSafe for RemediationPlan
impl Send for RemediationPlan
impl Sync for RemediationPlan
impl Unpin for RemediationPlan
impl UnsafeUnpin for RemediationPlan
impl UnwindSafe for RemediationPlan
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
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<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<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.