use crate::error::Result;
use crate::resource::Dataspace;
use crate::write::EnergymlWriter;
use async_trait::async_trait;
#[allow(clippy::double_must_use)]
#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
pub trait EnergymlDataspaces {
async fn list_dataspaces(&self) -> Result<Vec<Dataspace>>;
async fn put_dataspaces(&mut self, dataspaces: Vec<Dataspace>) -> Vec<Result<()>>;
async fn delete_dataspaces(&mut self, uris: &[String]) -> Vec<Result<()>>;
fn open_dataspace(&mut self, uri: &str) -> Result<&mut dyn EnergymlWriter>;
}