Rust 1.15 引入自定义derive特性

栏目: 编程语言 · Rust · 发布时间: 6年前

内容简介:Rust 1.15 引入自定义derive特性

Rust核心团队发布了Rust 1.15稳定版,新增了备受期待的自定义derive特性,让代码生成工具(如Serde和Diesel)能最大效能地工作。

RFC 1681 文档中解释了自定义derive的动机:

目前生态系统中的一些大项目,如Serde和Diesel,需要nightly版本的Rust编译器才可以有效地工作。虽然大多数项目在Rust稳定版本上都有替代的方案,但往往不能发挥最大效能,也有自身的一些缺点,而且从经验上来看不能够带来nightly版本用户同样的稳定性......

然而,好消息是,这些项目几乎都是由于程序宏的原因而使用nightly版本。而且除了自定义derive以外,程序宏的全部功能在其他功能中很少使用!更好的消息是,自定义derive通常不需要彻底的宏系统所应当具备的一些特性,例如卫生(hygiene)和模块化。正常的程序宏通常具有这些特性。

博文 《公布Rust 1.15》 中提供了一个Diesel的例子:

// some extern crate and use lines elided here
#[derive(Queryable)]
struct Pet {
    name: String,
}
fn main() {
    use diesel_demo::schema::pets::dsl::*;
    let connection = establish_connection();
    let results = pets
        .limit(5)
        .load::

 (&connection)
        .expect("Error loading pets");
    println!("Displaying {} pets", results.len());
    for pet in results {
        println!("{}", pet.name);
    }
}

除了自定义derive,Rust 1.15的其他改进包括使用Cargo重写的构建系统。Rust团队评论说:

考虑到Rust所有的开发都在主分支上,去年12月我们开始使用并且运作良好。在一个未关闭的PR中完全删除了Makefile,我们将会在Rust 1.17中采纳。它为rustc铺平道路,在编译器中可以像其他Rust项目一样使用crates.io中的包。

在其他重要领域,随着1.15稳定版本的发布,Rust实现了对 i686-unknown-openbsdMSP430 以及 ARMv5TE3层支持 。Hacker News上关于Rust版本发布的 讨论 中,用户thenewwazoo 评论 说“哇!MSP430的支持是伟大的。也许你不知道,这是一个众所周知的超低功耗单片机......这可能是目前唯一一个低于32位的平台。我知道支持8位AVR架构还需要继续努力,但MSP430让Rust更接近超低功耗应用。”

其他用户对于Rust 1.15的发布同样非常兴奋。Dikaiosune ,“这是非常重要的。知道这次发布后,我可以删除小型Web后端中所有nightly版本的功能标志,该Web后端中大量使用了类型驱动的代码生成工具(Serde以及Diesel)。自定义derive拥有稳定性保证,真是太好了。太激动了!”

Ekidd表示赞同,并 补充 说,“我们有一堆Rust应用程序在工作,只有一个仍然使用nightly版本,现在我们也可以把它迁移到稳定版本了。我们可以在其他地方摆脱一堆build.rs脚本了,这总是好的。”

Rust1.15详细的发布说明可以在 GitHub 上获取,并且可以在 这里 下载安装包。

查看英文原文: Rust 1.15 Brings Custom Derive

感谢王纯超对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

High Performance Python

High Performance Python

Andrew Lewis / O'Reilly Media, Inc. / 2010-09-15 / USD 34.99

Chapter 1. Introduction Section 1.1. The High Performance Buzz-word Chapter 2. The Theory of Computation Section 2.1. Introduction Section 2.2. Problems Section 2.3. Models of Computati......一起来看看 《High Performance Python》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具