ing
This commit is contained in:
		
							parent
							
								
									9b9325a126
								
							
						
					
					
						commit
						7df953742d
					
				
							
								
								
									
										52
									
								
								core/constants/network.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								core/constants/network.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					package constants
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"encoding/json"
 | 
				
			||||||
 | 
						"fmt"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type PortType int
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const (
 | 
				
			||||||
 | 
						PortTypeTCP PortType = iota
 | 
				
			||||||
 | 
						PortTypeUDP
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var (
 | 
				
			||||||
 | 
						portTypeID = map[PortType]string{
 | 
				
			||||||
 | 
							PortTypeTCP: "TCP",
 | 
				
			||||||
 | 
							PortTypeUDP: "UDP",
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						portTypeName = map[string]PortType{
 | 
				
			||||||
 | 
							"TCP": PortTypeTCP,
 | 
				
			||||||
 | 
							"UDP": PortTypeUDP,
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (pt PortType) String() string {
 | 
				
			||||||
 | 
						return portTypeID[pt]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (pt PortType) MarshalJSON() ([]byte, error) {
 | 
				
			||||||
 | 
						value, ok := portTypeID[pt]
 | 
				
			||||||
 | 
						if !ok {
 | 
				
			||||||
 | 
							return nil, fmt.Errorf("Invalid EnumType[%s] value", pt)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return json.Marshal(value)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (pt PortType) UnmarshalJSON(b []byte) error {
 | 
				
			||||||
 | 
						var s string
 | 
				
			||||||
 | 
						err := json.Unmarshal(b, &s)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						value, ok := portTypeName[s]
 | 
				
			||||||
 | 
						if !ok {
 | 
				
			||||||
 | 
							return fmt.Errorf("Invalid EnumType[%s] value", s)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						pt = value
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user