enso/.github
Kaz Wesley a3914f33c1
API for storing metadata (#3291)
API for storing metadata.

See: https://www.pivotaltracker.com/story/show/181149277

# Important Notes
**New APIs**:
- Storing metadata is implemented with `profiler::MetadataLogger`.
- A full metadata storage/retrieval example is in [the top-level doctests](https://github.com/enso-org/enso/blob/wip/kw/profiling-metadata-api/lib/rust/profiler/data/src/lib.rs) for profiler::data, a crate which implements an API for profiling data consumers (it abstracts away the low-level details of the event log, and checks its invariants in the process) [after review of this new API here I'll open a PR to add it to the design doc].

**Implementation**:
- `profiler::Event` is parameterized by a metadata type, so that different types of metadata can be dependency-injected into it.
- A data consumer defines its metadata type as an enum of all the kinds of metadata it is interested in.
- Producing the metadata enum is accomplished without defining its type (which would require dependencies from around the app): A `MetadataLogger` internally use a serialization helper `Variant` to serialize its variant of the metadata enum without knowledge of the other possible variants.

**Performance impact**: still in the low ns/measurement range, comparable to pushing to a vec.

*Note*: `LocalVecBuilder` is currently present under the name `Log`, which is accurate but probably too overloaded. I'd like to find the right name for it, document it with examples, and move it to its own crate under data-structures, but I don't want doing that to hold up this PR.
2022-02-28 09:55:56 +00:00
..
ISSUE_TEMPLATE Update bug-report.md 2021-06-17 15:57:42 +02:00
workflows [CI] Fix for the nightly workflow. 2022-02-21 22:34:34 +01:00
CODEOWNERS API for storing metadata (#3291) 2022-02-28 09:55:56 +00:00
mergify.yml [Prettier] Fixed whitespace the in Mergify configuration 2022-02-21 12:06:44 +01:00
PULL_REQUEST_TEMPLATE.md New PR template (#3275) 2022-02-15 16:59:13 +01:00
settings.yml Introduce Mergify tool and a label to enable it per PR. (#3284) 2022-02-17 16:33:27 +01:00