48 lines
1.2 KiB
Rust
48 lines
1.2 KiB
Rust
|
use futures::{AsyncWrite, Sink};
|
||
|
|
||
|
use crate::{
|
||
|
element::{Element, Name, Namespace},
|
||
|
error::Error,
|
||
|
};
|
||
|
|
||
|
pub struct Writer<W> {
|
||
|
stream: W,
|
||
|
depth: Vec<Name>,
|
||
|
namespaces: Vec<(usize, Namespace)>,
|
||
|
}
|
||
|
|
||
|
impl<W: AsyncWrite> Writer<W> {
|
||
|
pub async fn write(&self, element: impl Into<Element>) -> Result<(), Error> {}
|
||
|
pub async fn write_start(&self, element: impl Into<Element>) -> Result<(), Error> {}
|
||
|
pub async fn write_end(&self) -> Result<(), Error> {}
|
||
|
}
|
||
|
|
||
|
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<(), Self::Error>> {
|
||
|
todo!()
|
||
|
}
|
||
|
|
||
|
fn start_send(self: std::pin::Pin<&mut Self>, item: E) -> Result<(), Self::Error> {
|
||
|
todo!()
|
||
|
}
|
||
|
|
||
|
fn poll_flush(
|
||
|
self: std::pin::Pin<&mut Self>,
|
||
|
cx: &mut std::task::Context<'_>,
|
||
|
) -> std::task::Poll<Result<(), Self::Error>> {
|
||
|
todo!()
|
||
|
}
|
||
|
|
||
|
fn poll_close(
|
||
|
self: std::pin::Pin<&mut Self>,
|
||
|
cx: &mut std::task::Context<'_>,
|
||
|
) -> std::task::Poll<Result<(), Self::Error>> {
|
||
|
todo!()
|
||
|
}
|
||
|
}
|