Like the TypeMatcher for extensible input type checking, TypeResolver will allow more flexibility with respect to the output type resolution rule. Currently the resolver function is defined as
using Resolver =
std::function<Result<ValueDescr>(KernelContext*, const std::vector<ValueDescr>&)>;
By changing to a TypeResolver interface with a virtual Resolve function, we also can provide for better human-readability when printing kernel signatures (by having TypeResolver::ToString) and permitting TypeResolvers to be compared
Reporter: Wes McKinney / @wesm
Related issues:
Note: This issue was originally created as ARROW-8921. Please see the migration documentation for further details.