The code could use closures to split the expression or define local functions on the bottom of the surrounding function (a.k.a Haskell style). This would increase readability a lot.
Example: https://play.rust-lang.org/?gist=7ea1a39971399d0429f0369cb9e...