@@ -39,6 +39,8 @@ import org.locationtech.rasterframes.expressions.transformers._
3939import shapeless .HList
4040import shapeless .ops .function .FnToProduct
4141import shapeless .ops .traversable .FromTraversable
42+ import shapeless .syntax .std .function ._
43+ import shapeless .syntax .std .traversable ._
4244
4345import scala .reflect .ClassTag
4446import scala .reflect .runtime .universe ._
@@ -81,17 +83,17 @@ package object expressions {
8183 }
8284
8385 /** Converts (expr1: Expression, ..., exprn: Expression) => R into a Seq[Expression] => R function */
84- implicit def expressionArgumentsSequencer [F , I <: HList , R ](f : F )(implicit ftp : FnToProduct .Aux [F , I => R ], ft : FromTraversable [I ]): Seq [Expression ] => R = { list : Seq [Expression ] =>
85- ft( list) match {
86- case Some (l) => ftp(f) (l)
87- case None => throw new IllegalArgumentException (s " registerFunction application failed: arity mismatch: $list. " )
86+ implicit def expressionArgumentsSequencer [F , L <: HList , R ](f : F )(implicit ftp : FnToProduct .Aux [F , L => R ], ft : FromTraversable [L ]): Seq [Expression ] => R = { list : Seq [Expression ] =>
87+ list.toHList match {
88+ case Some (l) => f.toProduct (l)
89+ case None => throw new IllegalArgumentException (s " registerFunction application failed; arity mismatch: $list. " )
8890 }
8991 }
9092
9193 registerFunction[Add ](name = " rf_local_add" )(Add .apply)
9294 registerFunction[Subtract ](name = " rf_local_subtract" )(Subtract .apply)
9395 registerFunction[ExplodeTiles ](name = " rf_explode_tiles" )(ExplodeTiles (1.0 , None , _))
94- registerFunction[TileAssembler ](name = " rf_assemble_tile" )(TileAssembler .apply )
96+ registerFunction[TileAssembler ](name = " rf_assemble_tile" )(TileAssembler ( _ : Expression , _ : Expression , _ : Expression , _ : Expression , _ : Expression ) )
9597 registerFunction[GetCellType ](name = " rf_cell_type" )(GetCellType .apply)
9698 registerFunction[SetCellType ](name = " rf_convert_cell_type" )(SetCellType .apply)
9799 registerFunction[InterpretAs ](name = " rf_interpret_cell_type_as" )(InterpretAs .apply)
0 commit comments