hyprshell_core_lib/transfer/
receive.rs1use crate::transfer::TransferType;
2use anyhow::Context;
3use tracing::debug;
4
5pub fn receive_from_buffer(mut buffer: Vec<u8>) -> anyhow::Result<TransferType> {
6 if buffer.last() == Some(&0) {
7 let _ = buffer.pop();
8 }
9 let str =
10 str::from_utf8(&buffer).with_context(|| format!("Failed to convert buffer: {buffer:?}"))?;
11 let transfer: TransferType =
12 serde_json::from_str(str).with_context(|| format!("Failed to deserialize str: {str:?}"))?;
13 debug!("Received command: {transfer:?}");
14 Ok(transfer)
15}