github.com/altipla-consulting/ravendb-go-client@v0.1.3/documents_by_id.go (about)

     1  package ravendb
     2  
     3  import "strings"
     4  
     5  // TODO: change to an alias:
     6  //  type documentsByID map[string]*documentInfo
     7  
     8  type documentsByID struct {
     9  	inner map[string]*documentInfo
    10  }
    11  
    12  func newDocumentsByID() *documentsByID {
    13  	return &documentsByID{
    14  		inner: map[string]*documentInfo{},
    15  	}
    16  }
    17  
    18  func (d *documentsByID) getValue(id string) *documentInfo {
    19  	id = strings.ToLower(id)
    20  	return d.inner[id]
    21  }
    22  
    23  func (d *documentsByID) add(info *documentInfo) {
    24  	id := strings.ToLower(info.id)
    25  
    26  	if _, ok := d.inner[id]; ok {
    27  		return
    28  	}
    29  
    30  	d.inner[id] = info
    31  }
    32  
    33  func (d *documentsByID) remove(id string) bool {
    34  	id = strings.ToLower(id)
    35  	if _, ok := d.inner[id]; !ok {
    36  		return false
    37  	}
    38  	delete(d.inner, id)
    39  	return true
    40  }