Αλεχ
я и не стал
კაცი
для курла достаточно ALL_PROXY экспортировать
კაცი
а через tsocks у меня что-то не захотело работать, ЕМНИП.
Αλεχ
а mptoxy не?
კაცი
шта?
Αλεχ
bot api
ясно
Маjко
Кстати, https://internals.rust-lang.org/t/pre-rfc-deprecate-ok-or-method/7681
А не сходить бы ему нахуй? Для этого есть клиппи
Tuntz
Переносим митап в Storiqa на пятницу, 29 июня? public poll Да, переносим на 29-е – 10 👍👍👍👍👍👍👍 50% @nndii, @kalloc, @iampiupiu, @skvorn, @tapok_satan, @vad_pashkov, @ins1d3, @Art_mmmm, /r/rustㅤ͏󠆷, @ugarandrey Нет, оставляем 28-е, четверг. – 10 👍👍👍👍👍👍👍 50% @snow1eopard, @pepyakin, @sergeysova, @zekefast, @Renyare, @fzzzr, @ialeksey, @subcommande, test, @coreyathos 👥 20 people voted so far.
Tuntz
Кое-кто из растаманов попросил перенести митап на последнюю пятницу месяца.
Латентный Бурят
Первый раз смог отменить голос, а второй раз нет. Гамно какое-то.
Tuntz
(опрос носит рекомендательный характер, последнее слово за начальством и офис-менеджером)
Маjко
Автор в этом чатике есличё)
Кто? Я и лично могу послать
Маjко
В целом комменты и так всё объяснили по существу
Αλεχ
Αλεχ
не вижу ничего плохого в обсуждении
Aleksey
а проксю для курла я как буду указывать? там можно через переменные окружения конфигурить?
да, конечно можно https://github.com/mehcode/config-rs/blob/master/examples/simple/src/main.rs#L12
Сергей
Нету. Кладут в вектор и делают join_all
Oleg
эхх автопревращение (F<A>, F<B>, F<C>) в F<(A, B, C)> занудный комментатор мог бы сказать, что это называется аппликативом
Oleg
ну если есть аппликатив, это так же несложно, как и первый вариант
Oleg
это даже просто функтор
Oleg
HKT не обязательное требование для симуляции функторов
Oleg
Вон есть примеры, как их делают на темплейтах c++, где тоже нет HKP и типы не стираются. Но темплейты могут принимать темплейты в качестве параметров
Oleg
Т.е. и в расте это возможно реализуемо какими-то trait of trait
Oleg
некий трейт, который реализуется для трейтов, а не типов
Oleg
Гипотетическая возможность
Oleg
Ну или генерики, которые принимают трейты в качестве тайп-параметров
Oleg
Иными словами может без higher kinded types, но с trait types
Oleg
Ну или генерики, которые принимают трейты в качестве тайп-параметров
Тем более, что похожий подход уже присутствует в виде trait objects
Oleg
это совсем не то
Oleg
Это выведение одних трейтов из других, по сути рестрикшены для инстансов
Oleg
Но не значит, что менее реалистично в реализации. HKT звучит знакомо, благодаря языкам, их популяризировавшим
Oleg
У раста другая область и он, похоже, не может себе позволить HKT в чистом виде из-за строгого контроля за аллокацией и размером
պլհկ
Как нкт связаны с аллокацией?
Oleg
Как нкт связаны с аллокацией?
Связаны со сложностью вычисления размеров, если мы говорим об unboxed типах
Oleg
Т.е. если мы делаем какой то fn foo<A> (f: F<A>): ты знаешь что в месте вызова компилятор будет знать A может статически понять размер F<A>
Oleg
В случае если ты пишешь fn foo <F<_>> ты не можешь сказать как и сколько раз и к каким типам применит foo внутри себя конструктор F
Oleg
это значит ты должен послать в функцию специальную формулу, которая на базе какого-то там дескриптора размера одного типа <B> сможет построить дескриптор размера производного типа F<B>
Oleg
чтобы правильно построить/уничтожить его на стеке и не только
Vitaliy
я просто посылаю через hyper запросы на апи и проблем не знаю
Если не сложно, можешь пример показать? Пытаюсь с hyper разобраться и rust тоже. После python тяжеловато )
Oleg
классический пример абузящий HKT это Free или Fix
Oleg
Free может содержать неизвестное количество обёрток F
Oleg
struct Fix<F<_>>(F<Fix<F>>) гарантированно содержит бесконечное количество обёрток F
Oleg
Это значит, что ничего ты с такими типами не реализуешь, если не потребуешь константного размера F независимо от тайп-параметра
Oleg
это не важно какой-то метод foo может содержать полиморфную рекурсию, просто вызывать себя неограниченно, каждый раз наворачивая обёртку
Oleg
fn foo<F<_>>(a: A) { .... foo::<F<A>>(...)}
Oleg
оба варианта означают: прощай зеро кост фьючи
Αλεχ
я бы щас по-другому сделал, но другоо примера под рукой нет
Vitaliy
пара строк которые мне помогли врубиться, остальное примерно я также реализовал. Сейчас буду пробовать.
Vitaliy
Заработало, спасибо.
Αλεχ
отлично
Vitaliy
а я правильно понимаю, что раст пока не может с внешними библитеками работать, например с dll
Vitaliy
серьёзно?
Αλεχ
ну вот у меня проект
Αλεχ
https://github.com/Pzixel/cv-rs
Αλεχ
ты думаешь я статически линкую 600мб либу?)
Vitaliy
ты думаешь я статически линкую 600мб либу?)
много кода, а как примерно происходит, можешь объяснить?
Vitaliy
вот для питона например я использовал что-то типа такого: require 'win32ole' application = WIN32OLE.new('OtAut.OtApplication') session = application.MakeSessionEx(%Host%, %Port%, "%Login%", "%Password%", "ru") folder = session.RequestFolders("Workgroups") filter = folder.MakeFilter() help = filter.setproperty('SpecialField', 'UNIQUE_ID', 26519050) folder.Search(filter, false).each { | x | puts x.Name.encode "UTF-8"}
Αλεχ
println!("cargo:rustc-link-search=native=/usr/local/lib"); println!("cargo:rustc-link-lib=opencv_video");
Αλεχ
пишешь в build.rs
Αλεχ
https://doc.rust-lang.org/cargo/reference/build-scripts.html#outputs-of-the-build-script
Vitaliy
а у меня dll сторонняя без исходников
Αλεχ
без .lib слинковать не получится особо
Αλεχ
ну а гугл выдает такое: https://github.com/nagisa/rust_libloading
Vitaliy
тогда отпадает, либо писать свою оболочку для вызова api той библиотеки
Vitaliy
да, такое я находил, пока не пробовал. Тогда добавлю в очередь.
Αλεχ
да, такое я находил, пока не пробовал. Тогда добавлю в очередь.
Альтернативно можно попробовать сгенерировать lib из dll
Αλεχ
https://stackoverflow.com/a/9360485/2559709
Αλεχ
типа такого