mirror of https://github.com/sbt/sbt.git
Add file FileInfo factory applys without io
It may be the case that the file property is already known and we can avoid performing additional io by just passing in the value directly.
This commit is contained in:
parent
2e0d2d920a
commit
5b198b20be
|
|
@ -90,6 +90,8 @@ object FileInfo {
|
|||
|
||||
implicit def apply(file: File): HashModifiedFileInfo =
|
||||
FileHashModified(file.getAbsoluteFile, Hash(file).toList, IO.getModifiedTimeOrZero(file))
|
||||
def apply(file: File, hash: List[Byte], lastModified: Long): HashModifiedFileInfo =
|
||||
FileHashModified(file.getAbsoluteFile, hash, lastModified)
|
||||
}
|
||||
|
||||
object hash extends Style {
|
||||
|
|
@ -115,6 +117,8 @@ object FileInfo {
|
|||
}
|
||||
|
||||
implicit def apply(file: File): HashFileInfo = FileHash(file.getAbsoluteFile, computeHash(file))
|
||||
def apply(file: File, bytes: List[Byte]): HashFileInfo =
|
||||
FileHash(file.getAbsoluteFile, bytes)
|
||||
|
||||
private def computeHash(file: File): List[Byte] =
|
||||
try Hash(file).toList
|
||||
|
|
@ -147,6 +151,8 @@ object FileInfo {
|
|||
|
||||
implicit def apply(file: File): ModifiedFileInfo =
|
||||
FileModified(file.getAbsoluteFile, IO.getModifiedTimeOrZero(file))
|
||||
def apply(file: File, lastModified: Long): ModifiedFileInfo =
|
||||
FileModified(file.getAbsoluteFile, lastModified)
|
||||
}
|
||||
|
||||
object exists extends Style {
|
||||
|
|
@ -175,5 +181,9 @@ object FileInfo {
|
|||
val abs = file.getAbsoluteFile
|
||||
PlainFile(abs, abs.exists)
|
||||
}
|
||||
def apply(file: File, exists: Boolean): PlainFileInfo = {
|
||||
val abs = file.getAbsoluteFile
|
||||
PlainFile(abs, exists)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue