Monero
Loading...
Searching...
No Matches
util.h File Reference
#include <cstddef>
#include <cstring>
#include <lmdb.h>
#include <type_traits>
#include <utility>
#include "span.h"
Include dependency graph for util.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  lmdb::identity< T >
 Prevent instantiation of std::underlying_type<T> when T is not enum. More...

Namespaces

namespace  lmdb

Macros

#define MONERO_FIELD(obj, field)
#define MONERO_SORT_BY(obj, field)
 Expands to lmdb::less for the value field within obj.
#define MONERO_COMPARE(obj, field)
 Expands to lmdb::compare for the value field within obj.

Typedefs

template<typename T>
using lmdb::native_type

Functions

template<typename T, typename U = typename std::underlying_type<T>::type>
constexpr U lmdb::to_native (T value) noexcept
template<typename T>
MDB_val lmdb::to_val (T &&value) noexcept
constexpr epee::span< const std::uint8_t > lmdb::to_byte_span (MDB_val value) noexcept
template<typename T, std::size_t offset = 0>
int lmdb::less (MDB_val const *left, MDB_val const *right) noexcept
template<typename T, std::size_t offset = 0>
int lmdb::compare (MDB_val const *left, MDB_val const *right) noexcept

Macro Definition Documentation

◆ MONERO_COMPARE

#define MONERO_COMPARE ( obj,
field )
Value:
decltype(std::declval<obj>().field), \
offsetof(obj, field) \
>
int compare(MDB_val const *left, MDB_val const *right) noexcept
Definition util.h:137

Expands to lmdb::compare for the value field within obj.

◆ MONERO_FIELD

#define MONERO_FIELD ( obj,
field )
Value:
obj , decltype(std::declval<obj>().field) , offsetof(obj, field)

Calculates types and offset of struct field. Use in template arguments for table::get_value, value_iterator::get_value, value_stream::make_iterator, or value_stream::make_range.

◆ MONERO_SORT_BY

#define MONERO_SORT_BY ( obj,
field )
Value:
lmdb::native_type<decltype(std::declval<obj>().field)>, \
offsetof(obj, field) \
>
int less(MDB_val const *left, MDB_val const *right) noexcept
Definition util.h:112

Expands to lmdb::less for the value field within obj.