blob: 4f5cf04c83321dfa9a987f5437ec5337fd979023 [file]
// Copyright 2026 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/// Errors returned by provider validation, unpacking, and extraction.
#[derive(thiserror::Error, Debug)]
pub(crate) enum Error {
#[error("The elements of provider fields must be strings")]
FieldsMustBeStrings,
#[error("Provider fields must be an iterable")]
FieldsMustBeIterable,
#[error("Provider name must end with 'Info' (got '{0}')")]
InvalidProviderName(String),
#[error("Duplicate field name: {0}")]
DuplicateFieldName(String),
#[error("The result of provider() must be assigned to a variable")]
ProviderNotExported,
#[error("Cannot construct values of non-frozen provider type")]
ProviderNotFrozen,
}
impl From<Error> for starlark::Error {
fn from(err: Error) -> Self {
Self::new_other(err)
}
}