musicxml 1.1.2

MusicXML parsing, manipulation, and export library
Documentation
use super::{Creator, Encoding, Miscellaneous, Relation, Rights, Source};
use alloc::{string::String, vec::Vec};
use musicxml_internal::*;
use musicxml_macros::*;

/// Contents of the [Identification] element.
#[derive(Debug, Default, PartialEq, Eq, ContentDeserialize, ContentSerialize)]
pub struct IdentificationContents {
  /// The [Creator] element specifies the creator of the score.
  pub creator: Vec<Creator>,
  /// The [Rights] element specifies the rights of the score.
  pub rights: Vec<Rights>,
  /// The [Encoding] element specifies the encoding of the score.
  pub encoding: Option<Encoding>,
  /// The [Source] element specifies the source of the score.
  pub source: Option<Source>,
  /// The [Relation] element specifies the relation of the score.
  pub relation: Vec<Relation>,
  /// The [Miscellaneous] element contains any other metadata about the score.
  pub miscellaneous: Option<Miscellaneous>,
}

/// The [Identification] element contains basic metadata about the score.
///
/// It includes information that may apply at a score-wide, movement-wide, or part-wide level. The [Creator], [Rights], [Source],
/// and [Relation] elements are based on [Dublin Core](https://www.dublincore.org/specifications/dublin-core/dcmi-terms/).
#[derive(Debug, PartialEq, Eq, ElementDeserialize, ElementSerialize)]
pub struct Identification {
  /// Element-specific attributes
  pub attributes: (),
  #[flatten]
  /// Element-specific content
  pub content: IdentificationContents,
}