func (this *preparedCache) get(name value.Value) *Prepared { if name.Type() != value.STRING || !name.Truth() { return nil } this.RLock() rv := this.prepareds[name.Actual().(string)] this.RUnlock() return rv }
func (this *Not) Apply(context Context, arg value.Value) (value.Value, error) { switch arg.Type() { case value.MISSING, value.NULL: return arg, nil default: if arg.Truth() { return value.FALSE_VALUE, nil } else { return value.TRUE_VALUE, nil } } }
func (this *preparedCache) get(name value.Value, track bool) *Prepared { if name.Type() != value.STRING || !name.Truth() { return nil } this.RLock() defer this.RUnlock() rv := this.prepareds[name.Actual().(string)] if rv != nil { if track { atomic.AddInt32(&rv.uses, 1) rv.lastUse = time.Now() } return rv.prepared } return nil }