Vladimir
нету
Marat
За то время что здесь спорите уже могли бы написать свою идиоматичную абстракцию и предложить ее в библиотеку
Vladimir
х)
Anonymous
так в этом коммунити, если почитать совершенно разные мнения по поводу идиоматичности
все согласятся что эргономика и безопасность это самые основные принципы раста
Маjко
нету
Есть: загляни на главную страницу раста и почитай про гарантии и приоритет на типобезопасности
Маjко
Там прямо большими буквами тезисы
Vladimir
По сети тоже шлется поток байт, знаешь ли) Но тем не менее операции над хэдерами статически типизированы
да, вот такой и должна выглядеть один из вариантов абстракции поверх БД
Vladimir
НО даже с таким вариантом, не решается проблема ансейфности
Vladimir
Типобезопасность это не одно и тоже что идиоматичность
Маjко
да, вот такой и должна выглядеть один из вариантов абстракции поверх БД
Низкоуровневый и внутренний, но не торчащий из API единственным вариантом. Через типизированный вариант тоже можно получать Vec<u8>, если тебе нужен именно поток байт
Маjко
Типобезопасность это не одно и тоже что идиоматичность
Она включена в понятие идиоматичности
Маjко
Я продолбился, думал что отвечаю на сообщение с байтовым вариантом
Маjко
Но посыл ты, думаю, понял
Vladimir
Смотри
Vladimir
ты говоришь о типобезопасности
Vladimir
но эту задачу поверх абстракции KV можно решать несколькими способами
Anonymous
а как превратить u32 в [u8]?
Vladimir
почему должен навязываться какой-то конкретный (база данных с одной парой K,V)
Anonymous
а безопасно нельзя?
Anonymous
о
Маjко
Может у него не было времени сделать идиоматичный и он просто накидал минимальную абстракцию
Ну и? Ок, молодец мужик, браво ему. Но это не делает реализацию правильной
Vladimir
о
byteorder
Marat
А вообще есть либа именно для чисел даже
Marat
byteorder
Вот она да
Маjко
Потому что она банально не типобезопасна и не удобна
Vladimir
Потому что она банально не типобезопасна и не удобна
я сейчас не говорю что мужик правильно все сделал, я сейчас говорю, что ваши "правильные решения" которые призваны защитить от всего. на самом деле такая же дырка
Vladimir
но создает иллюзию Типобезопасности
Vladimir
только урезает исходный функционал
Маjко
Но позволяет сделать абстракцию
А кто-то с этим спорит?
Vladimir
в том, что поверх его абстракции можно сделать вашу (с бд для одной пары К,З) А поверх вашей нельзя сделать его
Маjко
Типизированный вариант вполне может принимать и отдавать тот же поток байтов
Маjко
Строй руками что хочешь
Vladimir
Ложь
К примеру у тебя бд (String, u64) как ты поверх неё реализуешь совместимый с сишкой гетерогенный сторейдж?
Loo
мы осознанно ограничиваем конкретными типами наш интерфейс - чтобы допускать меньшее количество ошибок
Loo
когда нужен гетерогенный тип value - я уже говорил - смотри как это сделали в serde_json::Value через enum
Vladimir
давай по порядку
Anonymous
Маjко
забыл ::
Да, рыбка
Anonymous
турбо рыбка
Anonymous
::<>()
Vladimir
у автора той библиотеки есть такие методы get::<K, V> @LooMaclin предлагает, чтобы методы были без тайп параметров. А все тайп параметры перешли б в создание бд new::<K,V> вот создал ты инстанс бд new::<String,u64> как в него запихнуть по ключу "привет" значение "как дела?"
Anonymous
зачем так делать?
Маjко
И по моему речь не о том
Vladimir
в том, что поверх его абстракции можно сделать вашу (с бд для одной пары К,З) А поверх вашей нельзя сделать его
Vladimir
зачем так делать?
Маjко
А о том что либа оперирует байтами вместо типов
Loo
?
> вот создал ты инстанс бд new::<String,u64> > как в него запихнуть по ключу "привет" значение "как дела?"
Anonymous
поехавшиииий
Marat
> вот создал ты инстанс бд new::<String,u64> > как в него запихнуть по ключу "привет" значение "как дела?"
Ну может он в одну бд хочет значения разных типов пихать. Или например уже готовая бд из которой надо доставать значения разных типов
Vladimir
А о том что либа оперирует байтами вместо типов
окей, главный довод @LooMaclin был в том, что это АНСЕЙФ И типа вызвав ::get::<String,u64>("привет") мы полуимпериалами мусор
Anonymous
тебе вынимать значение через Any?
Vladimir
Трансмьютом -- да, с проверками и сериализацией -- нет.
у него есть стерилизации( судя по резалту), но их все равно мало, вот например хранишь ты короткую строку, она вполне может захендлится как число (ведь под капотом ты хранишь всё как байты)
Vladimir
как достичь уровня совместимости с старым кодом на си, но при этом создать типобезопасность?
Маjко
ну серилизовать можно в байты, какой там лайаут?
И зачем тебе сериализация, которая ничего не гарантирует, когда есть быстрые бинарные форматы?
Маjко
Тем более самопальная
Vladimir
быстрые бинарные форматы это тоже сериализация
Маjко
Кэп
Vladimir
я не говорю что мне она нужна
Vladimir
я не понимаю сейчас твоих доводов