Определение Location::caller
гласит:
pub fn caller() -> &'static Location<'static>`
? Это экспериментальный API только для ночи. (track_caller
# 47809 )
Возвращает исходное местоположение вызывающего абонента этой функции. Если вызывающая функция аннотирована, то будет возвращено место ее вызова, и так далее в стеке до первого вызова в теле неотслеживаемой функции.
Это звучит так, как будто должно вернуться &'static Option<Location<'static>>
. Кажется, что-то еще делает ход стека вызовов намного сложнее, чем могло бы быть.
Есть ли веская причина для такого решения?