• 0 Posts
  • 2 Comments
Joined 1 year ago
cake
Cake day: July 17th, 2024

help-circle

  • I like this solution more too, what about something like?

    code examples
    {
        spawn(async move {
            do_something_else_with(
                ^{ self.some_a.clone() },
                ^{ self.some_a.clone() },
                ^{ self.some_a.clone() },
            )
        });
    }
    

    Which desugars to

    {
        let (a, b, c) = (self.some_a.clone(), self.some_a.clone(), self.some_a.clone());
        
        spawn(async move {
            do_something_else_with(a, b, c)
        });
    }
    

    Then have like

    'super1: {
        'super2: {
            spawn(async move {
                do_something_else_with(
                    ^super1: { self.some_a.clone() },
                    ^super1: { self.some_a.clone() },
                    ^super1: { self.some_a.clone() },
                )
            });
        }
    }
    

    Which desugars to

    'super1: {
        let (a, b, c) = (self.some_a.clone(), self.some_a.clone(), self.some_a.clone());
    
        'super2: {
            spawn(async move {
                do_something_else_with(a, b, c)
            });
        }
    }
    

    And finally, the harder to read

    'super1: {
        'super2: {
            spawn(async move {
                do_something_else_with(
                    ^^{ self.some_a.clone() },
                    ^^{ self.some_a.clone() },
                    ^^{ self.some_a.clone() },
                )
            });
        }
    }
    

    Which desugars to

    'super1: {
        let (a, b, c) = (self.some_a.clone(), self.some_a.clone(), self.some_a.clone());
    
        'super2: {
            spawn(async move {
                do_something_else_with(a, b, c)
            });
        }
    }