2014-01-01から1年間の記事一覧

LevelDBがどのようにレコードにデータを保存しているか

だいたいこのような感じだとおもう. package main import ( "encoding/binary" "fmt" ) const kBatchHdrLen = 8 + 4 // LevelDBはbatch単位で書き込む.(マルチスレッド対応のため? type Batch struct { buf []byte } func (b *Batch) grow(n int) { off := …

std::comm::Chanを利用した簡易メッセージキューサーバもどき

chanをcloneすることで複数クライアントからの入力を共通のPortで待ち受けることができる. use std::io::BufferedStream; use std::io::net::ip::{Ipv4Addr, SocketAddr}; use std::io::net::tcp::{TcpStream, TcpListener}; use std::io::{Acceptor, Listen…

Rustで大文字/小文字変換

最近ちょっと新しいことをやるべきかと思ってRustを触っていて、ちょっとハマったところがこれ. 文字列には to_upper()/to_lower() は用意されておらず、一度 to_ascii() でASCII型に変換する必要がある. use std::io; fn main() { let name = ~"KUBO39"; le…