Struct item_handle
Defined in File item.hpp
Struct Documentation
-
struct item_handle
This is item_handle, it is used to access the data stored in item_value.
Public Functions
-
template<typename T>
inline item_handle &operator=(const T &value) Assign value value to the item referenced.
- Template Parameters
T – Type of the value
- Parameters
value – The value
- Returns
reference to this item_handle
-
template<typename T>
inline item_handle &operator=(T &&value) Assign value value to the item referenced.
- Template Parameters
T – Type of the value
- Parameters
value – The value
- Returns
reference to this item_handle
-
template<std::size_t N>
inline item_handle &operator=(const char (&value)[N]) Assign value value to the item referenced.
- Template Parameters
T – Type of the value
- Parameters
value – The value
- Returns
reference to this item_handle
-
template<typename ...Ts>
inline void os(const Ts&... v) A method with a variable number of arguments that will be concatenated and assigned as a string. Use it like this:
cif::item_handle ih; is.os("The result of ", 1, " * ", 42, " is of course ", 42);
And the content will then be
The result of 1 * 42 is of course 42
.- Template Parameters
Ts – Types of the parameters
- Parameters
v – The parameters to concatenate
-
void swap(item_handle &b)
Swap contents of this and b
-
template<typename T = std::string>
inline auto as() const -> T Return the contents of this item as type
- Template Parameters
T –
-
template<typename T>
inline auto value_or(const T &dv) const Return the contents of this item as type
- Template Parameters
T – or, if not set, use dv as the default value.
-
template<typename T>
inline int compare(const T &value, bool icase = true) const Compare the contents of this item with value value optionally ignoring character case, if icase is true. Returns 0 if both are equal, -1 if this sorts before value and 1 if this sorts after value.
- Template Parameters
T – Type of the value value
- Parameters
value – The value to compare with
icase – Flag indicating if we should compare character case sensitive
- Returns
-1, 0 or 1
-
template<typename T>
inline bool operator==(const T &value) const Compare the value contained with the value value and return true if both are equal.
-
template<typename T>
inline bool operator!=(const T &value) const Compare the value contained with the value value and return true if both are not equal.
-
inline bool empty() const
Returns true if the content string is empty or only contains ‘.’ meaning null or ‘?’ meaning unknown in a mmCIF context.
-
inline explicit operator bool() const
Easy way to test for an empty item
-
inline bool is_null() const
is_null return true if the item contains ‘.’
-
inline bool is_unknown() const
is_unknown returns true if the item contains ‘?’
-
std::string_view text() const
Return a std::string_view for the contents
-
inline item_handle(uint16_t item, row_handle &row)
Construct a new item handle object.
- Parameters
item – Item index
row – Reference to the row
Public Static Attributes
- static CIFPP_EXPORT const item_handle s_null_item
A variable holding an empty item
Friends
-
inline friend void swap(item_handle a, item_handle b)
friend to swap two item handles
-
template<typename T>