#include "parse/enum.hpp" #include "parse/value.hpp" #include "std.hpp" #include "tap.hpp" enum enumeration_t : u16 { FOO, BAR = 2, QUX = 257 }; enum class enum_class { VALUE }; int main () { cruft::TAP::logger tap; { auto const cookie = cruft::parse::enumeration::setup ({ { "FOO", FOO }, { "BAR", BAR }, { "QUX", QUX }, }); (void)cookie; tap.expect_eq (FOO, cruft::parse::from_string ("FOO"), "enumeration, FOO"); tap.expect_eq (BAR, cruft::parse::from_string ("BAR"), "enumeration, BAR"); tap.expect_eq (QUX, cruft::parse::from_string ("QUX"), "enumeration, QUX"); tap.expect_eq ( u16 {QUX}, cruft::parse::enumeration::from_string ( cruft::typeidx (), "QUX" ), "u16, QUX" ); } { auto const cookie = cruft::parse::enumeration::setup ({ { "VALUE", enum_class::VALUE }, }); (void)cookie; tap.expect_eq ( enum_class::VALUE, cruft::parse::from_string ("VALUE"), "enum class, VALUE" ); } return tap.status (); }