Guest User

Untitled

a guest
Jan 16th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.44 KB | None | 0 0
  1. type Result<T> = std::result::Result<T, ()>;
  2.  
  3. pub trait Thing<'t, T>: Sized {
  4. fn thingy(&'t self) -> Result<T>;
  5. }
  6.  
  7. impl<'v> Thing<'v, Option<&'v str>> for (i32, Option<String>) {
  8. fn thingy(&'v self) -> Result<Option<&'v str>> {
  9. let (_, maybe_string) = &self;
  10. Ok(maybe_string.as_ref().map(String::as_ref))
  11. }
  12. }
  13.  
  14. fn main() {
  15. let foo: (i32, Option<String>) = (1, Some("foo".to_owned()));
  16. println!("{:?}", foo.thingy());
  17. }
Add Comment
Please, Sign In to add comment