diff options
Diffstat (limited to 'bug/op_set_title.go')
-rw-r--r-- | bug/op_set_title.go | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/bug/op_set_title.go b/bug/op_set_title.go index 74467ec2..fd964a30 100644 --- a/bug/op_set_title.go +++ b/bug/op_set_title.go @@ -27,7 +27,23 @@ func (op *SetTitleOperation) Hash() (git.Hash, error) { func (op *SetTitleOperation) Apply(snapshot *Snapshot) { snapshot.Title = op.Title - snapshot.Timeline = append(snapshot.Timeline, op) + + hash, err := op.Hash() + if err != nil { + // Should never error unless a programming error happened + // (covered in OpBase.Validate()) + panic(err) + } + + item := &SetTitleTimelineItem{ + hash: hash, + Author: op.Author, + UnixTime: Timestamp(op.UnixTime), + Title: op.Title, + Was: op.Was, + } + + snapshot.Timeline = append(snapshot.Timeline, item) } func (op *SetTitleOperation) Validate() error { @@ -66,6 +82,18 @@ func NewSetTitleOp(author Person, unixTime int64, title string, was string) *Set } } +type SetTitleTimelineItem struct { + hash git.Hash + Author Person + UnixTime Timestamp + Title string + Was string +} + +func (s SetTitleTimelineItem) Hash() git.Hash { + return s.hash +} + // Convenience function to apply the operation func SetTitle(b Interface, author Person, unixTime int64, title string) error { it := NewOperationIterator(b) |