PineForge unreleased
Deterministic PineScript v6 backtest runtime — C ABI reference
Loading...
Searching...
No Matches
pineforge::ScriptArray< T > Class Template Reference

#include <array.hpp>

Public Types

using value_type = T
 

Public Member Functions

 ScriptArray ()=default
 
 ScriptArray (detail::o1::Store &store)
 
 ScriptArray (detail::o1::Store &store, std::uint64_t count, const T &initial=na< T >())
 
 ScriptArray (const ScriptArray &other)
 
ScriptArray & operator= (const ScriptArray &other)
 
 ScriptArray (ScriptArray &&other) noexcept
 
ScriptArray & operator= (ScriptArray &&other)
 
 ~ScriptArray ()
 
bool store_backed () const noexcept
 
detail::o1::Id id () const noexcept
 
detail::o1::Store & store () const
 
bool alive () const
 
std::uint64_t size () const
 
std::uint64_t capacity () const
 
bool empty () const
 
ScriptArray alias () const
 
ScriptArray copy () const
 
template<class Index>
T get (Index index) const
 
template<class Index>
void set (Index index, const T &value)
 
T get_i (std::int64_t index) const
 
void set_i (std::int64_t index, const T &value)
 
T remove_i (std::int64_t index)
 
template<class Index>
T get_raw (Index index) const
 
template<class Index>
void set_raw (Index index, const T &value)
 
template<class Index>
T remove_raw (Index index)
 
template<class Index>
T get_v6 (Index index) const
 
template<class Index>
void set_v6 (Index index, const T &value)
 
template<class Index>
T remove (Index index)
 
template<class Function>
void mutate (std::int64_t index, Function &&function)
 
void reserve (std::uint64_t count)
 
void push_back (const T &value)
 
void push (const T &value)
 
template<class Index>
void insert (Index index, const T &value)
 
template<class Index>
void insert_raw (Index index, const T &value)
 
void unshift (const T &value)
 
T first () const
 
T last () const
 
T pop ()
 
T shift ()
 
void clear ()
 
void append (const ScriptArray &other)
 
void concat (const ScriptArray &other)
 
void fill (const T &value)
 
template<class From>
void fill (const T &value, From from)
 
template<class From, class To>
void fill (const T &value, From from, To to)
 
template<class From, class To>
ScriptArray slice (From from, To to) const
 
void reverse ()
 
template<class Sink>
void hash_into (Sink &sink) const
 

Static Public Member Functions

static ScriptArray preallocated (detail::o1::Store &store, std::uint64_t capacity)
 
static ScriptArray from (detail::o1::Store &store, std::initializer_list< T > values)
 

Static Public Attributes

static constexpr std::size_t element_bytes = sizeof(Cell)
 
static constexpr std::size_t header_bytes = sizeof(Header)
 
static constexpr std::size_t payload_page_bytes = detail::script_array::kPayloadPageBytes
 

Detailed Description

template<class T>
class pineforge::ScriptArray< T >

Definition at line 173 of file array.hpp.

Member Typedef Documentation

◆ value_type

template<class T>
using pineforge::ScriptArray< T >::value_type = T

Definition at line 340 of file array.hpp.

Constructor & Destructor Documentation

◆ ScriptArray() [1/5]

template<class T>
pineforge::ScriptArray< T >::ScriptArray ( )
default

Referenced by alias(), and copy().

◆ ScriptArray() [2/5]

template<class T>
pineforge::ScriptArray< T >::ScriptArray ( detail::o1::Store & store)
inlineexplicit

Definition at line 349 of file array.hpp.

References pineforge::detail::script_array::kHeaderMagic, and store().

◆ ScriptArray() [3/5]

template<class T>
pineforge::ScriptArray< T >::ScriptArray ( detail::o1::Store & store,
std::uint64_t count,
const T & initial = na<T>() )
inline

Definition at line 354 of file array.hpp.

References pineforge::na(), push_back(), reserve(), and store().

◆ ScriptArray() [4/5]

template<class T>
pineforge::ScriptArray< T >::ScriptArray ( const ScriptArray< T > & other)
inline

Definition at line 372 of file array.hpp.

◆ ScriptArray() [5/5]

template<class T>
pineforge::ScriptArray< T >::ScriptArray ( ScriptArray< T > && other)
inlinenoexcept

Definition at line 381 of file array.hpp.

References pineforge::detail::o1::kNullId.

◆ ~ScriptArray()

