-
Notifications
You must be signed in to change notification settings - Fork 9
/
options.go
95 lines (76 loc) · 1.91 KB
/
options.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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package awos
import "time"
type putOptions struct {
contentType string
contentEncoding *string
contentDisposition *string
cacheControl *string
expires *time.Time
}
type PutOptions func(options *putOptions)
func PutWithContentType(contentType string) PutOptions {
return func(options *putOptions) {
options.contentType = contentType
}
}
func PutWithContentEncoding(contentEncoding string) PutOptions {
return func(options *putOptions) {
options.contentEncoding = &contentEncoding
}
}
func PutWithContentDisposition(contentDisposition string) PutOptions {
return func(options *putOptions) {
options.contentDisposition = &contentDisposition
}
}
func PutWithCacheControl(cacheControl string) PutOptions {
return func(options *putOptions) {
options.cacheControl = &cacheControl
}
}
func PutWithExpireTime(expires time.Time) PutOptions {
return func(options *putOptions) {
options.expires = &expires
}
}
func DefaultPutOptions() *putOptions {
return &putOptions{
contentType: "text/plain",
}
}
type getOptions struct {
contentType *string
contentEncoding *string
enableCRCValidation bool
}
func DefaultGetOptions() *getOptions {
return &getOptions{}
}
type GetOptions func(options *getOptions)
func GetWithContentType(contentType string) GetOptions {
return func(options *getOptions) {
options.contentType = &contentType
}
}
func GetWithContentEncoding(contentEncoding string) GetOptions {
return func(options *getOptions) {
options.contentEncoding = &contentEncoding
}
}
func EnableCRCValidation() GetOptions {
return func(options *getOptions) {
options.enableCRCValidation = true
}
}
type SignOptions func(options *signOptions)
func SignWithProcess(process string) SignOptions {
return func(options *signOptions) {
options.process = &process
}
}
type signOptions struct {
process *string
}
func DefaultSignOptions() *signOptions {
return &signOptions{}
}