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{})

Uses (14)

Used by (1)