#include "tests.h" TEST_CASE("lifetime - tables") { static constexpr auto filename = "foo.toml"sv; parsing_should_succeed( S(R"(test = { val1 = "foo" })"sv), [&](table&& tbl) noexcept { CHECK(tbl.source().begin == source_position{ 1, 1 }); CHECK(tbl.source().end == source_position{ 1, 25 }); CHECK(tbl.source().path); CHECK(*tbl.source().path == filename); CHECK(tbl.size() == 1_sz); REQUIRE(tbl[S("test")].as()); CHECK(tbl[S("test")].as
()->size() == 1_sz); CHECK(tbl[S("test")][S("val1")] == S("foo"sv)); table test_table; CHECK(test_table.source().begin == source_position{}); CHECK(test_table.source().end == source_position{}); CHECK(!test_table.source().path); CHECK(test_table.size() == 0_sz); CHECK(!test_table[S("test")].as
()); test_table = std::move(tbl); CHECK(test_table.source().begin == source_position{ 1, 1 }); CHECK(test_table.source().end == source_position{ 1, 25 }); CHECK(test_table.source().path); CHECK(*test_table.source().path == filename); CHECK(test_table.size() == 1_sz); REQUIRE(test_table[S("test")].as
()); CHECK(test_table[S("test")].as
()->size() == 1_sz); CHECK(test_table[S("test")][S("val1")] == S("foo"sv)); }, filename ); }