예제 #1
0
func (n *NEMetadataMatcher) Match(v interface{}) bool {
	if !common.CrossTypeEqual(v, n.value) {
		return true
	}

	return false
}
예제 #2
0
func (w *WithinMetadataMatcher) Match(v interface{}) bool {
	for _, el := range w.List {
		if common.CrossTypeEqual(v, el) {
			return true
		}
	}

	return false
}
예제 #3
0
파일: graph.go 프로젝트: nplanel/skydive
func (e *graphElement) MatchMetadata(f Metadata) bool {
	for k, v := range f {
		switch v.(type) {
		case MetadataMatcher:
			nv, ok := e.metadata[k]
			matcher := v.(MetadataMatcher)
			if !ok || !matcher.Match(nv) {
				return false
			}
		default:
			nv, ok := e.metadata[k]
			if !ok || !common.CrossTypeEqual(nv, v) {
				return false
			}
		}
	}

	return true
}