userver: userver/storages/postgres/io/range_types.hpp File Reference
⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts

Ranges I/O support. More...

#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:

Go to the source code of 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 > > >
 

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 {}
 

Detailed Description

Ranges I/O support.

Definition in file range_types.hpp.