Αλεχ
мне надо match foo { New => true, _ => false }
Αλεχ
так что да, руками
Vladimir
мне надо match foo { New => true, _ => false }
Да, вроде был макрос для такого структурного матчинга в ассертах
Vladimir
Но я не помню
Маjко
Тож не понял
Anton
@LooMaclin старик чо происходит
Anton
/split люстрации
да тi охуiв
Anton
Αλεχ
Есть способ записать строку в файл кроме как собрать сначала строку в Vec<u8>?
Ευγένιος
да тi охуiв
Ты не можешь в украинскую.
Anton
Есть способ записать строку в файл кроме как собрать сначала строку в Vec<u8>?
ну вообще там прям вектор не обязательно, слайса хватит
Anton
ну вообще да
Anton
ну еще макросы есть, но в сущности одно и то же делают
Αλεχ
ну вообще там прям вектор не обязательно, слайса хватит
ну так строка в лучшем случае Bytes дает
Αλεχ
жалко(
Anton
а что ты вообще хотел то)
Anton
ты же байтики записываешь по факту
Αλεχ
Я уже нашел, что serde умеет сразу в to_writer
Αλεχ
ваще отлично
Αλεχ
и еще вопрос на засыпку
Αλεχ
fn load_images(&self) -> Vec<Image<T>> { let entries = fs::read_dir(&self.path).unwrap(); entries.filter_map(|entry| entry.as_ref().ok()).map(|entry| { let reader = File::open(entry.path()).unwrap(); let result: Image<T> = serde_json::from_reader(reader).unwrap(); result }).collect() }
Αλεχ
error[E0597]: `entry` does not live long enough --> src\lib.rs:138:36 | 138 | entries.filter_map(|entry| entry.as_ref().ok()).map(|entry| { | ^^^^^ - `entry` dropped here while still borrowed | | | borrowed value does not live long enough ... 142 | }).collect() | - borrowed value needs to live until here
Αλεχ
я могу попробовать сделать map сразу на option'е
Αλεχ
но хотелось бы все-таки чуть помеьнше портянки
Αλεχ
можно в filter_map.map это провернуть?
Αλεχ
ваще не понимаю, у меня в другом проекте такой же код работает
Αλεχ
fn get_opencv_lib_path<'a, T: Iterator<Item = &'a io::Result<fs::DirEntry>>>( files: T, name: &str, ) -> Result<String, Box<Error>> { let opencv_world_entry = files.filter_map(|entry| entry.as_ref().ok()).find(|entry| { let file_name = entry.file_name().to_string_lossy().into_owned(); (file_name.starts_with(&format!("opencv_{}", name)) || file_name.starts_with(&format!("libopencv_{}", name))) && !file_name.ends_with("d.lib") });
Αλεχ
вот этот код работает
Αλεχ
а код выше -почему-то нет
Anton
Кстати
Anton
Если у кого местных есть хорошие гайды или рекомендации по работе с парсерами и например nom чтобы понять нормально принципы работы и тд - был бы признателен
Anton
уже разобрался даже с злоебучими процедурными макросами
Anton
но с nom нихрена
Anton
по идее частично подходы чисто на глазок вроде бы похожие в чем то
Anton
но выдавить из себя как работать с этим не могу
Anton
агась
Anton
Со статьей про даты более менее чуть начал уже вникать
Anton
но опять же простой кейс в котором у меня есть некий блок имени, есть замыкание и внутри него некий список из описанных вхождений - все еще никак не могу
Anton
по идее так для большей части всего есть макросы хелперы какбы
Anton
но я даже не знаю как бы подступится нормально
Anton
тут такая фигня наверное что надо сначала хоть базово понять как работает и курится, и потом оно само пойдет легко уже
Anton
но сейчас даже основу понять не могу
Anton
ибо из парсинга чтото около темы я умею только в обычные регэкспы, и даже для написания кастомных десереализаторов юзал регэкспы, но это как то слишком грязно и неэффективно, особенно с учетом того что регэкспами все не покроешь(
Anton
я обычно вопросы в джерке задаю по техническому, но думаю тут так то по идее народу больше, так что подумал что актуальнее техническое задавать тут, а в джерке только словесно всех хуями крыть)
Судзумия
Сижу тут два года, а шрамко всё там же
պլհկ
На дне
Αλεχ
К слову про генераторы лодочник ответил
Αλεχ
// generator fn foo() -> T yields Y // generator that implements Iterator fn foo() yields Y // async generator async fn foo() -> T yields Y // async generator that implements Stream async fn foo() yields Y
Αλεχ
так что мб завезут удобные
Αλεχ
второй случай
Berkus
ыаыаыва
Berkus
синтаксис день ото дня лучше и пронзительнее
Berkus
скоро public static async void main
Αλεχ
да нет, как раз все понятон
Nikita
синтаксис день ото дня лучше и пронзительнее
Огонь синтаксис. "вы что хотите чтобы стало как в хаскеле?!"
Αλεχ
Как правильно писать структуру, которая отвечает за асинхронное сетевое IO?
Αλεχ
я хотел бы реактор и все прочее спрятать за интерфейсом, и показывать наружу только футуры
Αλεχ
только я так понимаю, реактор должен быть на клиентской стороне
Αλεχ
ибо футуры сами по себе не исполняются..
պլհկ
Зачем тебе свой реактор?
Αλεχ
ну я привык к самоисполняющимся таскам, которые запускаются в момент создания
Αλεχ
и надо просто подождать результат
Kerrigan
зачем тебе асинхронность тогда вообще?
Αλεχ
вот к этому и не привык. Но надо
Kerrigan
или это конкретный случай
Αλεχ
нет
Αλεχ
просто в тех же шарпиках ты возвращаешь Task<Foo>
Αλεχ
и тебе ен надо знать про среду исполнения этой таски
Αλεχ
можешь просто написать myFoo().Result
Αλεχ
и синхронно дождаться