Allow to early stop and allow to return error. Maybe utilizing https://doc.rust-lang.org/std/ops/enum.ControlFlow.html.