All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.florinn.veryfay.Activity.scala Maven / Gradle / Ivy

package com.github.florinn.veryfay

import scala.reflect.runtime.universe.TypeTag

abstract class Activity[T](implicit val target: TypeTag[T])
trait Container[T] { def activities: Seq[_ <: Activity[T]] }

final case class Create[T: TypeTag]() extends Activity[T]
final case class Read[T: TypeTag]() extends Activity[T]
final case class Update[T: TypeTag]() extends Activity[T]
final case class Patch[T: TypeTag]() extends Activity[T]
final case class Delete[T: TypeTag]() extends Activity[T]

final case class CRUD[T: TypeTag]() extends Activity[T] with Container[T] {
  val activities = List(Create[T], Read[T], Update[T], Delete[T])
}
final case class CRUDP[T: TypeTag]() extends Activity[T] with Container[T] {
	val activities = List(CRUD[T], Patch[T])
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy