#pragma once #include #include #include #include #include #include "utils.hpp" namespace fmri { using std::ostream; using std::string; using std::string_view; using std::unique_ptr; using std::vector; class LayerData { public: LayerData(const string &name, const vector &shape, const DType *data); LayerData(const LayerData &) = delete; LayerData(LayerData &&) = default; LayerData &operator=(const LayerData &) = delete; LayerData &operator=(LayerData &&) = default; const string &name() const; const vector &shape() const; DType const *data() const; size_t numEntries() const; private: string name_; vector shape_; unique_ptr data_; }; } std::ostream& operator<<(std::ostream&, const fmri::LayerData&);