-
Notifications
You must be signed in to change notification settings - Fork 0
/
mediaModels.go
53 lines (42 loc) · 979 Bytes
/
mediaModels.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package models
import "github.com/nyudlts/bytemath"
type MediaModel int
const (
OpticalDisc MediaModel = iota
HardDiskDrive
)
var MediaSubTypes = map[MediaModel][]string{}
var MediaNames = map[MediaModel]string{
OpticalDisc: "Optical Disc",
HardDiskDrive: "Hard Disk Drive",
}
type MediaType struct {
Name string
Subtypes []string
}
func GetMediaTypes() map[MediaModel]MediaType {
mediaTypes := map[MediaModel]MediaType{}
for k, v := range MediaSubTypes {
mediaTypes[k] = MediaType{MediaNames[k], v}
}
return mediaTypes
}
var MediaUnit = []string{"B", "KB", "MB", "GB", "TB"}
var ByteMathSuffix = map[string]bytemath.Suffix{
"B": bytemath.B,
"KB": bytemath.KB,
"MB": bytemath.MB,
"GB": bytemath.GB,
"TB": bytemath.TB,
}
type SystemIdentifiers struct {
RepositoryID int
ResourceID int
AccessionID int
}
type Media interface {
GetMediaEntry() MediaEntry
GetIdentifiers() SystemIdentifiers
GetSizeInBytes() int64
GetHumanSize() string
}