Ben Kietzman created ARROW-13025: ------------------------------------ Summary: [C++][Compute] Enhance FunctionOptions with equality, debug representability, and serializability Key: ARROW-13025 URL: https://issues.apache.org/jira/browse/ARROW-13025 Project: Apache Arrow Issue Type: Improvement Components: C++ Reporter: Ben Kietzman Fix For: 5.0.0
Currently the {{FunctionOptions}} interface is entirely opaque. It would be useful to add - equality comparability {code} bool FunctionOptions::Equals(const FunctionOptions& other) const {code} - debug representation {code} std::string FunctionOptions::ToString() const {code} - serializability {code} Status FunctionOptions::Serialize(io::OutputStream*) const Result<std::unique_ptr<FunctionOptions>> FunctionOptions::Deserialize(io::InputStream*) {code} (or similar) These are already implemented for common instances of {{FunctionOptions}} in expression.cc, since {{Expression}} has the above capabilities and may contain a {{FunctionOptions}}. Making these explicit virtual functions will formalize this ad-hoc code and expose it for direct unit testing. As an added bonus, if options can serialize themselves to JSON then that can be used by Python and other bindings to generate wrappers instead of the current hand-written listing of wrapper classes for each {{FunctionOptions}} subclass -- This message was sent by Atlassian Jira (v8.3.4#803005)