mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-01-06 20:29:54 -06:00
28 lines
638 B
Go
28 lines
638 B
Go
package indexer
|
|
|
|
import "github.com/owncloud/ocis/ocis-pkg/indexer/index"
|
|
|
|
// typeMap stores the indexer layout at runtime.
|
|
|
|
type typeMap map[tName]typeMapping
|
|
type tName = string
|
|
type fieldName = string
|
|
|
|
type typeMapping struct {
|
|
PKFieldName string
|
|
IndicesByField map[fieldName][]index.Index
|
|
}
|
|
|
|
func (m typeMap) addIndex(typeName string, pkName string, idx index.Index) {
|
|
if val, ok := m[typeName]; ok {
|
|
val.IndicesByField[idx.IndexBy()] = append(val.IndicesByField[idx.IndexBy()], idx)
|
|
return
|
|
}
|
|
m[typeName] = typeMapping{
|
|
PKFieldName: pkName,
|
|
IndicesByField: map[string][]index.Index{
|
|
idx.IndexBy(): {idx},
|
|
},
|
|
}
|
|
}
|