The best way is to move the function in the cpp or create another cpp and include its header file in both your cpp and the ino.
If you realy want to keep it int the ino file, you must give it as parameter of the function
In your cpp
void CheckSerialInput(void (*f)(int, bool) )
{
//do stuff
(*f)(number, state);
//do stuff
}
In your .ino
void SwitchLight(int number, bool state);
void loop {
//do stuff
CheckSerialInput(SwitchLight);
//do stuff
}
void SwitchLight(int number, bool state) {
//do stuff
}