public static SignaturePart Optional([NotNull] SignaturePart inner) { return(OptionalPart.From(inner)); }
public void Visit(OptionalPart part) { sb.Append('['); part.Inner.Accept(this); sb.Append(']'); }
protected abstract T Visit([NotNull] OptionalPart part);
void ISignatureVisitor.Visit(OptionalPart part) => result = Visit(part);
protected override JObject Visit(OptionalPart part) { return(new JObject { ["$opt"] = part.Inner.AcceptForValue(this) }); }