コード例 #1
0
ファイル: map.go プロジェクト: utamaro/gogotelehash
func PartsFromHeader(h *lob.Header) (Parts, error) {
	if h.IsZero() {
		return nil, nil
	}

	y := make(Parts, len(h.Extra))
	for k, v := range h.Extra {
		if len(k) != 2 {
			return nil, ErrInvalidParts
		}

		s, ok := v.(string)
		if !ok || s == "" {
			return nil, ErrInvalidParts
		}

		csid, err := hex.DecodeString(k)
		if err != nil {
			return nil, ErrInvalidParts
		}

		if len(s) != 52 {
			return nil, ErrInvalidParts
		}

		y[csid[0]] = s
	}

	return y, nil
}
コード例 #2
0
ファイル: map.go プロジェクト: utamaro/gogotelehash
func (k Keys) ApplyToHeader(h *lob.Header) {
	for csid, v := range k {
		h.Set(hex.EncodeToString([]byte{csid}), v.String())
	}
}
コード例 #3
0
ファイル: map.go プロジェクト: utamaro/gogotelehash
func (p Parts) ApplyToHeader(h *lob.Header) {
	for k, v := range p {
		h.Set(hex.EncodeToString([]byte{k}), v)
	}
}