#byte #buf #api #try #no-panic #mentioned

try_buf

本包提供 bytes::Buf 的无 panic API

3 个版本

0.1.3 2023 年 3 月 5 日
0.1.2 2023 年 2 月 3 日
0.1.1 2023 年 2 月 3 日
0.1.0 2022 年 8 月 14 日

3#no-panic

每月 43 次下载

MIT 许可证

10KB
260 代码行

本包为任何实现了 T 的类型提供无 panic API bytes::Buf,这在 问题 #254 中被提及。

欢迎提交问题和 PR。

示例

use bytes::{Bytes, Buf};
use try_buf::TryBuf;

let mut bytes = Bytes::from_static(&[1, 2, 3, 4]);

let a = bytes.try_get_u16().unwrap();
assert_eq!(a, 0x0102);

let b = bytes.try_get_u32()
    .unwrap_or_else(|e| {
        println!("fail to get u32: {}", e);
        0
    });
assert_eq!(b, 0);
assert_eq!(2, bytes.remaining());

lib.rs:

本包为任何实现了 T 的类型提供无 panic API bytes::Buf,这在 问题 #254 中被提及。

示例

use bytes::{Bytes, Buf};
use try_buf::TryBuf;

let mut bytes = Bytes::from_static(&[1, 2, 3, 4]);
        
let a = bytes.try_get_u16().unwrap();
assert_eq!(a, 0x0102);

let b = bytes.try_get_u32()
    .unwrap_or_else(|e| {
        println!("fail to get u32: {}", e);
        0
    });
assert_eq!(b, 0);
assert_eq!(2, bytes.remaining());

依赖

~170KB