public Option <CommandExecDescriptor> PatternDescriptor(CommandName CommandName) { var spec = DescribedSpecs.TryFind(CommandName); if (spec) { var specType = spec.Require().SpecType; foreach (var t in DescribedPatterns.Keys) { if (specType == t || specType.IsSubclassOf(t)) { return(DescribedPatterns[t]); } } } return(none <CommandExecDescriptor>()); }
public Option <CommandSpecDescriptor> SpecDescriptor(CommandName CommandName) => DescribedSpecs.TryFind(CommandName);