Sha256: eb73ceef984f44f24363250705fe71a04e0910d3355bb98a1dc733d9666e8a64

Contents?: true

Size: 1.22 KB

Versions: 6

Compression:

Stored size: 1.22 KB

Contents

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

#ifndef TAO_JSON_BINARY_VIEW_HPP
#define TAO_JSON_BINARY_VIEW_HPP

#include "span.hpp"

#include <algorithm>
#include <cstddef>

namespace tao
{
   using binary_view = span< const std::byte >;

   template< typename T >
   [[nodiscard]] binary_view to_binary_view( const T* data, const std::size_t size ) noexcept
   {
      static_assert( sizeof( T ) == 1 );
      return { reinterpret_cast< const std::byte* >( data ), size };
   }

   template< typename T >
   [[nodiscard]] binary_view to_binary_view( const T& value ) noexcept
   {
      return tao::to_binary_view( std::data( value ), std::size( value ) );
   }

   namespace internal
   {
      [[nodiscard]] inline bool binary_equal( const binary_view lhs, const binary_view rhs ) noexcept
      {
         return std::equal( lhs.begin(), lhs.end(), rhs.begin(), rhs.end() );
      }

      [[nodiscard]] inline bool binary_less( const binary_view lhs, const binary_view rhs ) noexcept
      {
         return std::lexicographical_compare( lhs.begin(), lhs.end(), rhs.begin(), rhs.end() );
      }

   }  // namespace internal

}  // namespace tao

#endif

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
couchbase-3.4.5 ext/couchbase/third_party/json/include/tao/json/binary_view.hpp
couchbase-3.4.4 ext/couchbase/third_party/json/include/tao/json/binary_view.hpp
couchbase-3.4.3 ext/couchbase/third_party/json/include/tao/json/binary_view.hpp
couchbase-3.4.2 ext/couchbase/third_party/json/include/tao/json/binary_view.hpp
couchbase-3.4.1 ext/couchbase/third_party/json/include/tao/json/binary_view.hpp
couchbase-3.4.0 ext/couchbase/third_party/json/include/tao/json/binary_view.hpp