PMT Renovated main-branch
Partition Manager Tool is a fast, reliable, and feature-rich CLI application for Android devices that enables advanced partition operations such as backup, flashing, erasing, information retrieval, and more.
Loading...
Searching...
No Matches
Helper::PureTuple< _Type1, _Type2, _Type3 > Class Template Reference

A class that stores tuple data in a list. More...

#include <pure_tuple.hpp>

Classes

struct  Data
 A class that stores a single tuple of data. More...
 
class  iterator
 PureTuple's iterator class. More...
 

Public Member Functions

 PureTuple ()
 Default constructor. Sets capacity as 20.
 
 ~PureTuple ()
 Destructor that deletes data.
 
 PureTuple (std::initializer_list< Data > val)
 Constructor with initializer list.
 
 PureTuple (PureTuple &other)
 Copy constructor.
 
 PureTuple (PureTuple &&other) noexcept
 Move constructor.
 
bool find (const Data &data) const noexcept
 Find data.
 
template<typename T = std::tuple<_Type1, _Type2, _Type3>>
requires requires { std::is_same_v<T, std::tuple<_Type1, _Type2, _Type3>>; }
bool find (const std::tuple< _Type1, _Type2, _Type3 > &t) const noexcept
 Find data (with tuple input).
 
bool find (const _Type1 &val, const _Type2 &val2, const _Type3 &val3) const noexcept
 Find data (with value inputs).
 
void insert (const Data &val) noexcept
 Insert data.
 
template<typename T = std::tuple<_Type1, _Type2, _Type3>>
requires requires { std::is_same_v<T, std::tuple<_Type1, _Type2, _Type3>>; }
void insert (const std::tuple< _Type1, _Type2, _Type3 > &t) noexcept
 Insert data (with tuple input).
 
void insert (const _Type1 &val, const _Type2 &val2, const _Type3 &val3) noexcept
 Insert data (with value inputs).
 
void merge (const PureTuple &other) noexcept
 Combine with another class data.
 
void pop_back () noexcept
 Remove the last piece of data.
 
void pop (const Data &data) noexcept
 Remove data.
 
void pop (const size_t i) noexcept
 Remove data (using index).
 
void pop (const _Type1 &val, const _Type2 &val2, const _Type3 &val3) noexcept
 Remove data (pairing with input values).
 
template<typename T = std::tuple<_Type1, _Type2, _Type3>>
requires requires { std::is_same_v<T, std::tuple<_Type1, _Type2, _Type3>>; }
void pop (const std::tuple< _Type1, _Type2, _Type3 > &t) noexcept
 Remove data (with tuple).
 
void clear () noexcept
 Clear all data.
 
Data back () const noexcept
 Get the last data.
 
Data top () const noexcept
 Get the initial data.
 
Data at (size_t i) const noexcept
 Provide the data that is in the requested index.
 
void foreach (std::function< void(_Type1, _Type2, _Type3)> func)
 The input function is an application for all tuples.
 
void foreach (std::function< void(std::tuple< _Type1, _Type2, _Type3 >)> func)
 The input function is an application for all tuples.
 
size_t size () const noexcept
 Get size.
 
bool empty () const noexcept
 
iterator begin () const noexcept
 
iterator end () const noexcept
 
PureTupleoperator= (const PureTuple &other)
 Copy constructor.
 

Public Attributes

Datatuple_data = nullptr
 
Data tuple_data_type = {_Type1{}, _Type2{}, _Type3{}}
 
size_t capacity {}
 
size_t count {}
 

PureTuple's operator declarations.

Definitions of operators required for list-like operations, etc.

 operator bool () const noexcept
 
bool operator! () const noexcept
 
bool operator== (const PureTuple &other) const noexcept
 
bool operator!= (const PureTuple &other) const noexcept
 
Data operator[] (size_t i) const noexcept
 
 operator int () const noexcept
 
PureTupleoperator<< (const std::tuple< _Type1, _Type2, _Type3 > &t) noexcept
 
PureTupleoperator>> (const std::tuple< _Type1, _Type2, _Type3 > &t, PureTuple &tuple) noexcept
 

Detailed Description

template<typename _Type1, typename _Type2, typename _Type3>
requires requires(_Type1 v1, _Type2 v2, _Type3 v3) { v1 = v1; v2 = v2; v3 = v3; v1 == v1 && v2 == v2 && v3 == v3; }
class Helper::PureTuple< _Type1, _Type2, _Type3 >

A class that stores tuple data in a list.

Template Parameters
_Type1First type.
_Type2Second type
_Type3Third type.
Note
All given types must contain the = and == operators.

Member Function Documentation

◆ foreach() [1/2]

template<typename _Type1 , typename _Type2 , typename _Type3 >
void Helper::PureTuple< _Type1, _Type2, _Type3 >::foreach ( std::function< void(_Type1, _Type2, _Type3)>  func)
inline

The input function is an application for all tuples.

Parameters
funcFunction.
Note
The input function must be able to accept all given data types in the order they are given to the class.

◆ foreach() [2/2]

template<typename _Type1 , typename _Type2 , typename _Type3 >
void Helper::PureTuple< _Type1, _Type2, _Type3 >::foreach ( std::function< void(std::tuple< _Type1, _Type2, _Type3 >)>  func)
inline

The input function is an application for all tuples.

Parameters
funcFunction.
Note
The input function must be able to accept all given data types in the order they are given to the class.
Unlike other foreach() overload, this one takes input as a std::tuple for the desired input function.

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