小编asd*_*bgt的帖子

是否有可能使这个 Rust 代码更容易推理?

我正在阅读这段 Rust 代码,但我几乎没有能力理解所有互斥体和句柄的情况。为了让 Rust 诸神高兴,这一切都是多余的,而且这让他们很难专注于实际发生的事情。看一看:

#[tauri::command]
fn spawn(param: String, window: Window<Wry>) {
    let window_arc = Arc::new(Mutex::new(window));

    // Spawn bin
    let (mut rx, child) = tauri::api::process::Command::new_sidecar("bin")
        .expect("failed to create binary command")
        .args([param])
        .spawn()
        .expect("Failed to spawn sidecar");
    let child_arc = Arc::new(Mutex::new(child));

    // Handle data from bin
    let window = window_arc.clone();
    let (handle, mut handle_rx) = broadcast::channel(1);
    let handle_arc = Arc::new(Mutex::new(handle));
    tauri::async_runtime::spawn(async move {
        loop {
            tokio::select! {
                _ = handle_rx.recv() => {
                    return;
                }
                Some(event) = rx.recv() => {
                    if let …
Run Code Online (Sandbox Code Playgroud)

rust tauri

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

标签 统计

rust ×1

tauri ×1