Anton
можно значит
Anton
короче тогда сделаю имплементацию From
Денис
Да, ебошь фром)
Anton
Anton
Я думал раньше вроде мол фром он для владельцев только, и что он работает чутка по другому
Anton
хмм
Cat
Да, ебошь фром)
так ему нужно же
impl From<Type> for external::Type
так можно?
Anton
Anton
то по идее для крейтов тож
Anton
или нет?
Anton
Короч бля, попробую ща
Денис
Cat
а, ок, я туплю значит
Денис
ну ты не торопись
Денис
мб это я туплю =)))
Денис
блин, с телефона пиздец сложно))
короче такой трюк нельзя будет повернуть, только если....
There is one exception to implementing Into, and it's kind of esoteric. If the destination type is not part of the current crate, and it uses a generic variable, then you can't implement From directly.
Денис
То есть если генерика нет, то всё ровно, если есть, то всё плохо =)))
Anton
Посоны это пиздец
Anton
оно заработало
Anton
о бля это пиздец
Anton
let stops: Vec<api::GradientStop> = self.stops
.iter()
.map(|s| api::GradientStop::from(s.clone()))
.collect();
Cat
а s.clone().into()?
Vladimir
Anton
За 5 лет что никто не добавил какого нибудь трейта или макроса который автоматически будет делать мап с конвертацией типов
Anton
эта жи писец
Cat
> автоматически
Kerrigan
что за еос?
Денис
iter().cloned().map(Into::into).collect() :)
Anton
Anton
Anton
теперь норм прям
Денис
:)))
Anton
я думал что за пиздец вообще, как не пробуй выглядит прям совсем как жопа
Cat
Max
Может лучше .into_iter() (чтобы не копировать)
Ilya
Cat
Max
а
Cat
но если это прямая конвертация объекта, то мб и подойдёт
Kerrigan
а, очередная криптохуетень
Cat
насчёт это я как раз не против
Cat
больше напрягает, что for external::Type
Cat
понял, спасибо
Anonymous
На практике в Ethereum преимущественно используется язык Solidity. Он проще в освоении, чем C++ и Rust, которые сейчас преимущественно используются для программирования под EOS. Это может измениться в будущем с появлением новых компиляторов, например из JS в WebAssembly.
Berkus
Anonymous
Це не я - форклог журналист
Max
Так, есть идея сделать сервис, который будет проверять крейты
Прогонять clippy, rustfmt и чекать code coverage
Ну и выставлять некие оценки на основе всего этого
Нужно?
Berkus
Anton
Anton
там тема не в простоте какбы
Berkus
он и так там окажется, смотри что оракель творит там, совсем без берегов
Anton
хотя вообще одна из причин по которым мне крайне неприятен блокчейн - это как раз то что у меня в один поток выполняется очередь из отзалупленных интерпретируемых команд
Anton
которые исполняются крайне долго, все в один поток, и за это еще и платить надо
Anton
десятки лет исследований в области производительности процессоров и многопоточности
Anton
для того чтобы выполнять контракты поочередно
Cat
не жить в нём
Ilya
чувствую запах свежих банов
Victor
EOS... я уж подумал было что тут за эмбедед чё-то трут. а оно вон чё.
Anton
в голосину
Αλεχ
Αλεχ
на hh за на 3500 заканчиваются по сути
Αλεχ
мидлы хантятся на 2, сениоры - 3
Cat
>где вы эти цифры берете
чем больше, тем лучше
Vladimir
Αλεχ
я и не на расте за деньги кодю
Αλεχ
точнее только на расте я и кодю не за деньги
Αλεχ
Αλεχ
я уже 3 месяца на нем контракты пишу
Αλεχ
это блять ебаный пиздей
Αλεχ
векторов нет
Αλεχ
строчки складывать не умеет
Αλεχ
посмотреть данные произвольной длины чужого контракта? хуй
Αλεχ
ебанутый язык дла ебанутых
Anton
Αλεχ
нет в солидии string s = "a" + "b"
Αλεχ
ебись с байтиками руками
Αλεχ
function strConcat(string _a, string _b, string _c) private pure returns (string){
bytes memory _ba = bytes(_a);
bytes memory _bb = bytes(_b);
bytes memory _bc = bytes(_c);
string memory abcde = new string(_ba.length + _bb.length + _bc.length);
bytes memory babcde = bytes(abcde);
uint k = 0;
for (uint i = 0; i < _ba.length; i++) babcde[k++] = _ba[i];
for (i = 0; i < _bb.length; i++) babcde[k++] = _bb[i];
for (i = 0; i < _bc.length; i++) babcde[k++] = _bc[i];
return string(babcde);
}
Αλεχ
удобно пиздец
Αλεχ
ах да, еще забыл, всё это говно можно имплементить самому