[Verse 1]
Let me tell you about functions in Rust
They're the building blocks that we can trust
Start with fn and give it a name
Parameters inside help you play the game
Return types come after the arrow sign
Write your logic and make it shine
[Chorus]
Functions take you in and out
Control the flow without a doubt
If and else will guide your way
Match expressions save the day
Loop it up or break it down
Rust control keeps you safe and sound
[Verse 2]
If statements check what's true or false
No parentheses needed, that's the boss
Else if chains can help you choose
Match is powerful, you just can't lose
Every arm must be covered well
Exhaustive matching casts its spell
[Chorus]
Functions take you in and out
Control the flow without a doubt
If and else will guide your way
Match expressions save the day
Loop it up or break it down
Rust control keeps you safe and sound
[Bridge]
Loop forever or while it's true
For each item, iterate through
Break will exit, continue skips
Return values from function trips
Ownership rules still apply here
Borrow checker keeps it clear
[Verse 3]
Function signatures tell the tale
What goes in and what won't fail
Unit type when nothing's returned
Stack frames managed, memory earned
Call your functions, pass them around
Modular code that's safe and sound
[Chorus]
Functions take you in and out
Control the flow without a doubt
If and else will guide your way
Match expressions save the day
Loop it up or break it down
Rust control keeps you safe and sound
[Outro]
From main function we begin
Control structures help us win
Safe and fast, that's Rust's way
Functions flowing every day