hyprshell_core_lib/transfer/
receive.rs

1use 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}