diff --git a/src/streamitem.rs b/src/streamitem.rs index cc02aae..3bad87c 100644 --- a/src/streamitem.rs +++ b/src/streamitem.rs @@ -250,3 +250,33 @@ mod levelserde { de.deserialize_u32(VisitLevel) } } + +pub trait AsLogItem { + fn as_log_item(&self) -> Option<&LogItem>; +} + +impl AsLogItem for Sitemty3 { + fn as_log_item(&self) -> Option<&LogItem> { + todo!() + } +} + +#[allow(unreachable_code, unused)] +fn assert_impl_as_log_item() { + let item: Sitemty = todo!(); + AsLogItem::as_log_item(&item); + let item: Sitemty2 = todo!(); + AsLogItem::as_log_item(&item); + let item: Sitemty3 = todo!(); + AsLogItem::as_log_item(&item); +} + +pub trait FromLogItem { + fn from_log_item(item: LogItem) -> Self; +} + +impl FromLogItem for Result, E> { + fn from_log_item(item: LogItem) -> Self { + Ok(StreamItem::Log(item)) + } +}