Skip to content
Snippets Groups Projects
Select Git revision
  • 165664947e6b5f7a60aa8c5c85a11fecb64d5dea
  • master default protected
  • v1.22.9
  • v1.22.8
  • v1.22.7
  • v1.22.6
  • v1.22.5
  • v1.22.4
  • v1.22.3
  • v1.22.1
  • v1.22.0
  • v1.21.0
  • v1.20.5
  • v1.20.4
  • v1.20.3
  • v1.20.2
  • v1.20.1
  • v1.20.0
  • v1.19.0
  • v1.18.3
  • v1.18.2
  • v1.18.1
22 results

comparative.go

Blame
  • comparative.go 1019 B
    /* This Source Code Form is subject to the terms of the Mozilla Public
     * License, v. 2.0. If a copy of the MPL was not distributed with this
     * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
    
    package diff
    
    import (
    	"reflect"
    )
    
    // Comparative ...
    type Comparative struct {
    	A, B *reflect.Value
    }
    
    // ComparativeList : stores indexed comparative
    type ComparativeList struct {
    	m    map[interface{}]*Comparative
    	keys []interface{}
    }
    
    // NewComparativeList : returns a new comparative list
    func NewComparativeList() *ComparativeList {
    	return &ComparativeList{
    		m:    make(map[interface{}]*Comparative),
    		keys: make([]interface{}, 0),
    	}
    }
    
    func (cl *ComparativeList) addA(k interface{}, v *reflect.Value) {
    	if (*cl).m[k] == nil {
    		(*cl).m[k] = &Comparative{}
    		(*cl).keys = append((*cl).keys, k)
    	}
    	(*cl).m[k].A = v
    }
    
    func (cl *ComparativeList) addB(k interface{}, v *reflect.Value) {
    	if (*cl).m[k] == nil {
    		(*cl).m[k] = &Comparative{}
    		(*cl).keys = append((*cl).keys, k)
    	}
    	(*cl).m[k].B = v
    }