 /// Represents either a file or directory entry inside TAR archive.
 public class TarEntry: ContainerEntry {
 
+    public enum EntryType: String {
+        case normal = "0"
+        case hardLink = "1"
+        case symbolicLink = "2"
+        case characterSpecial = "3"
+        case blockSpecial = "4"
+        case directory = "5"
+        case fifo = "6"
+        case contiguous = "7"
+        case globalExtendedHeader = "g"
+        case localExtendedHeader = "x"
+        case vendorUnknownOrReserved
+    }
+
     /// Name of the file or directory.
     public var name: String {
         return (self.fileNamePrefix ?? "") + (self.fileName ?? "")

        index += 8

        // File type
        type = String(bytes: [data[index]], encoding: .ascii)
        index += 1

        // Linked file name

    public let groupID: Int?
    public let size: Int
    public let modificationTime: Date
    public let type: EntryType

    public let ownerUserName: String?
    public let ownerGroupName: String?
