Vladimir
курсор там какой-то
Vladimir
или еще что-то
Vladimir
если ты лучше знаешь, передай мне &mut [u8]
Vladimir
а не вектор
Vladimir
не понимаю твоей боли
Ignat
ну пример на то и пример, что речь о более общем случае
Vladimir
приведи общий
Vladimir
приведи кейс, когда механизмы раста окажутся дырявыми
Vladimir
еще раз говорю, подмена реализаций типажа - это дыра в безопасности
Ignat
я не говорю, что оригинальная реализация должна куда-то исчезать из чужого кода по моему велению
Ignat
я просто констатирую факт, что бывают случаи, когда существует несколько разумных способов реализовать некоторый типаж для некоторого типа
Vladimir
так ты говоришь о том, что ты будешь подменять её где-то вне своего кода
Vladimir
ну представь, что я делаю какуе-то крипту, юзаю доверенные типажи например Random который даст мне криптостойкий генератор.
Вместо этого ты берешь криптостойкий генератор, и подменяешь ему реализацию на своё с целью увести пароли
Vladimir
нормально это?
Ignat
ну это в той же степени «дыра в безопасности», в какой и newtype
Vladimir
Ну не скажи
Vladimir
реализовывать для своего типа, и для чужого это разные вещи
Ignat
я дал тебе плохой генератор и получил плохой пароль
Ignat
по-моему, довольно справедливо
Vladimir
ну а что если ключ шифрования уже есть, в соседнем модуле, а тебе лишь надо его получить
A64m
что, в расте сирот нету?
Vladimir
есть наверное, но они об этом врядли говорят на публике
A64m
я имею в виду, в расте можно объявить инстанс только в модуле с типом или в модуле с трейтом?
Vladimir
что значит объявить инстанс
Ignat
реализовать типаж
Vladimir
хороший вопрос
Vladimir
есть поидее ток приватные и публичные типажи
Vladimir
и всё
Vladimir
ну а смотри, еще вопрос
Vladimir
про скалу
Vladimir
вот предположим у меня есть функция
fn print_into_vec(v:&mut Vec<u8>)
Vladimir
она не типизирована и объявлена в другом модуле, она всёравно может твой измененный врайт юзать?
Vladimir
или эта херня ток для женериков работает?
Ignat
ну чтобы мой райт использовать, она должна принимать инстанс параметром
Ignat
Vladimir
что за классы
Ignat
поэтому если ты хочешь работать только с векторами, то можешь проимпортить нужный
Ignat
что за классы
ставь класс, если в твоём языке есть структуры
Vladimir
Ignat
что такое «не типизирована»?
Vladimir
ну вот видишь вектор принимает
Vladimir
нет там тайп параметра
Ignat
ну ещё раз
Ignat
если прямо так написана
Vladimir
типа не <W:Write>(v:W)
Denis
это называется “не параметризована”
Denis
ваш К.О.
Ignat
то она сама проимпортит нужный ей инстанс внутри
Vladimir
Ignat
и к моему изменённому райту доступа иметь не будет
Vladimir
ок понятно
Vladimir
ну тогда это выглядит резонно, если всётаки игнорить специализацию
Ignat
типа
Ignat
fn print_into<T>(v:&mut T)(implicit blah: WriteStruct<T>)
Ignat
ну опять же, там на уровне языка нет такого понятия, как трейт в смысле руста
Vladimir
ну так говно ваша скала
Vladimir
даже в трейты не может
Ignat
это такая идиома, которая настолько популярна, что для неё есть свой синтаксический сахар
Ignat
там есть ключевое слово trait, но означает то же самое, что в современной джаве interface
asteglor
Ignat
или «инты со сложением» и «инты с умножением» — это тоже разные типы?
A64m
да,
A64m
только надо было как в некоторых других случаях сделать один инстанс (+,0) без обертки
Ignat
ну в принципе для чисел это слишком естественные операции, чтобы звучало абсурдно
Ignat
вот у вектора есть sort и sort_by
Ignat
значит ли это, что абстракция Ord протекает?
Alexander
почему?
Alexander
Ord это естественный порядок, сортировать я могу и не по порядку
A64m
когерентность инстансов для того и нужна, чтоб не протекала
A64m
т.е. не надо принимать во внимание откуда словари приехали, каким образом собрались
Alexander
а про не по порядку, один из вариантов это подпихивать разные словари, но это путь вникуда, особенно если метод конструируется динамически
Ignat
непонятно, что такое «естественный» порядок
Ignat
кто-то решил, что для строк это лексикографическое сравнение
Ignat
а не, например, сравнение сначала по длине, а по символам только в случае равенства длин
Vladimir
Реально, тебе нужны шаблоны, юзаешь что хочешь где хочешь, зато расширяемо!
Safort
Вэлком)
ozkriff🇺🇦
Привет. Затащили меня таки в эти ваши телеграмы, решил заодно в ржавые каналы добавиться, мало ли :)
Loyd
О, велком