Logging + config tweaks
This commit is contained in:
@@ -99,7 +99,7 @@ pub struct FieldSpec {
|
||||
pub r#type: FieldType,
|
||||
|
||||
/// How to find this field in a data entry
|
||||
pub path: OneOrMany<ObjectPath>,
|
||||
pub path: Vec<ObjectPath>,
|
||||
|
||||
/// How to post-process this field
|
||||
#[serde(default)]
|
||||
|
||||
@@ -1,33 +1,9 @@
|
||||
use core::slice;
|
||||
use std::fmt::{Debug, Display};
|
||||
use std::ops::Deref;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
use smartstring::{LazyCompact, SmartString};
|
||||
|
||||
#[derive(Debug, Clone, Deserialize)]
|
||||
#[serde(untagged)]
|
||||
pub enum OneOrMany<T: Debug + Clone> {
|
||||
One(T),
|
||||
Many(Vec<T>),
|
||||
}
|
||||
|
||||
impl<T: Debug + Clone> OneOrMany<T> {
|
||||
pub fn to_vec(self) -> Vec<T> {
|
||||
match self {
|
||||
Self::One(x) => vec![x],
|
||||
Self::Many(x) => x,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn as_slice(&self) -> &[T] {
|
||||
match self {
|
||||
Self::One(x) => slice::from_ref(x),
|
||||
Self::Many(x) => &x[..],
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// MARK: Label
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user