+/** @brief Find a disk from its name.
+ *
+ * @throw std::invalid_argument if the searched disk does not exist.
+ */
+Disk* Engine::disk_by_name(const std::string& name)
+{
+ if (pimpl->disks_.find(name) == pimpl->disks_.end())
+ throw std::invalid_argument(std::string("Disk not found: ") + name);
+
+ return pimpl->disks_.at(name);
+}
+
+/** @brief Find a disk from its name (or nullptr if that disk does not exist) */
+Disk* Engine::disk_by_name_or_null(const std::string& name)
+{
+ auto disk = pimpl->disks_.find(name);
+ return disk == pimpl->disks_.end() ? nullptr : disk->second;
+}
+