# Copyright 2020 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# DO NOT MANUALLY EDIT!
# Generated by //scripts/sdk/gn/generate.py.


import("../../build/fidl_library.gni")

fidl_library("fuchsia.net.oldhttp") {
  library_name = "oldhttp"
  namespace = "fuchsia.net"
  public_deps = [
    "../fuchsia.mem",
  ]
  sources = [
    "http_error.fidl",
    "http_header.fidl",
    "http_service.fidl",
    "url_body.fidl",
    "url_loader.fidl",
    "url_request.fidl",
    "url_response.fidl",
  ]
}

group("all"){
  deps = [
    ":fuchsia.net.oldhttp",
  ]
}
