Денис
выделяешь в отдельный крейт и горя не знаешь)
Alexander
Получается, что только один вариант - для пары макросов из проекта - отдельный крейт делать в стороне?
Денис
да, за то ты чётко отделяешь одно от другого
Alexander
А можно один крейт сделать внутри папки другого?
Денис
можно, но зачем?)
Денис
имхо, самое разумное решение — делать вокрспейс
Денис
но это имхо конечно
Денис
возможно меня поправят
Alexander
Ну просто , чтоб всё в одной папке :)
Ilya
Чаще всего так и делают
Денис
оно и будет в одной папке :)
Alexander
Понял, что надо что-то почитать :)
Ilya
Можно использовать воркспейс, да - из плюсов - объединение папки target и соответственно меньше оверхед по артефактам сборки
Ilya
Но это не обязательно. Просто создаешь крейт, в зависимостях пути прописываешь относительно
Денис
да, как здесь например — https://github.com/rust-lang-nursery/failure/tree/master/failure-1.X
Loo
Кстати, зачем чатег потушили?
потому что из огня появился крабик
Loo
огонь = боль и страдание
Bugworm
просто у раста тулкита своего нет
Bugworm
а на кутях никто писать не хочет почему-то
Bugworm
из-за лицензии наверное
Anonymous
Они просто про Шрамко и его тулкит еще не в курсе.
Alexander
Soa-derive кто-то использовал? Может что-то есть ещё более продвинутое?
Денис
О_О
Денис
чего только люди не придумают
Alexander
А какие альтернативы? Руками пачку одинаковых структур + их имплементаций описывать?
Денис
нене, я ни в коем случае не говорю "не нужно"
Денис
а можно пример юзкейса?)
Alexander
Конечно. У меня есть много массивов данных одинаковой длинны, ну например цена+объём.
Alexander
Есть функция calc, в которую передается структура со срезом данных и возвращает результат.
Alexander
Это всё как минимум надо описывать как struct A {price:f32, vol} . struct AData {price: Vec<f32>, ...} + Потом итератор по Adata чтобы формировать A и передавать в функцию, в которой наконец-то можно просто к полю структуры обращаться и иметь цену и тд
Alexander
Т.е. довольно большой объем бойлерплейта даже для одного типа данных, а полуй намного больше + ещё для B и тд.
Денис
хм, я похоже главного не понимаю, чем Vec<A> плох? тем, что у тебя изначально данные доступны только в разрозненном виде?
Alexander
Vec<A> плохо обрабатывать - надо постоянно маппить. Например вектор лежащих подряд u32 намного удобнее обрабатывать именно как вектор примитивов. Мало того и намного быстрее.
Денис
понимание пришло
Денис
спасибо =)
Alexander
Сейчас мода на векторные базы данных и на векторизацию вообще.
Денис
то есть получается что-то вроде простенькой базы данных
Денис
ога
Денис
плюс поиск проще делать по полю
Денис
ищешь поле — определяешь индекс — подтягиваешь остальное
Alexander
Да. + Захотел новую значение ввести часто используемое - например перемножить цену на объем и положил в ещё один вектор.
Alexander
А если. Simd подтянется - то это вообще всё в 4 раза ускорится.
Alexander
Можно помечтать и мысленно arrayfire сверху накинуть - тогда вообще на gpu
Денис
:))
Денис
а что насчёт in-memory баз данных?
Alexander
В плане?
Денис
слишком большой оверхед?
Денис
ну можно же готовое решение заюзать :)
Alexander
Ну тут смотря о чем речь. По работе я на kdb пишу. Тут все in&mem и векторное. Что-то ещё похожее только clickhouse знаю.
Alexander
Почему никто ничего подобного на расте не пилит - я не знаю, по мне ниша намного более важная чем 10 web-фреймворков
Денис
попробовал загуглить и гугл меня прям жёстко обломал
Денис
(для раста)
Alexander
Ну а вообще, не для раста, что есть такое же?
Alexander
Я вот только два знаю рабочих и несколько нерабочих решений.
Денис
я вообще в первый раз с этим сталкиваюсь :)
Alexander
In-mem оно тоже может хранить данные по разному и если это типа rocks т.е. структуры сериализовать - то тоже по идее будет не быстро, если надо много данных обработать, ну типа цена*обьём
Rostyslav
Я не уверен, что вы это имеете в виду, но есть H2 для Java.
Rostyslav
in-mem db
Денис
https://en.wikipedia.org/wiki/Column-oriented_DBMS
Денис
я так понимаю это нужно
Alexander
По h2 не в курсе, но я о том что одно in-mem само по себе скорости не гарантирует.
Денис
есть подозрение, что это всё же довольно узкая ниша
Alexander
Вот не совсем про ин-мем, но интересно: http://tech.marksblogg.com/benchmarks.html
Alexander
Первые базы на gpu, потом kdb на огромном кластере, потом clickhouse
պլհկ
maxim же писал kdb на русте
Alexander
Ну да, он упоминал, но где это посмотреть я не знаю.
Денис
https://github.com/adwhit/krust ? :)
Alexander
Мне кажется я это видел и это биндинги. Прибиндить можно что угодно к чему угодно, но на вид это не kdb на расте, может что-то не понял.
Денис
RIIR =)
Денис
в общем я вынужден признаться, что максимально далёк от тематики, и могу только отвлекать глупыми вопросами
Sergey
ребзя
Sergey
хочу в функции принимать ссылку на Into<String>
Sergey
https://play.rust-lang.org/?gist=a1a850dd71bdd0ae6d2a1da9d364db81&version=stable
Sergey
Sergey
let fuck: String = name.into(); ^^^^ the trait std::convert::From<&T> is not implemented for std::string::String
Sergey
хочу echo() без клонирования
Sergey
с лайфтаймами тоже пробовал
պլհկ
name: T