package values import ( "reflect" ) // IsEmpty returns a bool indicating whether the value is empty according to Liquid semantics. func IsEmpty(value interface{}) bool { value = ToLiquid(value) if value == nil { return false } r := reflect.ValueOf(value) switch r.Kind() { case reflect.Array, reflect.Map, reflect.Slice, reflect.String: return r.Len() == 0 case reflect.Bool: return !r.Bool() default: return false } }