musicxml 1.1.2

MusicXML parsing, manipulation, and export library
Documentation
use super::{Millimeters, Tenths};
use alloc::{string::String, vec::Vec};
use musicxml_internal::*;
use musicxml_macros::*;

/// Contents of the [Scaling] element.
#[derive(Debug, PartialEq, Eq, ContentDeserialize, ContentSerialize)]
pub struct ScalingContents {
  /// The [Millimeters] element specifies the number of millimeters that are equivalent to the scaling number.
  pub millimeters: Millimeters,
  /// The [Tenths] element specifies the number of tenths that are equivalent to the scaling number.
  pub tenths: Tenths,
}

/// Margins, page sizes, and distances are all measured in tenths to keep MusicXML data in a consistent coordinate system as much as possible.
///
/// The translation to absolute units is done with the [Scaling] element, which specifies how many millimeters are equal to how many tenths.
/// For a staff height of 7 mm, [Millimeters] would be set to 7 while [Tenths] is set to 40. The ability to set a formula rather than a single scaling
/// factor helps avoid roundoff errors.
#[derive(Debug, PartialEq, Eq, ElementDeserialize, ElementSerialize)]
pub struct Scaling {
  /// Element-specific attributes
  pub attributes: (),
  #[flatten]
  /// Element-specific content
  pub content: ScalingContents,
}