Browse Source

protocol: Allow specifying hash len

ipv6
Denis Drakhnia 11 months ago
parent
commit
8b857ad2a1
  1. 9
      protocol/src/admin.rs

9
protocol/src/admin.rs

@ -44,15 +44,20 @@ impl<'a> AdminCommand<'a> {
} }
} }
pub fn decode(src: &'a [u8]) -> Result<Self, Error> { pub fn decode_with_hash_len(hash_len: usize, src: &'a [u8]) -> Result<Self, Error> {
let mut cur = Cursor::new(src); let mut cur = Cursor::new(src);
cur.expect(Self::HEADER)?; cur.expect(Self::HEADER)?;
let hash = cur.get_bytes(HASH_LEN)?; let hash = cur.get_bytes(hash_len)?;
let command = Str(cur.get_bytes(cur.remaining())?); let command = Str(cur.get_bytes(cur.remaining())?);
cur.expect_empty()?; cur.expect_empty()?;
Ok(Self { hash, command }) Ok(Self { hash, command })
} }
#[inline]
pub fn decode(src: &'a [u8]) -> Result<Self, Error> {
Self::decode_with_hash_len(HASH_LEN, src)
}
pub fn encode(&self, buf: &mut [u8]) -> Result<usize, Error> { pub fn encode(&self, buf: &mut [u8]) -> Result<usize, Error> {
Ok(CursorMut::new(buf) Ok(CursorMut::new(buf)
.put_bytes(Self::HEADER)? .put_bytes(Self::HEADER)?

Loading…
Cancel
Save