Size: a a a

2021 April 17

EG

Emmanuel Goldstein in rust_offtopic
Для машины что угодно ок, машине вообще пофиг
источник

EG

Emmanuel Goldstein in rust_offtopic
Машине, например, плевать, если в переменной типа bool лежит 2, она ничего про тип bool не знает
источник

EG

Emmanuel Goldstein in rust_offtopic
Ей пофиг на use-after-free
источник

EG

Emmanuel Goldstein in rust_offtopic
Это людям интересно, чтобы что-то работало «корректно», машине что дали, то она и считает
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
unsafe fn split_at_mut_unchecked(&mut self, mid: usize) -> (&mut [T], &mut [T]) {
       let len = self.len();
       let ptr = self.as_mut_ptr();

       // SAFETY: Caller has to check that 0 <= mid <= self.len().
       //
       // [ptr; mid] and [mid; len] are not overlapping, so returning a mutable reference
       // is fine.
       unsafe { (from_raw_parts_mut(ptr, mid), from_raw_parts_mut(ptr.add(mid), len - mid)) }
   }

   fn split_at_mut_unchecked2(&mut self, mid: usize) -> (&mut [T], &mut [T]) {
       let len = self.len();
       let ptr = self.as_mut_ptr();

       // SAFETY: Caller has to check that 0 <= mid <= self.len().
       //
       // [ptr; mid] and [mid; len] are not overlapping, so returning a mutable reference
       // is fine.
       unsafe { (from_raw_parts_mut(ptr, mid), from_raw_parts_mut(ptr.add(mid), len - mid)) }
   }
источник

D

Dima in rust_offtopic
Ну вот не так все просто
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
обе компилятся
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
вопрос обе ли из них правильные
источник

EG

Emmanuel Goldstein in rust_offtopic
Обе из них sound, если приватные
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
кстати пример из стд, она приватная но unsafe
источник

EG

Emmanuel Goldstein in rust_offtopic
С точки зрения кодстайла первая лучше
источник

EG

Emmanuel Goldstein in rust_offtopic
Sound или unsound может быть только API, и приватная функция просто не участвует в этой истории.
источник

p

polunin.ai in rust_offtopic
?
источник

p

polunin.ai in rust_offtopic
Чё
источник

p

polunin.ai in rust_offtopic
Ты ебнутый?
источник

p

polunin.ai in rust_offtopic
А если у меня какой-то аудио кодек и только одна функция торчит снаружи - fn zip(input) -> output?
источник

EG

Emmanuel Goldstein in rust_offtopic
Ты же можешь сделать так, например:
fn foo() {
   let do_unsafe_thing = || unsafe { do_thing(); };
   check_thing_is_safe();
   do_unsafe_thing();
}

Приватная unsafe-функция от этого ничем не отличается
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
warn
источник

p

polunin.ai in rust_offtopic
Получается я все свои функции внутри могу помечать как сейф и заебись?
источник

p

polunin.ai in rust_offtopic
Хоть их там тыща штук
источник