1
0
镜像自地址 https://github.com/tuna/tunasync.git 已同步 2025-12-06 14:36:47 +00:00

refactor: moved mirrorStatus back to manager

这个提交包含在:
bigeagle
2016-04-21 20:03:07 +08:00
父节点 96f38363ea
当前提交 ed69dde18e
共有 4 个文件被更改,包括 102 次插入65 次删除

66
internal/status.go 普通文件
查看文件

@@ -0,0 +1,66 @@
package internal
import (
"encoding/json"
"errors"
"fmt"
)
type SyncStatus uint8
const (
None SyncStatus = iota
Failed
Success
Syncing
PreSyncing
Paused
Disabled
)
func (s SyncStatus) MarshalJSON() ([]byte, error) {
var strStatus string
switch s {
case None:
strStatus = "none"
case Failed:
strStatus = "failed"
case Success:
strStatus = "success"
case Syncing:
strStatus = "syncing"
case PreSyncing:
strStatus = "pre-syncing"
case Paused:
strStatus = "paused"
case Disabled:
strStatus = "disabled"
default:
return []byte{}, errors.New("Invalid status value")
}
return json.Marshal(strStatus)
}
func (s *SyncStatus) UnmarshalJSON(v []byte) error {
sv := string(v)
switch sv {
case `"none"`:
*s = None
case `"failed"`:
*s = Failed
case `"success"`:
*s = Success
case `"syncing"`:
*s = Syncing
case `"pre-syncing"`:
*s = PreSyncing
case `"paused"`:
*s = Paused
case `"disabled"`:
*s = Disabled
default:
return fmt.Errorf("Invalid status value: %s", string(v))
}
return nil
}