From 746c25b1ba70b9770f971da739b4460d67990c89 Mon Sep 17 00:00:00 2001 From: Yehowshua Immanuel Date: Tue, 25 Oct 2022 21:32:22 -0400 Subject: [PATCH] change visibility of and rename Signal to SignalEnum --- src/vcd/parse/events.rs | 20 +++++------ src/vcd/parse/scopes.rs | 6 ++-- src/vcd/signal.rs | 32 ++++++++--------- src/vcd/types.rs | 76 ++++++++++++++++++++--------------------- 4 files changed, 67 insertions(+), 67 deletions(-) diff --git a/src/vcd/parse/events.rs b/src/vcd/parse/events.rs index 8475b4f..79418c0 100644 --- a/src/vcd/parse/events.rs +++ b/src/vcd/parse/events.rs @@ -116,7 +116,7 @@ pub(super) fn parse_events<'a>( let signal = vcd.dealiasing_signal_idx_to_signal_lookup_mut(signal_idx)?; match signal { - Signal::Data { + SignalEnum::Data { name, sig_type, ref mut signal_error, @@ -204,7 +204,7 @@ pub(super) fn parse_events<'a>( Ok(()) } } - Signal::Alias { .. } => { + SignalEnum::Alias { .. } => { let (f, l) = (file!(), line!()); let msg = format!( "Error near {f}:{l}, a signal alias should not point to a signal alias.\n\ @@ -229,7 +229,7 @@ pub(super) fn parse_events<'a>( let signal = vcd.dealiasing_signal_idx_to_signal_lookup_mut(signal_idx)?; match signal { - Signal::Data { + SignalEnum::Data { name, sig_type, ref mut signal_error, @@ -296,7 +296,7 @@ pub(super) fn parse_events<'a>( } Ok(()) } - Signal::Alias { .. } => { + SignalEnum::Alias { .. } => { let (f, l) = (file!(), line!()); let msg = format!( "Error near {f}:{l}, a signal alias should not point to a signal alias.\n\ @@ -320,7 +320,7 @@ pub(super) fn parse_events<'a>( let signal = vcd.dealiasing_signal_idx_to_signal_lookup_mut(signal_idx)?; match signal { - Signal::Data { + SignalEnum::Data { name, sig_type, ref mut signal_error, @@ -387,7 +387,7 @@ pub(super) fn parse_events<'a>( } Ok(()) } - Signal::Alias { .. } => { + SignalEnum::Alias { .. } => { let (f, l) = (file!(), line!()); let msg = format!( "Error near {f}:{l}, a signal alias should not point to a signal alias.\n\ @@ -413,7 +413,7 @@ pub(super) fn parse_events<'a>( let signal = vcd.dealiasing_signal_idx_to_signal_lookup_mut(signal_idx)?; match signal { - Signal::Data { + SignalEnum::Data { name, sig_type, ref mut signal_error, @@ -468,7 +468,7 @@ pub(super) fn parse_events<'a>( string_vals.push(val); Ok(()) } - Signal::Alias { .. } => { + SignalEnum::Alias { .. } => { let (f, l) = (file!(), line!()); let msg = format!( "Error near {f}:{l}, a signal alias should not point to a signal alias.\n\ @@ -492,7 +492,7 @@ pub(super) fn parse_events<'a>( let signal = vcd.dealiasing_signal_idx_to_signal_lookup_mut(signal_idx)?; match signal { - Signal::Data { + SignalEnum::Data { ref mut signal_error, string_vals, byte_len_of_string_tmstmp_vals_on_tmln, @@ -513,7 +513,7 @@ pub(super) fn parse_events<'a>( string_vals.push(val); Ok(()) } - Signal::Alias { .. } => { + SignalEnum::Alias { .. } => { let (f, l) = (file!(), line!()); let msg = format!( "Error near {f}:{l}, a signal alias should not point to a signal alias.\n\ diff --git a/src/vcd/parse/scopes.rs b/src/vcd/parse/scopes.rs index cab951d..406a4f0 100644 --- a/src/vcd/parse/scopes.rs +++ b/src/vcd/parse/scopes.rs @@ -95,7 +95,7 @@ pub(super) fn parse_var<'a>( let full_signal_name = full_signal_name.join(" "); let num_bytes = if num_bits.is_some() { - let bytes_required = Signal::bytes_required(num_bits.unwrap(), &full_signal_name)?; + let bytes_required = SignalEnum::bytes_required(num_bits.unwrap(), &full_signal_name)?; Some(bytes_required) } else { None @@ -107,7 +107,7 @@ pub(super) fn parse_var<'a>( let (signal, signal_idx) = match signal_map.get(&signal_alias) { Some(ref_signal_idx) => { let signal_idx = SignalIdx(vcd.all_signals.len()); - let signal = Signal::Alias { + let signal = SignalEnum::Alias { name: full_signal_name, signal_alias: *ref_signal_idx, }; @@ -116,7 +116,7 @@ pub(super) fn parse_var<'a>( None => { let signal_idx = SignalIdx(vcd.all_signals.len()); signal_map.insert(signal_alias.to_string(), signal_idx); - let signal = Signal::Data { + let signal = SignalEnum::Data { name: full_signal_name, sig_type: var_type, signal_error: None, diff --git a/src/vcd/signal.rs b/src/vcd/signal.rs index c32be24..7be10ac 100644 --- a/src/vcd/signal.rs +++ b/src/vcd/signal.rs @@ -30,7 +30,7 @@ pub(super) enum TimelineQueryResults { #[derive(Debug)] -pub enum Signal { +pub(super) enum SignalEnum { Data { name: String, sig_type: SigType, @@ -100,18 +100,18 @@ type TimeStamp = BigUint; type SignalValNum = BigUint; // getter functions -impl Signal { +impl SignalEnum { pub fn name(&self) -> String { match self { - Signal::Data { name, ..} => name, - Signal::Alias { name, .. } => name + SignalEnum::Data { name, ..} => name, + SignalEnum::Alias { name, .. } => name }.clone() } } // helper functions ultimately used by Signal's query functions later on -impl Signal { +impl SignalEnum { /// Computes the bytes required to store a signal's numerical value /// using the num_bits which another function would provide from /// the num_bits field of the Signal::Data variant. @@ -144,7 +144,7 @@ impl Signal { lsb_indxs_of_string_tmstmp_vals_on_tmln, byte_len_of_string_tmstmp_vals_on_tmln, ) = match self { - Signal::Data { + SignalEnum::Data { string_vals, lsb_indxs_of_string_tmstmp_vals_on_tmln, byte_len_of_string_tmstmp_vals_on_tmln, @@ -154,7 +154,7 @@ impl Signal { lsb_indxs_of_string_tmstmp_vals_on_tmln, byte_len_of_string_tmstmp_vals_on_tmln, )), - Signal::Alias { .. } => Err(SignalErrors::PointsToAlias), + SignalEnum::Alias { .. } => Err(SignalErrors::PointsToAlias), }?; // get index @@ -193,7 +193,7 @@ impl Signal { lsb_indxs_of_num_tmstmp_vals_on_tmln, byte_len_of_num_tmstmp_vals_on_tmln, ) = match self { - Signal::Data { + SignalEnum::Data { num_bytes, nums_encoded_as_fixed_width_le_u8, lsb_indxs_of_num_tmstmp_vals_on_tmln, @@ -205,7 +205,7 @@ impl Signal { lsb_indxs_of_num_tmstmp_vals_on_tmln, byte_len_of_num_tmstmp_vals_on_tmln, )), - Signal::Alias { .. } => Err(SignalErrors::PointsToAlias), + SignalEnum::Alias { .. } => Err(SignalErrors::PointsToAlias), }?; // get index @@ -234,12 +234,12 @@ impl Signal { // Function that take in a desired time on the timeline for a // specific signal and return a numerical or string value in a Result, // or an error in a Result. -impl Signal { +impl SignalEnum { pub fn query_string_val_on_tmln( &self, desired_time: &BigUint, tmstmps_encoded_as_u8s: &Vec, - all_signals: &Vec, + all_signals: &Vec, ) -> Result { let signal_idx = match self { Self::Data { self_idx, .. } => { @@ -263,7 +263,7 @@ impl Signal { // else we propagate Err(..). let (string_vals, lsb_indxs_of_string_tmstmp_vals_on_tmln) = match &all_signals[signal_idx] { - Signal::Data { + SignalEnum::Data { ref string_vals, ref lsb_indxs_of_string_tmstmp_vals_on_tmln, .. @@ -273,7 +273,7 @@ impl Signal { lsb_indxs_of_string_tmstmp_vals_on_tmln, )) } - Signal::Alias { .. } => Err(SignalErrors::PointsToAlias), + SignalEnum::Alias { .. } => Err(SignalErrors::PointsToAlias), }?; // this signal should at least have some events, otherwise, trying to index into // an empty vector later on would fail @@ -354,7 +354,7 @@ impl Signal { &self, desired_time: &BigUint, tmstmps_encoded_as_u8s: &Vec, - all_signals: &Vec, + all_signals: &Vec, ) -> Result { let signal_idx = match self { Self::Data { self_idx, .. } => { @@ -379,7 +379,7 @@ impl Signal { // else we propagate Err(..). let (nums_encoded_as_fixed_width_le_u8, lsb_indxs_of_num_tmstmp_vals_on_tmln, num_bytes) = match &all_signals[signal_idx] { - Signal::Data { + SignalEnum::Data { num_bytes, ref nums_encoded_as_fixed_width_le_u8, ref lsb_indxs_of_num_tmstmp_vals_on_tmln, @@ -394,7 +394,7 @@ impl Signal { num_bytes, )) } - Signal::Alias { .. } => Err(SignalErrors::PointsToAlias), + SignalEnum::Alias { .. } => Err(SignalErrors::PointsToAlias), }?; // this signal should at least have some events, otherwise, trying to index into // an empty vector later on would fail diff --git a/src/vcd/types.rs b/src/vcd/types.rs index ad56c3b..78c6748 100644 --- a/src/vcd/types.rs +++ b/src/vcd/types.rs @@ -2,7 +2,7 @@ // This program is distributed under both the GPLV3 license // and the YEHOWSHUA license, both of which can be found at // the root of the folder containing the sources for this program. -use super::Signal; +use super::SignalEnum; use chrono::prelude::*; #[derive(Debug)] @@ -58,7 +58,7 @@ pub struct VCD { // keep track of all timestamp values, a given signal only needs to keep // track of the timestamps at which the given signal value changes. pub(super) tmstmps_encoded_as_u8s: Vec, - pub(super) all_signals: Vec, + pub(super) all_signals: Vec, pub(super) all_scopes: Vec, pub(super) root_scopes: Vec, } @@ -90,23 +90,23 @@ impl VCD { pub(super) fn dealiasing_signal_idx_to_signal_lookup_mut<'a>( &'a mut self, idx: &SignalIdx, - ) -> Result<&'a mut Signal, String> { + ) -> Result<&'a mut SignalEnum, String> { // get the signal pointed to be SignalIdx from the arena let SignalIdx(idx) = idx; let signal = &self.all_signals[*idx]; // dereference signal if Signal::Alias, or keep idx if Signal::Data let signal_idx = match signal { - Signal::Data { self_idx, .. } => *self_idx, - Signal::Alias { name, signal_alias } => *signal_alias, + SignalEnum::Data { self_idx, .. } => *self_idx, + SignalEnum::Alias { name, signal_alias } => *signal_alias, }; // Should now point to Signal::Data variant, or else there's an error let SignalIdx(idx) = signal_idx; let signal = self.all_signals.get_mut(idx).unwrap(); match signal { - Signal::Data { .. } => Ok(signal), - Signal::Alias { .. } => Err(format!( + SignalEnum::Data { .. } => Ok(signal), + SignalEnum::Alias { .. } => Err(format!( "Error near {}:{}. A signal alias shouldn't \ point to a signal alias.", file!(), @@ -114,37 +114,37 @@ impl VCD { )), } } - /// Takes a signal_idx as input and returns the corresponding signal if the - /// corresponding signal is of the Signal::Data variant, else the function the - /// SignalIdx in the signal_alias field of Signal::Alias variant to index - /// into the signal arena in the all_signals field of the vcd, and returns - /// the resulting signal if that signal is a Signal::Data variant, else, - /// this function returns an Err. - pub fn try_signal_idx_to_signal<'a>( - &'a self, - idx: SignalIdx, - ) -> Result<&'a Signal, String> { - // get the signal pointed to be SignalIdx from the arena - let SignalIdx(idx) = idx; - let signal = &self.all_signals[idx]; + // Takes a signal_idx as input and returns the corresponding signal if the + // corresponding signal is of the Signal::Data variant, else the function the + // SignalIdx in the signal_alias field of Signal::Alias variant to index + // into the signal arena in the all_signals field of the vcd, and returns + // the resulting signal if that signal is a Signal::Data variant, else, + // this function returns an Err. + // pub fn try_signal_idx_to_signal<'a>( + // &'a self, + // idx: SignalIdx, + // ) -> Result<&'a Signal, String> { + // // get the signal pointed to be SignalIdx from the arena + // let SignalIdx(idx) = idx; + // let signal = &self.all_signals[idx]; - // dereference signal if Signal::Alias, or keep idx if Signal::Data - let signal_idx = match signal { - Signal::Data { self_idx, .. } => *self_idx, - Signal::Alias { name, signal_alias } => *signal_alias, - }; + // // dereference signal if Signal::Alias, or keep idx if Signal::Data + // let signal_idx = match signal { + // Signal::Data { self_idx, .. } => *self_idx, + // Signal::Alias { name, signal_alias } => *signal_alias, + // }; - // Should now point to Signal::Data variant, or else there's an error - let SignalIdx(idx) = signal_idx; - let signal = self.all_signals.get(idx).unwrap(); - match signal { - Signal::Data { .. } => Ok(signal), - Signal::Alias { .. } => Err(format!( - "Error near {}:{}. A signal alias shouldn't \ - point to a signal alias.", - file!(), - line!() - )), - } - } + // // Should now point to Signal::Data variant, or else there's an error + // let SignalIdx(idx) = signal_idx; + // let signal = self.all_signals.get(idx).unwrap(); + // match signal { + // Signal::Data { .. } => Ok(signal), + // Signal::Alias { .. } => Err(format!( + // "Error near {}:{}. A signal alias shouldn't \ + // point to a signal alias.", + // file!(), + // line!() + // )), + // } + // } }