smegmesh/pkg/automerge/types.go

27 lines
938 B
Go
Raw Normal View History

package automerge
2023-10-05 18:48:54 +02:00
// Route: Represents a CRDT of the given route
type Route struct {
Destination string `automerge:"destination"`
Path []string `automerge:"path"`
}
// MeshNodeCrdt: Represents a CRDT for a mesh nodes
2023-10-05 18:48:54 +02:00
type MeshNodeCrdt struct {
HostEndpoint string `automerge:"hostEndpoint"`
WgEndpoint string `automerge:"wgEndpoint"`
PublicKey string `automerge:"publicKey"`
WgHost string `automerge:"wgHost"`
Timestamp int64 `automerge:"timestamp"`
Routes map[string]Route `automerge:"routes"`
Alias string `automerge:"alias"`
Description string `automerge:"description"`
Services map[string]string `automerge:"services"`
Type string `automerge:"type"`
2023-10-05 18:48:54 +02:00
}
// MeshCrdt: Represents the mesh network as a whole
2023-10-05 18:48:54 +02:00
type MeshCrdt struct {
Nodes map[string]MeshNodeCrdt `automerge:"nodes"`
}