mirror of
https://github.com/fluencelabs/hackethberlin
synced 2025-04-24 17:02:18 +00:00
constraints
This commit is contained in:
parent
6880db4d11
commit
c39467bb93
@ -16,12 +16,11 @@ object MakeVyperApp extends App {
|
|||||||
("address" → address) ::
|
("address" → address) ::
|
||||||
("owner" → `public`(address)) ::
|
("owner" → `public`(address)) ::
|
||||||
("holders" → (address ~>> bool)) ::
|
("holders" → (address ~>> bool)) ::
|
||||||
("struct" → `public`(struct)) :: HNil
|
("structMap" → `public`(Mapping(uint256, struct))) ::
|
||||||
|
("struct" → `public`(struct)) ::
|
||||||
|
("struct2" → struct) :: HNil
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
println(data.toVyper)
|
println(data.toVyper)
|
||||||
|
|
||||||
println(struct.toVyper)
|
|
||||||
|
|
||||||
}
|
}
|
@ -1,5 +1,5 @@
|
|||||||
package fluence.hackethberlin.types
|
package fluence.hackethberlin.types
|
||||||
|
|
||||||
case class Mapping[K <: PrimitiveType, V <: Type](ktype: K, vtype: V) extends Type {
|
case class Mapping[K <: PrimitiveType, V <: Type](ktype: K, vtype: V) extends PlainType {
|
||||||
override def toVyper: String = s"${vtype.toVyper}[${ktype.toVyper}]"
|
override def toVyper: String = s"${vtype.toVyper}[${ktype.toVyper}]"
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package fluence.hackethberlin.types
|
package fluence.hackethberlin.types
|
||||||
|
|
||||||
abstract sealed class PrimitiveType(name: String) extends Type {
|
abstract sealed class PrimitiveType(name: String) extends PlainType {
|
||||||
self ⇒
|
self ⇒
|
||||||
|
|
||||||
override def toVyper: String = name
|
override def toVyper: String = name
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package fluence.hackethberlin.types
|
package fluence.hackethberlin.types
|
||||||
|
|
||||||
import shapeless.HList
|
import shapeless.{HList, LUBConstraint}
|
||||||
|
|
||||||
class StructType[D <: HList](dataDef: D)(implicit dv: DataVyper[D]) extends Type {
|
class StructType[D <: HList](dataDef: D)(implicit dv: DataVyper[D], c: LUBConstraint[D, (String, PlainType)]) extends PlainType {
|
||||||
override def toVyper: String = s"{${dv.toVyperDefinitions(dataDef).mkString(", ")}}"
|
override def toVyper: String = s"{${dv.toVyperDefinitions(dataDef).mkString(", ")}}"
|
||||||
}
|
}
|
||||||
|
@ -2,4 +2,6 @@ package fluence.hackethberlin.types
|
|||||||
|
|
||||||
trait Type {
|
trait Type {
|
||||||
def toVyper: String
|
def toVyper: String
|
||||||
}
|
}
|
||||||
|
|
||||||
|
trait PlainType extends Type
|
Loading…
x
Reference in New Issue
Block a user