From f6b7c9f0e53ea5e189ee52e1c868de8a1a64fb0c Mon Sep 17 00:00:00 2001 From: Sydonian <794346190@qq.com> Date: Wed, 6 Dec 2023 16:23:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=B0=83=E8=AF=95=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sdks/storage/models.go | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/sdks/storage/models.go b/sdks/storage/models.go index a244364..12647bf 100644 --- a/sdks/storage/models.go +++ b/sdks/storage/models.go @@ -5,7 +5,6 @@ import ( "fmt" "gitlink.org.cn/cloudream/common/pkgs/types" - myreflect "gitlink.org.cn/cloudream/common/utils/reflect" "gitlink.org.cn/cloudream/common/utils/serder" ) @@ -33,19 +32,12 @@ type Redundancy interface { driver.Valuer } -type RedundancyBase struct{} - -func (b *RedundancyBase) Value() (driver.Value, error) { - return serder.ObjectToJSONEx[Redundancy](b) -} - var RedundancyUnion = serder.UseTypeUnionInternallyTagged(types.Ref(types.NewTypeUnion[Redundancy]( (*RepRedundancy)(nil), (*ECRedundancy)(nil), )), "type") type RepRedundancy struct { - RedundancyBase serder.Metadata `union:"rep"` Type string `json:"type"` } @@ -55,9 +47,11 @@ func NewRepRedundancy() *RepRedundancy { Type: "rep", } } +func (b *RepRedundancy) Value() (driver.Value, error) { + return serder.ObjectToJSONEx[Redundancy](b) +} type ECRedundancy struct { - RedundancyBase serder.Metadata `union:"ec"` Type string `json:"type"` K int `json:"k"` @@ -73,6 +67,9 @@ func NewECRedundancy(k int, n int, chunkSize int) *ECRedundancy { ChunkSize: chunkSize, } } +func (b *ECRedundancy) Value() (driver.Value, error) { + return serder.ObjectToJSONEx[Redundancy](b) +} const ( PackageStateNormal = "Normal" @@ -95,21 +92,6 @@ type Object struct { Redundancy Redundancy `db:"Redundancy" json:"redundancy"` } -func (i *Object) Scan(src interface{}) error { - data, ok := src.([]uint8) - if !ok { - return fmt.Errorf("unknow src type: %v", myreflect.TypeOfValue(data)) - } - - obj, err := serder.JSONToObjectEx[*Object](data) - if err != nil { - return err - } - - *i = *obj - return nil -} - type NodePackageCachingInfo struct { NodeID NodeID `json:"nodeID"` FileSize int64 `json:"fileSize"`