この記事は、Rust Advent Calendar 2016の12/19の記事になるはずだったエントリです。 所有権 Rustといえば所有権というのは、Rubyといえばオープンクラス、というくらいの「言語ならでは」の機能だと思います。 基本的にはこういうやつですね。 struct Z { x: i32, } fn main() { let x = Z { x: 1 }; let y = x; println!("x = {}", x.x);//エラー E0382: use of moved value cf. https://doc.rust-lang.org/error-index.html#E0382) } Rustを最初に書き始めた時は、なんでこんなに煩いんだろうと思う所有権ですが、慣れてくるとその良さがわかります。 以下では、その具体的な ところで、RustでI/Oに関するnat