MySQL 9.6.0
Source Code Documentation
mysql::sets::detail::Relaxed_interval< Set_traits_tp > Class Template Reference

Holds the start boundary and endpoint boundary of an interval. More...

#include <interval.h>

Inheritance diagram for mysql::sets::detail::Relaxed_interval< Set_traits_tp >:
[legend]

Public Member Functions

template<class... Args_t>
requires mysql::meta::Not_decayed<This_t, Args_t...>
 Relaxed_interval (Args_t &&...args)
 Enable all the (protected) constructors from the base class. More...
 
void assign (const Element_t &start_arg, const Element_t &exclusive_end_arg)
 Set both boundaries to the given values, without validating the range. More...
 
void set_exclusive_end (Element_t exclusive_end_arg)
 Set the value for the exclusive_end boundary, without validating the range. More...
 
void set_start (Element_t start_arg)
 Set the value for the start boundary, without validating the range. More...
 
- Public Member Functions inherited from mysql::sets::detail::Interval_base< Set_traits_tp >
constexpr const Element_tstart () const
 Return const reference to the starting point of the interval (inclusive). More...
 
constexpr const Element_texclusive_end () const
 Return const reference to the exclusive endpoint of the interval. More...
 

Private Types

using Base_t = Interval_base< Set_traits_tp >
 
using This_t = Relaxed_interval< Set_traits_tp >
 

Additional Inherited Members

- Public Types inherited from mysql::sets::detail::Interval_base< Set_traits_tp >
using Set_traits_t = Set_traits_tp
 
using Element_t = Set_traits_t::Element_t
 
- Protected Member Functions inherited from mysql::sets::detail::Interval_base< Set_traits_tp >
constexpr Interval_base ()
 This is enabled if Set_traits_t are discrete set traits. More...
 
constexpr Interval_base (const Element_t &start, const Element_t &exclusive_end)
 Construct an interval with the given inclusive start and exclusive end. More...
 
constexpr Interval_base (Element_t singleton)
 Construct a singleton interval. More...
 
void assign (const Element_t &start_arg, const Element_t &exclusive_end_arg)
 Set both boundaries to the given values, without validating the range. More...
 
void set_start (Element_t start_arg)
 Set the value for the start boundary, without validating the range. More...
 
void set_exclusive_end (Element_t exclusive_end_arg)
 Set the value for the exclusive_end boundary, without validating the range. More...
 

Detailed Description

template<Is_bounded_set_traits Set_traits_tp>
class mysql::sets::detail::Relaxed_interval< Set_traits_tp >

Holds the start boundary and endpoint boundary of an interval.

The endpoint is always exclusive. The boundaries do not have to be in range and do not have to be in order.

This is mainly intended for internal use while handling user input. All data structures should contain consistent intervals only.

This is implemented by inheriting from Interval_base and making the setters public.

Template Parameters
Set_traits_tpBounded set traits describing properties of the element type.

Member Typedef Documentation

◆ Base_t

template<Is_bounded_set_traits Set_traits_tp>
using mysql::sets::detail::Relaxed_interval< Set_traits_tp >::Base_t = Interval_base<Set_traits_tp>
private

◆ This_t

template<Is_bounded_set_traits Set_traits_tp>
using mysql::sets::detail::Relaxed_interval< Set_traits_tp >::This_t = Relaxed_interval<Set_traits_tp>
private

Constructor & Destructor Documentation

◆ Relaxed_interval()

template<Is_bounded_set_traits Set_traits_tp>
template<class... Args_t>
requires mysql::meta::Not_decayed<This_t, Args_t...>
mysql::sets::detail::Relaxed_interval< Set_traits_tp >::Relaxed_interval ( Args_t &&...  args)
inlineexplicit

Enable all the (protected) constructors from the base class.

Member Function Documentation

◆ assign()

template<Is_bounded_set_traits Set_traits_tp>
void mysql::sets::detail::Interval_base< Set_traits_tp >::assign ( const Element_t start_arg,
const Element_t exclusive_end_arg 
)
inline

Set both boundaries to the given values, without validating the range.

Parameters
start_argThe new value for the start boundary.
exclusive_end_argThe new value for the exclusive_end boundary.

◆ set_exclusive_end()

template<Is_bounded_set_traits Set_traits_tp>
void mysql::sets::detail::Interval_base< Set_traits_tp >::set_exclusive_end ( Element_t  exclusive_end_arg)
inline

Set the value for the exclusive_end boundary, without validating the range.

Parameters
exclusive_end_argThe new value for the exclusive_end boundary.

◆ set_start()

template<Is_bounded_set_traits Set_traits_tp>
void mysql::sets::detail::Interval_base< Set_traits_tp >::set_start ( Element_t  start_arg)
inline

Set the value for the start boundary, without validating the range.

Parameters
start_argThe new value for the start boundary.

The documentation for this class was generated from the following file: