Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type Result<T> = std::result::Result<T, ()>;
- pub trait Thing<'t, T>: Sized {
- fn thingy(&'t self) -> Result<T>;
- }
- impl<'v> Thing<'v, Option<&'v str>> for (i32, Option<String>) {
- fn thingy(&'v self) -> Result<Option<&'v str>> {
- let (_, maybe_string) = &self;
- Ok(maybe_string.as_ref().map(String::as_ref))
- }
- }
- fn main() {
- let foo: (i32, Option<String>) = (1, Some("foo".to_owned()));
- println!("{:?}", foo.thingy());
- }
Add Comment
Please, Sign In to add comment