Notice
Recent Posts
Recent Comments
NeuroWhAI의 잡블로그
[Rust] bytes::Bytes 본문
Crate : https://crates.io/crates/bytes
use bytes::Bytes;
let mut mem = Bytes::from(&b"Hello world"[..]);
let a = mem.slice(0, 5);
assert_eq!(&a[..], b"Hello");
let b = mem.split_to(6);
assert_eq!(&mem[..], b"world");
assert_eq!(&b[..], b"Hello ");
기본적으로 바이트 배열을 표현하는 구조체 입니다.
특이한 점은 내부의 배열을 레퍼런스 카운팅을 통해 관리하며 각 Bytes들은 배열의 범위만을 담고 있을 뿐입니다.
덕분에 배열을 자르는 행동(split, slice)들을 단순히 범위의 수정으로 구현할 수 있으며
더이상 배열이 필요하지 않으면 내부 배열은 소멸하게 됩니다.
extend 메소드로 배열을 확장할 수 있는데 이때의 동작 방식은 C++의 std::vector와 비슷한 것 같습니다.
이런 특정을 가지는 이유는 네트워크 프로그래밍을 목적으로 만들어졌기 때문이라고 하네요.
더 다양한 변경 메소드를 지원하는 BytesMut 구조체도 있습니다.
'개발 및 공부 > 라이브러리&프레임워크' 카테고리의 다른 글
[TensorFlow] 간단한 분류 모델 - 심층 신경망 (0) | 2018.01.10 |
---|---|
[TensorFlow] 간단한 분류 모델 (0) | 2018.01.09 |
[Tokio] Rust 비동기 입출력 라이브러리 (0) | 2018.01.07 |
[TensorFlow] 선형 회귀 (0) | 2018.01.07 |
[Nana] C++ GUI 라이브러리 nana (0) | 2018.01.02 |
Comments