Декоратор работает, измеряя время, прошедшее с момента последнего вызова функции, и ожидая соответствующего промежутка времени, если это необходимо, чтобы убедиться, что ограничение скорости не превышено. Время ожидания вычисляется как min_interval - elapsed, где min_interval - минимальный интервал времени (в секундах) между двумя вызовами функции, а elapsed - время, прошедшее с момента последнего вызова.