p2panda_rs/schema/system/error.rs
1// SPDX-License-Identifier: AGPL-3.0-or-later
2
3use thiserror::Error;
4
5use crate::document::DocumentViewValue;
6
7/// Custom error types for system schema views.
8#[derive(Error, Debug)]
9pub enum SystemSchemaError {
10 /// Passed field type does not match the expected type.
11 #[error("invalid field \"{0}\" with value {1:#?}")]
12 InvalidField(String, DocumentViewValue),
13
14 /// Missing expected field.
15 #[error("missing field \"{0}\"")]
16 MissingField(String),
17
18 /// Additional field found.
19 #[error("additional field found")]
20 AdditionalFields,
21
22 /// Invalid field type found.
23 #[error("invalid field type")]
24 InvalidFieldType(#[from] crate::schema::error::FieldTypeError),
25}