Skip to content

idawes/metago

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Metago

A meta-language for building Go types with some interesting built in functionality:

  • Forwards and backwards compatibility through statically assigned type and attribute identifiers
  • A form of subtyping polymorphism
  • Self-differencing: err, d = a.Diff(b) produces a record of the differences between two objects of the same type
  • Self-patching: err = a.Apply(d) where d is a difference record generated by a.Diff(b) will transform a into b
  • Compact and efficient binary serialization/deserialization of both objects and difference records to io.Writer/io.Reader

Docs: GoDoc

views views 24h

About

Diffable objects in Go

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages