Skip to content

Allow user to extend set of supported types for YAML parsing/writing. #191

Description

@bartgol

It would be nice to allow users to provide YAML files that can directly be parsed into some structs. E.g., it would be nice to parse

  My Complex: 1.0 + 3i
  My Int Pairs: [ P(1,2), P(0,1)]

directly into a std::complex and a std::vector<std::pair<int,int>> respectively. Even more interesting/useful would be to parse straight into enums, so that one can do

auto plist = parse_yaml_file("blah.yaml");
MyEnum value = plist.get<MyEnum>("The Enum");
...

without having to tediously do string->enum conversion every time.

To do this, we should put the is_type<T> and str2type<T> functions into a separate file. Then, somehow, allow the user to provide its own specializations (along with operator<< for writing, if writing/print is needed). One way could be to have a "database" of these functions, and let the user register its own functions at any point before calling the YAML parse/write routines.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions