// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import "ios/web/navigation/proto_util.h"
#import <ostream>
#import <type_traits>
#import "base/notreached.h"
#import "base/strings/sys_string_conversions.h"
namespace web {
NSMutableDictionary<NSString*, NSString*>* HttpRequestHeadersFromProto(
const proto::HttpHeaderListStorage& storage) {
NSMutableDictionary<NSString*, NSString*>* headers =
[[NSMutableDictionary alloc] initWithCapacity:storage.headers_size()];
for (const proto::HttpHeaderStorage& header : storage.headers()) {
NSString* key = base::SysUTF8ToNSString(header.name());
NSString* val = base::SysUTF8ToNSString(header.value());
headers[key] = val;
}
return headers;
}
void SerializeHttpRequestHeadersToProto(
NSDictionary<NSString*, NSString*>* headers,
proto::HttpHeaderListStorage& storage) {
CHECK_NE(headers.count, 0u);
for (NSString* key in headers) {
proto::HttpHeaderStorage* header = storage.add_headers();
header->set_name(base::SysNSStringToUTF8(key));
header->set_value(base::SysNSStringToUTF8(headers[key]));
}
}
} // namespace web