use sway_types::Span;
mod annotated;
mod attribute;
mod expr;
mod function;
mod literal;
mod module;
mod path_expression_segment;
mod storage_field;
pub(crate) struct Modifier<'a, T> {
element: &'a mut T,
}
impl<'a, T> Modifier<'a, T> {
fn new(element: &'a mut T) -> Self {
Self { element }
}
}
pub(crate) fn modify<T>(element: &mut T) -> Modifier<'_, T> {
Modifier::new(element)
}
pub(crate) struct New {}
#[allow(dead_code)]
pub(crate) trait SetInsertSpan {
fn set_insert_span(&mut self, insert_span: Span);
}
#[macro_export]
macro_rules! assert_insert_span {
($insert_span: ident) => {
assert!(
stringify!($insert_span) == "insert_span",
"the insert span function argument must be called `insert_span`"
);
assert!($insert_span.is_empty(), "`insert_span` must be empty");
assert!(
!$insert_span.is_dummy(),
"`insert_span` must not be a `Span::dummy()`"
);
};
}