| 617 | |
| 618 | template <class T> |
| 619 | void TestOptionalImpl(const std::optional<T>& v) { |
| 620 | std::optional<T> loaded; |
| 621 | TBufferStream s; |
| 622 | ::Save(&s, v); |
| 623 | ::Load(&s, loaded); |
| 624 | |
| 625 | UNIT_ASSERT_VALUES_EQUAL(v.has_value(), loaded.has_value()); |
| 626 | if (v.has_value()) { |
| 627 | UNIT_ASSERT_VALUES_EQUAL(*v, *loaded); |
| 628 | } |
| 629 | } |
| 630 | |
| 631 | void TestOptional() { |
| 632 | TestOptionalImpl(std::optional<ui64>(42ull)); |