From 762e3119401fbee25ec18fee2ff220d9b12d48e8 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Wed, 11 Feb 2026 21:44:05 +0800 Subject: Add sheet system and reorganize workspace - Add new "sheet" crate to workspace - Rename "systems/asset" to "systems/_asset" - Reorder workspace members and dependencies for clarity - Update constants with new paths for auth and rules - Add conditional compilation for system module --- systems/asset/src/rw.rs | 85 ------------------------------------------------- 1 file changed, 85 deletions(-) delete mode 100644 systems/asset/src/rw.rs (limited to 'systems/asset/src/rw.rs') diff --git a/systems/asset/src/rw.rs b/systems/asset/src/rw.rs deleted file mode 100644 index 784d44d..0000000 --- a/systems/asset/src/rw.rs +++ /dev/null @@ -1,85 +0,0 @@ -use std::path::PathBuf; - -use crate::error::{DataReadError, DataWriteError}; - -pub trait RWData { - type DataType; - - /// Implement read logic - /// Given a path, return the specific data - fn read(path: &PathBuf) -> impl Future> + Send + Sync; - - /// Implement write logic - /// Given data and a path, write to the filesystem - fn write( - data: DataType, - path: &PathBuf, - ) -> impl Future> + Send + Sync; - - /// Provide test data - fn test_data() -> DataType; - - /// Given two sets of data, determine if they are equal - /// - /// Add RWDataTest derive to your struct to automatically generate tests - /// ```ignore - /// #[derive(RWDataTest)] - /// struct FooData; - /// ``` - fn verify_data(data_a: DataType, data_b: DataType) -> bool; -} - -#[macro_export] -macro_rules! ensure_eq { - ($a:expr, $b:expr) => { - if $a != $b { - return false; - } - }; -} - -// Test Data -pub struct FooData { - pub age: i32, - pub name: String, -} - -impl RWData for FooData { - type DataType = FooData; - - async fn read(path: &PathBuf) -> Result { - let content = tokio::fs::read_to_string(path) - .await - .map_err(|e| DataReadError::IoError(e))?; - let parts: Vec<&str> = content.split('=').collect(); - if parts.len() != 2 { - return Err(DataReadError::ParseError("Invalid format".to_string())); - } - let name = parts[0].to_string(); - let age: i32 = parts[1] - .parse() - .map_err(|_| DataReadError::ParseError("Invalid age".to_string()))?; - Ok(FooData { age, name }) - } - - async fn write(data: FooData, path: &PathBuf) -> Result<(), DataWriteError> { - let content = format!("{}={}", data.name, data.age); - tokio::fs::write(path, content) - .await - .map_err(|e| DataWriteError::IoError(e))?; - Ok(()) - } - - fn test_data() -> FooData { - FooData { - age: 24, - name: "OneOneFourFiveOneFour".to_string(), - } - } - - fn verify_data(data_a: FooData, data_b: FooData) -> bool { - crate::ensure_eq!(data_a.age, data_b.age); - crate::ensure_eq!(data_a.name, data_b.name); - return true; - } -} -- cgit