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  }