add write function and remove todo Sink impl
This commit is contained in:
parent
692a9ebce8
commit
1d831b4c4e
|
@ -1,4 +1,4 @@
|
|||
use std::{collections::HashSet, str::FromStr};
|
||||
use std::{collections::HashSet, pin::pin, str::FromStr};
|
||||
|
||||
use async_recursion::async_recursion;
|
||||
use futures::Sink;
|
||||
|
@ -6,7 +6,7 @@ use tokio::io::{AsyncWrite, AsyncWriteExt};
|
|||
|
||||
use crate::{
|
||||
declaration::{Declaration, VersionInfo},
|
||||
element::{escape_str, Content, Element, IntoElement, Name, NamespaceDeclaration},
|
||||
element::{escape_str, Content, Element, IntoContent, IntoElement, Name, NamespaceDeclaration},
|
||||
error::Error,
|
||||
xml::{self, composers::Composer, parsers_complete::Parser, ETag, XMLDecl},
|
||||
Result, XMLNS_NS, XML_NS,
|
||||
|
@ -79,6 +79,11 @@ impl<W: AsyncWrite + Unpin + Send> Writer<W> {
|
|||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn write(&mut self, into_content: &impl IntoContent) -> Result<()> {
|
||||
let content = into_content.into_content();
|
||||
Ok(self.write_content(&content).await?)
|
||||
}
|
||||
|
||||
#[async_recursion]
|
||||
pub async fn write_element(&mut self, element: &Element) -> Result<()> {
|
||||
if element.content.is_empty() {
|
||||
|
@ -357,35 +362,6 @@ impl<W: AsyncWrite + Unpin + Send> Writer<W> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<W: AsyncWrite, E: Into<Element>> Sink<E> for Writer<W> {
|
||||
type Error = Error;
|
||||
|
||||
fn poll_ready(
|
||||
self: std::pin::Pin<&mut Self>,
|
||||
cx: &mut std::task::Context<'_>,
|
||||
) -> std::task::Poll<Result<()>> {
|
||||
todo!()
|
||||
}
|
||||
|
||||
fn start_send(self: std::pin::Pin<&mut Self>, item: E) -> Result<()> {
|
||||
todo!()
|
||||
}
|
||||
|
||||
fn poll_flush(
|
||||
self: std::pin::Pin<&mut Self>,
|
||||
cx: &mut std::task::Context<'_>,
|
||||
) -> std::task::Poll<Result<()>> {
|
||||
todo!()
|
||||
}
|
||||
|
||||
fn poll_close(
|
||||
self: std::pin::Pin<&mut Self>,
|
||||
cx: &mut std::task::Context<'_>,
|
||||
) -> std::task::Poll<Result<()>> {
|
||||
todo!()
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use crate::{
|
||||
|
|
Loading…
Reference in New Issue