mirror of
				https://github.com/NotAShelf/hexxy.git
				synced 2025-10-31 03:12:39 +00:00 
			
		
		
		
	streamline ANSI color code generation for faster execution
This was significantly faster, wow
This commit is contained in:
		
					parent
					
						
							
								fea3864961
							
						
					
				
			
			
				commit
				
					
						6f68697db7
					
				
			
		
					 1 changed files with 11 additions and 11 deletions
				
			
		
							
								
								
									
										22
									
								
								color.go
									
										
									
									
									
								
							
							
						
						
									
										22
									
								
								color.go
									
										
									
									
									
								
							|  | @ -13,35 +13,35 @@ var CLRR = []byte("\x1b[0m") | ||||||
| 
 | 
 | ||||||
| type Color struct { | type Color struct { | ||||||
| 	disable bool | 	disable bool | ||||||
| 	values  [256]string | 	values  [256][]byte | ||||||
| 	cvalues [256][]byte |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *Color) Compute() { | func (c *Color) Compute() { | ||||||
| 	const WHITEB = "\x1b[1;37m" | 	const WHITEB = "\x1b[1;37m" | ||||||
| 	for i := 0; i < 256; i++ { | 	for i := 0; i < 256; i++ { | ||||||
| 		var fg, bg string | 		var fg, bg []byte | ||||||
| 
 | 
 | ||||||
| 		lowVis := i == 0 || (i >= 16 && i <= 20) || (i >= 232 && i <= 242) | 		lowVis := i == 0 || (i >= 16 && i <= 20) || (i >= 232 && i <= 242) | ||||||
| 
 | 
 | ||||||
| 		if lowVis { | 		if lowVis { | ||||||
| 			fg = WHITEB + "\x1b[38;5;" + "255" + "m" | 			fg = append([]byte(WHITEB), []byte("\x1b[38;5;255m")...) | ||||||
| 			bg = "\x1b[48;5;" + strconv.Itoa(int(i)) + "m" | 			bg = []byte("\x1b[48;5;" + strconv.Itoa(i) + "m") | ||||||
| 		} else { | 		} else { | ||||||
| 			fg = "\x1b[38;5;" + strconv.Itoa(int(i)) + "m" | 			fg = []byte("\x1b[38;5;" + strconv.Itoa(i) + "m") | ||||||
| 			bg = "" | 			bg = nil | ||||||
| 		} | 		} | ||||||
| 		c.values[i] = bg + fg | 		c.values[i] = append(bg, fg...) | ||||||
| 		c.cvalues[i] = []byte(bg + fg) |  | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *Color) Colorize(s string, clr byte) string { | func (c *Color) Colorize(s string, clr byte) string { | ||||||
| 	const NOCOLOR = "\x1b[0m" | 	const NOCOLOR = "\x1b[0m" | ||||||
| 	return c.values[clr] + s + NOCOLOR | 	colorCode := c.values[clr] | ||||||
|  | 	return string(append(append(colorCode, s...), []byte(NOCOLOR)...)) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // function to colorize bytes - avoiding string conversions | // function to colorize bytes - avoiding string conversions | ||||||
| func (c *Color) Colorize2(clr byte) ([]byte, []byte) { | func (c *Color) Colorize2(clr byte) ([]byte, []byte) { | ||||||
| 	return c.cvalues[clr], CLRR | 	colorCode := c.values[clr] | ||||||
|  | 	return colorCode, CLRR | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue