Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- trait A<'g> { }
- trait B<'g> { }
- trait C<T, U>
- where
- T: for<'g> A<'g> + ?Sized,
- U: for<'g> B<'g> + ?Sized,
- {
- fn get_a_or_b(&self) -> AorB<T, U>;
- fn get_c(&self) -> &U;
- }
- enum AorB<'g, T, U>
- where
- T: A<'g> + ?Sized,
- U: B<'g> + ?Sized,
- {
- A(&'g T),
- B(&'g U),
- }
- struct MyStruct {
- a: String,
- b: String,
- c: String
- }
- impl<'g> A<'g> for str {}
- impl<'g> B<'g> for str {}
- impl C<str, str> for MyStruct {
- fn get_a_or_b(&self) -> AorB<str, str> {
- AorB::A(&self.a)
- }
- fn get_c(&self) -> &str {
- &self.c
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement