@@ -47,7 +47,7 @@ func mapError(err C.PossumError) error {
47
47
return Error {pec : err }
48
48
}
49
49
50
- type Stat = C.PossumStat
50
+ type Stat C.PossumStat
51
51
52
52
func (me Stat ) LastUsed () time.Time {
53
53
ts := me .last_used
@@ -58,6 +58,10 @@ func (me Stat) Size() int64 {
58
58
return int64 (me .size )
59
59
}
60
60
61
+ func (me * Stat ) AsCPtr () * C.PossumStat {
62
+ return (* C .PossumStat )(unsafe .Pointer (me ))
63
+ }
64
+
61
65
type Handle = C.PossumHandle
62
66
63
67
func NewHandle (dir string ) * Handle {
@@ -72,7 +76,7 @@ func DropHandle(handle *Handle) {
72
76
}
73
77
74
78
func SingleDelete (handle * Handle , key string ) (opt generics.Option [Stat ], err error ) {
75
- pe := C .possum_single_delete (handle , BufFromString (key ), & opt .Value )
79
+ pe := C .possum_single_delete (handle , BufFromString (key ), opt .Value . AsCPtr () )
76
80
switch pe {
77
81
case C .NoError :
78
82
opt .Ok = true
@@ -87,7 +91,7 @@ func SingleStat(handle *Handle, key string) (opt generics.Option[Stat]) {
87
91
opt .Ok = bool (C .possum_single_stat (
88
92
handle ,
89
93
BufFromString (key ),
90
- & opt .Value ,
94
+ opt .Value . AsCPtr () ,
91
95
))
92
96
return
93
97
}
@@ -114,7 +118,7 @@ func goListItems(items *C.PossumItem, itemsLen C.size_t) (goItems []Item) {
114
118
C .int (from .key .size ),
115
119
)
116
120
C .free (unsafe .Pointer (from .key .ptr ))
117
- to .Stat = from .stat
121
+ to .Stat = Stat ( from .stat )
118
122
}
119
123
C .free (unsafe .Pointer (items ))
120
124
return
@@ -207,7 +211,7 @@ func ValueReadAt(v Value, buf []byte, offset int64) (n int, err error) {
207
211
}
208
212
209
213
func ValueStat (v Value ) (ret Stat ) {
210
- C .possum_value_stat (v , & ret )
214
+ C .possum_value_stat (v , ret . AsCPtr () )
211
215
return
212
216
}
213
217
0 commit comments