9#ifndef H5EASY_BITS_VECTOR_HPP
10#define H5EASY_BITS_VECTOR_HPP
12#include "../H5Easy.hpp"
21struct is_vector : std::false_type {};
23struct is_vector<std::vector<T>> : std::true_type {};
25using HighFive::details::inspector;
28struct io_impl<T, typename std::enable_if<is_vector<T>::value>::type> {
30 inline static DataSet
dump(File& file,
31 const std::string& path,
33 const DumpOptions& options) {
34 using value_type =
typename inspector<T>::base_type;
35 auto dims = inspector<T>::getDimensions(data);
36 DataSet dataset = initDataset<value_type>(file, path, std::vector<size_t>(dims.begin(), dims.end()), options);
38 if (options.flush()) {
44 inline static T
load(
const File& file,
const std::string& path) {
45 DataSet dataset = file.getDataSet(path);
52 const std::string& path,
53 const std::string& key,
55 const DumpOptions& options) {
56 using value_type =
typename inspector<T>::base_type;
57 auto dims = inspector<T>::getDimensions(data);
58 std::vector<size_t> shape(dims.begin(), dims.end());
59 Attribute attribute = initAttribute<value_type>(file, path, key, shape, options);
60 attribute.write(data);
61 if (options.flush()) {
68 const std::string& path,
69 const std::string& key) {
70 DataSet dataset = file.getDataSet(path);
71 Attribute attribute = dataset.getAttribute(key);
Read/dump DataSets or Attribute using a minimalistic syntax. To this end, the functions are templated...
Definition: H5Easy.hpp:60
DataSet dump(File &file, const std::string &path, const T &data, DumpMode mode=DumpMode::Create)
Write object (templated) to a (new) DataSet in an open HDF5 file.
Definition: H5Easy_public.hpp:115
T loadAttribute(const File &file, const std::string &path, const std::string &key)
Load a Attribute in an open HDF5 file to an object (templated).
Definition: H5Easy_public.hpp:185
Attribute dumpAttribute(File &file, const std::string &path, const std::string &key, const T &data, DumpMode mode=DumpMode::Create)
Write object (templated) to a (new) Attribute in an open HDF5 file.
Definition: H5Easy_public.hpp:167
T load(const File &file, const std::string &path, const std::vector< size_t > &idx)
Load entry {i, j, ...} from a DataSet in an open HDF5 file to a scalar.
Definition: H5Easy_public.hpp:157