mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 11:28:24 +00:00 
			
		
		
		
	* Use vendored go-swagger * vendor go-swagger * revert un wanteed change * remove un-needed GO111MODULE * Update Makefile Co-Authored-By: techknowlogick <matti@mdranta.net>
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package govalidator
 | |
| 
 | |
| // Iterator is the function that accepts element of slice/array and its index
 | |
| type Iterator func(interface{}, int)
 | |
| 
 | |
| // ResultIterator is the function that accepts element of slice/array and its index and returns any result
 | |
| type ResultIterator func(interface{}, int) interface{}
 | |
| 
 | |
| // ConditionIterator is the function that accepts element of slice/array and its index and returns boolean
 | |
| type ConditionIterator func(interface{}, int) bool
 | |
| 
 | |
| // Each iterates over the slice and apply Iterator to every item
 | |
| func Each(array []interface{}, iterator Iterator) {
 | |
| 	for index, data := range array {
 | |
| 		iterator(data, index)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| // Map iterates over the slice and apply ResultIterator to every item. Returns new slice as a result.
 | |
| func Map(array []interface{}, iterator ResultIterator) []interface{} {
 | |
| 	var result = make([]interface{}, len(array))
 | |
| 	for index, data := range array {
 | |
| 		result[index] = iterator(data, index)
 | |
| 	}
 | |
| 	return result
 | |
| }
 | |
| 
 | |
| // Find iterates over the slice and apply ConditionIterator to every item. Returns first item that meet ConditionIterator or nil otherwise.
 | |
| func Find(array []interface{}, iterator ConditionIterator) interface{} {
 | |
| 	for index, data := range array {
 | |
| 		if iterator(data, index) {
 | |
| 			return data
 | |
| 		}
 | |
| 	}
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| // Filter iterates over the slice and apply ConditionIterator to every item. Returns new slice.
 | |
| func Filter(array []interface{}, iterator ConditionIterator) []interface{} {
 | |
| 	var result = make([]interface{}, 0)
 | |
| 	for index, data := range array {
 | |
| 		if iterator(data, index) {
 | |
| 			result = append(result, data)
 | |
| 		}
 | |
| 	}
 | |
| 	return result
 | |
| }
 | |
| 
 | |
| // Count iterates over the slice and apply ConditionIterator to every item. Returns count of items that meets ConditionIterator.
 | |
| func Count(array []interface{}, iterator ConditionIterator) int {
 | |
| 	count := 0
 | |
| 	for index, data := range array {
 | |
| 		if iterator(data, index) {
 | |
| 			count = count + 1
 | |
| 		}
 | |
| 	}
 | |
| 	return count
 | |
| }
 |