scala-macros

    0

    1答えて

    私はJsonをケースクラスまたはenumにマップするためにplay-jsonを使用しています。私はFormatsを暗黙的に作成するスマートな方法を探しています。私のプロジェクトには多くの型定義が含まれているからです。 は、現時点では私は列挙型のためFormatsを生成するための簡単な関数を作成: def formatEnum[E <: Enumeration](enum: E) = Format(

    2

    1答えて

    以下に概説するような、ファンキーなシナリオのビット。 私はsealed trait Painting[T]を持っていて、次にtrait ImpressionistPainting[T] extends Painting[T]などのより特殊なバリエーションがあり、シンプルな密閉型ファミリーを構築しているとします。 私は、fのクラスには、次のような拘束多様型囲まれています: class Gallery

    1

    3答えて

    その特定の実装に対して最も理にかなっています。 object FooImpl1 extends FooInterface[Option] { ... } object FooImpl2 extends FooInterface[Future] { ... } object FooImpl3 extends FooInterface[({type X[Y] = ReaderT[Future, D

    2

    1答えて

    私のライブラリにいくつかのマクロ注釈を追加しました。私の図書館ビルドでは、マクロ天国を可能にするために addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full) を含める。 マクロを使用するユーザーのプロジェクトでは、何らかの形でscalamacrosを含める必要があることを知っていま

    4

    1答えて

    マクロの出力に割り当てられている変数の名前をキャッチしたいと思います。 build.sbtのprojectとまったく同じです。かなり一般的なユースケースのように見えるので、ボックスソリューション(ライブラリ)がある場合はそれを選択します。ここで は小さな例 val someValue = myMacro() と私は、文字列"someValue"を取得したいと思いmyMacro()の出力としてあ

    1

    1答えて

    JSONを一致するケースクラスに解析するマクロを書きました。 def parse(jsonTree: JsValue): BaseType = macro parserImpl def parserImpl(c: blackbox.Context)(jsonTree: c.Tree) = { import c.universe._ val q"$json" = jsonTr

    1

    1答えて

    私は現在、新しいコードがscalaで書かれているがかなりの古いJavaコードが残っているかなり大きなコードベースで作業しています。特に、私たちと話をしなければならない多くのJava APIがあります。古いコードは、例えば、公共非finalフィールド、任意のメソッドやコンストラクタなし、と単純なJava POJOを使用しています。我々は、これらのタイプにヘルパーメソッドまたはコンストラクタを追加する

    0

    1答えて

    私はScala関数を外部形式にエクスポートしています。この目的のために、私はscala.metaとStaticAnnotationを使用します。ような何か:x.max(y):ExportFunctions extends StaticAnnotationの実装で @ExportFunctions object MyFunctions { def max(x: Int, y: Int):

    1

    2答えて

    タイプ付きブラックボックスマクロ(暗黙のマテリアライザー)では、TypeまたはSymbolがタプルであるかどうかを確認するにはどうすればよいですか?パターンマッチングなどの明らかな解決策がありますが、どこでも見つけることができるisTupleメソッドがありますか? は、これまでのところ、私はこれを行うことができます知っている: def typed[A : c.WeakTypeTag]: Symbo

    0

    1答えて

    私はグーグルではありますが、私は良い文書を見つけることができませんでした。 マクロを使用してエントリAPIを使用してプロジェクトを作成しましたが、自分のプロジェクトからでも使用できないため、エクスポートする必要があります。 intellijでマクロプロジェクトをエクスポート/インポートする方法を説明している人は、誰でも教えてください。 よろしくお願いいたします。