# 🌱 ACORN Library
[<img alt="gitlab" src="https://img.shields.io/badge/code.ornl.gov-research_enablement-00662C?style=for-the-badge&logo=gitlab&color=%2300662C
" height="20">](https://code.ornl.gov/research-enablement/acorn)
[<img alt="unsafe forbidden" src="https://img.shields.io/badge/unsafe-forbidden-00662C?style=for-the-badge&logo=rust" height="20">](https://github.com/rust-secure-code/safety-dance/)
[<img alt="crates.io" src="https://img.shields.io/crates/v/acorn-lib.svg?style=for-the-badge&color=fc8d62&logo=rust" height="20">](https://crates.io/crates/acorn-lib)
[<img alt="pipeline" src="https://code.ornl.gov/research-enablement/acorn/badges/main/pipeline.svg?style=flat-square">](https://code.ornl.gov/research-enablement/acorn/-/pipelines)
`acorn-lib` is a one-stop-shop for everything related to building and maintaining research activity data (RAD)-related technology, including the Accessible Content Optimization for Research Needs ([ACORN](https://acorn.ornl.gov)) tool.
The modules, structs, enums and constants found here support the ACORN CLI, which checks, analyzes, and exports research activity data into useable formats.
## Schema validation
Portable schema validation is owned and exported directly by `acorn-schema`:
```rust
use acorn_core::validation::ValidationError;
use acorn_schema::validation::{Validate, ValidationReport};
```
The derive macro continues to use `#[validate(...)]` attributes and resolves its implementation through `acorn-schema`. `ValidationReport` is a deterministic flat collection whose issue paths use forms such as `field.subfield[2]`. `acorn-lib` intentionally does not provide an `acorn::validation` compatibility module.