use std::fmt::Debug;
use async_trait::async_trait;
use tokio::io::AsyncWrite;
#[async_trait]
pub trait AsyncOutputTarget: Send + Sync + Debug {
fn id(&self) -> &str;
async fn open_overwrite(&self) -> std::io::Result<Box<dyn AsyncWrite + Unpin + Send>>;
async fn open_append(&self) -> std::io::Result<Box<dyn AsyncWrite + Unpin + Send>>;
}