func keyFunc(b *Brain, used, missing *dep.Set) func(string) (string, error) {
	return func(s string) (string, error) {
		if len(s) == 0 {
			return "", nil
		}

		d, err := dep.NewKVGetQuery(s)
		if err != nil {
			return "", err
		}
		d.EnableBlocking()

		used.Add(d)

		if value, ok := b.Recall(d); ok {
			if value == nil {
				return "", nil
			}
			return value.(string), nil
		}

		missing.Add(d)

		return "", nil
	}
}
func keyFunc(b *Brain, used, missing *dep.Set) func(string) (string, error) {
	return func(s string) (string, error) {
		if len(s) == 0 {
			return "", nil
		}

		d, err := dep.NewKVGetQuery(s)
		if err != nil {
			return "", err
		}
		d.EnableBlocking()

		used.Add(d)

		if value, ok := b.Recall(d); ok {
			if value == nil {
				return "", nil
			}
			return value.(string), nil
		}

		missing.Add(d)

		return "", nil
	}
}
func keyFunc ( b * Brain , used , missing * dep . Set ) func ( string ) ( string , error ) { return func ( s string ) ( string , error ) { if len ( s ) == 0 { return " " , nil } d , err := dep . NewKVGetQuery ( s ) if err != nil { return " " , err } d . EnableBlocking ( ) used . Add ( d ) if value , ok := b . Recall ( d ) ; ok { if value == nil { return " " , nil } return value . ( string ) , nil } missing . Add ( d ) return " " , nil } }
// keyFunc returns or accumulates key dependencies.
keyFunc returns or accumulates key dependencies .