Scala3泛化编程,由于个人不太喜欢Shapeless3到处都是Any
的API,
就参考Shapeless自己写了一套简单版的。
参考Shapeless的ProductInstances
与CoproductInstances
实现Generic.Product.Instances
与Generic.Sum.Instances
。
扩展原生Tuple
,提供reverse
、flatMap
、traverse
、sequence
、foldLeft
、foldRight
、mapN
等方法
参考The Type Astronaut's Guide to Shapeless Book实现的Migration
类。
使用方式可以参考测试类。
参考alexarchambault/scalacheck-shapeless提供scalacheck的推导实例。 使用方式可以参考测试类。