| 
									
										
										
										
											2024-02-06 15:26:20 +01:00
										 |  |  | package util | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-20 18:47:32 +01:00
										 |  |  | import ( | 
					
						
							| 
									
										
										
										
											2024-04-16 17:46:53 +02:00
										 |  |  | 	"context" | 
					
						
							| 
									
										
										
										
											2024-02-20 18:47:32 +01:00
										 |  |  | 	. "openquell/config" | 
					
						
							| 
									
										
										
										
											2024-04-16 17:46:53 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	"log/slog" | 
					
						
							| 
									
										
										
										
											2024-02-20 18:47:32 +01:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-06 15:26:20 +01:00
										 |  |  | // find an item in a list, generic variant | 
					
						
							|  |  |  | func Contains[E comparable](s []E, v E) bool { | 
					
						
							|  |  |  | 	for _, vs := range s { | 
					
						
							|  |  |  | 		if v == vs { | 
					
						
							|  |  |  | 			return true | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	return false | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // look if a key in a map exists, generic variant | 
					
						
							|  |  |  | func Exists[K comparable, V any](m map[K]V, v K) bool { | 
					
						
							|  |  |  | 	if _, ok := m[v]; ok { | 
					
						
							|  |  |  | 		return true | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	return false | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2024-02-20 18:47:32 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | func DirectionStr(dir int) string { | 
					
						
							|  |  |  | 	str := "Stop" | 
					
						
							|  |  |  | 	switch dir { | 
					
						
							|  |  |  | 	case East: | 
					
						
							|  |  |  | 		str = "East" | 
					
						
							|  |  |  | 	case West: | 
					
						
							|  |  |  | 		str = "West" | 
					
						
							|  |  |  | 	case South: | 
					
						
							|  |  |  | 		str = "South" | 
					
						
							|  |  |  | 	case North: | 
					
						
							|  |  |  | 		str = "North" | 
					
						
							|  |  |  | 	case All: | 
					
						
							|  |  |  | 		str = "All" | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	return str | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2024-04-16 17:46:53 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | func DebugEnabled() bool { | 
					
						
							|  |  |  | 	return slog.Default().Enabled(context.TODO(), slog.LevelDebug) | 
					
						
							|  |  |  | } |