///|
pub struct CleaningSummary {
accepted : Array[Event]
rejected : Int
}
///|
/// Drop malformed records while preserving the input order of valid events.
pub fn clean_events(events : Array[Event]) -> CleaningSummary {
let accepted : Array[Event] = []
let mut rejected = 0
for event in events {
if event.customer_id.trim().is_empty() || event.day < 0 || event.amount < 0 {
rejected += 1
} else {
accepted.push(event)
}
}
{ accepted, rejected }
}