func isCELStringListLiteral(e *exprpb.Expr) bool {
	switch e.GetExprKind().(type) {
	case *exprpb.Expr_ListExpr:
		list := e.GetListExpr()
		for _, elem := range list.GetElements() {
			if !isCELStringExpr(elem) {
				return false
			}
		}
		return true
	}
	return false
}
// isCELStringListLiteral returns whether the expression resolves to a list literal
// containing only string constants or a placeholder call.
isCELStringListLiteral returns whether the expression resolves to a list literal
containing only string constants or a placeholder call.
// isCELStringListLiteral returns whether the expression resolves to a list literal // containing only string constants or a placeholder call .
func isCELStringListLiteral(e *exprpb.Expr) bool {
	switch e.GetExprKind().(type) {
	case *exprpb.Expr_ListExpr:
		list := e.GetListExpr()
		for _, elem := range list.GetElements() {
			if !isCELStringExpr(elem) {
				return false
			}
		}
		return true
	}
	return false
}
func isCELStringListLiteral ( e * exprpb . Expr ) bool { switch e . GetExprKind ( ) . ( type ) { case * exprpb . Expr_ListExpr : list := e . GetListExpr ( ) for _ , elem := range list . GetElements ( ) { if ! isCELStringExpr ( elem ) { return false } } return true } return false }
isCELStringListLiteral returns whether the expression resolves to a list literal
containing only string constants or a placeholder call.
isCELStringListLiteral returns whether the expression resolves to a list literal containing only string constants or a placeholder call .