1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
use crate::samplic::{ Curve, Measurement, MeasurementMetadata, MeasurementResults, ProfileDescription, Sample, SampleMetadata, }; use crate::Result; use indexmap::IndexSet; use uuid::Uuid; pub trait StorableDevice { fn store_user_profile( &mut self, profile_id: Uuid, profile: &ProfileDescription, ) -> Result<()>; fn store_measurement_metadata( &mut self, sample_id: Uuid, measurement_index: usize, metadata: &MeasurementMetadata, ) -> Result<()>; fn store_results( &mut self, sample_id: Uuid, measurement_index: usize, results: &MeasurementResults, ) -> Result<()>; fn store_curve( &mut self, sample_id: Uuid, measurement_index: usize, curve_id: &str, curve: &Curve, ) -> Result<()>; fn store_measurement( &mut self, sample_id: Uuid, measurement_index: usize, measurement: &Measurement, ) -> Result<()>; fn store_sample_metadata( &mut self, sample_id: Uuid, metadata: &SampleMetadata, ) -> Result<()>; fn store_sample( &mut self, sample_id: Uuid, sample: &Sample, ) -> Result<()>; fn store_sample_index(&mut self, index: &IndexSet<Uuid>) -> Result<()>; }