Sha256: d6dba5e121089201358a3b72a4853035b750695250554cdeef3418fcbc1dbf45

Contents?: true

Size: 1.18 KB

Versions: 34

Compression:

Stored size: 1.18 KB

Contents

// Copyright (c) 2019-2020 Dr. Colin Hirsch and Daniel Frey
// Please see LICENSE for license or visit https://github.com/taocpp/json/

#ifndef TAO_JSON_CONTRIB_VECTOR_BOOL_TRAITS_HPP
#define TAO_JSON_CONTRIB_VECTOR_BOOL_TRAITS_HPP

#include <vector>

#include "../consume.hpp"
#include "../forward.hpp"

#include "vector_traits.hpp"

namespace tao::json
{
   struct vector_bool_traits
      : vector_traits< bool >
   {
      template< template< typename... > class Traits >
      static void assign( basic_value< Traits >& v, const std::vector< bool >& o )
      {
         v.emplace_array();
         v.get_array().reserve( o.size() );
         for( const auto& e : o ) {
            v.emplace_back( bool( e ) );
         }
      }

      template< template< typename... > class Traits, typename Consumer >
      static void produce( Consumer& c, const std::vector< bool >& o )
      {
         c.begin_array( o.size() );
         for( const auto& i : o ) {
            json::events::produce< Traits >( c, bool( i ) );
            c.element();
         }
         c.end_array( o.size() );
      }

      // TODO: Check whether anything else needs "special-casing".
   };

}  // namespace tao::json

#endif

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
couchbase-3.2.0-universal-darwin-20 ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp
couchbase-3.2.0 ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp
couchbase-3.1.1 ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp
couchbase-3.1.1-universal-darwin-20 ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp
couchbase-3.1.0 ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp
couchbase-3.0.3 ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp
couchbase-3.0.3-universal-darwin-20 ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp
couchbase-3.0.2 ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp
couchbase-3.0.1-universal-darwin-19 ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp
couchbase-3.0.1 ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp
couchbase-3.0.0-universal-darwin-19 ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp
couchbase-3.0.0 ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp
couchbase-3.0.0.beta.1-universal-darwin-19 ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp
couchbase-3.0.0.beta.1 ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp
couchbase-3.0.0.alpha.5-x86_64-linux ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp
couchbase-3.0.0.alpha.5-universal-darwin-19 ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp
couchbase-3.0.0.alpha.5-x86_64-darwin-19 ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp
couchbase-3.0.0.alpha.5 ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp
couchbase-3.0.0.alpha.4-x86_64-linux ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp
couchbase-3.0.0.alpha.4-x86_64-darwin-19 ext/third_party/json/include/tao/json/contrib/vector_bool_traits.hpp