shapeless

    1

    1答えて

    シェイプレスを使用して、ドキュメントに記載されているレシピを使用してアライティを抽象化することができます。しかし、私は例えば、この機能をラップすることができないよ import shapeless.ops.function.FnToProduct import shapeless.{Generic, HList} import shapeless._ import syntax.std.fu

    1

    1答えて

    私は滑らかなcodegenを使って自動生成されたスカラコードを持っています。私はいくつかのテーブルがあることを見ている行はHListとして実装されています。 (しかし、これは滑らかなHListであり、通常の無形HListではありません) 今、私は滑らかなクエリによって行として返されるHListの特定の要素を必要とします。 私はGoogleで検索して、このスレッド Getting elements

    1

    1答えて

    Shapeless HListのラッパーを構築していますが、updatedAt関数を使用してHListの値を更新したいと思いますが、暗黙のうちに正しい値を取得できないようです。 class Data[L <: HList](val hl: L) { def updatedAtV1[V](n : Nat, value : V)(implicit replacer : Repl

    2

    2答えて

    私はUpdaterは私が欲しいものに最も近いことが判明し、HListを追加します関数を記述しようとしています: def appender[L <: HList, V, Out <: HList](hl: L, k: Witness, v: V)(implicit updater: Updater.Aux[L, FieldType[k.T, V], Out]) : Out = { upda

    4

    1答えて

    私は次のコードを使用して型崩れしてそのフィールド名を抽出することができますケースクラスAを考える: val fieldNames: List[String] = { import shapeless._ import shapeless.ops.record.Keys val gen = LabelledGeneric[A] val keys = Keys

    0

    1答えて

    私は、HListのパラメータ(A)を受け取るメソッドを持つ抽象クラスを持っています。私はこのHListの正確な種類を制限したいサブクラス(B)におけるしかし 次のコードは、(それがHListのサブクラスとして(Int :: String :: HNil)は表示されません。しかし、どのように達成することができます動作しません。同様の効果?HListsなくても import shapeless.{::

    0

    1答えて

    私は型崩れの副生成物を理解し、次の例を持ってしようとしていますが、それは動作しません:は import shapeless.{HList, ::, HNil} import shapeless.Generic import shapeless.{Coproduct, :+:, CNil, Inl, Inr} trait CsvEncoder[A] { def encode(val

    0

    1答えて

    私は型崩れして、製品の種類の実装を次ています trait CsvEncoder[A] { def encode(value: A): List[String] } implicit val hnilEncoder: CsvEncoder[HNil] = createEncoder(_ => Nil) implicit def hlistEncoder[H, T <: HLi

    4

    1答えて

    同じ名前のフィールドでも同じ値ではなく2つのレコードを整列させる方法を知っていますか?別のものがOptionで折り返された値を持ちます。順序は、私はまったく同じタイプの2つのレコードを揃えることができ、タイプが1つを強要されていないが、彼らはキーで整列する必要がある場合でも、私は2つのレコードをzipWithを行うことができます import shapeless._ import shapele

    1

    1答えて

    さらにタイプセーフティを導入するには、shapelessによって提供されるタグ付きタイプを使用するか、AnyValを拡張するクラスを作成します。 1つを他のものよりも使用することの違いと利点/欠点は何ですか? 例:countryCode.toUpperCase: trait CountryCodeTag type CountryCode = String @@ CountryCodeTag