diff options
Diffstat (limited to 'third_party/immer/test/transient_tester.hpp')
-rw-r--r-- | third_party/immer/test/transient_tester.hpp | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/third_party/immer/test/transient_tester.hpp b/third_party/immer/test/transient_tester.hpp deleted file mode 100644 index 3cf891bef957..000000000000 --- a/third_party/immer/test/transient_tester.hpp +++ /dev/null @@ -1,54 +0,0 @@ -// -// immer: immutable data structures for C++ -// Copyright (C) 2016, 2017, 2018 Juan Pedro Bolivar Puente -// -// This software is distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE or copy at http://boost.org/LICENSE_1_0.txt -// - -#pragma once - -#include "dada.hpp" - -namespace { - -template <typename VP, typename VT> -struct transient_tester -{ - VP vp; - VT vt; - dadaism d = {}; - bool transient = false; - - transient_tester(VP vp) - : vp{vp} - , vt{vp.transient()} - {} - - bool step() - { - auto s = d.next(); - if (soft_dada()) { - auto new_transient = !transient; - try { - if (new_transient) - vt = vp.transient(); - else - vp = vt.persistent(); - } catch (const dada_error&) { - return false; - } - transient = new_transient; - return true; - } else - return false; - } -}; - -template <typename VP> -transient_tester<VP, typename VP::transient_type> as_transient_tester(VP p) -{ - return {std::move(p)}; -} - -} // anonymous namespace |