| 
									
										
										
										
											2022-05-08 19:49:45 +02:00
										 |  |  | package byteutil | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							|  |  |  | 	"unsafe" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Copy returns a copy of []byte. | 
					
						
							|  |  |  | func Copy(b []byte) []byte { | 
					
						
							|  |  |  | 	if b == nil { | 
					
						
							|  |  |  | 		return nil | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	p := make([]byte, len(b)) | 
					
						
							|  |  |  | 	copy(p, b) | 
					
						
							|  |  |  | 	return p | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // B2S returns a string representation of []byte without allocation. | 
					
						
							| 
									
										
										
										
											2024-09-26 19:50:08 +00:00
										 |  |  | // Since Go strings are immutable, the bytes passed to String must | 
					
						
							|  |  |  | // not be modified as long as the returned string value exists. | 
					
						
							| 
									
										
										
										
											2022-05-08 19:49:45 +02:00
										 |  |  | func B2S(b []byte) string { | 
					
						
							| 
									
										
										
										
											2024-09-26 19:50:08 +00:00
										 |  |  | 	return unsafe.String(unsafe.SliceData(b), len(b)) | 
					
						
							| 
									
										
										
										
											2022-05-08 19:49:45 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-09-26 19:50:08 +00:00
										 |  |  | // S2B returns a []byte representation of string without allocation. | 
					
						
							| 
									
										
										
										
											2022-05-08 19:49:45 +02:00
										 |  |  | func S2B(s string) []byte { | 
					
						
							| 
									
										
										
										
											2024-09-26 19:50:08 +00:00
										 |  |  | 	return unsafe.Slice(unsafe.StringData(s), len(s)) | 
					
						
							| 
									
										
										
										
											2022-05-08 19:49:45 +02:00
										 |  |  | } |