///|
pub(all) enum AuditKind {
EvaluationStarted
EvaluationCompleted
EvaluationRejected
BatchStarted
BatchCompleted
} derive(Debug, Eq)
///|
pub struct AuditEvent {
sequence : Int
kind : AuditKind
scale : String
case_id : String
detail : String
} derive(Debug, Eq)
///|
pub fn audit_event(
sequence~ : Int,
kind~ : AuditKind,
scale~ : String,
case_id~ : String,
detail~ : String,
) -> AuditEvent {
{ sequence, kind, scale, case_id, detail }
}
///|
pub fn AuditEvent::kind_name(self : AuditEvent) -> String {
match self.kind {
EvaluationStarted => "evaluation_started"
EvaluationCompleted => "evaluation_completed"
EvaluationRejected => "evaluation_rejected"
BatchStarted => "batch_started"
BatchCompleted => "batch_completed"
}
}
///|
pub fn AuditEvent::to_json(self : AuditEvent) -> String {
"{\"sequence\":\{self.sequence},\"kind\":\"\{self.kind_name()}\",\"scale\":\"\{self.scale}\",\"case_id\":\"\{self.case_id}\",\"detail\":\"\{self.detail}\"}"
}