template<class T>
pineforge::ScriptArray< T >::~ScriptArray ( )
inline

Definition at line 406 of file array.hpp.

Member Function Documentation

◆ preallocated()

template<class T>
static ScriptArray pineforge::ScriptArray< T >::preallocated ( detail::o1::Store & store,
std::uint64_t capacity )
inlinestatic

Definition at line 360 of file array.hpp.

References capacity(), reserve(), and store().

Referenced by from(), and slice().

◆ from()

template<class T>
static ScriptArray pineforge::ScriptArray< T >::from ( detail::o1::Store & store,
std::initializer_list< T > values )
inlinestatic

Definition at line 366 of file array.hpp.

References preallocated(), and store().

Referenced by fill(), fill(), and slice().

◆ operator=() [1/2]

template<class T>
ScriptArray & pineforge::ScriptArray< T >::operator= ( const ScriptArray< T > & other)
inline

Definition at line 379 of file array.hpp.

◆ operator=() [2/2]

template<class T>
ScriptArray & pineforge::ScriptArray< T >::operator= ( ScriptArray< T > && other)
inline

Definition at line 388 of file array.hpp.

References pineforge::detail::o1::kNullId.

◆ store_backed()

template<class T>
bool pineforge::ScriptArray< T >::store_backed ( ) const
inlinenoexcept

Definition at line 408 of file array.hpp.

◆ id()

template<class T>
detail::o1::Id pineforge::ScriptArray< T >::id ( ) const
inlinenoexcept

Definition at line 409 of file array.hpp.

Referenced by detail::script_array::ElementCodec.

◆ store()

template<class T>
detail::o1::Store & pineforge::ScriptArray< T >::store ( ) const
inline

◆ alive()

template<class T>
bool pineforge::ScriptArray< T >::alive ( ) const
inline

Definition at line 414 of file array.hpp.

◆ size()

template<class T>
std::uint64_t pineforge::ScriptArray< T >::size ( ) const
inline

◆ capacity()

template<class T>
std::uint64_t pineforge::ScriptArray< T >::capacity ( ) const
inline

Definition at line 416 of file array.hpp.

Referenced by preallocated().

◆ empty()

template<class T>
bool pineforge::ScriptArray< T >::empty ( ) const
inline

Definition at line 417 of file array.hpp.

References size().

Referenced by first(), last(), pop(), and shift().

◆ alias()

template<class T>
ScriptArray pineforge::ScriptArray< T >::alias ( ) const
inline

Definition at line 418 of file array.hpp.

References ScriptArray(), and store().

◆ copy()

template<class T>
ScriptArray pineforge::ScriptArray< T >::copy ( ) const
inline

◆ get()

template<class T>
template<class Index>
T pineforge::ScriptArray< T >::get ( Index index) const
inline

◆ set()

template<class T>
template<class Index>
void pineforge::ScriptArray< T >::set ( Index index,
const T & value )
inline

Definition at line 431 of file array.hpp.

References pineforge::detail::script_array::index_integer(), set_raw(), and size().

◆ get_i()

template<class T>
T pineforge::ScriptArray< T >::get_i ( std::int64_t index) const
inline

Definition at line 439 of file array.hpp.

References pineforge::detail::script_array::checked(), and size().

Referenced by get_v6().

◆ set_i()

template<class T>
void pineforge::ScriptArray< T >::set_i ( std::int64_t index,
const T & value )
inline

Definition at line 442 of file array.hpp.

References pineforge::detail::script_array::checked(), and size().

Referenced by set_v6().

◆ remove_i()

template<class T>
T pineforge::ScriptArray< T >::remove_i ( std::int64_t index)
inline

Definition at line 445 of file array.hpp.

References pineforge::detail::script_array::checked(), and size().

Referenced by remove().

◆ get_raw()

template<class T>
template<class Index>
T pineforge::ScriptArray< T >::get_raw ( Index index) const
inline

◆ set_raw()

template<class T>
template<class Index>
void pineforge::ScriptArray< T >::set_raw ( Index index,
const T & value )
inline

◆ remove_raw()

template<class T>
template<class Index>
T pineforge::ScriptArray< T >::remove_raw ( Index index)
inline

◆ get_v6()

template<class T>
template<class Index>
T pineforge::ScriptArray< T >::get_v6 ( Index index) const
inline

Definition at line 467 of file array.hpp.

References get_i(), pineforge::detail::script_array::index_integer(), and size().

◆ set_v6()

