mentat/db
Richard Newman b2e98f44f6
Generalize Entity by value type. (#701) (#691) r=rnewman
* Part 3: Parameterize Entity by value type.

This isn't quite right, because after parsing, we shouldn't care
about` `edn::ValueAndSpan`, we should care only about edn::Value.
However, I think we can drop `ValueAndSpan` entirely if we just use
`rust-peg` (and its simpler error messages) rather than a mix of
`rust-peg` and `combine`.

In any case, this paves the way to transacting `Entity<TypedValue>`,
which is a nice step towards building general entities.

* Part 1: Add AttributePlace.

* Part 2: Name other places EntityPlace and ValuePlace.

Now we're consistent and closer to self-documenting.  Both matter more
as we expose `Entity` as the thing to build for programmatic usage.

* Part 4: Allow Ident and TempId in ValuePlace.

The parser will never produce these, since determining whether an
integer/keyword or string is an ident or a tempid, respectively, in
the value place requires the schema.

But a builder that produces `Entity` instances directly will want to
produce these.
2018-05-15 00:43:07 -07:00
..
src Generalize Entity by value type. (#701) (#691) r=rnewman 2018-05-15 00:43:07 -07:00
tests Combine NamespacedKeyword and Keyword. (#689) r=nalexander 2018-05-11 09:52:17 -07:00
Cargo.toml Add type checking and constraint checking to the transactor. (#663, #532, #679) 2018-05-14 15:22:45 -07:00
README.md Start installing SQL schema. (#171) r=rnewman 2017-01-25 16:13:56 -08:00

This sub-crate implements the SQLite database layer: installing, managing, and migrating forward the SQL schema underlying the datom store.