Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct PA;
- struct PB;
- struct PC;
- struct Parts<A, B, C> {
- pub a: A,
- pub b: B,
- pub c: C,
- }
- fn create() -> Parts<PA, PB, PC> {
- Parts {
- a: PA,
- b: PB,
- c: PC,
- }
- }
- struct Led {
- p: PB,
- }
- impl Led {
- pub fn new<A, C>(parts: Parts<A, PB, C>) -> (Self, Parts<A, (), C>) {
- (
- Led {
- p: parts.b,
- },
- Parts {
- a: parts.a,
- b: (),
- c: parts.c,
- }
- )
- }
- }
- fn main() {
- let parts = create();
- let (led, parts) = Led::new(parts);
- // Second one fails
- let (led, parts) = Led::new(parts);
- }
Add Comment
Please, Sign In to add comment