use std::path::PathBuf;
use std::{error::Error, fmt};
#[path = "c3d.rs"]
pub mod c3d;
#[path = "data.rs"]
pub mod data;
#[path = "points.rs"]
pub mod points;
#[path = "analog.rs"]
pub mod analog;
#[path = "events.rs"]
pub mod events;
#[path = "manufacturer.rs"]
pub mod manufacturer;
#[path = "seg.rs"]
pub mod seg;
#[path = "forces.rs"]
pub mod forces;
#[path = "parameters.rs"]
pub mod parameters;
#[path = "processor.rs"]
mod processor;
#[path = "raw_parameters.rs"]
mod raw_parameters;
use events::Events;
use parameters::Parameters;
use processor::Processor;
use manufacturer::Manufacturer;
use seg::Seg;
use forces::Forces;
use points::Points;
use analog::Analog;
pub mod prelude {
pub use crate::{parameters::ParameterData, C3d, C3dParseError};
}
#[derive(Debug)]
pub enum C3dParseError {
ReadError(std::io::Error),
InsufficientBlocks(String),
InvalidHeaderStartBlock,
InvalidParameterStartBlock,
InvalidParameterData,
InvalidDataStartBlock,
InvalidProcessorType,
InvalidDataType,
InvalidParametersOffset,
MissingGroup(String),
MissingParameter(String),
UnknownPointFormat,
UnknownDataFormat,
InvalidGroupId,
MissingPointScale,
FileNotOpen,
NotEnoughData,
InvalidNextParameter,
TooManyEvents(i16),
NumFramesMismatch(usize, usize),
GroupNotFound(String),
ParameterNotFound(String, String),
RequiredParameterNotFound(String),
InvalidData(String),
InvalidParameterFormat(String),
AnalogOffsetScaleMismatch,
InsufficientAnalogOffsets,
InvalidParameterDimensions(String),
InvalidParameterType(String),
InvalidEventLabel(String, String),
MissingEventTime(usize),
MissingEventLabel(usize),
NumEventsMismatch(i16, i16),
NoParameterTimeEvents,
HeaderNotParsed,
}
impl Error for C3dParseError {}
impl fmt::Display for C3dParseError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "C3dParseError: {:?}", self)
}
}
#[derive(Debug, Default)]
pub struct C3d {
pub file_path: Option<PathBuf>,
pub parameters: Parameters,
processor: Processor,
pub points: Points,
pub analog: Analog,
pub events: Events,
pub manufacturer: Manufacturer,
pub seg: Seg,
pub forces: Forces,
}