namespace Jtr.Parsing; public class VisitorContainer { private Dictionary> Visitors { get; } = new(); private Visitor.Visit Default { get; set; } = default!; public void Register(Visitor.Visit visitor) { Visitors[typeof(T)] = visitor; } public Visitor.Visit this[Type type] => Visitors.GetValueOrDefault(type, Default); } public class VisitorContainer { private Dictionary> Visitors { get; } = new(); private Visitor.Visit Default { get; set; } = default!; public void Register(Visitor.Visit visitor) { Visitors[typeof(T)] = visitor; } public Visitor.Visit this[Type type] => Visitors.GetValueOrDefault(type, Default); } public class VisitorContainer { private Dictionary> Visitors { get; } = new(); private Visitor.Visit Default { get; set; } = default!; public void Register(Visitor.Visit visitor) { Visitors[typeof(T)] = visitor; } public Visitor.Visit this[Type type] => Visitors.GetValueOrDefault(type, Default); }