///|
/// Close sources using actual committed effects. This neither guesses a
/// serialization order nor turns final database values into initial versions.
fn model_closure_v3(
config : ModelProfileConfigV3,
source : ModelProfileWindowV3,
effects : Array[Json],
) -> Unit raise {
orm_set_equal(
source.ledger.to_json(),
effects,
"All and only actual committed observed effects",
)
let consumed : Map[Int, Bool] = Map([])
if config.is_list {
let final_rows : Array[Json] = []
let identities : Array[Json] = []
let seen_ids : Map[String, Bool] = Map([])
for key in config.keys {
let mut current : Array[Json] = []
for _ in 0..<(effects.length() + 1) {
let mut next = -1
for i, effect in effects {
if orm_get(effect, "key") != key.to_json() || consumed.contains(i) {
continue
}
let items = orm_array(orm_get(effect, "items"))
if items.length() != current.length() + 1 {
continue
}
let mut prefix_equal = true
for j in 0.. true
False => false
_ => fail("Typed actual effect presence")
}
values = orm_get(effect, "values")
consumed[next] = true
}
final_state.push({
"key": key.to_json(),
"version": current,
"present": present.to_json(),
})
if present {
final_rows.push({
"key": key.to_json(),
"version": current,
"values": values,
})
}
}
orm_set_equal(
source.final_rows.to_json(),
final_rows,
"Complete final native relation snapshot",
)
orm_set_equal(
source.final_state.to_json(),
final_state,
"Actual final live/tombstone source state",
)
}
orm_assert(
consumed.length() == effects.length(),
"Every committed effect has its original initialized predecessor closure",
)
}