use serde::{Deserialize, Serialize};
use crate::bytes::Bytes;
use crate::error::Error;
use crate::message::{ContentType, MetaDataType};
use crate::ron::{FromRon, ToRon};
use super::message::{Context, Output};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MetaData {}
impl Default for MetaData {
fn default() -> Self {
Self::empty()
}
}
impl FromRon<'_> for MetaData {}
impl ToRon for MetaData {}
impl TryFrom<Bytes> for MetaData {
type Error = Error;
fn try_from(value: Bytes) -> Result<Self, Self::Error> {
todo!()
}
}
impl TryFrom<MetaData> for Bytes {
type Error = Error;
fn try_from(value: MetaData) -> Result<Self, Self::Error> {
todo!()
}
}
impl<'a, C> MetaDataType<'a, MetaData, C> for MetaData
where
C: ContentType<'a, MetaData, C>,
{
type SendContext = Context;
type ReceiveContext = Context;
fn send(
self,
stream: &mut std::net::TcpStream,
context: Option<Self::SendContext>,
) -> Result<Option<<C as ContentType<'a, MetaData, C>>::SendContext>, Error> {
todo!()
}
fn receive(
stream: &mut std::net::TcpStream,
context: &Option<Self::ReceiveContext>,
) -> Result<
(
Self,
Option<<C as ContentType<'a, MetaData, C>>::ReceiveContext>,
),
Error,
> {
todo!()
}
}
impl MetaData {
pub fn new() -> Self {
Self {}
}
pub fn empty() -> Self {
Self {}
}
}