32 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			32 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
|  | using System; | ||
|  | 
 | ||
|  | namespace Unity.Burst.CompilerServices | ||
|  | { | ||
|  |     /// <summary> | ||
|  |     /// Can be used to specify that a parameter or return has a range assumption. | ||
|  |     /// Assumptions feed directly into the optimizer and allow better codegen. | ||
|  |     /// | ||
|  |     /// Only usable on values of type scalar integer. | ||
|  |     /// | ||
|  |     /// The range is a closed interval [min..max] - EG. the attributed value | ||
|  |     /// is greater-than-or-equal-to min and less-than-or-equal-to max. | ||
|  |     /// </summary> | ||
|  |     [AttributeUsage(AttributeTargets.ReturnValue | AttributeTargets.Parameter)] | ||
|  |     public class AssumeRangeAttribute : Attribute | ||
|  |     { | ||
|  |         /// <summary> | ||
|  |         /// Assume that an integer is in the signed closed interval [min..max]. | ||
|  |         /// </summary> | ||
|  |         /// <param name="min">The inclusive minimum value.</param> | ||
|  |         /// <param name="max">The inclusive maximum value.</param> | ||
|  |         public AssumeRangeAttribute(long min, long max) { } | ||
|  | 
 | ||
|  |         /// <summary> | ||
|  |         /// Assume that an integer is in the unsigned closed interval [min..max]. | ||
|  |         /// </summary> | ||
|  |         /// <param name="min">The inclusive minimum value.</param> | ||
|  |         /// <param name="max">The inclusive maximum value.</param> | ||
|  |         public AssumeRangeAttribute(ulong min, ulong max) { } | ||
|  |     } | ||
|  | } |