forked from TrueCloudLab/frostfs-sdk-go
69 lines
1.6 KiB
Go
69 lines
1.6 KiB
Go
package object
|
|
|
|
import (
|
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/object"
|
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs"
|
|
oid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id"
|
|
)
|
|
|
|
type ECChunk object.ECChunk
|
|
|
|
func (c *ECChunk) SetID(id oid.ID) {
|
|
objV2 := new(refs.ObjectID)
|
|
id.WriteToV2(objV2)
|
|
c.ID = *objV2
|
|
}
|
|
|
|
// ToV2 converts ECChunk to v2 ECChunk message.
|
|
//
|
|
// Nil ECChunk converts to nil.
|
|
func (c *ECChunk) ToV2() *object.ECChunk {
|
|
return (*object.ECChunk)(c)
|
|
}
|
|
|
|
func NewECChunkFromV2(v2 *object.ECChunk) *ECChunk {
|
|
return (*ECChunk)(v2)
|
|
}
|
|
|
|
type ECInfo object.ECInfo
|
|
|
|
// NewECInfoFromV2 wraps v2 ECInfo message to ECInfo.
|
|
//
|
|
// Nil object.ECInfo converts to nil.
|
|
func NewECInfoFromV2(v2 *object.ECInfo) *ECInfo {
|
|
return (*ECInfo)(v2)
|
|
}
|
|
|
|
// NewECInfo creates and initializes blank ECInfo.
|
|
func NewECInfo() *ECInfo {
|
|
return NewECInfoFromV2(new(object.ECInfo))
|
|
}
|
|
|
|
// ToV2 converts ECInfo to v2 ECInfo message.
|
|
//
|
|
// Nil ECInfo converts to nil.
|
|
func (s *ECInfo) ToV2() *object.ECInfo {
|
|
return (*object.ECInfo)(s)
|
|
}
|
|
|
|
func (s *ECInfo) Marshal() ([]byte, error) {
|
|
return (*object.ECInfo)(s).StableMarshal(nil), nil
|
|
}
|
|
|
|
func (s *ECInfo) Unmarshal(data []byte) error {
|
|
return (*object.ECInfo)(s).Unmarshal(data)
|
|
}
|
|
|
|
// MarshalJSON implements json.Marshaler.
|
|
func (s *ECInfo) MarshalJSON() ([]byte, error) {
|
|
return (*object.ECInfo)(s).MarshalJSON()
|
|
}
|
|
|
|
// UnmarshalJSON implements json.Unmarshaler.
|
|
func (s *ECInfo) UnmarshalJSON(data []byte) error {
|
|
return (*object.ECInfo)(s).UnmarshalJSON(data)
|
|
}
|
|
|
|
func (s *ECInfo) AddChunk(chunk ECChunk) {
|
|
s.Chunks = append(s.Chunks, *chunk.ToV2())
|
|
}
|