def find_command

cli@0.2.0.0 · cli.bend:5160

import cli@0.2.0.0/cli.bend as Cli
import Base

5160def find_command(items: List<&2, Item>, +query: String,
5161    found: Maybe<&2, Item>) -> Maybe<&2, Item>:
5162  match items found:
5163    case _ Some{item}: Some{item}
5164    case Nil{} None{}: None{}
5165    case Sub{+name, about, +children} <> tail None{}:
5166      find_command(tail, query, Bool.pick(Maybe<&2, Item>,
5167        Bool.or(String.eq(query, name),
5168          List.contains(~String, ~String.eq, find_aliases(children), query)),
5169        Some{Sub{name, about, children}}, None{}))
5170    case head <> tail None{}: find_command(tail, query, None{})

Uses (9)

Used by (1)