Matwey
у него же llvm в бекенде?
Matwey
llvm то всяко шарит в оптимизации
Vladimir
ллвм бекенд для игрушек
Vladimir
одни НИМ, РАСТ, С++
Vladimir
нету даже ентерпрайз языков типа Java, Python, Go
Сережа
КОТЛИН НЕЙТИВ!
Vladimir
ну так он еще в бэта, просто поняли что за играми будущее
Matwey
https://play.rust-lang.org/?gist=b125f8d9bbac38f2c0a823fa25bc8ad8&version=stable насколько мне будет больно от такого кода?
Cuno
не только тебе больно Т_Т
Cuno
юзай byteorder
Kerrigan
:D
Kerrigan
удваиваю byteorder
Matwey
в чем его преимущество? там unsafe завернут под капотом?
Kerrigan
то что не надо писать велосипеды каждый раз
Cuno
в чем его преимущество? там unsafe завернут под капотом?
В этом суть раста. Заворачивать unsafe под safe капоты.
Matwey
Я забыл синтаксис опять. У объекта есть два типажа, у типажей есть функции с одинаковыми именами, как мне выбрать какую из них вызвать?
Matwey
self.fun()
Matwey
что там было про < as Tr>
Vladimir
<Self as Tr>::fun(self)
Anonymous
Можно же было просто Tr::fun(self), или я упустил что-то?
Vladimir
можно и так, зависит от метода
Vladimir
если UFCs то Tr:: прокатит если например метод Tr::fun(r: &Self) то уже поидее нет
Cuno
Толсто. Откуда это?
Matwey
А есть ли какой-нибудь типаж такой, который определен для всех объектов у которых .0 имеет заданный тип u32 например?
Matwey
ну x.0
Vladimir
в расте нет ООП, уже много раз поднималась тема, тут не любят когда люди думают "данными" типажи это способ реализации функционала, аналогично интерфейсам
Vladimir
вот и пиши на своем хаскеле
Matwey
а как мне превратить u16 в Optional<u8> или что-нбиудь такое?
Matwey
сделать cast и unwrap()
Matwey
ToPrimitive отменили вроде
Vladimir
поидее чекать самому if v > u8::MAX { Some (v as u8) } else { None }
Vladimir
и в найтли есть TryFrom
պլհկ
>unwrap <pook> as u8
Cuno
>unwrap <pook> as u8
Не запаникует же, если`pook > u8::MAX`.
Matwey
У меня есть переменная типа &T, как её запихать в функцию которая хочет T и при этом не использовать перемещение?
պլհկ
никак
Matwey
хм
Сережа
не слушай его, пихай через unsafe
Сережа
только так в этом системном языке можно сделать что-то производительное!
Matwey
у меня есть типаж в котором есть функция которая принимает &self
Matwey
я хочу этот типаж реализовать для типов которые умеют Into<u8>
Matwey
что я делаю не так
Matwey
into(self)
Matwey
?
Vladimir
что ты делаешь вообще?
Vladimir
into(other)
Vladimir
давай включать непонятные обрывки кода, после своих фраз
Vladimir
serialize(JsonSerializer::new())
Matwey
ггг
Vladimir
impl<T:Into<u8>> MYSUPERTRAIT for T
Matwey
да
Vladimir
работает только если ты владелец MYSUPERTRAIT
Matwey
вт это похоже на мой код
Matwey
откуда ты знаешь?
Vladimir
ты издеваешься?
Сережа
https://github.com/intellij-rust/intellij-rust/issues/1923 смотрите жетбрейнс сломала обратную совместимость
Vladimir
я хочу этот типаж реализовать для типов которые умеют Into<u8>
Vladimir
impl<T:Into<u8>> MYSUPERTRAIT for T
kitsu
откуда ты знаешь?
Шпионское по в 2 раза быстрее пишется на расте, вот и все
Matwey
fn myfun(&self) -> Result<u8> { Ok(self.into()) }
Matwey
вот так говорит, что для &T никакого into нет, что логично
Vladimir
impl<'a, T:Into<u8>> MYSUPERTRAIT for &'a T
Matwey
неа
Matwey
так ссылок стало еще больше
Matwey
теперь он ругается что не знает про T&&
Matwey
&&T
Vladimir
ок
Matwey
я не очень понимаю, вот у меня есть константная ссылка, я же оттуда могу взять значение
Сережа
я бы тебе советовал то что ты наговнокодил размещать на руст плейграунд
Matwey
почему мне запрещается сделать его копию?
Vladimir
impl< T> SuperTrait for T where for<'a> &'a T:Into<u8> {}
Сережа
если ты кончено не тралируешь, потому что нихрена не понятно
Vladimir
пробуй
Vladimir
почему мне запрещается сделать его копию?
потому что ты не просил копи
Vladimir
например я создам тип который реализует. Into<u8> но не имеет возможности копироваться, как с этим быть?
Vladimir
хочешь копи так и напиши impl<'a, T:Into<u8> + Copy> MYSUPERTRAIT for T
Matwey
мне вообще непонятно почему into принимает на вход self, а не &self