SCodecの新しいユーザーとして、かなりの学習曲線があります。私は、ソースとドキュメントを読んでいても解決できないような障害にぶつかった。 私はこの def packedByte : Codec[Int :: Int :: Int :: HNil] = uint(4) :: uint(2) :: uint(2)
のような関数として人気の高いコーデックを定義し、この case class My
閲覧型崩れコードは、私が出会ったこの一見無関係の{}hereとhere: trait Witness extends Serializable {
type T
val value: T {}
}
trait SingletonOps {
import record._
type T
def narrow: T {} = witness.va
私は何とかコンパイル時に、caseクラスのフィールドの名前をval(おそらくシングルトン型の文字列かシンボルか)で取得したいと考えています。次のような 何か: import shapeless._
case class MyClass(field1: String, field2: Int)
val field1Lens = lens[MyClass] >> 'field1
// val n
私はこの方法でバンドルを生成することを目指し、android.os.Bundle APIの上に抽象化しようとしています: case class MyClass(a: Int, b: String)
val mc = MyClass(3, "5")
implicit val bundleable = Bundle.from[MyClass]()
val bundle = bundleable.