Предположим, у нас есть игра l oop, в соответствии с этим Python псевдокодом
def handle_events():
for e in get_frame_events():
if e.type == CloseEvent:
raise SuccessfulExit()
def gameloop():
while True:
handle_events()
handle_physics()
render()
def main():
try: gameloop()
except SuccessfulExit: return
Мы можем выйти из программы из handle_events
, разматывая стек и вызывая все деструкторы. , Если бы стек вызовов до handle_events
был глубже, было бы непрактично возвращать логическое значение, указывающее, должна ли программа завершить работу полностью до main
.
Я знаю process::exit
, но он довольно хар sh и не вызывает деструкторов, а сразу выходит. Можно ли сделать что-то подобное в коде выше в Rust?