/
githubmirror
/
sway
Обзор
Документация
Войти
/
githubmirror
/
sway
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
sway-lib-std/src/str.sw
30 строк
745 B
Igor Rončević
Optimize type casting by using `__transmute` instead of `asm` blocks (#7675)
07 июл 2026, 15:57
Не верифицирован
07 июл 2026, 15:57
79e92e5
Код
Авторство
О чём код?
library; impl str { /// Return a `raw_ptr` to the beginning of the string slice. pub fn as_ptr(self) -> raw_ptr { let (ptr, _) = __transmute::<str, (raw_ptr, u64)>(self); ptr } /// Return the length of the string slice in bytes. pub fn len(self) -> u64 { let (_, len) = __transmute::<str, (raw_ptr, u64)>(self); len } } pub fn from_str_array<S>(s: S) -> str { __assert_is_str_array::<S>(); let str_size = __size_of_str_array::<S>(); let src = __addr_of(s); let ptr = asm(size: __size_of::<S>(), dest, src: src) { aloc size; move dest hp; mcp dest src size; dest: raw_ptr }; __transmute::<(raw_ptr, u64), str>((ptr, str_size)) }