/
proto_catalog.go
50 lines (41 loc) · 1.19 KB
/
proto_catalog.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
package rms
import (
"math"
"github.com/insolar/assured-ledger/ledger-core/vanilla/throw"
)
func (m CatalogEntry) GetBodyAndPayloadSizes() (bodySize int, payloadSize int) {
bodySize = int(m.BodyPayloadSizes&math.MaxUint32)
payloadSize = int(m.BodyPayloadSizes>>32)
return
}
func (m *CatalogEntry) SetBodySize(bodySize int) {
switch {
case bodySize < 0:
panic(throw.IllegalValue())
case bodySize > math.MaxUint32:
panic(throw.IllegalValue())
}
m.BodyPayloadSizes = uint64(bodySize) | (m.BodyPayloadSizes &^ math.MaxUint32)
}
func (m *CatalogEntry) SetPayloadSize(payloadSize int) {
switch {
case payloadSize < 0:
panic(throw.IllegalValue())
case payloadSize > math.MaxUint32:
panic(throw.IllegalValue())
}
m.BodyPayloadSizes = (uint64(payloadSize)<<32) | (m.BodyPayloadSizes & math.MaxUint32)
}
func (m *CatalogEntry) SetBodyAndPayloadSizes(bodySize int, payloadSize int) {
switch {
case bodySize < 0:
panic(throw.IllegalValue())
case bodySize > math.MaxUint32:
panic(throw.IllegalValue())
case payloadSize < 0:
panic(throw.IllegalValue())
case payloadSize > math.MaxUint32:
panic(throw.IllegalValue())
}
m.BodyPayloadSizes = uint64(bodySize) | (uint64(payloadSize)<<32)
}