def option_matches
cli@0.2.0.0 · cli.bend:2586
import cli@0.2.0.0/cli.bend as Cli
import Base
2586def option_matches(+query: String, info: ArgInfo) ->
2587 Maybe<&2, OptFound>:
2588 match info:
2589 case ArgInfo{id, usage, +short, +long, +kind, +attrs}:
2590 +named = Bool.or(
2591 Bool.and(Bool.not(String.is_empty(short)), String.eq(query, short)),
2592 Bool.or(Bool.and(Bool.not(String.is_empty(long)),
2593 String.eq(query, long)),
2594 List.contains(~String, ~String.eq, find_aliases(attrs), query)))
2595 +negated = Bool.and(kind_negatable(kind),
2596 Bool.and(Bool.not(String.is_empty(long)),
2597 String.eq(query, negated_long(long))))
2598 Bool.pick(Maybe<&2, OptFound>, Bool.or(named, negated),
2599 Some{OptFound{ArgInfo{id, usage, short, long, kind, attrs},
2600 Bool.not(negated)}}, None{})