userver: userver/storages/postgres/io/range_types.hpp File Reference
Loading...
Searching...
No Matches
range_types.hpp File Reference

Detailed Description

Ranges I/O support.

Definition in file range_types.hpp.

Go to the source code of this file.

#include <optional>
#include <ostream>
#include <fmt/format.h>
#include <userver/storages/postgres/exceptions.hpp>
#include <userver/storages/postgres/io/buffer_io_base.hpp>
#include <userver/storages/postgres/io/field_buffer.hpp>
#include <userver/storages/postgres/io/traits.hpp>
#include <userver/storages/postgres/io/type_mapping.hpp>
#include <userver/storages/postgres/io/type_traits.hpp>
#include <userver/storages/postgres/io/user_types.hpp>
#include <userver/utils/assert.hpp>
#include <userver/utils/flags.hpp>
+ Include dependency graph for range_types.hpp:
+ This graph shows which files directly or indirectly include this file:

Classes

struct  storages::postgres::UnboundedType
 
class  storages::postgres::Range< T >
 
class  storages::postgres::BoundedRange< T >
 
struct  storages::postgres::io::traits::Input< Range< T >, std::enable_if_t< kHasParser< T > > >
 
struct  storages::postgres::io::traits::Output< Range< T >, std::enable_if_t< kHasFormatter< T > > >
 
struct  storages::postgres::io::traits::Input< BoundedRange< T >, std::enable_if_t< kHasParser< T > > >
 
struct  storages::postgres::io::traits::Output< BoundedRange< T >, std::enable_if_t< kHasFormatter< T > > >
 
struct  storages::postgres::io::CppToSystemPg< IntegerRange >
 
struct  storages::postgres::io::CppToSystemPg< BoundedIntegerRange >
 
struct  storages::postgres::io::CppToSystemPg< BigintRange >
 
struct  storages::postgres::io::CppToSystemPg< BoundedBigintRange >
 

Namespaces

namespace  storages
 Components, clients and helpers for different databases and storages.
 
namespace  storages::postgres
 Top namespace for uPg driver.
 
namespace  storages::postgres::io
 uPg input-output.
 
namespace  storages::postgres::io::traits
 uPg input-output traits.
 

Typedefs

using storages::postgres::RangeBounds = ::utils::Flags<RangeBound>
 
using storages::postgres::IntegerRange = Range<Integer>
 
using storages::postgres::BigintRange = Range<Bigint>
 
using storages::postgres::BoundedIntegerRange = BoundedRange<Integer>
 
using storages::postgres::BoundedBigintRange = BoundedRange<Bigint>
 

Enumerations

enum class  RangeBound {
  kNone = 0x00 ,
  kLower = 0x01 ,
  kUpper = 0x02 ,
  kBoth = kLower | kUpper
}
 

Functions

template<typename T >
auto storages::postgres::MakeRange (T &&lower, T &&upper, RangeBounds bounds=RangeBound::kLower)
 
template<typename T >
auto storages::postgres::MakeRange (T &&lower, UnboundedType, RangeBounds bounds=RangeBound::kLower)
 
template<typename T >
auto storages::postgres::MakeRange (UnboundedType, T &&upper, RangeBounds bounds=RangeBound::kNone)
 
template<typename T >
std::ostream & storages::postgres::operator<< (std::ostream &os, const Range< T > &val)
 
template<typename T >
std::ostream & storages::postgres::operator<< (std::ostream &os, const BoundedRange< T > &val)
 

Variables

constexpr UnboundedType storages::postgres::kUnbounded {}