Random Rust Dev
425 subscribers
125 photos
45 videos
1 file
34 links
Разработка на языке Rust.
Пишу простыни со своими мыслями о Rust и проектах на нем.
Download Telegram
Forwarded from Nikolay Osaulenko
Наверное можно через union так как его поля находятся в одной области памяти. Ну и так как Copy не хотелось бы навешивать, то остаётся только с ManuallyDrop. Как-то так
fn cast_me<T: 'static, U: 'static>(value: T) -> Result<U, T> {
if value.type_id() != TypeId::of::<U>() {
return Err(value);
}

union Wrapper<T, U> {
t: ManuallyDrop<T>,
u: ManuallyDrop<U>,
}

unsafe {
let wrapper: Wrapper<T, U> = Wrapper {
t: ManuallyDrop::new(value),
};
Ok(ManuallyDrop::into_inner(wrapper.u))
}
}
😭4🙏3
А вот и фото победителя - @northicewind
❤‍🔥9💯3😁21
Почему внезапно 8 из 12 сетов мотыги стали выпускаться по лицензиям других франшиз?
В основном по диснеевским.
🤔1
AI это просто умножение матриц.
Учите как умножать матрицы, что бы устроиться.
Вот пример.
🤩20😁1🤡1
Хотел сегодня обмануть матан и упростить количество умножений в MLP путём замены скаляр на тензор с поэлементным умножением.
Но оказалось, что так я уменьшаю количество параметров, а общая сложность вычисления по отношению к количеству параметров не меняется.
Новый рекорд в батлрояле
😁3
Только что опубликовали обновленную схему цифровой инфраструктуры
😁103
Придумал что бы еще такого сделать лиши бы не делать движок (который я делаю лишь бы не делать игру).

Как многие могут угадать это атлас текстур.
Зачем нужны вообще атласы текстур?

Во-первых что бы не создавать миллион маленьких текстур, потому что на каждую идет оверхэд.

К тому же можно будет больше объектов в один вызов фрагментного шейдера впихнуть.

Алгоритм заработал почти сразу, результат вроде неплохой. Особенно если перед запаковкой отсортировать по площади.
🥰4👍1
Пошел рюхать упаковку произвольных полигонов, сломал думатель.
Зачем это так сложно?
Мне опять на месяц нырнуть в это придется?
На расте есть имплементация, но не на crates.io.

Неужто у меня рука поднимется форкнуть?
3
Не так давно - в rustc-1.81 - в stable завезли обещание оптимайзеру.
Обычно под именем assume, в стандартной библиотеке раста решили не пойти простым путём,
поэтому в core::hint, вы можете найти assert_unchecked!

THE WHAT?
fn assert_unchecked(cond: bool)
Looks inside
intrinsics::assume

Ладно уж, что в имени тебе моём, ведь розу как не назови, а UB будет, если наврёшь.

Предлагаю кому-то, кто на работе пишет на Rust, немедленно использовать в проде и выкатить в пятницу.
👏7🤝4👍3👎1
Random Rust Dev
Не так давно - в rustc-1.81 - в stable завезли обещание оптимайзеру. Обычно под именем assume, в стандартной библиотеке раста решили не пойти простым путём, поэтому в core::hint, вы можете найти assert_unchecked! THE WHAT? fn assert_unchecked(cond: bool)…
Загадка

Есть такая вот реализация lerp

#[inline(always)]
pub fn lerp(a: f32, b: f32, t: f32) -> f32 {
if t < 0.5 {
(b - a).mul_add(t, a)
} else {
(a - b).mul_add(1.0 - t, b)
}
}


Зачем делать такой lerp вместо a.mul_add(1.0 - t, b * t) или b.mull_add(t, a * (1.0 - t)) или даже b.mull_add(t, a.mull_add(-t, a)), да хоть тот же (b - a).mul_add(t, a) из первого бранча?
Вроде как без бранча сильно лучше было бы для перформанса?
🤔4
Своп двух переменных внезапно стал хот-топиком в твиторе.

Потому что ничего сложнее популярные твитор-блогеры не писали, наверное.

Вот лучшее, что вылезло в обсуждениях.
😁9🥱2
Толкин умер в 1973 г. Число вроде как число, но:

Три - эльфийским владыкам в подзвездный предел;
Семь - для гномов, царящих в подгорном просторе;
Девять - смертным, чей выверен срок и удел.
И Одно - Властелину на черном престоле
😱14🥱2🤣2👍1🤡1
Забавное с твитора.
😁18
Что вообще за std::weakly_incrementable ?
Оно может быть слабенько инкриментировано?

Предлагаю пропозал - std::weekly_incrementable, который инкриментится только раз в неделю, не чаще.
Попытка инкриментить его второй раз за неделю вызывает UB.
Для нечадов будет метод, который бросает исключение вместо этого.

Никто точно не спутает со std::weakly_incrementable!
😁18🤡5💯5👍3
Пишу в отдел железячников, все очень удивились, что я в последний рабочий день привезу оборудование - что я должен сделать по процедуре оффбординга.

Договорился с одним, приехал в офис, ехал долго, пишу ему - игнор.
Игнорил меня, пока его рабочий день не кончился.

Машину у офиса припарковать негде, стою у мусорки.
Но пересилил себя, не стал компы в мусорку кидать.
Покружил еще, встал на освободившееся место. Захожу в офис.

И? Правильно, меня совершенно не ожидают увидеть. В списках ожидаемых посетителей меня нет.

Пока что жду на ресепшене, может кто-то из отдела железок еще остался.
😢16
Нашелся ответственный человек, выписали пропуск на внутреннюю парковку, на телеге завезли компы и прочее.
Подписали акт передачи и я наконец-то безработный!
🔥8👍5🥰1🎉1
Мне кажется, или они вот вот подерутся?
🤣7
Когда сдал рабочий комп, и не на чем вечером поиграть теперь.
😢13😁1🤡1