purify
C++ Purify implementation with native circuit and BPP support
Loading...
Searching...
No Matches
purify::SpanAtLeast< MinSize, T > Class Template Reference

Checked span wrapper that guarantees a minimum runtime length. More...

#include <common.hpp>

Public Types

using element_type = T
 

Public Member Functions

template<std::size_t Extent>
requires (Extent != std::dynamic_extent && Extent >= MinSize)
constexpr SpanAtLeast (std::span< T, Extent > span) noexcept
 
constexpr std::span< T > span () const noexcept
 
constexpr const T * data () const noexcept
 
constexpr std::size_t size () const noexcept
 
constexpr auto begin () const noexcept
 
constexpr auto end () const noexcept
 
constexpr operator std::span< T > () const noexcept
 

Static Public Member Functions

static Result< SpanAtLeasttry_from (std::span< T > span)
 

Static Public Attributes

static constexpr std::size_t min_size = MinSize
 

Detailed Description

template<std::size_t MinSize, typename T>
class purify::SpanAtLeast< MinSize, T >

This is useful for API boundaries where a raw std::span is too permissive and callers need an explicit checked contract such as "at least 16 bytes of seed material".

Definition at line 129 of file common.hpp.

Member Typedef Documentation

◆ element_type

template<std::size_t MinSize, typename T >
using purify::SpanAtLeast< MinSize, T >::element_type = T

Definition at line 132 of file common.hpp.

Constructor & Destructor Documentation

◆ SpanAtLeast()

template<std::size_t MinSize, typename T >
template<std::size_t Extent>
requires (Extent != std::dynamic_extent && Extent >= MinSize)
constexpr purify::SpanAtLeast< MinSize, T >::SpanAtLeast ( std::span< T, Extent >  span)
inlineexplicitconstexprnoexcept

Definition at line 136 of file common.hpp.

Member Function Documentation

◆ begin()

template<std::size_t MinSize, typename T >
constexpr auto purify::SpanAtLeast< MinSize, T >::begin ( ) const
inlineconstexprnoexcept

Definition at line 157 of file common.hpp.

◆ data()

template<std::size_t MinSize, typename T >
constexpr const T * purify::SpanAtLeast< MinSize, T >::data ( ) const
inlineconstexprnoexcept

Definition at line 149 of file common.hpp.

Referenced by purify::generate_key().

◆ end()

template<std::size_t MinSize, typename T >
constexpr auto purify::SpanAtLeast< MinSize, T >::end ( ) const
inlineconstexprnoexcept

Definition at line 161 of file common.hpp.

◆ operator std::span< T >()

template<std::size_t MinSize, typename T >
constexpr purify::SpanAtLeast< MinSize, T >::operator std::span< T > ( ) const
inlineconstexprnoexcept

Definition at line 165 of file common.hpp.

◆ size()

template<std::size_t MinSize, typename T >
constexpr std::size_t purify::SpanAtLeast< MinSize, T >::size ( ) const
inlineconstexprnoexcept

Definition at line 153 of file common.hpp.

Referenced by purify::generate_key().

◆ span()

template<std::size_t MinSize, typename T >
constexpr std::span< T > purify::SpanAtLeast< MinSize, T >::span ( ) const
inlineconstexprnoexcept

Definition at line 145 of file common.hpp.

Referenced by purify::SpanAtLeast< MinSize, T >::try_from().

◆ try_from()

template<std::size_t MinSize, typename T >
static Result< SpanAtLeast > purify::SpanAtLeast< MinSize, T >::try_from ( std::span< T >  span)
inlinestatic

Field Documentation

◆ min_size

template<std::size_t MinSize, typename T >
constexpr std::size_t purify::SpanAtLeast< MinSize, T >::min_size = MinSize
staticconstexpr

Definition at line 131 of file common.hpp.


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