Files
dolt/go/datas/commit.go
Erik Arvidsson 6ffe591329 Go: Change NewCommit API to take value and parents
This is in preparation for computing the commit type when it is
created and to do that we need to have the value and the parents.
2016-07-18 14:17:34 -07:00

53 lines
1.1 KiB
Go

// Copyright 2016 Attic Labs, Inc. All rights reserved.
// Licensed under the Apache License, version 2.0:
// http://www.apache.org/licenses/LICENSE-2.0
package datas
import "github.com/attic-labs/noms/go/types"
var commitType *types.Type
var refOfCommitType *types.Type
const (
ParentsField = "parents"
ValueField = "value"
)
func init() {
// struct Commit {
// parents: Set<Ref<Commit>>
// value: Value
// }
commitType = types.MakeStructType("Commit",
[]string{ParentsField, ValueField},
[]*types.Type{
types.MakeSetType(types.MakeRefType(types.MakeCycleType(0))),
types.ValueType,
},
)
refOfCommitType = types.MakeRefType(commitType)
}
func NewCommit(value types.Value, parents types.Set) types.Struct {
return types.NewStructWithType(commitType, types.ValueSlice{parents, value})
}
func typeForMapOfStringToRefOfCommit() *types.Type {
return types.MakeMapType(types.StringType, refOfCommitType)
}
func NewMapOfStringToRefOfCommit() types.Map {
return types.NewMap()
}
func typeForSetOfRefOfCommit() *types.Type {
return types.MakeSetType(refOfCommitType)
}
func CommitType() *types.Type {
return commitType
}