実現したいこと
Rust で、スライスをメンバに持つ構造体を作る。
前提
Rust で巨大なデータを読み込み、そのデータを使って処理を行うプログラムを書いています。
データのサブセットを持つ構造体を作って処理を行いたいのですが、データは巨大なためコピーを発生させたくありません。
発生している問題・エラーメッセージ
error[E0106]: missing lifetime specifier --> src/main.rs:7:14 | 7 | records: &[Record], | ^ expected named lifetime parameter | help: consider introducing a named lifetime parameter | 6 ~ struct PartOfRecords<'a> { 7 ~ records: &'a [Record], |
該当のソースコード
Rust
1struct Record { 2 index: u64, 3 value: u64, 4} 5 6struct PartOfRecords { 7 records: &[Record], 8} 9 10fn main() { 11 let mut vec: Vec<Record> = Vec::new(); 12 for i in 1..100 { 13 vec.push(Record { 14 index: i, 15 value: i * 2, 16 }); 17 } 18 let part_of_records = PartOfRecords { 19 records: &vec[50..70], 20 }; 21} 22
試したこと
エラーメッセージにあるように <'a> を PartOfRecords のメンバ定義につけようとしたものの、そのようなことをしているサンプルコードが見つかりませんでした。表示されているエラーを解決したところで自分がやりたいことが達成できるのか、そもそも Rust でこのようなことができるのか不安になったため、質問させて頂きました。
補足情報(FW/ツールのバージョンなど)
$ rustc --version rustc 1.68.0 (2c8cc3432 2023-03-06)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/03/19 23:39