mentat/edn
Nick Alexander 1cb1847aa6 Part 5: Make existing TermBuilder actually build Entity instances.
There are a few tricky details to call out here.  The first is the
`TransactableValueMarker` trait.  This is strictly a marker (like
`Sized`, for example) to give some control over what types can be used
as value types in `Entity` instances.  This expression is needed due
to the network of `Into` and `From` relations between the parts of
valid `Entity` instances.  This allows to drop the `IntoThing`
work-around trait and use the established patterns.  (Observe that
`KnownEntid` makes this a little harder, due to the cross-crate
consistency restrictions.)

The second is that we can get rid `{add,retract}_kw`, since the
network of relations expresses the coercions directly.

The third is that this commit doesn't change the name `TermBuilder`,
even though it is now building `Entity` instances.  This is because
there's _already_ an `EntityBuilder` which fixes the `EntityPlace`.
It's not clear whether the existing entity building interface should
be removed or whether both should be renamed.  That can be follow-up.
2018-07-05 16:33:51 -07:00
..
src Part 5: Make existing TermBuilder actually build Entity instances. 2018-07-05 16:33:51 -07:00
tests Review comments. 2018-06-04 15:21:27 -07:00
build.rs Implement a basic EDN parser. (#149) r=rnewman,bgrins,nalexander 2017-01-11 13:03:04 -08:00
Cargo.toml Combine NamespacedKeyword and Keyword. (#689) r=nalexander 2018-05-11 09:52:17 -07:00
README.md Update README for edn; r=me 2017-02-16 18:32:36 +00:00

This crate implements a basic EDN parser for Project Mentat.

It was originally developed as a separate project called barnardsstar.