Port util-cache

This commit is contained in:
Eugene Yokota 2021-12-20 03:07:24 -05:00
parent 4bbecf4ee9
commit 1b42f40508
3 changed files with 8 additions and 18 deletions

View File

@ -188,6 +188,7 @@ lazy val sbtRoot: Project = (project in file("."))
utilControl, utilControl,
completeProj, completeProj,
logicProj, logicProj,
utilCache,
) )
.settings( .settings(
minimalSettings, minimalSettings,

View File

@ -41,11 +41,9 @@ object HashModifiedFileInfo {
} }
private final case class PlainFile(file: File, exists: Boolean) extends PlainFileInfo private final case class PlainFile(file: File, exists: Boolean) extends PlainFileInfo
private final case class FileModified(file: File, lastModified: Long) extends ModifiedFileInfo private final case class FileModified(file: File, lastModified: Long) extends ModifiedFileInfo
@deprecated("Kept for plugin compat, but will be removed in sbt 2.0", "1.3.0")
private final case class FileHash(file: File, override val hash: List[Byte]) extends HashFileInfo {
override val hashArray: Array[Byte] = hash.toArray
}
private final case class FileHashArrayRepr(file: File, override val hashArray: Array[Byte]) private final case class FileHashArrayRepr(file: File, override val hashArray: Array[Byte])
extends HashFileInfo { extends HashFileInfo {
override def hashCode(): Int = (file, java.util.Arrays.hashCode(hashArray)).hashCode() override def hashCode(): Int = (file, java.util.Arrays.hashCode(hashArray)).hashCode()
@ -55,25 +53,18 @@ private final case class FileHashArrayRepr(file: File, override val hashArray: A
case _ => false case _ => false
} }
} }
@deprecated("Kept for plugin compat, but will be removed in sbt 2.0", "1.3.0")
private final case class FileHashModified(
file: File,
override val hash: List[Byte],
lastModified: Long
) extends HashModifiedFileInfo {
override val hashArray: Array[Byte] = hash.toArray
}
private final case class FileHashModifiedArrayRepr( private final case class FileHashModifiedArrayRepr(
file: File, file: File,
override val hashArray: Array[Byte], override val hashArray: Array[Byte],
lastModified: Long lastModified: Long
) extends HashModifiedFileInfo ) extends HashModifiedFileInfo
final case class FilesInfo[F <: FileInfo] private (files: Set[F]) final case class FilesInfo[F <: FileInfo] private[util] (files: Set[F])
object FilesInfo { object FilesInfo {
def empty[F <: FileInfo]: FilesInfo[F] = FilesInfo(Set.empty[F]) def empty[F <: FileInfo]: FilesInfo[F] = FilesInfo(Set.empty[F])
implicit def format[F <: FileInfo: JsonFormat]: JsonFormat[FilesInfo[F]] = given format[F <: FileInfo: JsonFormat]: JsonFormat[FilesInfo[F]] =
projectFormat(_.files, (fs: Set[F]) => FilesInfo(fs)) projectFormat(_.files, (fs: Set[F]) => FilesInfo(fs))
def full: FileInfo.Style = FileInfo.full def full: FileInfo.Style = FileInfo.full

View File

@ -30,11 +30,9 @@ class PlainInput[J: IsoString](input: InputStream, converter: SupportConverter[J
val bufferSize = 1024 val bufferSize = 1024
val buffer = new Array[Char](bufferSize) val buffer = new Array[Char](bufferSize)
var read = 0 var read = 0
while while { read = reader.read(buffer, 0, bufferSize); read != -1 } do
({ read = reader.read(buffer, 0, bufferSize); read != -1
}) {
builder.appendAll(buffer, 0, read) builder.appendAll(buffer, 0, read)
}
builder.toString() builder.toString()
} }
} }