template<class T>
template<class Index>
void pineforge::ScriptArray< T >::set_v6 ( Index index,
const T & value )
inline

Definition at line 471 of file array.hpp.

References pineforge::detail::script_array::index_integer(), set_i(), and size().

◆ remove()

template<class T>
template<class Index>
T pineforge::ScriptArray< T >::remove ( Index index)
inline

Definition at line 475 of file array.hpp.

References pineforge::detail::script_array::index_integer(), remove_i(), and size().

◆ mutate()

template<class T>
template<class Function>
void pineforge::ScriptArray< T >::mutate ( std::int64_t index,
Function && function )
inline

Definition at line 480 of file array.hpp.

References pineforge::detail::script_array::checked(), and size().

◆ reserve()

template<class T>
void pineforge::ScriptArray< T >::reserve ( std::uint64_t count)
inline

Definition at line 487 of file array.hpp.

References pineforge::detail::script_array::invariant().

Referenced by preallocated(), and ScriptArray().

◆ push_back()

template<class T>
void pineforge::ScriptArray< T >::push_back ( const T & value)
inline

◆ push()

template<class T>
void pineforge::ScriptArray< T >::push ( const T & value)
inline

Definition at line 503 of file array.hpp.

References push_back().

◆ insert()

template<class T>
template<class Index>
void pineforge::ScriptArray< T >::insert ( Index index,
const T & value )
inline

◆ insert_raw()

template<class T>
template<class Index>
void pineforge::ScriptArray< T >::insert_raw ( Index index,
const T & value )
inline

◆ unshift()

template<class T>
void pineforge::ScriptArray< T >::unshift ( const T & value)
inline

Definition at line 519 of file array.hpp.

References insert().

◆ first()

template<class T>
T pineforge::ScriptArray< T >::first ( ) const
inline

Definition at line 521 of file array.hpp.

References empty(), and pineforge::detail::script_array::empty_array_error().

Referenced by fill(), and slice().

◆ last()

template<class T>
T pineforge::ScriptArray< T >::last ( ) const
inline

Definition at line 525 of file array.hpp.

References empty(), pineforge::detail::script_array::empty_array_error(), and size().

Referenced by fill(), and slice().

◆ pop()

template<class T>
T pineforge::ScriptArray< T >::pop ( )
inline

Definition at line 529 of file array.hpp.

References empty(), pineforge::detail::script_array::empty_array_error(), and size().

◆ shift()

template<class T>
T pineforge::ScriptArray< T >::shift ( )
inline

Definition at line 533 of file array.hpp.

References empty(), and pineforge::detail::script_array::empty_array_error().

◆ clear()

◆ append()

template<class T>
void pineforge::ScriptArray< T >::append ( const ScriptArray< T > & other)
inline

◆ concat()

template<class T>
void pineforge::ScriptArray< T >::concat ( const ScriptArray< T > & other)
inline

Definition at line 555 of file array.hpp.

References append().

◆ fill() [1/3]

template<class T>
void pineforge::ScriptArray< T >::fill ( const T & value)
inline

Definition at line 557 of file array.hpp.

References fill(), and size().

Referenced by fill(), and fill().

◆ fill() [2/3]

template<class T>
template<class From>
void pineforge::ScriptArray< T >::fill ( const T & value,
From from )
inline

Definition at line 559 of file array.hpp.

References fill(), from(), and size().

◆ fill() [3/3]

template<class T>
template<class From, class To>
void pineforge::ScriptArray< T >::fill ( const T & value,
From from,
To to )
inline

◆ slice()

◆ reverse()

template<class T>
void pineforge::ScriptArray< T >::reverse ( )
inline

Definition at line 586 of file array.hpp.

References size().

◆ hash_into()

template<class T>
template<class Sink>
void pineforge::ScriptArray< T >::hash_into ( Sink & sink) const
inline

Field Documentation

◆ element_bytes

template<class T>
std::size_t pineforge::ScriptArray< T >::element_bytes = sizeof(Cell)
staticconstexpr

Definition at line 341 of file array.hpp.

◆ header_bytes

template<class T>
std::size_t pineforge::ScriptArray< T >::header_bytes = sizeof(Header)
staticconstexpr

Definition at line 342 of file array.hpp.

◆ payload_page_bytes

template<class T>
std::size_t pineforge::ScriptArray< T >::payload_page_bytes = detail::script_array::kPayloadPageBytes
staticconstexpr

Definition at line 343 of file array.hpp.


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