コード例 #1
0
ファイル: traversal.go プロジェクト: skydive-project/skydive
func (n *NEMetadataMatcher) Match(v interface{}) bool {
	if !common.CrossTypeEqual(v, n.value) {
		return true
	}

	return false
}
コード例 #2
0
ファイル: traversal.go プロジェクト: skydive-project/skydive
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
}