0046-Bytes-bytes源码阅读
环境
- Time 2022-05-29
- Rust 1.61.0
- Bytes 1.1.0
前言
说明
参考:https://docs.rs/bytes/latest/bytes/trait.Buf.html
目标
Bytes
实现了 Buf
,使用一下其中的方法。
remaining
fn main() {
let mut buf = b"JiangBo".as_ref();
println!("{:?}", buf.remaining());
println!("{:?}", buf.get_u8() as char);
println!("{:?}", buf.remaining());
}
chunk
fn main() {
let buf = b"JiangBo".as_ref();
println!("{:?}", buf.chunk());
}
advance
fn main() {
let mut buf = b"JiangBo".as_ref();
buf.advance(5);
println!("{:?}", buf);
}
copy_to_slice
fn main() {
let mut buf = b"JiangBo".as_ref();
let mut dst = [0; 5];
buf.copy_to_slice(&mut dst);
println!("{:?}", Bytes::from(buf));
}
get_u8
fn main() {
let mut buf = b"JiangBo".as_ref();
println!("{:?}", buf.get_u8() as char);
println!("{:?}", Bytes::from(buf));
}
copy_to_bytes
fn main() {
let mut buf = b"JiangBo".as_ref();
let bytes = buf.copy_to_bytes(5);
println!("{:?}", bytes);
}
take
fn main() {
let buf = b"JiangBo".as_ref();
println!("{:?}", buf.take(5));
}
chain
fn main() {
let buf = b"Hello ".as_ref();
let mut chain = buf.chain(b"JiangBo".as_ref());
let bytes = chain.copy_to_bytes(13);
println!("{:?}", bytes);
}
总结
使用了 Buf
中定义的一些方法。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2020-09-30 【JavaScript】展开语法
2020-09-30 【JavaScript】剩余参数
2020-09-30 【JavaScript】默认参数
2020-09-30 【JavaScript】import
2020-09-30 【JavaScript】debugger
2020-09-30 【JavaScript】for await...of