Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2017 The LUCI Authors. All rights reserved. | |
| 2 // Use of this source code is governed under the Apache License, Version 2.0 | |
| 3 // that can be found in the LICENSE file. | |
| 4 | |
| 5 package model | |
| 6 | |
| 7 import ( | |
| 8 "bytes" | |
| 9 | |
| 10 ds "github.com/luci/gae/service/datastore" | |
| 11 "github.com/luci/luci-go/common/data/cmpbin" | |
| 12 ) | |
| 13 | |
| 14 // ManifestLink is an in-MILO link to a named source manifest. | |
| 15 type ManifestLink struct { | |
| 16 // The name of the manifest as the build annotated it. | |
| 17 Name string | |
| 18 | |
| 19 // The manifest ID (sha256). | |
| 20 ID []byte | |
| 21 } | |
| 22 | |
| 23 var _ ds.PropertyConverter = (*ManifestLink)(nil) | |
| 24 | |
| 25 // FromProperty implements ds.PropertyConverter | |
| 26 func (m *ManifestLink) FromProperty(p ds.Property) (err error) { | |
| 27 val, err := p.Project(ds.PTBytes) | |
| 28 if err != nil { | |
| 29 return err | |
| 30 } | |
| 31 buf := bytes.NewReader(val.([]byte)) | |
| 32 if m.Name, _, err = cmpbin.ReadString(buf); err != nil { | |
| 33 return | |
| 34 } | |
| 35 m.ID, _, err = cmpbin.ReadBytes(buf) | |
| 36 return | |
| 37 } | |
| 38 | |
| 39 // ToProperty implements ds.PropertyConverter | |
| 40 func (m *ManifestLink) ToProperty() (ds.Property, error) { | |
| 41 buf := bytes.NewBuffer(nil) | |
| 42 cmpbin.WriteString(buf, m.Name) | |
|
Ryan Tseng
2017/06/17 00:44:29
These functions return errors, should probably pro
iannucci
2017/06/17 01:30:04
They only return errors if the write returns an er
| |
| 43 cmpbin.WriteBytes(buf, m.ID) | |
| 44 return ds.MkProperty(buf.Bytes()), nil | |
| 45 } | |
| OLD | NEW |