diff --git a/src/common/bitsery/traits/small-vector.h b/src/common/bitsery/traits/small-vector.h new file mode 100644 index 00000000..d3c4126a --- /dev/null +++ b/src/common/bitsery/traits/small-vector.h @@ -0,0 +1,44 @@ +// yabridge: a Wine VST bridge +// Copyright (C) 2020-2021 Robbert van der Helm +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#pragma once + +#include +#include +#include + +namespace bitsery { +namespace traits { + +template +struct ContainerTraits> + : public StdContainer, + true, + true> { + // Unlike `std::vector`, I'm pretty sure + // `boost::container::small_vector` is contiguous. So hopefully + // this assertion does its thing. + static_assert(boost::container::dtl::is_contiguous_container< + boost::container::small_vector>::value); +}; + +template +struct BufferAdapterTraits> + : public StdContainerForBufferAdapter< + boost::container::small_vector> {}; + +} // namespace traits +} // namespace bitsery