Struct jsonapi::api::JsonApiDocument
[−]
[src]
pub struct JsonApiDocument {
pub data: Option<PrimaryData>,
pub included: Option<Resources>,
pub links: Option<Links>,
pub meta: Option<Meta>,
pub errors: Option<JsonApiErrors>,
pub jsonapi: Option<JsonApiInfo>,
}The specification refers to this as a top-level document
Fields
data: Option<PrimaryData>
included: Option<Resources>
links: Option<Links>
meta: Option<Meta>
errors: Option<JsonApiErrors>
jsonapi: Option<JsonApiInfo>
Methods
impl JsonApiDocument[src]
Top-level JSON-API Document
fn is_valid(&self) -> bool
This function returns false if the JsonApiDocument contains any violations of the
specification. See DocumentValidationError
The spec dictates that the document must have least one of data, errors or meta.
Of these, data and errors must not co-exist.
The optional field included may only be present if the data field is present too.
use jsonapi::api::{JsonApiDocument, PrimaryData, JsonApiErrors}; let doc = JsonApiDocument { data: Some(PrimaryData::None), errors: Some(JsonApiErrors::new()), ..Default::default() }; assert_eq!(doc.is_valid(), false);
fn validate(&self) -> Option<Vec<DocumentValidationError>>
This function returns a Vec with identified specification violations enumerated in
DocumentValidationError
use jsonapi::api::{JsonApiDocument, PrimaryData, JsonApiErrors, DocumentValidationError}; let doc = JsonApiDocument { data: Some(PrimaryData::None), errors: Some(JsonApiErrors::new()), ..Default::default() }; match doc.validate() { Some(errors) => { assert!( errors.contains( &DocumentValidationError::DataWithErrors ) ) } None => assert!(false) }
fn from_str(s: &str) -> Result<Self, Error>
Instantiate from string
use jsonapi::api::JsonApiDocument; let serialized = r#"{ "data" : [ { "id":"1", "type":"post", "attributes":{}, "relationships":{}, "links" :{} }, { "id":"2", "type":"post", "attributes":{}, "relationships":{}, "links" :{} }, { "id":"3", "type":"post", "attributes":{}, "relationships":{}, "links" :{} } ] }"#; let doc = JsonApiDocument::from_str(&serialized); assert_eq!(doc.is_ok(), true);
Trait Implementations
impl Debug for JsonApiDocument[src]
impl Clone for JsonApiDocument[src]
fn clone(&self) -> JsonApiDocument
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0
Performs copy-assignment from source. Read more
impl PartialEq for JsonApiDocument[src]
fn eq(&self, __arg_0: &JsonApiDocument) -> bool
This method tests for self and other values to be equal, and is used by ==. Read more
fn ne(&self, __arg_0: &JsonApiDocument) -> bool
This method tests for !=.
impl Default for JsonApiDocument[src]
fn default() -> JsonApiDocument
Returns the "default value" for a type. Read more