mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 18:13:42 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			67 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package restful
 | 
						|
 | 
						|
// Copyright 2021 Ernest Micklei. All rights reserved.
 | 
						|
// Use of this source code is governed by a license
 | 
						|
// that can be found in the LICENSE file.
 | 
						|
 | 
						|
type RouteReader interface {
 | 
						|
	Method() string
 | 
						|
	Consumes() []string
 | 
						|
	Path() string
 | 
						|
	Doc() string
 | 
						|
	Notes() string
 | 
						|
	Operation() string
 | 
						|
	ParameterDocs() []*Parameter
 | 
						|
	// Returns a copy
 | 
						|
	Metadata() map[string]interface{}
 | 
						|
	Deprecated() bool
 | 
						|
}
 | 
						|
 | 
						|
type routeAccessor struct {
 | 
						|
	route *Route
 | 
						|
}
 | 
						|
 | 
						|
func (r routeAccessor) Method() string {
 | 
						|
	return r.route.Method
 | 
						|
}
 | 
						|
func (r routeAccessor) Consumes() []string {
 | 
						|
	return r.route.Consumes[:]
 | 
						|
}
 | 
						|
func (r routeAccessor) Path() string {
 | 
						|
	return r.route.Path
 | 
						|
}
 | 
						|
func (r routeAccessor) Doc() string {
 | 
						|
	return r.route.Doc
 | 
						|
}
 | 
						|
func (r routeAccessor) Notes() string {
 | 
						|
	return r.route.Notes
 | 
						|
}
 | 
						|
func (r routeAccessor) Operation() string {
 | 
						|
	return r.route.Operation
 | 
						|
}
 | 
						|
func (r routeAccessor) ParameterDocs() []*Parameter {
 | 
						|
	return r.route.ParameterDocs[:]
 | 
						|
}
 | 
						|
 | 
						|
// Returns a copy
 | 
						|
func (r routeAccessor) Metadata() map[string]interface{} {
 | 
						|
	return copyMap(r.route.Metadata)
 | 
						|
}
 | 
						|
func (r routeAccessor) Deprecated() bool {
 | 
						|
	return r.route.Deprecated
 | 
						|
}
 | 
						|
 | 
						|
// https://stackoverflow.com/questions/23057785/how-to-copy-a-map
 | 
						|
func copyMap(m map[string]interface{}) map[string]interface{} {
 | 
						|
	cp := make(map[string]interface{})
 | 
						|
	for k, v := range m {
 | 
						|
		vm, ok := v.(map[string]interface{})
 | 
						|
		if ok {
 | 
						|
			cp[k] = copyMap(vm)
 | 
						|
		} else {
 | 
						|
			cp[k] = v
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return cp
 | 
						|
}
 |