小编tek*_*aul的帖子

如何在 Rust 中找到本地时区偏移量

Rustchrono::Local包含本地时区信息,但似乎没有任何方法来获取字符串或秒数偏移量的值。

任何想法都是如何获得正确的局部偏移量,以便

DateTime::parse_from_rfc3339([iso8601 date] + [timezone]).unwrap().with_timezone(&Local)
Run Code Online (Sandbox Code Playgroud)

将返回DateTime运行代码的计算机的默认当前时区。

rust

8
推荐指数
2
解决办法
5344
查看次数

当 webpack 加载 wasm 模块内存时,如何访问它

我正在努力追随

如何在 WebAssembly 中从 Rust 返回字符串(或类似的字符串)?

它允许访问 wasm 模块内的字符串数据。

我曾经wasm-pack build构建过 RUST 模块,我可以访问导出的方法,但不能直接访问内存。

webpack 生成的 JavScript 有一个方法可以让我读取字符串

function getStringFromWasm(ptr, len) {
    return cachedTextDecoder.decode(getUint8Memory().subarray(ptr, ptr + len));
}
Run Code Online (Sandbox Code Playgroud)

但如果我将这个生成的 .js 文件破解为

export function getStringFromWasm(ptr, len)
Run Code Online (Sandbox Code Playgroud)

我可以访问 RUST 代码返回的字符串。

如何配置 webpack 代码生成器以提供类似的访问权限,或者以其他方式公开模块的exports.memory

Webpack 似乎没有给我模块本身的处理。.wasm我找不到加载webpack 生成的文件的方法WebAssembly.instantiateStreaming(),因为它似乎依赖于其他生成的文件。

webpack webpack-dev-server wasm-bindgen

5
推荐指数
0
解决办法
353
查看次数

如何防止 Rust 程序释放()它不拥有的 C 字节

libc 有一个函数返回一个不应该是 free()d 的字符串。可以读取用户当前目录,/etc/passwd但不应是 free()d。如果我从指针创建一个字符串,程序会立即中止

free(): invalid pointer
Aborted (core dumped)
Run Code Online (Sandbox Code Playgroud)

显然,代码是不安全的。

let pw = libc::getpwnam(username.as_ptr() as *const i8);
let cd = (*pw).pw_dir;
let len = libc::strlen(cd);
builder.current_dir(String::from_raw_parts(cd as *mut u8, len, len));
Run Code Online (Sandbox Code Playgroud)

我可以mem::forget(s)使用字符串,但会泄漏内存,至少长度必须存储在某处。我只需要防止释放底层原始字节。项目是一个服务器,所以我不能忽视泄漏。

rust

2
推荐指数
1
解决办法
243
查看次数

标签 统计

rust ×2

wasm-bindgen ×1

webpack ×1

webpack-dev-server ×1