diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-02-11 21:44:05 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-02-11 21:44:05 +0800 |
| commit | 762e3119401fbee25ec18fee2ff220d9b12d48e8 (patch) | |
| tree | 26dee88ae37f7d184b693a1a97dad0c89fd0db66 /systems/_asset/test/src | |
| parent | 2f10e0d94c61916dd36a03df2576223b135b6ccd (diff) | |
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
Diffstat (limited to 'systems/_asset/test/src')
| -rw-r--r-- | systems/_asset/test/src/lib.rs | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/systems/_asset/test/src/lib.rs b/systems/_asset/test/src/lib.rs new file mode 100644 index 0000000..4aad777 --- /dev/null +++ b/systems/_asset/test/src/lib.rs @@ -0,0 +1,53 @@ +use std::path::PathBuf; + +use asset_system::{ + RWDataTest, ensure_eq, + error::{DataReadError, DataWriteError}, + rw::RWData, +}; + +#[derive(RWDataTest)] +pub struct FooData { + pub age: i32, + pub name: String, +} + +impl RWData<FooData> for FooData { + type DataType = FooData; + + async fn read(path: &PathBuf) -> Result<FooData, DataReadError> { + 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 { + ensure_eq!(data_a.age, data_b.age); + ensure_eq!(data_a.name, data_b.name); + return true; + } +} |
