Linker Unsafe
220 subscribers
182 photos
24 videos
18 files
859 links
Собираю ржавые и лямбдообразные новости, прикольные цитатки с форумов, ссылки на статьи и всё такое. В-общем, сюда я тащу такие крупицы, которые мне будет жаль потерять в цифровой бездне. Возможно, они покажутся интересными и вам.

Фи сюда: @nlinker
Download Telegram
Forwarded from Jack
Дык даже в https://github.com/async-rs/async-std/pull/123 и то с умом подошли.

pub async fn poll_fn<F, T>(f: F) -> T
where
F: FnMut(&mut Context<'_>) -> Poll<T>,
{
futures::future::poll_fn(f).await
}


использовали готовый код
Forwarded from Jack
Так подожжи. у них в зависимостях все равно futures и код сильно от них зависит. Зачем переписывать футуры, если они у тебя уже в зависимостях?
Forwarded from Deleted Account
Forwarded from Deleted Account
AT6MB2G MQ26O2LI:
vec!["a"].into_iter().map(|s| s.to_owned()).collect();

реально больше никак мне не создать &Vec<String> ?

^^^^^^^ a collection of type &std::vec::Vec<std::string::String> cannot be built from std::iter::Iterator<Item=std::string::String>


хммммм

Roman Proskuryakov:
Ну ты в переменную положи вектор, а потом уже от переменной возьми ссылку.

AT6MB2G MQ26O2LI:
ш-шта

Roman Proskuryakov:
let vec: Vec<String> = vec!["a"].into_iter().map(|s| s.to_owned()).collect();
let vec_ref = &vec;

AT6MB2G MQ26O2LI:
а иначе точно никак? както некраисво

Roman Proskuryakov:
Что значит некрасиво?

AT6MB2G MQ26O2LI:
ну в две строчки

Roman Proskuryakov:
.collect() создает временную переменную. Ты хочешь от временной переменной взять ссылку. Она сразу сдохнет после точки с запятой ; и твоя ссылка будет дохлая

поэтому раст тебя от этого защищает

AT6MB2G MQ26O2LI:
ух ясно спасибо)
https://t.iss.one/rust_beginners_ru/33912
Casual tears:
Разве? Вот в русте в стандартной библиотеке мапа на основе B дерева и судя по вот этим бенчам: https://github.com/Rufflewind/bench-maps оно намного лучше, чем красно-черное.

Там же меньше дереференсов надо, более кэш-френдли. С чего бы ему быть медленнее?

Собственно в официальной доке именно это и написано: https://doc.rust-lang.org/std/collections/struct.BTreeMap.html
Forwarded from Cyberdine Engineering🐤
Я не француз, но суп из тебя сделал бы
Forwarded from Leonid 🦇 Onokhov
Ненавижу хаскелистов за это вот
newtype Foo m a = Foo { ReaderT FooEnv m a }
doSomething :: MonadIO m => Blah -> BlahBlah -> Foo m a
Forwarded from Leonid 🦇 Onokhov
Зачем мне ещё один сраный уровень трансформеров? А? А?? АААА?
Forwarded from Leonid 🦇 Onokhov
меня напряг трансформер
Forwarded from parket
А, ну так классика же. ReaderT над IO
Forwarded from Leonid 🦇 Onokhov
так не в том месте трансформер то напряг
Forwarded from Leonid 🦇 Onokhov
newtype AppT m a 
= AppT
{ unAppT :: ReaderT YourStuff m a
} deriving (Functor, Applicative, Monad, etc)

vs
newtype AppM a = AppM (ReaderT WhateverBullshit IO a)
Forwarded from Leonid 🦇 Onokhov
есть разница в этих двух ньютайпах?
parket:
@lonokhov не мог бы ты развить мысль, пожалуйста

λeonid Onokhov:
очень просто. не надо лепить трансформер где не надо
Автор взял лопату и зачерпнул...