about summary refs log tree commit diff
path: root/third_party/immer/extra/fuzzer/fuzzer_input.hpp
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2020-12-23T12·36+0100
committertazjin <mail@tazj.in>2020-12-23T12·44+0000
commit73e9265f954528b6b2eccf98572e77126539a8df (patch)
tree48a1e093761e86c5e605d074e8c4d5f1bb64f1b1 /third_party/immer/extra/fuzzer/fuzzer_input.hpp
parentf7ea650142eb796eb3f2827c805cc0bc563e2183 (diff)
chore(3p/immer): Remove vendored copy of immer r/2029
We ended up dropping the use of this library again.

Change-Id: I2c44cd22a6128d23f87a582402bf5fb84991d608
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2292
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
Diffstat (limited to 'third_party/immer/extra/fuzzer/fuzzer_input.hpp')
-rw-r--r--third_party/immer/extra/fuzzer/fuzzer_input.hpp62
1 files changed, 0 insertions, 62 deletions
diff --git a/third_party/immer/extra/fuzzer/fuzzer_input.hpp b/third_party/immer/extra/fuzzer/fuzzer_input.hpp
deleted file mode 100644
index 485b7dc72b44..000000000000
--- a/third_party/immer/extra/fuzzer/fuzzer_input.hpp
+++ /dev/null
@@ -1,62 +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 <cstdint>
-#include <stdexcept>
-
-struct no_more_input : std::exception
-{};
-
-struct fuzzer_input
-{
-    const std::uint8_t* data_;
-    std::size_t size_;
-
-    const std::uint8_t* next(std::size_t size)
-    {
-        if (size_ < size)
-            throw no_more_input{};
-        auto r = data_;
-        data_ += size;
-        size_ -= size;
-        return r;
-    }
-
-    const std::uint8_t* next(std::size_t size, std::size_t align)
-    {
-        auto rem = size % align;
-        if (rem)
-            next(align - rem);
-        return next(size);
-    }
-
-    template <typename Fn>
-    int run(Fn step)
-    {
-        try {
-            while (step(*this))
-                continue;
-        } catch (const no_more_input&) {};
-        return 0;
-    }
-};
-
-template <typename T>
-const T& read(fuzzer_input& fz)
-{
-    return *reinterpret_cast<const T*>(fz.next(sizeof(T), alignof(T)));
-}
-
-template <typename T, typename Cond>
-T read(fuzzer_input& fz, Cond cond)
-{
-    auto x = read<T>(fz);
-    return cond(x) ? x : read<T>(fz, cond);
-}