小编Kor*_*nel的帖子

如何在各种类型的IntoIterator项目中允许多个特征实现?

Rust似乎不区分特征的不同实现,只要它们因关联类型而不同.

如何在所有类型的集合/迭代器上实现一个方法,但是它们包含的每个具体类型都有特定的实现?

错误:特征的冲突实现Foo[E0119]

代码:

trait Foo { fn foo(self); }

impl<T> Foo for T 
    where T: IntoIterator<Item=u32> 
{
    fn foo(self) {
        self.into_iter();
    }
}

impl<T> Foo for T 
    where T: IntoIterator<Item=u16> 
{
    fn foo(self) {
        self.into_iter();
    }
}

fn main() {
    vec![0u32].foo();
    vec![0u16].foo();
}
Run Code Online (Sandbox Code Playgroud)

iterator traits rust

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

如何实现泛型函数的专用版本?

我想要为其参数类型优化一个函数的多个版本,并根据上下文调用适当的函数.

在我的例子中,所有参数都具有相同的类型,并且都是等价的,因此它宁可避免使用self参数.

试过这段代码:

trait Foo<T> { 
    fn foo(a: T, b: T, c: T); 
}

impl Foo<i32> {
    fn foo(a: i32, b: i32, c: i32) {}
}

impl Foo<i16> {
    fn foo(a: i16, b: i16, c: i16) {}
}

fn main() {
    Foo::foo(1i32,2,3);
    Foo::foo(1i16,2,3);
}
Run Code Online (Sandbox Code Playgroud)

但Rust需要类型注释:

错误:需要输入注释:无法解析_ : Foo<i32>[E0283]

我可以避免在呼叫站点提供类型注释吗?如果必须,怎么办?

traits specialization generic-function rust

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

如何在Rust FFI中访问C全局变量/常量?

我需要访问从Rust中的C导出的常量的值。

我想从实际符号中读取值,而不仅仅是将其复制并粘贴到Rust(在我的情况下,该值是一个指针,而C检查指针是否相等)。

extern void *magic;
Run Code Online (Sandbox Code Playgroud)

magic: *const c_void在Rust中可读的语法是什么?

c ffi rust

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

x86微体系结构/ SIMD市场份额

哪里可以找到有关x86微体系结构"市场份额"的数据?x86系列CPU的用户有多少百分比拥有支持SSE4.2,AVX,AVX2等的CPU?

我正在为我的程序分发预编译的二进制文件,我想知道什么是最佳的优化目标,以及在没有运行时检查的情况下可以合理使用哪些SIMD扩展.

我可以找到整体的英特尔与AMD市场份额数据,但不是几代英特尔和AMD的CPU细分.理想情况下,我也希望按操作系统和每个国家/地区进行细分,但即使是微体系结构的全局统计数据也会比没有更好.

x86 sse simd instruction-set baseline

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

CSS背景属性中`transparent`的含义是什么?

这堂课说什么?在后台透明做什么?

background: url("../images/abc.jpg") repeat-x scroll 0 0 transparent;
Run Code Online (Sandbox Code Playgroud)

浏览器会将jpg图像转换为透明吗?但是pngs不仅透明吗?

css background-color

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

仅写入一个字节的便捷方法

我有一个通用功能,需要向写程序写入(非ASCII)字节io::Write

可靠地写入io::Write特征提供的单个字节的最短方法是AFAIK writer.write_all(&[0])?。在很多地方写的时间有点长,而且在语法上很嘈杂。

Rust的stdlib是否具有宏或扩展特征,并且编写起来更方便?

rust

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