refactor(nix-compat/wire): drop primitive functions
These may as well be inlined, and hardly need tests, since they just alias AsyncReadExt::read_u64_le / AsyncWriteExt::write_u64_le. Boolean reading is worth making explicit, since callers may differ on how they want to handle values other than 0 and 1. Boolean writing simplifies to `.write_u64_le(x as u64)`, which is also fine to inline. Change-Id: Ief9722fe886688693feb924ff0306b5bc68dd7a2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11549 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
This commit is contained in:
		
							parent
							
								
									b3305ea6e2
								
							
						
					
					
						commit
						095f715a80
					
				
					 6 changed files with 33 additions and 112 deletions
				
			
		| 
						 | 
				
			
			@ -9,8 +9,6 @@ pub use reader::BytesReader;
 | 
			
		|||
mod writer;
 | 
			
		||||
pub use writer::BytesWriter;
 | 
			
		||||
 | 
			
		||||
use super::primitive;
 | 
			
		||||
 | 
			
		||||
/// 8 null bytes, used to write out padding.
 | 
			
		||||
const EMPTY_BYTES: &[u8; 8] = &[0u8; 8];
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -41,7 +39,7 @@ where
 | 
			
		|||
    S: RangeBounds<u64>,
 | 
			
		||||
{
 | 
			
		||||
    // read the length field
 | 
			
		||||
    let len = primitive::read_u64(r).await?;
 | 
			
		||||
    let len = r.read_u64_le().await?;
 | 
			
		||||
 | 
			
		||||
    if !allowed_size.contains(&len) {
 | 
			
		||||
        return Err(std::io::Error::new(
 | 
			
		||||
| 
						 | 
				
			
			@ -52,7 +50,7 @@ where
 | 
			
		|||
 | 
			
		||||
    // calculate the total length, including padding.
 | 
			
		||||
    // byte packets are padded to 8 byte blocks each.
 | 
			
		||||
    let padded_len = padding_len(len) as u64 + (len as u64);
 | 
			
		||||
    let padded_len = padding_len(len) as u64 + len;
 | 
			
		||||
    let mut limited_reader = r.take(padded_len);
 | 
			
		||||
 | 
			
		||||
    let mut buf = Vec::new();
 | 
			
		||||
| 
						 | 
				
			
			@ -105,7 +103,7 @@ pub async fn write_bytes<W: AsyncWriteExt + Unpin, B: AsRef<[u8]>>(
 | 
			
		|||
    b: B,
 | 
			
		||||
) -> std::io::Result<()> {
 | 
			
		||||
    // write the size packet.
 | 
			
		||||
    primitive::write_u64(w, b.as_ref().len() as u64).await?;
 | 
			
		||||
    w.write_u64_le(b.as_ref().len() as u64).await?;
 | 
			
		||||
 | 
			
		||||
    // write the payload
 | 
			
		||||
    w.write_all(b.as_ref()).await?;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue