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 中定义的一些方法。

附录

posted @   jiangbo4444  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源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
点击右上角即可分享
微信分享提示