diff options
| author | 魏曹先生 <1992414357@qq.com> | 2025-09-26 17:15:06 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2025-09-26 17:15:06 +0800 |
| commit | e8160eda1b68a42b8d861bbec5e9c1dc555ea783 (patch) | |
| tree | 6ab8565cd71aa01009303efb560bb34dbd4a7480 /crates/vcs/src/data | |
| parent | bb4a3f46d9d217fd71ee8a0ebdd78cc2c427fa9f (diff) | |
feat(tcp_connection): add MessagePack serialization support
- Add rmp-serde dependency for MessagePack serialization
- Implement write_msgpack and read_msgpack methods for basic MessagePack support
- Add write_large_msgpack and read_large_msgpack methods for chunked transmission
- Add error conversions for rmp-serde errors
- Add comprehensive tests for MessagePack functionality
- Fix code formatting and improve readability
- Make stream field pub(crate) for better access control
All tests pass successfully, ensuring backward compatibility.
Diffstat (limited to 'crates/vcs/src/data')
| -rw-r--r-- | crates/vcs/src/data/sheet.rs | 9 | ||||
| -rw-r--r-- | crates/vcs/src/data/vault/sheets.rs | 18 |
2 files changed, 23 insertions, 4 deletions
diff --git a/crates/vcs/src/data/sheet.rs b/crates/vcs/src/data/sheet.rs index a6765c0..95599ff 100644 --- a/crates/vcs/src/data/sheet.rs +++ b/crates/vcs/src/data/sheet.rs @@ -71,6 +71,15 @@ impl<'a> Sheet<'a> { &self.data.inputs } + /// Get the names of the inputs of this sheet + pub fn input_names(&self) -> Vec<String> { + self.data + .inputs + .iter() + .map(|input| input.name.clone()) + .collect() + } + /// Get the mapping of this sheet pub fn mapping(&self) -> &HashMap<SheetPathBuf, VirtualFileId> { &self.data.mapping diff --git a/crates/vcs/src/data/vault/sheets.rs b/crates/vcs/src/data/vault/sheets.rs index 082c076..0bba4f5 100644 --- a/crates/vcs/src/data/vault/sheets.rs +++ b/crates/vcs/src/data/vault/sheets.rs @@ -154,6 +154,9 @@ impl Vault { /// and will not be used in the future. /// /// For a safer deletion method, consider using `delete_sheet_safety`. + /// + /// Note: This function is intended for server-side use only and should not be + /// arbitrarily called by other members to prevent unauthorized data deletion. pub async fn delete_sheet(&self, sheet_name: &SheetName) -> Result<(), std::io::Error> { let sheet_name = snake_case!(sheet_name.clone()); @@ -174,11 +177,18 @@ impl Vault { /// Safely delete the sheet /// - /// The sheet will be moved to the trash directory, ensuring it does not appear in the results of `sheets` and `sheet_names` methods. - /// However, if the sheet's holder attempts to access the sheet through the `sheet` method, the system will automatically restore it from the trash directory. - /// This means: the sheet will only permanently remain in the trash directory, waiting for manual cleanup by an administrator, when it is truly no longer in use. + /// The sheet will be moved to the trash directory, ensuring it does not appear in the + /// results of `sheets` and `sheet_names` methods. + /// However, if the sheet's holder attempts to access the sheet through the `sheet` method, + /// the system will automatically restore it from the trash directory. + /// This means: the sheet will only permanently remain in the trash directory, + /// waiting for manual cleanup by an administrator, when it is truly no longer in use. + /// + /// This is a safer deletion method because it provides the possibility of recovery, + /// avoiding irreversible data loss caused by accidental deletion. /// - /// This is a safer deletion method because it provides the possibility of recovery, avoiding irreversible data loss caused by accidental deletion. + /// Note: This function is intended for server-side use only and should not be + /// arbitrarily called by other members to prevent unauthorized data deletion. pub async fn delete_sheet_safely(&self, sheet_name: &SheetName) -> Result<(), std::io::Error> { let sheet_name = snake_case!(sheet_name.clone()); |
