私はデータベースプロジェクトのタイプシステムに取り組んでいます。 1つの問題は、型IDと型を指定した読者に型IDをマップすることです。関数は、指定された構造体に、String
という組み込みの任意のデータ型を返すことができます。関数からすべてを返す方法は?
私は、このようなマクロ
fn set_val (data: &Any, id:i32, mem_ptr: usize) {
match id {
$(
$id => $io::write(*data.downcast_ref::<$t>().unwrap(), mem_ptr),
)*
_ =>(),
}
}
のように、作家上の任意の問題を抱えている。しかし、読者Any
ためthe trait bound "std::any::Any + 'static: std::marker::Sized" is not satisfied
ので、戻り値として使用されるように慣れていないようだしないでください。私はまた、リファレンスとして返すようにしようとしたが、私はmissing lifetime specifier
を文句寿命
fn get_val (id:i32, mem_ptr: usize) -> Option<& Any> {
match id {
$(
$id => Some(&$io::read(mem_ptr)),
)*
_ => None,
}
}
で立ち往生しています。戻り値が長すぎないために'static
がここで動作しない場合は、ここで寿命をどのように指定できますか?
PS。 $ ioのread関数は、あらゆる種類の型を返します。