14namespace grpc_protovalidate::client {
16ValidationSettings Parse(
const yaml_config::YamlConfig& config, formats::parse::To<ValidationSettings>) {
17 ValidationSettings settings;
18 settings.fail_fast = config[
"fail-fast"].As<
bool>(settings.fail_fast);
22Settings Parse(
const yaml_config::YamlConfig& config, formats::parse::To<Settings>) {
24 settings.global.fail_fast = config[
"fail-fast"].As<
bool>(settings.global.fail_fast);
25 settings.per_method = config[
"methods"].As<utils::impl::TransparentMap<std::string, ValidationSettings>>({});
29ValidatorComponent::ValidatorComponent(
30 const components::ComponentConfig& config,
31 const components::ComponentContext& context
33 : ugrpc::client::MiddlewareFactoryComponentBase(
36 middlewares::MiddlewareDependencyBuilder().InGroup<middlewares::groups::Core>()
39std::shared_ptr<
const ugrpc::client::MiddlewareBase> ValidatorComponent::CreateMiddleware(
40 const ugrpc::client::ClientInfo& ,
41 const yaml_config::YamlConfig& middleware_config
43 return std::make_shared<Middleware>(middleware_config.As<Settings>());
46yaml_config::Schema ValidatorComponent::GetMiddlewareConfigSchema()
const {
return GetStaticConfigSchema(); }
48yaml_config::Schema ValidatorComponent::GetStaticConfigSchema() {
49 return yaml_config::MergeSchemasFromResource<
50 ugrpc::client::MiddlewareFactoryComponentBase>(
"src/grpc-protovalidate/client/component.yaml");