Пытаюсь разобраться с сигнатурой функции pub fn get_subscriber<Sink>(

name: String,
env_filter: String,
sink: Sink,
) -> impl Subscriber + Send + Sync
where
Sink: for<'a> MakeWriter<'a> + Send + Sync + 'static,

аргумент sink у нас принимает что-то, что соответствует условию описанному в поле where. Как понять Sink: for<'a> MakeWriter<'a>? Я знаю что это HRTB. но что это значит и почему нельзя написать по другому. а также не понимаю еще один момент мы при вызове функции можем использовать в этом аргументе std::io::stdout но трейт баунд MakeWriter<‘a> из либы tracing_subscriber. как std::io::stdout подходит для этого аргумента если оно не реализует трейт MakeWriter. видимо это баунд означает что то другое.

7 ответов

4 просмотра

Ого, первый раз встречаю for в таком месте 😐

stdout не должен подходить для этого параметра. Подойдёт замыкание или функция, возвращающая stdout. Там есть реализация MakeWriter для Fn() -> W, W: Write

ChzChz- Автор вопроса
red75prime
stdout не должен подходить для этого параметра. По...

std::io::stdout и есть функция, как в std либе может быть реализация для трейта из tracing_subscriber?

ChzChz
std::io::stdout и есть функция, как в std либе мож...

А, точно. Я имел в виду результат выполнения stdout

ChzChz
std::io::stdout и есть функция, как в std либе мож...

Реализация не в std, а в tracing_subscriber impl<'a, F, W> MakeWriter<'a> for F where F: Fn() -> W, W: Write, Функция из std просто попадает под эту реализацию

ChzChz- Автор вопроса
red75prime
Реализация не в std, а в tracing_subscriber impl<'...

ок эта сигнатура и баунд мне понятен. а для чего HRTB в моем вопросе?

Похожие вопросы

Обсуждают сегодня

а что делать если тебя убивают на картах?
Yarik yarik kyda ti lezesh
43
Мне вот что интересно, кто на рфе стартовал/играл, что вы фармили, в каком виде контента он прямо хорош? Экспедиция? Вроде прямо на замазанных мапах рф сдувается
Владислав
20
Подскажите где можно прочитать про реализацию возможности писать человеку при подписке на телеграм канал от имени бота? Было бы не плохо если для Telegraf@3.38.0
Pan Lipton
10
Всем привет, может уже кто-то пытался выдернуть из api информацию о дате рождения пользователя Есть ли вообще такая возможность?
Artem Stormageddon
2
‌/r/pathofexile moderation changes top scoring links : pathofexile (RSS) Hi, everyone. On behalf of the subreddit mod team, I’m here to give you a few updates on the subreddi...
Esionru
3
Ребята, я за проф советом😅 По микросервисам. В монолите есть общие файлы для сервисов: фетчи, конфиги, либы, утилсы.. как при распиле правильно их поддерживать? Пока вариант д...
Александр Тарасюк
1
У меня вопрос к знающими, стоит ли вступать в гильдии в игре или лучше полная свобода?
Енот Полоскун
17
У вас бывает ощущение, что хочется потратить весь отпуск на то, чтоб только спать?
Николай
15
Как можно настроить фильтр в пое под себя?
Yarik yarik kyda ti lezesh
15
Кто нибудь поясните это всё таки вброс или да? Про санктум слышал на поедб вбросили, а по дурке откуда инфа и на сколько это вообще правда? Пахнет шизофренией какой-то ✅Divi...
Dmitry Ritter
9
Карта сайта