image 0.25.5 大幅改进了对AVIF图像格式的解码能力
主要更新包括:
大幅改进了对AVIF图像格式的解码能力,现在支持10位和12位AVIF图像,并修复了许多AVIF解码方面的bug。这些改进由@awxkee贡献。
rayon特性现在可以正确切换AVIF编码时是否使用并行处理。但对于EXR格式,由于会破坏后向兼容性,所以暂时没有切换并行处理的选项。
现在可以识别极少使用的".jfif"作为JPEG文件扩展名。
AVIF解码目前仍然依赖于C语言库dav1d,而不是Rust版本rav1d,因为rav1d还没有提供Rust API。未来希望能够迁移至rav1d以摆脱对dav1d的依赖。
总的来说,这个版本主要侧重于增强对AVIF格式的支持和解码能力,同时修复了一些bug,并对少数其他特性做了完善。
https://old.reddit.com/r/rust/comments/1gk3v7i/image_v0255_brings_much_improved_avif_decoding/
MinPin - 一种pin的新提案
这篇文章介绍了一个名为 MinPin 的新的 Pin 提案,其目标是以一种"最小破坏性"的方式将 Pin 集成到语言中,同时保持完全向后兼容性。与 Overwrite 提案不同,MinPin 没有试图让 Pin 和 &mut 很好地协作,但它为将来添加 Overwrite 留下了空间。
MinPin 的主要设计决策包括:
使用 pinned 关键字获取 Pin 变体,如 pinned &mut T 等同于 Pin<&mut T>。 Drop trait 修改为 fn drop(pinned &mut self)而不是 fn drop(&mut self)。 对于实现了 Unpin 的字段类型,始终允许投影。 对于未实现 Unpin 的字段类型,投影规则取决于结构体是否实现 Unpin 及是否有 fn drop(&mut self)方法。 引入 struct Unpinnable 始终实现 Unpin。
文章还列出了一些设计原则,如 Pin 是语言的一部分、Pin 应有零概念成本、应该显式使用等。最后,作者回答了一些常见问题,比较了 MinPin 与 UnpinCell 提案之间的异同。
https://smallcultfollowing.com/babysteps/blog/2024/11/05/minpin/
--
From 日报小组 Mike
社区学习交流平台订阅:
Rustcc论坛: 支持rss 微信公众号:Rust语言中文社区