Browse files

lazy InputCache for recursive caches

  • Loading branch information...
1 parent c4ac944 commit e8b33f9286e796d9f04b9f265e40b9f3c48d5946 @harrah committed Jun 20, 2011
Showing with 10 additions and 0 deletions.
  1. +10 −0 cache/SeparatedCache.scala
View
10 cache/SeparatedCache.scala
@@ -27,6 +27,16 @@ object InputCache
def write(to: Out, i: I) = fmt.writes(to, i)
def equiv = eqv
}
+ def lzy[I](mkIn: => InputCache[I]): InputCache[I] =
+ new InputCache[I]
+ {
+ lazy val ic = mkIn
+ type Internal = ic.Internal
+ def convert(i: I) = ic convert i
+ def read(from: Input): ic.Internal = ic.read(from)
+ def write(to: Out, i: ic.Internal) = ic.write(to, i)
+ def equiv = ic.equiv
+ }
}
class BasicCache[I,O](implicit input: InputCache[I], outFormat: Format[O]) extends Cache[I,O]

0 comments on commit e8b33f9

Please sign in to comment.