小编Ice*_*erg的帖子

将盒装特征转换为Rust中的可变特征引用

我在Rust中使用动态调度指针类型时遇到了一些问题.我想类型的值转换Box<MyTrait>&mut MyTrait传递给函数.例如,我尝试过:

use std::borrow::BorrowMut;

trait MyTrait {
    fn say_hi(&mut self);
}

struct MyStruct { }

impl MyTrait for MyStruct {
    fn say_hi(&mut self) {
        println!("hi");
    }
}

fn invoke_from_ref(value: &mut MyTrait) {
    value.say_hi();
}

fn main() {
    let mut boxed_trait: Box<MyTrait> = Box::new(MyStruct {});
    invoke_from_ref(boxed_trait.borrow_mut());
}
Run Code Online (Sandbox Code Playgroud)

此操作失败,并显示以下错误:

error: `boxed_trait` does not live long enough
  --> <anon>:22:5
   |
21 |         invoke_from_ref(boxed_trait.borrow_mut());
   |                         ----------- borrow occurs here
22 |     }
   |     ^ `boxed_trait` dropped here while still borrowed …
Run Code Online (Sandbox Code Playgroud)

rust

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

为Javadoc注释不稳定的类/方法

在为Java项目开发新的类/方法时,有时您希望让人们试用您的新代码,但又不想保证它在将来的版本中将向后兼容。在这种情况下,使用@Unstable注释之类的东西来通知用户该代码在稳定之前将不具有向后兼容性保证(@Unstable功能与@Deprecated功能不同之处在于可以对其进行更改或删除),这是有意义的。而不被视为重大更改)。这些注释也必须反映在javadoc生成的HTML中,以便用户知道它们。非常乐观,如果您正在使用带注释的代码@Unstable,则出现编译器警告也将很有帮助。

Java中是否有针对此类功能的标准?如果没有,是否可以自定义javadoc以允许此类功能?

java javadoc

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

Rust wasm32-unknown-unknown数学函数没有链接

我正在为Rust尝试新的wasm32-unknown-unknown目标,并且我遇到了调用数学函数的问题(例如sin,cos,exp,atan2).

Cargo.toml:

[package]
name = "wasm_math"
version = "0.1.0"
authors = ["..."]

[lib]
path = "src/lib.rs"
crate-type = ["cdylib"]

[dependencies]
Run Code Online (Sandbox Code Playgroud)

SRC/lib.rs:

#[no_mangle]
pub extern "C" fn invoke_sin(x: f64) -> f64 {
    x.sin()
}
Run Code Online (Sandbox Code Playgroud)

index.html的:

<!doctype html>
<html lang="en">
  <head><meta charset="utf-8"><title>Wasm Math</title></head>
  <body></body>
  <script>
    const imports = { env: { } };
    fetch("target/wasm32-unknown-unknown/release/wasm_math.wasm").then(response =>
      response.arrayBuffer()
    ).then(bytes =>
      WebAssembly.instantiate(bytes, imports)
    ).then(results => {
      alert(results.instance.exports.invoke_sin(1.0));
    });
  </script>
</html>
Run Code Online (Sandbox Code Playgroud)

我用命令构建项目

cargo build --release --target wasm32-unknown-unknown
Run Code Online (Sandbox Code Playgroud)

当我在firefox中打开html文件时,出现以下错误:

LinkError: import object field 'sin' is not a …
Run Code Online (Sandbox Code Playgroud)

rust webassembly

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

标签 统计

rust ×2

java ×1

javadoc ×1

webassembly ×1