Size: a a a

2020 November 16

MB

Mikail Bagishov in Rust Beginners
Окей)
источник

SH

Stas Hehera in Rust Beginners
а можно заимплементить этот трейт для FnOnce() -> Fut?
источник

SH

Stas Hehera in Rust Beginners
для FnMut я зделал имплементацию
источник

MB

Mikail Bagishov in Rust Beginners
Нет, потому что exec() может быть несколько раз вызвана
источник

А⚙

Антон ⚙️ in Rust Beginners
Stas Hehera
а можно заимплементить этот трейт для FnOnce() -> Fut?
Кстати, а зачем отдельно Ok и Err вместо просто ассоциированного типа у футуры? Это потом будет неудобно использовать
источник

SH

Stas Hehera in Rust Beginners
окей, а вот если я имею
async some(Vec<u8>) -> Result<>{}
|| { some.get(content) }

это получаеться у меня FnOnce если зделаю
async some(Vec<u8>) -> Result<>{}
|| { some.get(content.clone()) }

это получаеться у меня FnMut
источник

MB

Mikail Bagishov in Rust Beginners
А еще этот трейт очень похож на tower::Service<()>
источник

SH

Stas Hehera in Rust Beginners
Mikail Bagishov
А еще этот трейт очень похож на tower::Service<()>
что за?
источник

SH

Stas Hehera in Rust Beginners
Stas Hehera
окей, а вот если я имею
async some(Vec<u8>) -> Result<>{}
|| { some.get(content) }

это получаеться у меня FnOnce если зделаю
async some(Vec<u8>) -> Result<>{}
|| { some.get(content.clone()) }

это получаеться у меня FnMut
можно обойтись без клона?
источник

MB

Mikail Bagishov in Rust Beginners
Stas Hehera
что за?
https://docs.rs/tower/0.3.1/tower/trait.Service.html

Это я просто к тому, что возможно проще заиспользовать готовый трейт.
источник

MB

Mikail Bagishov in Rust Beginners
Stas Hehera
можно обойтись без клона?
А как ты себе это представляешь?
источник

SH

Stas Hehera in Rust Beginners
ну да никак, всёравно если move то будет FnOnce
источник

SH

Stas Hehera in Rust Beginners
а может можно этот Vec<u8> засунуть в Arc?
источник

MB

Mikail Bagishov in Rust Beginners
Я не вижу деталей твоей задачи, мб они что-то меняют. Но если функция на каждый вызов тратит вектор, и хочет вызываться несколько раз, то ей придется его клонировать
источник

MB

Mikail Bagishov in Rust Beginners
Stas Hehera
а может можно этот Vec<u8> засунуть в Arc?
А что some() берет? Если Vec<u8>, то  у тебя нет другого выхода кроме как клонировать вектор.
источник

А⚙

Антон ⚙️ in Rust Beginners
Mikail Bagishov
А что some() берет? Если Vec<u8>, то  у тебя нет другого выхода кроме как клонировать вектор.
Ну почему же, можно же сделать
{
   let vec = Arc::new(vec);
   move || vec.clone()
}
источник

MB

Mikail Bagishov in Rust Beginners
Антон ⚙️
Ну почему же, можно же сделать
{
   let vec = Arc::new(vec);
   move || vec.clone()
}
И как мы этот Arc<Vec<u8>> дадим функции, которая хочет Vec<u8>?
источник

А⚙

Антон ⚙️ in Rust Beginners
Mikail Bagishov
И как мы этот Arc<Vec<u8>> дадим функции, которая хочет Vec<u8>?
А, действительно
источник

SH

Stas Hehera in Rust Beginners
ладно, пока что будет так, иначе никак
источник

К

Коля🤔🎭 in Rust Beginners
Меня совсем плавит, или в чем прикол?
источник