![JAR search and dependency download from the Maven repository](/logo.png)
redis.algebra.server.scala Maven / Gradle / Ivy
The newest version!
package redis
package algebra
import scalaz.{Free, Functor, Inject, InjectFunctions}
import data.{Master, SlowlogResult, SlowlogSubcommand, Status}
sealed abstract class ServerAlgebra[A]
final case class Bgrewriteaof[A](h: Status => A) extends ServerAlgebra[A]
final case class Bgsave[A](h: Status => A) extends ServerAlgebra[A]
final case class Clientgetname[A](h: Option[ByteString] => A) extends ServerAlgebra[A]
final case class Clientkill[A](ip: ByteString, port: Int, h: Status => A) extends ServerAlgebra[A]
final case class Clientlist[A](h: Seq[ByteString] => A) extends ServerAlgebra[A]
final case class Clientsetname[A](name: ByteString, h: Status => A) extends ServerAlgebra[A]
final case class Configget[A](parameter: ByteString, h: Seq[ByteString] => A) extends ServerAlgebra[A]
final case class Configresetstat[A](h: Status => A) extends ServerAlgebra[A]
final case class Configrewrite[A](h: Status => A) extends ServerAlgebra[A]
final case class Configset[A](parameter: ByteString, value: ByteString, h: Status => A) extends ServerAlgebra[A]
final case class Dbsize[A](h: Short => A) extends ServerAlgebra[A]
final case class Debugobject[A](key: ByteString, h: Status => A) extends ServerAlgebra[A]
final case class Debugsegfault[A](h: Status => A) extends ServerAlgebra[A]
final case class Flushall[A](h: Status => A) extends ServerAlgebra[A]
final case class Flushdb[A](h: Status => A) extends ServerAlgebra[A]
final case class Info[A](section: Option[ByteString], h: ByteString => A) extends ServerAlgebra[A]
final case class Lastsave[A](h: Seconds => A) extends ServerAlgebra[A]
final case class Monitor[A](h: Stream[ByteString] => A) extends ServerAlgebra[A]
final case class Save[A](h: Status => A) extends ServerAlgebra[A]
final case class Shutdown[A](save: Option[Boolean], h: Status => A) extends ServerAlgebra[A]
final case class Slaveof[A](master: Master, h: Status => A) extends ServerAlgebra[A]
final case class Slowlog[A](subcommand: SlowlogSubcommand, h: SlowlogResult => A) extends ServerAlgebra[A]
final case class Sync[A](a: A) extends ServerAlgebra[A]
final case class Time[A](h: ((Seconds, Microseconds)) => A) extends ServerAlgebra[A]
trait ServerInstances {
implicit val serverAlgebraFunctor: Functor[ServerAlgebra] =
new Functor[ServerAlgebra] {
def map[A, B](a: ServerAlgebra[A])(f: A => B): ServerAlgebra[B] =
a match {
case Bgrewriteaof(h) => Bgrewriteaof(x => f(h(x)))
case Bgsave(h) => Bgsave(x => f(h(x)))
case Clientgetname(h) => Clientgetname(x => f(h(x)))
case Clientkill(i, p, h) => Clientkill(i, p, x => f(h(x)))
case Clientlist(h) => Clientlist(x => f(h(x)))
case Clientsetname(n, h) => Clientsetname(n, x => f(h(x)))
case Configget(p, h) => Configget(p, x => f(h(x)))
case Configresetstat(h) => Configresetstat(x => f(h(x)))
case Configrewrite(h) => Configrewrite(x => f(h(x)))
case Configset(p, v, h) => Configset(p, v, x => f(h(x)))
case Dbsize(h) => Dbsize(x => f(h(x)))
case Debugobject(k, h) => Debugobject(k, x => f(h(x)))
case Debugsegfault(h) => Debugsegfault(x => f(h(x)))
case Flushall(h) => Flushall(x => f(h(x)))
case Flushdb(h) => Flushdb(x => f(h(x)))
case Info(s, h) => Info(s, x => f(h(x)))
case Lastsave(h) => Lastsave(x => f(h(x)))
case Monitor(h) => Monitor(x => f(h(x)))
case Save(h) => Save(x => f(h(x)))
case Shutdown(s, h) => Shutdown(s, x => f(h(x)))
case Slaveof(m, h) => Slaveof(m, x => f(h(x)))
case Slowlog(s, h) => Slowlog(s, x => f(h(x)))
case Sync(a) => Sync(f(a))
case Time(h) => Time(x => f(h(x)))
}
}
}
trait ServerFunctions extends InjectFunctions {
def bgrewriteaof[F[_]: Functor](implicit I: Inject[ServerAlgebra, F]): Free[F, Status] =
inject[F, ServerAlgebra, Status](Bgrewriteaof(Free.point(_)))
def bgsave[F[_]: Functor](implicit I: Inject[ServerAlgebra, F]): Free[F, Status] =
inject[F, ServerAlgebra, Status](Bgsave(Free.point(_)))
def clientgetname[F[_]: Functor](implicit I: Inject[ServerAlgebra, F]): Free[F, Option[ByteString]] =
inject[F, ServerAlgebra, Option[ByteString]](Clientgetname(Free.point(_)))
def clientkill[F[_]: Functor](ip: ByteString, port: Int)(implicit I: Inject[ServerAlgebra, F]): Free[F, Status] =
inject[F, ServerAlgebra, Status](Clientkill(ip, port, Free.point(_)))
def clientlist[F[_]: Functor](implicit I: Inject[ServerAlgebra, F]): Free[F, Seq[ByteString]] =
inject[F, ServerAlgebra, Seq[ByteString]](Clientlist(Free.point(_)))
def clientsetname[F[_]: Functor](name: ByteString)(implicit I: Inject[ServerAlgebra, F]): Free[F, Status] =
inject[F, ServerAlgebra, Status](Clientsetname(name, Free.point(_)))
def configget[F[_]: Functor](parameter: ByteString)(implicit I: Inject[ServerAlgebra, F]): Free[F, Seq[ByteString]] =
inject[F, ServerAlgebra, Seq[ByteString]](Configget(parameter, Free.point(_)))
def configresetstat[F[_]: Functor](implicit I: Inject[ServerAlgebra, F]): Free[F, Status] =
inject[F, ServerAlgebra, Status](Configresetstat(Free.point(_)))
def configrewrite[F[_]: Functor](implicit I: Inject[ServerAlgebra, F]): Free[F, Status] =
inject[F, ServerAlgebra, Status](Configrewrite(Free.point(_)))
def configset[F[_]: Functor](parameter: ByteString, value: ByteString)(implicit I: Inject[ServerAlgebra, F]): Free[F, Status] =
inject[F, ServerAlgebra, Status](Configset(parameter, value, Free.point(_)))
def dbsize[F[_]: Functor](implicit I: Inject[ServerAlgebra, F]): Free[F, Short] =
inject[F, ServerAlgebra, Short](Dbsize(Free.point(_)))
def debugobject[F[_]: Functor](key: ByteString)(implicit I: Inject[ServerAlgebra, F]): Free[F, Status] =
inject[F, ServerAlgebra, Status](Debugobject(key, Free.point(_)))
def debugsegfault[F[_]: Functor](implicit I: Inject[ServerAlgebra, F]): Free[F, Status] =
inject[F, ServerAlgebra, Status](Debugsegfault(Free.point(_)))
def flushall[F[_]: Functor](implicit I: Inject[ServerAlgebra, F]): Free[F, Status] =
inject[F, ServerAlgebra, Status](Flushall(Free.point(_)))
def flushdb[F[_]: Functor](implicit I: Inject[ServerAlgebra, F]): Free[F, Status] =
inject[F, ServerAlgebra, Status](Flushdb(Free.point(_)))
def info[F[_]: Functor](section: Option[ByteString] = None)(implicit I: Inject[ServerAlgebra, F]): Free[F, ByteString] =
inject[F, ServerAlgebra, ByteString](Info(section, Free.point(_)))
def lastsave[F[_]: Functor](implicit I: Inject[ServerAlgebra, F]): Free[F, Seconds] =
inject[F, ServerAlgebra, Seconds](Lastsave(Free.point(_)))
def monitor[F[_]: Functor](implicit I: Inject[ServerAlgebra, F]): Free[F, Stream[ByteString]] =
inject[F, ServerAlgebra, Stream[ByteString]](Monitor(Free.point(_)))
def save[F[_]: Functor](implicit I: Inject[ServerAlgebra, F]): Free[F, Status] =
inject[F, ServerAlgebra, Status](Save(Free.point(_)))
def shutdown[F[_]: Functor](save: Option[Boolean] = None)(implicit I: Inject[ServerAlgebra, F]): Free[F, Status] =
inject[F, ServerAlgebra, Status](Shutdown(save, Free.point(_)))
def slaveof[F[_]: Functor](master: Master)(implicit I: Inject[ServerAlgebra, F]): Free[F, Status] =
inject[F, ServerAlgebra, Status](Slaveof(master, Free.point(_)))
def slowlog[F[_]: Functor](subcommand: SlowlogSubcommand)(implicit I: Inject[ServerAlgebra, F]): Free[F, SlowlogResult] =
inject[F, ServerAlgebra, SlowlogResult](Slowlog(subcommand, Free.point(_)))
def sync[F[_]: Functor](implicit I: Inject[ServerAlgebra, F]): Free[F, Unit] =
inject[F, ServerAlgebra, Unit](Sync(Free.point(())))
def time[F[_]: Functor](implicit I: Inject[ServerAlgebra, F]): Free[F, (Seconds, Microseconds)] =
inject[F, ServerAlgebra, (Seconds, Microseconds)](Time(Free.point(_)))
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy