Skip to content

Commit cccdda5

Browse files
Merge pull request #93 from ChristopherDavenport/noopProject
Adds NoOp Implementation
2 parents 6a4f542 + 5245d63 commit cccdda5

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

build.sbt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ lazy val mules = project.in(file("."))
22
.disablePlugins(MimaPlugin)
33
.settings(skip in publish := true)
44
.settings(commonSettings)
5-
.aggregate(core, reload)
5+
.aggregate(core, reload, noop)
66

77
lazy val bench = project.in(file("modules/bench"))
88
.disablePlugins(MimaPlugin)
@@ -17,6 +17,13 @@ lazy val core = project.in(file("modules/core"))
1717
name := "mules"
1818
)
1919

20+
lazy val noop = project.in(file("modules/noop"))
21+
.settings(commonSettings)
22+
.dependsOn(core)
23+
.settings(
24+
name := "mules-noop"
25+
)
26+
2027
lazy val reload = project.in(file("modules/reload"))
2128
.settings(commonSettings)
2229
.dependsOn(core)
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package io.chrisdavenport.mules.noop
2+
3+
import io.chrisdavenport.mules.{Cache, TimeSpec}
4+
import cats.Applicative
5+
6+
private class NoOpCache[F[_], K, V](implicit F: Applicative[F]) extends Cache[F, K, V]{
7+
val noneF : F[Option[V]] = F.pure(None)
8+
// Members declared in io.chrisdavenport.mules.Delete
9+
def delete(k: K): F[Unit] = F.unit
10+
11+
// Members declared in io.chrisdavenport.mules.Insert
12+
def insert(k: K, v: V): F[Unit] = F.unit
13+
def insertWithTimeout(optionTimeout: Option[TimeSpec])(k: K, v: V): F[Unit] = F.unit
14+
15+
// Members declared in io.chrisdavenport.mules.Lookup
16+
def lookup(k: K): F[Option[V]] = noneF
17+
}
18+
19+
object NoOpCache {
20+
def impl[F[_]: Applicative, K, V] : Cache[F, K, V] = new NoOpCache[F, K, V]
21+
}

0 commit comments

Comments
 (0)