use super::SyncDocument;
use crate::commands::{CommandResult, EditorCommand};
use crate::core::{EditorDocument, Result};
#[cfg(all(feature = "concurrency", feature = "async"))]
pub struct AsyncDocument {
sync_doc: SyncDocument,
}
#[cfg(all(feature = "concurrency", feature = "async"))]
impl AsyncDocument {
pub fn new(document: EditorDocument) -> Self {
Self {
sync_doc: SyncDocument::new(document),
}
}
pub async fn text_async(&self) -> Result<String> {
self.sync_doc.text()
}
pub async fn execute_command_async<C: EditorCommand + Send + 'static>(
&self,
command: C,
) -> Result<CommandResult> {
self.sync_doc.execute_command(command)
}
}