src.elv.sh@v0.21.0-dev.0.20240515223629-06979efb9a2a/pkg/eval/deprecation.go (about)

     1  package eval
     2  
     3  import (
     4  	"src.elv.sh/pkg/diag"
     5  )
     6  
     7  type deprecationRegistry struct {
     8  	registered map[deprecation]struct{}
     9  }
    10  
    11  func newDeprecationRegistry() deprecationRegistry {
    12  	return deprecationRegistry{registered: make(map[deprecation]struct{})}
    13  }
    14  
    15  type deprecation struct {
    16  	srcName  string
    17  	location diag.Ranging
    18  	message  string
    19  }
    20  
    21  // Registers a deprecation, and returns whether it was registered for the first
    22  // time.
    23  func (r *deprecationRegistry) register(dep deprecation) bool {
    24  	if _, ok := r.registered[dep]; ok {
    25  		return false
    26  	}
    27  	r.registered[dep] = struct{}{}
    28  	return true
    29  }