| 58 | } |
| 59 | |
| 60 | std::optional<AssembledBuffer> BufferAssembler::end(const std::string& name) { |
| 61 | const auto it = in_progress_.find(name); |
| 62 | if (it == in_progress_.end()) { |
| 63 | return std::nullopt; |
| 64 | } |
| 65 | auto& entry = it->second; |
| 66 | AssembledBuffer out{.variable_name = std::move(entry.params.variable_name), |
| 67 | .display_name = std::move(entry.params.display_name), |
| 68 | .pixel_layout = std::move(entry.params.pixel_layout), |
| 69 | .transpose = entry.params.transpose, |
| 70 | .width = entry.params.width, |
| 71 | .height = entry.params.height, |
| 72 | .channels = entry.params.channels, |
| 73 | .stride = entry.params.stride, |
| 74 | .type = entry.params.type, |
| 75 | .bytes = std::move(entry.bytes)}; |
| 76 | in_progress_.erase(it); |
| 77 | return out; |
| 78 | } |
| 79 | |
| 80 | } // namespace oid |