Size: a a a

2020 May 10

MB

Mikail Bagishov in rust_offtopic
Stanislav Popov
да блин я так и делаю же вроде
Так, вставь выше два вызова h()
источник

AZ

Alex Zhukovsky in rust_offtopic
не проще актикс взять?
источник

MB

Mikail Bagishov in rust_offtopic
Просто чтобы убедиться, что h это не FnOnce
источник

AZ

Alex Zhukovsky in rust_offtopic
там data взял и гого погнал, он сам там арки-хуярки внутри делает
источник

G

Gymmasssorla in rust_offtopic
Stanislav Popov
оно мне в нижней кложе пишет вообще  - closure is FnOnce because it moves the variable y out of its environment
ну блять помести y в Arc
источник

MB

Mikail Bagishov in rust_offtopic
Gymmasssorla
ну блять помести y в Arc
Лол, y не виноват
источник

MB

Mikail Bagishov in rust_offtopic
От того, что ты FnOnce завернул в арку, она не станет волшебной Fn
источник

AZ

Alex Zhukovsky in rust_offtopic
Stanislav Popov
оно мне в нижней кложе пишет вообще  - closure is FnOnce because it moves the variable y out of its environment
ну а что непонятно? если написал move то у тебя FnOnce. А тебе нужен Fn. Или ты хочешь чтобы хендлер один запрос обработал и умер?
источник

G

Gymmasssorla in rust_offtopic
Mikail Bagishov
От того, что ты FnOnce завернул в арку, она не станет волшебной Fn
виноват виноват
источник

G

Gymmasssorla in rust_offtopic
зуб даю.
источник

p

polunin.ai in rust_offtopic
Mikail Bagishov
От того, что ты FnOnce завернул в арку, она не станет волшебной Fn
ее можно будет клонировать перед вызовом
источник

VS

Victor Sapiens in rust_offtopic
Alex Zhukovsky
у меня в проекте уже с десяток костылей конкретно чтобы нон наллабл более-менее работал
Ты таки как смог их употребить? Я что-то особой пользы от них не увидел. Они же гарантируют примерно ничего
источник

MB

Mikail Bagishov in rust_offtopic
Gymmasssorla
виноват виноват
Если h это Fn, то y тоже будет Fn
источник

SP

Stanislav Popov in rust_offtopic
Alex Zhukovsky
ну а что непонятно? если написал move то у тебя FnOnce. А тебе нужен Fn. Или ты хочешь чтобы хендлер один запрос обработал и умер?
хм ну немного понимания это дало
источник

AZ

Alex Zhukovsky in rust_offtopic
Victor Sapiens
Ты таки как смог их употребить? Я что-то особой пользы от них не увидел. Они же гарантируют примерно ничего
ну если весь код с ними писать то гарантируют. Пару багов я нашел, но в целом мне просто приятнее, что если убрать проверку на нулл то код не компилируется. Я все проверки на нулл заменил на if (foo is {} notNullFoo), и у тебя тупо не выйдет обратиться к нуллу потому что к foo я запрещяю обращаться (на уровне ревью, но мб напишу линт)
источник

SP

Stanislav Popov in rust_offtopic
но как не мувать не понятно потому что он не хочет принимать кложу и не мувать
источник

MB

Mikail Bagishov in rust_offtopic
Alex Zhukovsky
ну а что непонятно? если написал move то у тебя FnOnce. А тебе нужен Fn. Или ты хочешь чтобы хендлер один запрос обработал и умер?
move ортогонально FnOnce/Fn.
источник

SP

Stanislav Popov in rust_offtopic
угар короче
источник

MB

Mikail Bagishov in rust_offtopic
Stanislav Popov
но как не мувать не понятно потому что он не хочет принимать кложу и не мувать
Скорее всего, h вывелась как FnOnce
источник

AZ

Alex Zhukovsky in rust_offtopic
Stanislav Popov
хм ну немного понимания это дало
ну смысл как раз в том, что хендлер должен вызываться для каждого запроса. Соответственно если ты делаешь замыкания, то замыкания по значению умрут в конце первого же вызова этого хендлера. так что он должен получать данные по ссылке.

По ссылке у тебя два способа: либо у тебя есть &'static которую можно шарить безопасно, либо Arc
источник