![JAR search and dependency download from the Maven repository](/logo.png)
ru.primetalk.synapse.shapeless.package.scala Maven / Gradle / Ivy
///////////////////////////////////////////////////////////////
// © ООО «Праймтолк», 2011-2013 //
// Все права принадлежат компании ООО «Праймтолк». //
///////////////////////////////////////////////////////////////
/**
* SynapseGrid
* © Primetalk Ltd., 2013.
* All rights reserved.
* Authors: A.Zhizhelev, A.Nehaev, P. Popov
*
* Created: 26.08.13, zhizhelev
*/
package ru.primetalk.synapse
import ru.primetalk.synapse.core.{StateHandle, Contact, SystemBuilder}
import _root_.shapeless._
package object shapeless {
// implicit class ShapelessSystemBuilder(sb:SystemBuilder){
implicit class HNilContact[T](c: Contact[T]) {
def hNil(implicit sb: SystemBuilder): Contact[T :: HNil] = {
// import sb._
c.map(value => value :: HNil)
}
}
implicit class ShapelessContact[L <: HList](c: Contact[L]) {
def using[S](stateHandle: StateHandle[S])(implicit sb: SystemBuilder): Contact[S :: L] = {
// import sb._
c.withState(stateHandle).stateMap[S :: L](
(stateValue, message: L) =>
(stateValue, new ::(stateValue, message))
)
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy