algtype

Crates.ioalgtype
lib.rsalgtype
version0.1.0
sourcesrc
created_at2024-04-30 07:03:23.36051
updated_at2024-04-30 07:03:23.36051
descriptionConversion between data and its representation, like Haskell Generic
homepage
repositoryhttps://github.com/zeng-y-l/algtype
max_upload_size
id1224718
size15,708
(zeng-y-l)

documentation

README

许多 trait 的实现全是模板代码,如 DebugEq。其实现可以自动生成,让使用者免于繁琐。常用的方法是 derive 宏,但是提供者写来依然繁琐。许多语言有反射可以简化此类代码,可惜 Rust 没有。

一些 trait 的实现仅需数据的结构,而无需其名称之类,如 EqOrdHash。此时,可以通过 Generic,使用数据的结构,代替 derive 宏,通用地实现 trait,不增加使用难度而减少编写难度。也可以拿来做别的事情。

这一做法,是被 Haskell 的 Generic 启发而来的。它似乎有很多理论基础,而我做得比较朴实,Rust 的类型系统也整不了什么活。

此库是 no_std 的,且没有不安全代码。以下是基于此库的一些功能:

Commit count: 1

cargo fmt