forked from libre-chip/fayalite
		
	remove unused valueless.rs
This commit is contained in:
		
							parent
							
								
									e8c393f3bb
								
							
						
					
					
						commit
						f35d88d2bb
					
				
					 2 changed files with 0 additions and 90 deletions
				
			
		|  | @ -30,7 +30,6 @@ pub struct __; | |||
| #[cfg(feature = "unstable-doc")] | ||||
| pub mod _docs; | ||||
| 
 | ||||
| // FIXME: finish
 | ||||
| pub mod annotations; | ||||
| pub mod array; | ||||
| pub mod bundle; | ||||
|  | @ -50,5 +49,4 @@ pub mod source_location; | |||
| pub mod testing; | ||||
| pub mod ty; | ||||
| pub mod util; | ||||
| //pub mod valueless;
 | ||||
| pub mod wire; | ||||
|  |  | |||
|  | @ -1,88 +0,0 @@ | |||
| // SPDX-License-Identifier: LGPL-3.0-or-later
 | ||||
| // See Notices.txt for copyright information
 | ||||
| use crate::{ | ||||
|     int::{DynIntType, DynSIntType, DynUIntType, IntTypeTrait, SIntType}, | ||||
|     ty::{Type, Value}, | ||||
| }; | ||||
| use std::ops::RangeBounds; | ||||
| 
 | ||||
| #[derive(Copy, Clone, Debug, Hash, Eq, PartialEq, Default)] | ||||
| pub struct Valueless<T> { | ||||
|     pub ty: T, | ||||
| } | ||||
| 
 | ||||
| impl<T: Type> Valueless<T> { | ||||
|     pub fn to_canonical(&self) -> Valueless<T::CanonicalType> { | ||||
|         Valueless { | ||||
|             ty: self.ty.canonical(), | ||||
|         } | ||||
|     } | ||||
|     pub fn from_canonical(v: Valueless<T::CanonicalType>) -> Self { | ||||
|         Valueless { | ||||
|             ty: T::from_canonical_type(v.ty), | ||||
|         } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| mod sealed { | ||||
|     pub trait Sealed {} | ||||
| } | ||||
| 
 | ||||
| pub trait ValuelessTr: sealed::Sealed { | ||||
|     type Type: Type<Value = Self::Value>; | ||||
|     type Value: Value<Type = Self::Type>; | ||||
| } | ||||
| 
 | ||||
| impl<T> sealed::Sealed for Valueless<T> {} | ||||
| 
 | ||||
| impl<T: Type> ValuelessTr for Valueless<T> { | ||||
|     type Type = T; | ||||
|     type Value = T::Value; | ||||
| } | ||||
| 
 | ||||
| impl<T: IntTypeTrait> Valueless<T> { | ||||
|     pub fn signum(&self) -> Valueless<SIntType<2>> { | ||||
|         Valueless::default() | ||||
|     } | ||||
|     pub fn as_same_width_uint(self) -> Valueless<T::SameWidthUInt> { | ||||
|         Valueless { | ||||
|             ty: self.ty.as_same_width_uint(), | ||||
|         } | ||||
|     } | ||||
|     pub fn as_same_width_sint(self) -> Valueless<T::SameWidthSInt> { | ||||
|         Valueless { | ||||
|             ty: self.ty.as_same_width_sint(), | ||||
|         } | ||||
|     } | ||||
|     pub fn as_same_value_uint(self) -> Valueless<DynUIntType> { | ||||
|         Valueless { | ||||
|             ty: self.ty.as_same_value_uint(), | ||||
|         } | ||||
|     } | ||||
|     pub fn as_same_value_sint(self) -> Valueless<DynSIntType> { | ||||
|         Valueless { | ||||
|             ty: self.ty.as_same_value_sint(), | ||||
|         } | ||||
|     } | ||||
|     pub fn concat<HighType: IntTypeTrait>( | ||||
|         &self, | ||||
|         high_part: Valueless<HighType>, | ||||
|     ) -> Valueless<DynIntType<HighType::Signed>> { | ||||
|         let ty = DynIntType::new( | ||||
|             self.ty | ||||
|                 .width() | ||||
|                 .checked_add(high_part.ty.width()) | ||||
|                 .expect("result has too many bits"), | ||||
|         ); | ||||
|         Valueless { ty } | ||||
|     } | ||||
|     pub fn repeat(&self, count: usize) -> Valueless<DynIntType<T::Signed>> { | ||||
|         let width = self.ty.width(); | ||||
|         let ty = DynIntType::new(width.checked_mul(count).expect("result has too many bits")); | ||||
|         Valueless { ty } | ||||
|     } | ||||
|     pub fn slice<I: RangeBounds<usize>>(&self, index: I) -> Valueless<DynUIntType> { | ||||
|         let ty = self.ty.slice(index); | ||||
|         Valueless { ty } | ||||
|     } | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue