Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct Hoge {
- pub v: i32,
- }
- struct Fuga {
- pub v: i32,
- }
- impl std::convert::From<Hoge> for Fuga {
- fn from(hoge: Hoge) -> Self {
- Fuga {v: hoge.v}
- }
- }
- impl std::convert::From<Hoge> for Result<Fuga, String> {
- fn from(hoge: Hoge) -> Self {
- Ok(Fuga {v: hoge.v})
- }
- }
- fn main() {
- // To Fuga
- {
- let h = Hoge {v: 10};
- let f: Fuga = h.into();
- }
- // To Result of Fuga
- {
- let h = Hoge {v: 10};
- let f: Result<Fuga, String> = h.into();
- }
- //
- {
- let h = Hoge {v: 10};
- // これをしたい
- //let f: Fuga = h.into()?;
- // なるほどこうは書ける。でも長い
- let f: Fuga = std::convert::Into::<Result<Fuga, String>>::into(h).unwrap();
- }
- }
Add Comment
Please, Sign In to add comment