Refactor signal #6
|
@ -116,7 +116,7 @@ pub(super) fn parse_events<'a>(
|
||||||
let signal = vcd.dealiasing_signal_idx_to_signal_lookup_mut(signal_idx)?;
|
let signal = vcd.dealiasing_signal_idx_to_signal_lookup_mut(signal_idx)?;
|
||||||
|
|
||||||
match signal {
|
match signal {
|
||||||
Signal::Data {
|
SignalEnum::Data {
|
||||||
name,
|
name,
|
||||||
sig_type,
|
sig_type,
|
||||||
ref mut signal_error,
|
ref mut signal_error,
|
||||||
|
@ -204,7 +204,7 @@ pub(super) fn parse_events<'a>(
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Signal::Alias { .. } => {
|
SignalEnum::Alias { .. } => {
|
||||||
let (f, l) = (file!(), line!());
|
let (f, l) = (file!(), line!());
|
||||||
let msg = format!(
|
let msg = format!(
|
||||||
"Error near {f}:{l}, a signal alias should not point to a signal alias.\n\
|
"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)?;
|
let signal = vcd.dealiasing_signal_idx_to_signal_lookup_mut(signal_idx)?;
|
||||||
|
|
||||||
match signal {
|
match signal {
|
||||||
Signal::Data {
|
SignalEnum::Data {
|
||||||
name,
|
name,
|
||||||
sig_type,
|
sig_type,
|
||||||
ref mut signal_error,
|
ref mut signal_error,
|
||||||
|
@ -296,7 +296,7 @@ pub(super) fn parse_events<'a>(
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
Signal::Alias { .. } => {
|
SignalEnum::Alias { .. } => {
|
||||||
let (f, l) = (file!(), line!());
|
let (f, l) = (file!(), line!());
|
||||||
let msg = format!(
|
let msg = format!(
|
||||||
"Error near {f}:{l}, a signal alias should not point to a signal alias.\n\
|
"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)?;
|
let signal = vcd.dealiasing_signal_idx_to_signal_lookup_mut(signal_idx)?;
|
||||||
|
|
||||||
match signal {
|
match signal {
|
||||||
Signal::Data {
|
SignalEnum::Data {
|
||||||
name,
|
name,
|
||||||
sig_type,
|
sig_type,
|
||||||
ref mut signal_error,
|
ref mut signal_error,
|
||||||
|
@ -387,7 +387,7 @@ pub(super) fn parse_events<'a>(
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
Signal::Alias { .. } => {
|
SignalEnum::Alias { .. } => {
|
||||||
let (f, l) = (file!(), line!());
|
let (f, l) = (file!(), line!());
|
||||||
let msg = format!(
|
let msg = format!(
|
||||||
"Error near {f}:{l}, a signal alias should not point to a signal alias.\n\
|
"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)?;
|
let signal = vcd.dealiasing_signal_idx_to_signal_lookup_mut(signal_idx)?;
|
||||||
|
|
||||||
match signal {
|
match signal {
|
||||||
Signal::Data {
|
SignalEnum::Data {
|
||||||
name,
|
name,
|
||||||
sig_type,
|
sig_type,
|
||||||
ref mut signal_error,
|
ref mut signal_error,
|
||||||
|
@ -468,7 +468,7 @@ pub(super) fn parse_events<'a>(
|
||||||
string_vals.push(val);
|
string_vals.push(val);
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
Signal::Alias { .. } => {
|
SignalEnum::Alias { .. } => {
|
||||||
let (f, l) = (file!(), line!());
|
let (f, l) = (file!(), line!());
|
||||||
let msg = format!(
|
let msg = format!(
|
||||||
"Error near {f}:{l}, a signal alias should not point to a signal alias.\n\
|
"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)?;
|
let signal = vcd.dealiasing_signal_idx_to_signal_lookup_mut(signal_idx)?;
|
||||||
|
|
||||||
match signal {
|
match signal {
|
||||||
Signal::Data {
|
SignalEnum::Data {
|
||||||
ref mut signal_error,
|
ref mut signal_error,
|
||||||
string_vals,
|
string_vals,
|
||||||
byte_len_of_string_tmstmp_vals_on_tmln,
|
byte_len_of_string_tmstmp_vals_on_tmln,
|
||||||
|
@ -513,7 +513,7 @@ pub(super) fn parse_events<'a>(
|
||||||
string_vals.push(val);
|
string_vals.push(val);
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
Signal::Alias { .. } => {
|
SignalEnum::Alias { .. } => {
|
||||||
let (f, l) = (file!(), line!());
|
let (f, l) = (file!(), line!());
|
||||||
let msg = format!(
|
let msg = format!(
|
||||||
"Error near {f}:{l}, a signal alias should not point to a signal alias.\n\
|
"Error near {f}:{l}, a signal alias should not point to a signal alias.\n\
|
||||||
|
|
|
@ -95,7 +95,7 @@ pub(super) fn parse_var<'a>(
|
||||||
let full_signal_name = full_signal_name.join(" ");
|
let full_signal_name = full_signal_name.join(" ");
|
||||||
|
|
||||||
let num_bytes = if num_bits.is_some() {
|
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)
|
Some(bytes_required)
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
|
@ -107,7 +107,7 @@ pub(super) fn parse_var<'a>(
|
||||||
let (signal, signal_idx) = match signal_map.get(&signal_alias) {
|
let (signal, signal_idx) = match signal_map.get(&signal_alias) {
|
||||||
Some(ref_signal_idx) => {
|
Some(ref_signal_idx) => {
|
||||||
let signal_idx = SignalIdx(vcd.all_signals.len());
|
let signal_idx = SignalIdx(vcd.all_signals.len());
|
||||||
let signal = Signal::Alias {
|
let signal = SignalEnum::Alias {
|
||||||
name: full_signal_name,
|
name: full_signal_name,
|
||||||
signal_alias: *ref_signal_idx,
|
signal_alias: *ref_signal_idx,
|
||||||
};
|
};
|
||||||
|
@ -116,7 +116,7 @@ pub(super) fn parse_var<'a>(
|
||||||
None => {
|
None => {
|
||||||
let signal_idx = SignalIdx(vcd.all_signals.len());
|
let signal_idx = SignalIdx(vcd.all_signals.len());
|
||||||
signal_map.insert(signal_alias.to_string(), signal_idx);
|
signal_map.insert(signal_alias.to_string(), signal_idx);
|
||||||
let signal = Signal::Data {
|
let signal = SignalEnum::Data {
|
||||||
name: full_signal_name,
|
name: full_signal_name,
|
||||||
sig_type: var_type,
|
sig_type: var_type,
|
||||||
signal_error: None,
|
signal_error: None,
|
||||||
|
|
|
@ -30,7 +30,7 @@ pub(super) enum TimelineQueryResults {
|
||||||
|
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub enum Signal {
|
pub(super) enum SignalEnum {
|
||||||
Data {
|
Data {
|
||||||
name: String,
|
name: String,
|
||||||
sig_type: SigType,
|
sig_type: SigType,
|
||||||
|
@ -100,18 +100,18 @@ type TimeStamp = BigUint;
|
||||||
type SignalValNum = BigUint;
|
type SignalValNum = BigUint;
|
||||||
|
|
||||||
// getter functions
|
// getter functions
|
||||||
impl Signal {
|
impl SignalEnum {
|
||||||
pub fn name(&self) -> String {
|
pub fn name(&self) -> String {
|
||||||
match self {
|
match self {
|
||||||
Signal::Data { name, ..} => name,
|
SignalEnum::Data { name, ..} => name,
|
||||||
Signal::Alias { name, .. } => name
|
SignalEnum::Alias { name, .. } => name
|
||||||
}.clone()
|
}.clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// helper functions ultimately used by Signal's query functions later on
|
// 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
|
/// Computes the bytes required to store a signal's numerical value
|
||||||
/// using the num_bits which another function would provide from
|
/// using the num_bits which another function would provide from
|
||||||
/// the num_bits field of the Signal::Data variant.
|
/// the num_bits field of the Signal::Data variant.
|
||||||
|
@ -144,7 +144,7 @@ impl Signal {
|
||||||
lsb_indxs_of_string_tmstmp_vals_on_tmln,
|
lsb_indxs_of_string_tmstmp_vals_on_tmln,
|
||||||
byte_len_of_string_tmstmp_vals_on_tmln,
|
byte_len_of_string_tmstmp_vals_on_tmln,
|
||||||
) = match self {
|
) = match self {
|
||||||
Signal::Data {
|
SignalEnum::Data {
|
||||||
string_vals,
|
string_vals,
|
||||||
lsb_indxs_of_string_tmstmp_vals_on_tmln,
|
lsb_indxs_of_string_tmstmp_vals_on_tmln,
|
||||||
byte_len_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,
|
lsb_indxs_of_string_tmstmp_vals_on_tmln,
|
||||||
byte_len_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
|
// get index
|
||||||
|
@ -193,7 +193,7 @@ impl Signal {
|
||||||
lsb_indxs_of_num_tmstmp_vals_on_tmln,
|
lsb_indxs_of_num_tmstmp_vals_on_tmln,
|
||||||
byte_len_of_num_tmstmp_vals_on_tmln,
|
byte_len_of_num_tmstmp_vals_on_tmln,
|
||||||
) = match self {
|
) = match self {
|
||||||
Signal::Data {
|
SignalEnum::Data {
|
||||||
num_bytes,
|
num_bytes,
|
||||||
nums_encoded_as_fixed_width_le_u8,
|
nums_encoded_as_fixed_width_le_u8,
|
||||||
lsb_indxs_of_num_tmstmp_vals_on_tmln,
|
lsb_indxs_of_num_tmstmp_vals_on_tmln,
|
||||||
|
@ -205,7 +205,7 @@ impl Signal {
|
||||||
lsb_indxs_of_num_tmstmp_vals_on_tmln,
|
lsb_indxs_of_num_tmstmp_vals_on_tmln,
|
||||||
byte_len_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
|
// get index
|
||||||
|
@ -234,12 +234,12 @@ impl Signal {
|
||||||
// Function that take in a desired time on the timeline for a
|
// Function that take in a desired time on the timeline for a
|
||||||
// specific signal and return a numerical or string value in a Result,
|
// specific signal and return a numerical or string value in a Result,
|
||||||
// or an error in a Result.
|
// or an error in a Result.
|
||||||
impl Signal {
|
impl SignalEnum {
|
||||||
pub fn query_string_val_on_tmln(
|
pub fn query_string_val_on_tmln(
|
||||||
&self,
|
&self,
|
||||||
desired_time: &BigUint,
|
desired_time: &BigUint,
|
||||||
tmstmps_encoded_as_u8s: &Vec<u8>,
|
tmstmps_encoded_as_u8s: &Vec<u8>,
|
||||||
all_signals: &Vec<Signal>,
|
all_signals: &Vec<SignalEnum>,
|
||||||
) -> Result<String, SignalErrors> {
|
) -> Result<String, SignalErrors> {
|
||||||
let signal_idx = match self {
|
let signal_idx = match self {
|
||||||
Self::Data { self_idx, .. } => {
|
Self::Data { self_idx, .. } => {
|
||||||
|
@ -263,7 +263,7 @@ impl Signal {
|
||||||
// else we propagate Err(..).
|
// else we propagate Err(..).
|
||||||
let (string_vals, lsb_indxs_of_string_tmstmp_vals_on_tmln) =
|
let (string_vals, lsb_indxs_of_string_tmstmp_vals_on_tmln) =
|
||||||
match &all_signals[signal_idx] {
|
match &all_signals[signal_idx] {
|
||||||
Signal::Data {
|
SignalEnum::Data {
|
||||||
ref string_vals,
|
ref string_vals,
|
||||||
ref lsb_indxs_of_string_tmstmp_vals_on_tmln,
|
ref lsb_indxs_of_string_tmstmp_vals_on_tmln,
|
||||||
..
|
..
|
||||||
|
@ -273,7 +273,7 @@ impl Signal {
|
||||||
lsb_indxs_of_string_tmstmp_vals_on_tmln,
|
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
|
// this signal should at least have some events, otherwise, trying to index into
|
||||||
// an empty vector later on would fail
|
// an empty vector later on would fail
|
||||||
|
@ -354,7 +354,7 @@ impl Signal {
|
||||||
&self,
|
&self,
|
||||||
desired_time: &BigUint,
|
desired_time: &BigUint,
|
||||||
tmstmps_encoded_as_u8s: &Vec<u8>,
|
tmstmps_encoded_as_u8s: &Vec<u8>,
|
||||||
all_signals: &Vec<Signal>,
|
all_signals: &Vec<SignalEnum>,
|
||||||
) -> Result<BigUint, SignalErrors> {
|
) -> Result<BigUint, SignalErrors> {
|
||||||
let signal_idx = match self {
|
let signal_idx = match self {
|
||||||
Self::Data { self_idx, .. } => {
|
Self::Data { self_idx, .. } => {
|
||||||
|
@ -379,7 +379,7 @@ impl Signal {
|
||||||
// else we propagate Err(..).
|
// else we propagate Err(..).
|
||||||
let (nums_encoded_as_fixed_width_le_u8, lsb_indxs_of_num_tmstmp_vals_on_tmln, num_bytes) =
|
let (nums_encoded_as_fixed_width_le_u8, lsb_indxs_of_num_tmstmp_vals_on_tmln, num_bytes) =
|
||||||
match &all_signals[signal_idx] {
|
match &all_signals[signal_idx] {
|
||||||
Signal::Data {
|
SignalEnum::Data {
|
||||||
num_bytes,
|
num_bytes,
|
||||||
ref nums_encoded_as_fixed_width_le_u8,
|
ref nums_encoded_as_fixed_width_le_u8,
|
||||||
ref lsb_indxs_of_num_tmstmp_vals_on_tmln,
|
ref lsb_indxs_of_num_tmstmp_vals_on_tmln,
|
||||||
|
@ -394,7 +394,7 @@ impl Signal {
|
||||||
num_bytes,
|
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
|
// this signal should at least have some events, otherwise, trying to index into
|
||||||
// an empty vector later on would fail
|
// an empty vector later on would fail
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
// This program is distributed under both the GPLV3 license
|
// This program is distributed under both the GPLV3 license
|
||||||
// and the YEHOWSHUA license, both of which can be found at
|
// and the YEHOWSHUA license, both of which can be found at
|
||||||
// the root of the folder containing the sources for this program.
|
// the root of the folder containing the sources for this program.
|
||||||
use super::Signal;
|
use super::SignalEnum;
|
||||||
use chrono::prelude::*;
|
use chrono::prelude::*;
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
|
@ -58,7 +58,7 @@ pub struct VCD {
|
||||||
// keep track of all timestamp values, a given signal only needs to keep
|
// keep track of all timestamp values, a given signal only needs to keep
|
||||||
// track of the timestamps at which the given signal value changes.
|
// track of the timestamps at which the given signal value changes.
|
||||||
pub(super) tmstmps_encoded_as_u8s: Vec<u8>,
|
pub(super) tmstmps_encoded_as_u8s: Vec<u8>,
|
||||||
pub(super) all_signals: Vec<Signal>,
|
pub(super) all_signals: Vec<SignalEnum>,
|
||||||
pub(super) all_scopes: Vec<Scope>,
|
pub(super) all_scopes: Vec<Scope>,
|
||||||
pub(super) root_scopes: Vec<ScopeIdx>,
|
pub(super) root_scopes: Vec<ScopeIdx>,
|
||||||
}
|
}
|
||||||
|
@ -90,23 +90,23 @@ impl VCD {
|
||||||
pub(super) fn dealiasing_signal_idx_to_signal_lookup_mut<'a>(
|
pub(super) fn dealiasing_signal_idx_to_signal_lookup_mut<'a>(
|
||||||
&'a mut self,
|
&'a mut self,
|
||||||
idx: &SignalIdx,
|
idx: &SignalIdx,
|
||||||
) -> Result<&'a mut Signal, String> {
|
) -> Result<&'a mut SignalEnum, String> {
|
||||||
// get the signal pointed to be SignalIdx from the arena
|
// get the signal pointed to be SignalIdx from the arena
|
||||||
let SignalIdx(idx) = idx;
|
let SignalIdx(idx) = idx;
|
||||||
let signal = &self.all_signals[*idx];
|
let signal = &self.all_signals[*idx];
|
||||||
|
|
||||||
// dereference signal if Signal::Alias, or keep idx if Signal::Data
|
// dereference signal if Signal::Alias, or keep idx if Signal::Data
|
||||||
let signal_idx = match signal {
|
let signal_idx = match signal {
|
||||||
Signal::Data { self_idx, .. } => *self_idx,
|
SignalEnum::Data { self_idx, .. } => *self_idx,
|
||||||
Signal::Alias { name, signal_alias } => *signal_alias,
|
SignalEnum::Alias { name, signal_alias } => *signal_alias,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Should now point to Signal::Data variant, or else there's an error
|
// Should now point to Signal::Data variant, or else there's an error
|
||||||
let SignalIdx(idx) = signal_idx;
|
let SignalIdx(idx) = signal_idx;
|
||||||
let signal = self.all_signals.get_mut(idx).unwrap();
|
let signal = self.all_signals.get_mut(idx).unwrap();
|
||||||
match signal {
|
match signal {
|
||||||
Signal::Data { .. } => Ok(signal),
|
SignalEnum::Data { .. } => Ok(signal),
|
||||||
Signal::Alias { .. } => Err(format!(
|
SignalEnum::Alias { .. } => Err(format!(
|
||||||
"Error near {}:{}. A signal alias shouldn't \
|
"Error near {}:{}. A signal alias shouldn't \
|
||||||
point to a signal alias.",
|
point to a signal alias.",
|
||||||
file!(),
|
file!(),
|
||||||
|
@ -114,37 +114,37 @@ impl VCD {
|
||||||
)),
|
)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/// Takes a signal_idx as input and returns the corresponding signal if the
|
// 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
|
// corresponding signal is of the Signal::Data variant, else the function the
|
||||||
/// SignalIdx in the signal_alias field of Signal::Alias variant to index
|
// 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
|
// 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,
|
// the resulting signal if that signal is a Signal::Data variant, else,
|
||||||
/// this function returns an Err.
|
// this function returns an Err.
|
||||||
pub fn try_signal_idx_to_signal<'a>(
|
// pub fn try_signal_idx_to_signal<'a>(
|
||||||
&'a self,
|
// &'a self,
|
||||||
idx: SignalIdx,
|
// idx: SignalIdx,
|
||||||
) -> Result<&'a Signal, String> {
|
// ) -> Result<&'a Signal, String> {
|
||||||
// get the signal pointed to be SignalIdx from the arena
|
// // get the signal pointed to be SignalIdx from the arena
|
||||||
let SignalIdx(idx) = idx;
|
// let SignalIdx(idx) = idx;
|
||||||
let signal = &self.all_signals[idx];
|
// let signal = &self.all_signals[idx];
|
||||||
|
|
||||||
// dereference signal if Signal::Alias, or keep idx if Signal::Data
|
// // dereference signal if Signal::Alias, or keep idx if Signal::Data
|
||||||
let signal_idx = match signal {
|
// let signal_idx = match signal {
|
||||||
Signal::Data { self_idx, .. } => *self_idx,
|
// Signal::Data { self_idx, .. } => *self_idx,
|
||||||
Signal::Alias { name, signal_alias } => *signal_alias,
|
// Signal::Alias { name, signal_alias } => *signal_alias,
|
||||||
};
|
// };
|
||||||
|
|
||||||
// Should now point to Signal::Data variant, or else there's an error
|
// // Should now point to Signal::Data variant, or else there's an error
|
||||||
let SignalIdx(idx) = signal_idx;
|
// let SignalIdx(idx) = signal_idx;
|
||||||
let signal = self.all_signals.get(idx).unwrap();
|
// let signal = self.all_signals.get(idx).unwrap();
|
||||||
match signal {
|
// match signal {
|
||||||
Signal::Data { .. } => Ok(signal),
|
// Signal::Data { .. } => Ok(signal),
|
||||||
Signal::Alias { .. } => Err(format!(
|
// Signal::Alias { .. } => Err(format!(
|
||||||
"Error near {}:{}. A signal alias shouldn't \
|
// "Error near {}:{}. A signal alias shouldn't \
|
||||||
point to a signal alias.",
|
// point to a signal alias.",
|
||||||
file!(),
|
// file!(),
|
||||||
line!()
|
// line!()
|
||||||
)),
|
// )),
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue