// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
//! Family evaluation harnesses and the object-safe evaluator trait.
//!
//! Concrete functionals implement a per-family *energy* trait ([`lda::LdaEnergy`],
//! [`gga::GgaEnergy`]) carrying a generic scalar energy expression; the family
//! wrapper ([`lda::Lda`], [`gga::Gga`]) implements [`XcEval`] by running the
//! autodiff grid harness. This sidesteps the object-safety conflict of a generic
//! trait method while still permitting `Box<dyn XcEval>` runtime dispatch.
use crateXcError;
use crate;
use crate;
pub
pub
/// Object-safe evaluator: the runtime-dispatched form of a functional.
pub
/// Validate that `slice.len() == expected`.
pub