github.com/balzaczyy/golucene@v0.0.0-20151210033525-d0be9ee89713/core/index/prefixCodedTerms.go (about) 1 package index 2 3 import ( 4 "github.com/balzaczyy/golucene/core/store" 5 ) 6 7 /* Prefix codes term instances (prefixes are shared) */ 8 type PrefixCodedTerms struct { 9 buffer *store.RAMFile 10 } 11 12 func newPrefixCodedTerms(buffer *store.RAMFile) *PrefixCodedTerms { 13 return &PrefixCodedTerms{buffer} 14 } 15 16 func (terms *PrefixCodedTerms) RamBytesUsed() int64 { 17 return terms.buffer.RamBytesUsed() 18 } 19 20 /* Builds a PrefixCodedTerms: call add repeatedly, then finish. */ 21 type PrefixCodedTermsBuilder struct { 22 buffer *store.RAMFile 23 output *store.RAMOutputStream 24 } 25 26 func newPrefixCodedTermsBuilder() *PrefixCodedTermsBuilder { 27 f := store.NewRAMFileBuffer() 28 return &PrefixCodedTermsBuilder{ 29 buffer: f, 30 output: store.NewRAMOutputStream(f, false), 31 } 32 } 33 34 func (b *PrefixCodedTermsBuilder) add(term *Term) { 35 panic("not implemented yet") 36 } 37 38 func (b *PrefixCodedTermsBuilder) finish() *PrefixCodedTerms { 39 err := b.output.Close() 40 if err != nil { 41 panic(err) 42 } 43 return newPrefixCodedTerms(b.buffer) 44 }