Αλεχ
let slice = unsafe{ (slice.as_ptr() as *const [u8; 32]).as_ref().unwrap() };
Αλεχ
короче вот так норм
պլհկ
let p: &[u8;32] = unsafe { mem::transmute(&a[..].as_ptr()) };
պլհկ
умвр
Αλεχ
у меня просто так было
Αλεχ
error[E0512]: transmute called with types of different sizes
--> src\lib.rs:139:48
|
139 | let slice: &[u8; 32] = unsafe {transmute(slice)};
| ^^^^^^^^^
|
= note: source type: &[u8] (64 bits)
= note: target type: &[u8; 32] (32 bits)
Αλεχ
почему разный размер я немного не понял
Αλεχ
указатели вроде везде один размер имеют
պլհկ
&[u8] жирный указатель
Αλεχ
он скорее обратную операцию делает
Αλεχ
без const generics тяжко
Αλεχ
возвращал бы chunk сразу &[T; N] было бы лушче
Loo
https://github.com/Plume-org/Plume
Loo
https://github.com/veloren/game
պլհկ
забанить что ли
Loo
https://github.com/oxy-secure/oxy
Cat
вы выглядите странно
Loo
https://github.com/danielpclark/rutie
Loo
https://github.com/maekawatoshiki/rapidus
պլհկ
>The Tie Between Ruby and Rust.
plz ne nado
Крылатый
Бот, 100%
Loo
Sheldhur
ку, кто имел дело с smrsh?
Loo
https://github.com/harababurel/gcsf
Cat
Бот, 100%
приглашает другого юзера, который есть только в cxx чатах
атака на c-like языки?
Berkus
о, ботоводы
Berkus
с ботами
Berkus
Berkus
Alex
Berkus
Alex
там просто хелперы чтобы не писать лапши туда сюда
պլհկ
есть же helix
Berkus
@notplhk вот еще боты с ботоводами оптом
კაცი
я сильно сомневаюсь что это боты
კაცი
в противном случае, почему при попытке добавить бота телега выдаёт ошибку?
պլհկ
Они уже заблочены 🤔
Αλεχ
уже все получилось, спасибо
Loo
Loo
без копирования?
Loo
теперь как пуля летит?
Αλεχ
захайперформансил?
let mut arr = [0u8; 32];
for (i, chunk) in bytes.chunks(32).enumerate() {
let chunk = if chunk.len() == 32 {
unsafe { mem::transmute(chunk.as_ptr()) }
} else {
arr[..chunk.len()].copy_from_slice(chunk);
&arr
};
pwasm_ethereum::write(&(base_address + i.into()).into(), chunk);
}
Αλεχ
&[u8]
Loo
Αλεχ
Αλεχ
просто преждевременно оптимизирую нахуй
Αλεχ
и ветвления добавляю туда, где не обязательно
Αλεχ
у меня основная проблема в газе
Αλεχ
похуй на скорость
Αλεχ
но по количеству вычислений может просто нахуй послать всю транзакцию
Αλεχ
вот и дрочусь
Αλεχ
за каждое копирование
Loo
без замеров хуйнёй страдаешь
Αλεχ
Loo
պլհկ
Loo
Loo
не нужны
Αλεχ
Αλεχ
итерация либо 32 либо < 32
Loo
Αλεχ
Loo
Αλεχ
почему into_iter по Vec<u8> дает Iterator<Item=&u8>?
Αλεχ
какого хера собсна
Αλεχ
result.into_iter().map(|x| *x).collect() - спасибо
Αλεχ
Αλεχ
может потом сделаю копирование всегда
պլհկ
https://play.rust-lang.org/?gist=15794d72256d56bf55eb8e6fdf6e9a92&version=stable&mode=debug&edition=2015
Αλεχ
просто пока непонятно какой сценарий чаще
պլհկ
действительно, почему?
Αλεχ
действительно, почему?
error[E0277]: a collection of type `alloc::Vec<u8>` cannot be built from an iterator over elements of type `&u8`
--> src\lib.rs:174:32
|
174 | result.into_iter().collect()
| ^^^^^^^ a collection of type `alloc::Vec<u8>` cannot be built from `std::iter::Iterator<Item=&u8>`
|
= help: the trait `core::iter::FromIterator<&u8>` is not implemented for `alloc::Vec<u8>`
Αλεχ
let result: [u8; 32] = get_result();
result.into_iter().collect()
պլհկ
но… это не вектор
Αλεχ
а
Αλεχ
вот штирлиц и попался
Loo
)