diff --git a/compiler/types/src/subs.rs b/compiler/types/src/subs.rs index 23144a6c98..d664b6caa9 100644 --- a/compiler/types/src/subs.rs +++ b/compiler/types/src/subs.rs @@ -52,6 +52,42 @@ struct ErrorTypeState { #[derive(Default, Clone)] pub struct Subs { utable: UnificationTable>, + // variables: Vec, + // tag_names: Vec, + // field_names: Vec, +} + +#[repr(packed(2))] +pub struct SubsSlice { + start: u32, + length: u16, + _marker: std::marker::PhantomData, +} + +impl Copy for SubsSlice {} + +impl Clone for SubsSlice { + fn clone(&self) -> Self { + Self { + start: self.start, + length: self.length, + _marker: self._marker, + } + } +} + +impl Default for SubsSlice { + fn default() -> Self { + Self { + start: Default::default(), + length: Default::default(), + _marker: Default::default(), + } + } +} + +pub trait GetSubsSlice { + fn get_subs_slice(subs: &Subs, subs_slice: SubsSlice) -> &[T]; } impl fmt::Debug for Subs {