Skip to content
/ jay Public

๐Ÿด immutable json expressions, structural equality and lenses in pony

License

Notifications You must be signed in to change notification settings

patroclos/jay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

jay

๐Ÿš‚๐Ÿš‹๐Ÿš‹๐Ÿš‹๐Ÿš‹๐Ÿš‹
immutable json expressions, structural equality and lenses in pony

Objects

let data = JObj
	+ ("key", I64(1))
	+ ("value", JObj
		+ ("name", "jay")
		+ ("version", "1.0.0")
		+ ("release", true)
		+ ("null", None)
		+ ("dependencies", JArr + "json") 
	  )
{
	"key": 1,
	"value": {
		"name": "jay",
		"version": "1.0.0",
		"release": true,
		"null": null,
		"dependencies": ["json"]
	}
}

Arrays

let array = JArr
	+ "string"
	+ I64(123)
	+ F64(22.7)
	+ true
	+ None
	+ (JObj + ("test", "value"))
["string", 123, 22.7, true, null, {"test": "value"}]

Lenses

let lens = JLens("value")("version") / JLens(USize(2))
assert_eq(lens.json(data), "1.0.0")
assert_eq(lens.json(array), F64(22.7))

About

๐Ÿด immutable json expressions, structural equality and lenses in pony

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages