git.frostfs.info/TrueCloudLab/frostfs-sdk-go@v0.0.0-20241022124111-5361f0ecebd3/object/ecinfo.go (about) 1 package object 2 3 import ( 4 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/object" 5 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs" 6 oid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id" 7 ) 8 9 type ECChunk object.ECChunk 10 11 func (c *ECChunk) SetID(id oid.ID) { 12 objV2 := new(refs.ObjectID) 13 id.WriteToV2(objV2) 14 c.ID = *objV2 15 } 16 17 // ToV2 converts ECChunk to v2 ECChunk message. 18 // 19 // Nil ECChunk converts to nil. 20 func (c *ECChunk) ToV2() *object.ECChunk { 21 return (*object.ECChunk)(c) 22 } 23 24 func NewECChunkFromV2(v2 *object.ECChunk) *ECChunk { 25 return (*ECChunk)(v2) 26 } 27 28 type ECInfo object.ECInfo 29 30 // NewECInfoFromV2 wraps v2 ECInfo message to ECInfo. 31 // 32 // Nil object.ECInfo converts to nil. 33 func NewECInfoFromV2(v2 *object.ECInfo) *ECInfo { 34 return (*ECInfo)(v2) 35 } 36 37 // NewECInfo creates and initializes blank ECInfo. 38 func NewECInfo() *ECInfo { 39 return NewECInfoFromV2(new(object.ECInfo)) 40 } 41 42 // ToV2 converts ECInfo to v2 ECInfo message. 43 // 44 // Nil ECInfo converts to nil. 45 func (s *ECInfo) ToV2() *object.ECInfo { 46 return (*object.ECInfo)(s) 47 } 48 49 func (s *ECInfo) Marshal() ([]byte, error) { 50 return (*object.ECInfo)(s).StableMarshal(nil), nil 51 } 52 53 func (s *ECInfo) Unmarshal(data []byte) error { 54 return (*object.ECInfo)(s).Unmarshal(data) 55 } 56 57 // MarshalJSON implements json.Marshaler. 58 func (s *ECInfo) MarshalJSON() ([]byte, error) { 59 return (*object.ECInfo)(s).MarshalJSON() 60 } 61 62 // UnmarshalJSON implements json.Unmarshaler. 63 func (s *ECInfo) UnmarshalJSON(data []byte) error { 64 return (*object.ECInfo)(s).UnmarshalJSON(data) 65 } 66 67 func (s *ECInfo) AddChunk(chunk ECChunk) { 68 s.Chunks = append(s.Chunks, *chunk.ToV2()) 69 }