code.gitea.io/gitea@v1.22.3/modules/indexer/internal/indexer.go (about) 1 // Copyright 2023 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package internal 5 6 import ( 7 "context" 8 "fmt" 9 ) 10 11 // Indexer defines an basic indexer interface 12 type Indexer interface { 13 // Init initializes the indexer 14 // returns true if the index was opened/existed (with data populated), false if it was created/not-existed (with no data) 15 Init(ctx context.Context) (bool, error) 16 // Ping checks if the indexer is available 17 Ping(ctx context.Context) error 18 // Close closes the indexer 19 Close() 20 } 21 22 // NewDummyIndexer returns a dummy indexer 23 func NewDummyIndexer() Indexer { 24 return &dummyIndexer{} 25 } 26 27 type dummyIndexer struct{} 28 29 func (d *dummyIndexer) Init(ctx context.Context) (bool, error) { 30 return false, fmt.Errorf("indexer is not ready") 31 } 32 33 func (d *dummyIndexer) Ping(ctx context.Context) error { 34 return fmt.Errorf("indexer is not ready") 35 } 36 37 func (d *dummyIndexer) Close() {}