validateMetadata method
Best-effort metadata validation. Throws ArgumentError on violations.
Implementation
void validateMetadata(RpcMetadata metadata) {
if (metadata.headers.length > maxHeaders) {
throw ArgumentError(
'Too many metadata headers: ${metadata.headers.length} > $maxHeaders',
);
}
for (final header in metadata.headers) {
if (!isValidHeaderName(header.name)) {
throw ArgumentError('Invalid metadata header name: ${header.name}');
}
if (!isValidHeaderValue(header.value)) {
throw ArgumentError(
'Invalid metadata header value for: ${header.name}',
);
}
}
final methodPath = metadata.methodPath;
if (!isValidMethodPath(methodPath)) {
throw ArgumentError('Invalid methodPath in metadata: $methodPath');
}
}