#include <cstddef>
#include <cstring>
#include <lmdb.h>
#include <type_traits>
#include <utility>
#include "span.h"
Go to the source code of this file.
|
| template<typename T > |
| using | lmdb::native_type = typename std::conditional< std::is_enum< T >::value, std::underlying_type< T >, identity< T > >::type::type |
| |
|
| 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 |
| |
◆ ELECTRONEUM_COMPARE
| #define ELECTRONEUM_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:135
Expands to lmdb::compare for the value field within obj.
◆ ELECTRONEUM_FIELD
| #define ELECTRONEUM_FIELD |
( |
|
obj, |
|
|
|
field |
|
) |
| 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.
◆ ELECTRONEUM_SORT_BY
| #define ELECTRONEUM_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:111
Expands to lmdb::less for the value field within obj.