Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    af fd
    @fsdfa_gitlab
    Я думаю они есть.
    Denis Lisov
    @tanriol
    Технически я бы смотрел на reqwest и работал без явной многопоточности, асинхронности тут по идее должно хватить.
    Про прокси - не знаю, не сталкивался с этой стороной вопроса.
    af fd
    @fsdfa_gitlab
    Хорошо, спасибо.
    Lepuroid
    @Lepuroid
    Если всё легально, то, может быть, проще было бы связаться с владельцем ресурса и попросить архив, чем его так нагружать?
    af fd
    @fsdfa_gitlab
    @Lepuroid Можно, конечно, но мне это нужно делать
    Кхм, регулярно.
    Владелец ресурса -- bing.
    Lepuroid
    @Lepuroid
    А, эти владельцы - бинги, гуглы и всякие яндексы, достаточно оперативно блочат капчей по количеству запросов. В лоб, мне кажется, это не решается.
    af fd
    @fsdfa_gitlab
    Решается . Мне картинки с bing maps нужны, я их выкачиваю.
    Про капчу я не знаю, это для меня сильно сложно.
    Adilet
    @sadilet

    Ребят , всем привет. Помогите пожалуйста разобраться. Я в целом понимаю, зачем нужно время жизни, но на уровне синтаксиса не до конца могу освоить.

    struct TestCase<'a> {
        model_type: &'a str,
        model_names: Vec<&'a str>,
        data_file: &'a str,
    }
    
    
    impl<'a> TestCase<'a> {
        fn new(model_type: &'a str, model_names: Vec<&'a str>, data_file: &'a str) -> TestCase {
            // some transformations
            TestCase{
    
            }
        }
    }

    При возврате TestCase он мне пишет, что missing lifetime, можете помочь разобраться что не так?
    Хочу повесить время жизни на TestCase, ошибка продолжает светить.

    Denis Lisov
    @tanriol
    @sadilet Тип возвращаемого значения нужно писать TestCase<'a> (ну или Self, что в данном случае то же самое)
    Adilet
    @sadilet
    Ок. Спасибо. Что-то упустил в момент изучения.
    Psilon
    @Pzixel
    лайфтаймы точно такие же генерик параметры как и <T>
    просто одно является утверждением "для любых типов Т", а в другом "для любых лайфтаймов 'a"
    так что совершенно логично что тип с открытыми генериками нельзя использовать
    строго говоря это даже не тип
    Denis Lisov
    @tanriol
    @Pzixel Что не отменяет того, что в ряде контекстов их таки технически можно опускать...
    Psilon
    @Pzixel
    В каких контекстах можно опускать 'a при описании генерик-параметров?
    разве что '_, но это обобщенный синтаксис "выведи за меня"
    Denis Lisov
    @tanriol
    А ссылку ты за генерик считаешь? :-)
    Psilon
    @Pzixel
    это не генерик-параметр
    я про описание типами
    то есть опускание в сигнатурах фунок когда очевидно - это не то
    это как опускание типа у self
    особенность конкретной записи
    лайтаймы это типы, и опускаются тогда же когда и они + для них есть синтаксис короткой записи в конкретных сценариях.
    КОроч смотря что считать контекстом
    если все использования лайтаймов - то там есть нюансы и упрощения чтобы не писать их как ненормальный
    если в контексте сигнатур типов - то точно так же испльзуются
    Denis Lisov
    @tanriol
    Если бы у функции TestCase::new в примере выше был только один аргумент с лайфтаймом, запись -> TestCase { ... вполне сработала бы ;-)
    Она не срабатывает потому, что компилятор видит более одного лайфтайма и говорит "так, стоп, а из какого оно позаимствовано-то", не обращая внимания, что они одинаковые :-)
    (вообще я думал, что в 2018 редакции это выдаёт предупреждение, но нет)
    Psilon
    @Pzixel
    ну хзхз
    Psilon
    @Pzixel
    тут был вопрос про msvc или мне показалось?
    Aleksey Melnikov
    @aleksmelnikov
    Поставилось, поэтому удалил как неактуальное )
    Psilon
    @Pzixel
    оке
    Aleksey Melnikov
    @aleksmelnikov
    Привет. Может ли кто подсказать с примером из доки: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=3d23381db35e097f5b1e41c9f0475562. Как собственно подать на вход bool = true или str= "value" в main?
    Denis Lisov
    @tanriol
    @aleksmelnikov А что ты сделать-то пытаешься?
    Aleksey Melnikov
    @aleksmelnikov
    @tanriol , понять пример из доки: https://docs.rs/syn/1.0.60/syn/macro.custom_keyword.html. Пишут: This example parses input that looks like bool = true or str = "value". Как это сформирвовать в main? Чтобы получить целиковый пример.
    Denis Lisov
    @tanriol
    Это функциональность, предназначенная в первую очередь для proc macro, а у них точка входа не main.
    Denis Lisov
    @tanriol
    Если ты хочешь именно standalone-пример, то что-нибудь в стиле (Argument::parse).parse_str("bool = false") должно, по идее, сработать.
    Aleksey Melnikov
    @aleksmelnikov
    Спасибо! Это то что нужно. Только пока этой записи не понимаю.
    Aleksey Melnikov
    @aleksmelnikov
    @tanriol, можете ли пояснить конструкцию?
    Denis Lisov
    @tanriol
    parse_str - это метод трейта syn::parse::Parser, у которого есть встроенная реализация для любой функции с подходящей сигнатурой, в том числе Argument::parse
    Aleksey Melnikov
    @aleksmelnikov
    Спа
    Psilon
    @Pzixel
    а зачем скобки вокруг функи? Выглядит странно
    А, понял. Там импл для Fn
    офигенно придумали (нет)