Slide 26
Slide 26 text
Level 1-4: concepts
enum Split where S.Splitting == Value,
S.Splitted == Value {
case splitted(Value, Value)
case invalid
init(_ value: Value, using splitter: S) {
if let (first, second) = splitter.split(value: value) {
self = .splitted(first, second)
} else { self = .invalid }
See https://github.com/Ben-G/Validated/ by Benjamin Encz