From 45fc6475e7221f266d640d00d1cad529e6cbd89f Mon Sep 17 00:00:00 2001 From: Guillaume Binet Date: Wed, 29 May 2024 14:06:15 -0400 Subject: [PATCH] moved traits for Stream in main copper. --- copper/Cargo.toml | 1 + copper/src/lib.rs | 6 ++++++ copper_datalogger/Cargo.toml | 1 + copper_datalogger/src/lib.rs | 27 +++++++++++++-------------- 4 files changed, 21 insertions(+), 14 deletions(-) diff --git a/copper/Cargo.toml b/copper/Cargo.toml index 802ea52c9..a9e313c33 100644 --- a/copper/Cargo.toml +++ b/copper/Cargo.toml @@ -15,6 +15,7 @@ uom = { version = "0.36.0", features = ["rational"] } ron = "0.8.1" copper-log = { path = "../copper_log" } copper-log-runtime = { path = "../copper_log_runtime" } +bincode = "2.0.0-rc.3" diff --git a/copper/src/lib.rs b/copper/src/lib.rs index 0ee10f059..64238e4a4 100644 --- a/copper/src/lib.rs +++ b/copper/src/lib.rs @@ -5,6 +5,7 @@ pub mod cutask; pub mod monitoring; pub mod serde; +use bincode::Encode; use std::error::Error; use std::fmt::{Debug, Display, Formatter}; @@ -55,3 +56,8 @@ impl CuError { } pub type CuResult = Result; + +/// Defines a basic write, append only stream trait to be able to log or send serializable objects. +pub trait Stream { + fn log(&mut self, obj: &impl Encode); +} diff --git a/copper_datalogger/Cargo.toml b/copper_datalogger/Cargo.toml index 9f730e585..93ed0250d 100644 --- a/copper_datalogger/Cargo.toml +++ b/copper_datalogger/Cargo.toml @@ -8,6 +8,7 @@ bincode = { version = "2.0.0-rc.3", features = ["serde", "bincode_derive"] } bincode_derive = { version = "2.0.0-rc.3" } memmap2 = "0.9.4" libc = "0.2.155" +copper = { path = "../copper" } [dev-dependencies] tempfile = "3.2.0" diff --git a/copper_datalogger/src/lib.rs b/copper_datalogger/src/lib.rs index f2c83eeb5..40c719c4e 100644 --- a/copper_datalogger/src/lib.rs +++ b/copper_datalogger/src/lib.rs @@ -1,5 +1,17 @@ use libc; +use std::fs::{File, OpenOptions}; +use std::io; +use std::io::Read; +use std::io::{BufReader, Seek}; +use std::path::Path; +use std::slice::from_raw_parts_mut; +use std::sync::{Arc, Mutex}; + +use memmap2::{MmapMut, RemapOptions}; + +use bincode::config::standard; +use bincode::de::read::Reader; use bincode::encode_into_slice; use bincode::error::EncodeError; use bincode::Encode; @@ -7,16 +19,7 @@ use bincode::{decode_from_reader, decode_from_slice}; use bincode_derive::Decode as dDecode; use bincode_derive::Encode as dEncode; -use bincode::config::{standard, Configuration}; -use bincode::de::read::Reader; -use memmap2::{MmapMut, RemapOptions}; -use std::fs::{File, OpenOptions}; -use std::io; -use std::io::{BufReader, Seek}; -use std::io::{Read, SeekFrom}; -use std::path::Path; -use std::slice::from_raw_parts_mut; -use std::sync::{Arc, Mutex}; +use copper::Stream; const MAIN_MAGIC: [u8; 4] = [0xB4, 0xA5, 0x50, 0xFF]; @@ -41,10 +44,6 @@ struct SectionHeader { section_size: u32, // offset of section_magic + section_size -> should be the index of the next section_magic } -pub trait Stream { - fn log(&mut self, obj: &impl Encode); -} - struct MmapStream { entry_type: EntryType, parent_logger: Arc>,