Performs an HTTP GET request and returns the raw response. Unlike the variations in
download.rs, no progress – but it works on native and web.
\ No newline at end of file
diff --git a/rustdoc/abstio/fn.http_post.html b/rustdoc/abstio/fn.http_post.html
index 684bb90433..20ab56d685 100644
--- a/rustdoc/abstio/fn.http_post.html
+++ b/rustdoc/abstio/fn.http_post.html
@@ -1,4 +1,4 @@
http_post in abstio - Rust
-
Performs an HTTP POST request and returns the response.
\ No newline at end of file
diff --git a/rustdoc/abstio/http/fn.http_get.html b/rustdoc/abstio/http/fn.http_get.html
index 5f22d32a58..3ad1a12270 100644
--- a/rustdoc/abstio/http/fn.http_get.html
+++ b/rustdoc/abstio/http/fn.http_get.html
@@ -1,5 +1,5 @@
http_get in abstio::http - Rust
-
Performs an HTTP GET request and returns the raw response. Unlike the variations in
download.rs, no progress – but it works on native and web.
\ No newline at end of file
diff --git a/rustdoc/abstio/http/fn.http_post.html b/rustdoc/abstio/http/fn.http_post.html
index 57811f6cec..5bf4dc34fe 100644
--- a/rustdoc/abstio/http/fn.http_post.html
+++ b/rustdoc/abstio/http/fn.http_post.html
@@ -1,4 +1,4 @@
http_post in abstio::http - Rust
-
\ No newline at end of file
diff --git a/rustdoc/search-index.js b/rustdoc/search-index.js
index d43fb00a19..3dca21f1f2 100644
--- a/rustdoc/search-index.js
+++ b/rustdoc/search-index.js
@@ -1,5 +1,5 @@
var searchIndex = JSON.parse('{\
-"abstio":{"doc":"A/B Street organizes data files in a particular way. This …","t":[3,3,3,3,3,3,0,0,12,12,12,12,12,5,0,5,5,12,5,5,5,0,5,5,12,12,0,0,12,5,5,5,12,5,5,5,5,5,12,5,5,5,5,5,5,5,5,5,5,5,5,5,12,5,5,5,12,5,5,12,12,12,5,5,3,3,3,11,11,11,11,11,11,11,12,12,11,11,11,12,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,3,3,3,3,12,12,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,5,11,11,5,11,5,5,5,5,5,5,5,5,5,5,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,11,11,5,11,11,5,11,12,5,11,11,12,5,5,5,5,11,12,12,11,11,5,12,12,11,11,11,5,5],"n":["CityName","DataPacks","Entry","FileWithProgress","Manifest","MapName","abst_data","abst_paths","checksum","city","city","compressed_size_bytes","country","delete_file","download","download_bytes","download_to_file","entries","file_exists","find_next_file","find_prev_file","http","http_get","http_post","inner","input","io","io_native","last_printed_at","list_all_objects","list_dir","load_all_objects","map","maybe_read_binary","maybe_read_json","must_read_object","parse_scenario_path","path","path","path_all_edits","path_all_saves","path_all_scenarios","path_camera_state","path_edits","path_player","path_popdat","path_prebaked_results","path_raw_map","path_save","path_scenario","path_shared_input","print_download_progress","processed_bytes","read_binary","read_json","read_object","runtime","slurp_bytes","slurp_file","started_at","total_bytes","uncompressed_size_bytes","write_binary","write_json","DataPacks","Entry","Manifest","all_data_packs","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","checksum","compressed_size_bytes","deserialize","deserialize","deserialize","entries","filter","from","from","from","input","into","into","into","is_file_part_of_huge_seattle","load","load_or_create","path_to_city","runtime","save","serialize","serialize","serialize","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","uncompressed_size_bytes","CityName","MapName","ROOT_DIR","ROOT_PLAYER_DIR","__private_field","__private_field","as_any","as_filename","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","city","city","clone","clone","clone_box","clone_into","clone_into","cmp","cmp","country","deref","deref","describe","describe","deserialize","deserialize","eq","eq","equivalent","equivalent","fmt","fmt","from","from","from","from","from_city","from_path","initialize","initialize","input_path","into","into","into","into","list_all_cities_from_importer_config","list_all_cities_from_manifest","list_all_cities_locally","list_all_cities_merged","list_all_maps_from_manifest","list_all_maps_in_city_from_importer_config","list_all_maps_in_city_from_manifest","list_all_maps_in_city_locally","list_all_maps_in_city_merged","list_all_maps_locally","list_all_maps_merged","map","ne","ne","new","new","parse","parse_scenario_path","partial_cmp","partial_cmp","path","path","path_all_edits","path_all_saves","path_all_scenarios","path_camera_state","path_edits","path_player","path_popdat","path_prebaked_results","path_raw_map","path_save","path_scenario","path_shared_input","seattle","seattle","serialize","serialize","to_data_pack_name","to_owned","to_owned","to_path","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","download_bytes","download_to_file","print_download_progress","http_get","http_post","find_next_file","find_prev_file","list_all_objects","load_all_objects","maybe_read_json","must_read_object","read_binary","read_json","read_object","FileWithProgress","borrow","borrow_mut","delete_file","events","events_and_raw","file_exists","from","inner","inner_slurp_file","into","keys","last_printed_at","list_dir","maybe_read_binary","maybe_write_binary","maybe_write_json","new","path","processed_bytes","read","read_line","slurp_file","started_at","total_bytes","try_from","try_into","type_id","write_binary","write_json"],"q":["abstio","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","abstio::abst_data","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","abstio::abst_paths","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","abstio::download","","","abstio::http","","abstio::io","","","","","","","","","abstio::io_native","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["A single city is identified using this.","Player-chosen groups of files to opt into downloading","A single file","","A list of all canonical data files for A/B Street that’…","A single map is identified using this.","","Generate paths for different A/B Street files","md5sum of the file","The name of the city, in filename-friendly form – for …","","Compressed size in bytes","A two letter lowercase country code, from …","Idempotent","","Downloads bytes from a URL. This must be called with a …","Download a file from a URL. This must be called with a …","Keyed by path, starting with “data/”","","","Keeps file extensions","","Performs an HTTP GET request and returns the raw …","Performs an HTTP POST request and returns the response.","","A list of cities to download for running the map importer.","","Normal file IO using the filesystem","","Just list all things from a directory, return sorted by …","Returns full paths","Load all serialized things from a directory, return …","The name of the map within the city, in filename-friendly …","","","May be a JSON or binary file. Panics on failure.","Extract the map and scenario name from a path. Crashes if …","","","","","","","","","","","","","","","Print download progress to STDOUT. Pass this the …","","","","May be a JSON or binary file","A list of cities to download for using in A/B Street. …","An adapter for widgetry::Settings::read_svg to read SVGs …","","","","Uncompressed size in bytes. Because we have some massive …","","","Player-chosen groups of files to opt into downloading","A single file","A list of all canonical data files for A/B Street that’…","Fill out all data packs based on the local manifest.","","","","","","","md5sum of the file","Compressed size in bytes","","","","Keyed by path, starting with “data/”","Removes entries from the Manifest to match the DataPacks …","","","","A list of cities to download for running the map importer.","","","","Because there are so many Seattle maps and they’re …","","Load the player’s config for what files to download, or …","If an entry’s path is system data, return the city.","A list of cities to download for using in A/B Street. …","Saves the player’s config for what files to download.","","","","","","","","","","","","","Uncompressed size in bytes. Because we have some massive …","A single city is identified using this.","A single map is identified using this.","","","","","","Stringify the map name for filenames.","","","","","","","","","The name of the city, in filename-friendly form – for …","","","","","","","","","A two letter lowercase country code, from …","","","Stringify the city name for debug messages. Don’t …","Stringify the map name for debug messages. Don’t …","","","","","","","","","","","","","Create a MapName from a city and map within that city.","Transforms a path to a map back to a MapName. Returns None…","","","Constructs the path to some city-scoped data/input.","","","","","Returns all city names based on importer config.","Returns all city names based on the manifest of available …","Returns all city names available locally.","Returns all city names either available locally or based …","Returns all maps from all cities based on the manifest of …","Returns all maps in a city based on importer config.","Returns all maps from one city based on the manifest of …","Returns all maps from one city that’re available …","Returns all maps from one city that’re available either …","Returns all maps from all cities available locally.","Returns all maps from all cities either available locally …","The name of the map within the city, in filename-friendly …","","","Create a CityName from a country code and city.","Create a MapName from a country code, city, and map name.","Parses a CityName from something like “gb/london”; …","Extract the map and scenario name from a path. Crashes if …","","","","Returns the filesystem path to this map.","","","","","","","","","","","","","Convenient constructor for the main city of the game.","Convenient constructor for the main city of the game.","","","Returns the string to opt into runtime or input files for …","","","Expresses the city as a path, like “gb/london”; the …","","","","","","","","","","","","","Downloads bytes from a URL. This must be called with a …","Download a file from a URL. This must be called with a …","Print download progress to STDOUT. Pass this the …","Performs an HTTP GET request and returns the raw …","Performs an HTTP POST request and returns the response.","","Keeps file extensions","Just list all things from a directory, return sorted by …","Load all serialized things from a directory, return …","","May be a JSON or binary file. Panics on failure.","","","May be a JSON or binary file","","","","Idempotent","","","","","","","","","","Returns full paths","","","","Also hands back a callback that’ll add the final result …","","","","","","","","","","","",""],"i":[0,0,0,0,0,0,0,0,1,2,3,1,2,0,0,0,0,4,0,0,0,0,0,0,5,6,0,0,5,0,0,0,3,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,6,0,0,5,5,1,0,0,0,0,0,6,4,1,6,4,1,6,1,1,4,1,6,4,4,4,1,6,6,4,1,6,4,4,6,4,6,6,4,1,6,4,1,6,4,1,6,4,1,6,1,0,0,0,0,7,8,3,3,7,8,2,3,7,8,2,3,2,3,2,3,3,2,3,2,3,2,7,8,2,3,2,3,2,3,2,3,2,3,7,8,2,3,3,3,7,8,2,7,8,2,3,2,2,2,2,3,2,3,3,3,3,3,3,2,3,2,3,2,0,2,3,0,3,0,0,0,0,0,0,0,0,0,0,0,0,2,3,2,3,3,2,3,2,7,8,2,3,7,8,2,3,7,8,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,5,5,0,5,5,0,5,5,5,0,0,0,0,5,5,5,5,5,0,5,5,5,5,5,0,0],"f":[null,null,null,null,null,null,null,null,null,null,null,null,null,[[["asref",8],["str",15]]],null,[[["asref",8],["sender",3],["str",15],["option",4],["string",3]]],[[["asref",8],["str",15],["option",4],["string",3]]],null,[[["asref",8],["str",15]],["bool",15]],[[["string",3]],[["string",3],["option",4]]],[[["string",3]],[["string",3],["option",4]]],null,[[["asref",8],["str",15]]],[[["asref",8],["string",3],["str",15]]],null,null,null,null,null,[[["string",3]],[["string",3],["vec",3]]],[[["string",3]],[["string",3],["vec",3]]],[[["string",3]],["vec",3]],null,[[["string",3],["timer",3]],[["result",6],["deserializeowned",8]]],[[["string",3],["timer",3]],[["result",6],["deserializeowned",8]]],[[["string",3],["timer",3]],["deserializeowned",8]],[[["str",15]]],[[["asref",8],["str",15]],["string",3]],null,[[["mapname",3]],["string",3]],[[["mapname",3],["str",15]],["string",3]],[[["mapname",3]],["string",3]],[[["mapname",3]],["string",3]],[[["mapname",3],["str",15]],["string",3]],[[["asref",8],["str",15]],["string",3]],[[],["string",3]],[[["mapname",3],["str",15]],["string",3]],[[["mapname",3]],["string",3]],[[["mapname",3],["str",15],["string",3]],["string",3]],[[["mapname",3],["str",15]],["string",3]],[[["asref",8],["str",15]],["string",3]],[[["receiver",3],["string",3]]],null,[[["string",3],["timer",3]],["deserializeowned",8]],[[["string",3],["timer",3]],["deserializeowned",8]],[[["string",3],["timer",3]],[["result",6],["deserializeowned",8]]],null,[[["str",15]],[["vec",3],["u8",15]]],[[["asref",8],["str",15]],[["result",6],["vec",3]]],null,null,null,[[["string",3]]],[[["string",3]]],null,null,null,[[],["datapacks",3]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],null,[[["datapacks",3]],["manifest",3]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[["str",15]],["bool",15]],[[],["manifest",3]],[[],["datapacks",3]],[[["str",15]],[["option",4],["cityname",3]]],null,[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,null,null,[[],["any",8]],[[],["string",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[],["cityname",3]],[[],["mapname",3]],[[],[["box",3],["global",3],["cloneableany",8]]],[[]],[[]],[[["cityname",3]],["ordering",4]],[[["mapname",3]],["ordering",4]],null,[[],["string",3]],[[],["string",3]],[[],["string",3]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[["cityname",3]],["bool",15]],[[["mapname",3]],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[["cityname",3],["str",15]],["mapname",3]],[[["str",15]],[["mapname",3],["option",4]]],[[]],[[]],[[["asref",8],["str",15]],["string",3]],[[]],[[]],[[]],[[]],[[],[["cityname",3],["vec",3]]],[[["manifest",3]],[["cityname",3],["vec",3]]],[[],[["cityname",3],["vec",3]]],[[["manifest",3]],[["cityname",3],["vec",3]]],[[["manifest",3]],[["mapname",3],["vec",3]]],[[],[["mapname",3],["vec",3]]],[[["cityname",3],["manifest",3]],[["mapname",3],["vec",3]]],[[["cityname",3]],[["mapname",3],["vec",3]]],[[["cityname",3],["manifest",3]],[["mapname",3],["vec",3]]],[[],[["mapname",3],["vec",3]]],[[["manifest",3]],[["mapname",3],["vec",3]]],null,[[["cityname",3]],["bool",15]],[[["mapname",3]],["bool",15]],[[["str",15]],["cityname",3]],[[["str",15]],["mapname",3]],[[["str",15]],[["result",6],["cityname",3]]],[[["str",15]]],[[["cityname",3]],[["option",4],["ordering",4]]],[[["mapname",3]],[["option",4],["ordering",4]]],[[["asref",8],["str",15]],["string",3]],[[],["string",3]],[[["mapname",3]],["string",3]],[[["mapname",3],["str",15]],["string",3]],[[["mapname",3]],["string",3]],[[["mapname",3]],["string",3]],[[["mapname",3],["str",15]],["string",3]],[[["asref",8],["str",15]],["string",3]],[[],["string",3]],[[["mapname",3],["str",15]],["string",3]],[[["mapname",3]],["string",3]],[[["mapname",3],["str",15],["string",3]],["string",3]],[[["mapname",3],["str",15]],["string",3]],[[["asref",8],["str",15]],["string",3]],[[],["cityname",3]],[[["str",15]],["mapname",3]],[[],["result",4]],[[],["result",4]],[[],["string",3]],[[]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[["asref",8],["sender",3],["str",15],["option",4],["string",3]]],[[["asref",8],["str",15],["option",4],["string",3]]],[[["receiver",3],["string",3]]],[[["asref",8],["str",15]]],[[["asref",8],["string",3],["str",15]]],[[["string",3]],[["string",3],["option",4]]],[[["string",3]],[["string",3],["option",4]]],[[["string",3]],[["string",3],["vec",3]]],[[["string",3]],["vec",3]],[[["string",3],["timer",3]],[["result",6],["deserializeowned",8]]],[[["string",3],["timer",3]],["deserializeowned",8]],[[["string",3],["timer",3]],["deserializeowned",8]],[[["string",3],["timer",3]],["deserializeowned",8]],[[["string",3],["timer",3]],[["result",6],["deserializeowned",8]]],null,[[]],[[]],[[["asref",8],["str",15]]],[[],["events",3]],[[],["eventsandraw",3]],[[["asref",8],["str",15]],["bool",15]],[[]],null,[[["str",15]],[["result",6],["vec",3]]],[[]],[[],["keys",3]],null,[[["string",3]],[["string",3],["vec",3]]],[[["string",3],["timer",3]],[["result",6],["deserializeowned",8]]],[[["str",15]],["result",6]],[[["str",15]],["result",6]],[[["str",15]],["result",6]],null,null,[[],[["result",6],["usize",15],["error",3]]],[[],[["result",4],["error",3],["option",4]]],[[["asref",8],["str",15]],[["result",6],["vec",3]]],null,null,[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[["string",3]]],[[["string",3]]]],"p":[[3,"Entry"],[3,"CityName"],[3,"MapName"],[3,"Manifest"],[3,"FileWithProgress"],[3,"DataPacks"],[3,"ROOT_DIR"],[3,"ROOT_PLAYER_DIR"]]},\
+"abstio":{"doc":"A/B Street organizes data files in a particular way. This …","t":[3,3,3,3,3,3,0,0,12,12,12,12,12,5,0,5,5,12,5,5,5,0,5,5,12,12,0,0,12,5,5,5,12,5,5,5,5,5,12,5,5,5,5,5,5,5,5,5,5,5,5,5,12,5,5,5,12,5,5,12,12,12,5,5,3,3,3,11,11,11,11,11,11,11,12,12,11,11,11,12,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,3,3,3,3,12,12,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,5,11,11,5,11,5,5,5,5,5,5,5,5,5,5,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,11,11,5,11,11,5,11,12,5,11,11,12,5,5,5,5,11,12,12,11,11,5,12,12,11,11,11,5,5],"n":["CityName","DataPacks","Entry","FileWithProgress","Manifest","MapName","abst_data","abst_paths","checksum","city","city","compressed_size_bytes","country","delete_file","download","download_bytes","download_to_file","entries","file_exists","find_next_file","find_prev_file","http","http_get","http_post","inner","input","io","io_native","last_printed_at","list_all_objects","list_dir","load_all_objects","map","maybe_read_binary","maybe_read_json","must_read_object","parse_scenario_path","path","path","path_all_edits","path_all_saves","path_all_scenarios","path_camera_state","path_edits","path_player","path_popdat","path_prebaked_results","path_raw_map","path_save","path_scenario","path_shared_input","print_download_progress","processed_bytes","read_binary","read_json","read_object","runtime","slurp_bytes","slurp_file","started_at","total_bytes","uncompressed_size_bytes","write_binary","write_json","DataPacks","Entry","Manifest","all_data_packs","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","checksum","compressed_size_bytes","deserialize","deserialize","deserialize","entries","filter","from","from","from","input","into","into","into","is_file_part_of_huge_seattle","load","load_or_create","path_to_city","runtime","save","serialize","serialize","serialize","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","uncompressed_size_bytes","CityName","MapName","ROOT_DIR","ROOT_PLAYER_DIR","__private_field","__private_field","as_any","as_filename","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","city","city","clone","clone","clone_box","clone_into","clone_into","cmp","cmp","country","deref","deref","describe","describe","deserialize","deserialize","eq","eq","equivalent","equivalent","fmt","fmt","from","from","from","from","from_city","from_path","initialize","initialize","input_path","into","into","into","into","list_all_cities_from_importer_config","list_all_cities_from_manifest","list_all_cities_locally","list_all_cities_merged","list_all_maps_from_manifest","list_all_maps_in_city_from_importer_config","list_all_maps_in_city_from_manifest","list_all_maps_in_city_locally","list_all_maps_in_city_merged","list_all_maps_locally","list_all_maps_merged","map","ne","ne","new","new","parse","parse_scenario_path","partial_cmp","partial_cmp","path","path","path_all_edits","path_all_saves","path_all_scenarios","path_camera_state","path_edits","path_player","path_popdat","path_prebaked_results","path_raw_map","path_save","path_scenario","path_shared_input","seattle","seattle","serialize","serialize","to_data_pack_name","to_owned","to_owned","to_path","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","download_bytes","download_to_file","print_download_progress","http_get","http_post","find_next_file","find_prev_file","list_all_objects","load_all_objects","maybe_read_json","must_read_object","read_binary","read_json","read_object","FileWithProgress","borrow","borrow_mut","delete_file","events","events_and_raw","file_exists","from","inner","inner_slurp_file","into","keys","last_printed_at","list_dir","maybe_read_binary","maybe_write_binary","maybe_write_json","new","path","processed_bytes","read","read_line","slurp_file","started_at","total_bytes","try_from","try_into","type_id","write_binary","write_json"],"q":["abstio","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","abstio::abst_data","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","abstio::abst_paths","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","abstio::download","","","abstio::http","","abstio::io","","","","","","","","","abstio::io_native","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["A single city is identified using this.","Player-chosen groups of files to opt into downloading","A single file","","A list of all canonical data files for A/B Street that’…","A single map is identified using this.","","Generate paths for different A/B Street files","md5sum of the file","The name of the city, in filename-friendly form – for …","","Compressed size in bytes","A two letter lowercase country code, from …","Idempotent","","Downloads bytes from a URL. This must be called with a …","Download a file from a URL. This must be called with a …","Keyed by path, starting with “data/”","","","Keeps file extensions","","Performs an HTTP GET request and returns the raw …","Performs an HTTP POST request and returns the response.","","A list of cities to download for running the map importer.","","Normal file IO using the filesystem","","Just list all things from a directory, return sorted by …","Returns full paths","Load all serialized things from a directory, return …","The name of the map within the city, in filename-friendly …","","","May be a JSON or binary file. Panics on failure.","Extract the map and scenario name from a path. Crashes if …","","","","","","","","","","","","","","","Print download progress to STDOUT. Pass this the …","","","","May be a JSON or binary file","A list of cities to download for using in A/B Street. …","An adapter for widgetry::Settings::read_svg to read SVGs …","","","","Uncompressed size in bytes. Because we have some massive …","","","Player-chosen groups of files to opt into downloading","A single file","A list of all canonical data files for A/B Street that’…","Fill out all data packs based on the local manifest.","","","","","","","md5sum of the file","Compressed size in bytes","","","","Keyed by path, starting with “data/”","Removes entries from the Manifest to match the DataPacks …","","","","A list of cities to download for running the map importer.","","","","Because there are so many Seattle maps and they’re …","","Load the player’s config for what files to download, or …","If an entry’s path is system data, return the city.","A list of cities to download for using in A/B Street. …","Saves the player’s config for what files to download.","","","","","","","","","","","","","Uncompressed size in bytes. Because we have some massive …","A single city is identified using this.","A single map is identified using this.","","","","","","Stringify the map name for filenames.","","","","","","","","","The name of the city, in filename-friendly form – for …","","","","","","","","","A two letter lowercase country code, from …","","","Stringify the city name for debug messages. Don’t …","Stringify the map name for debug messages. Don’t …","","","","","","","","","","","","","Create a MapName from a city and map within that city.","Transforms a path to a map back to a MapName. Returns None…","","","Constructs the path to some city-scoped data/input.","","","","","Returns all city names based on importer config.","Returns all city names based on the manifest of available …","Returns all city names available locally.","Returns all city names either available locally or based …","Returns all maps from all cities based on the manifest of …","Returns all maps in a city based on importer config.","Returns all maps from one city based on the manifest of …","Returns all maps from one city that’re available …","Returns all maps from one city that’re available either …","Returns all maps from all cities available locally.","Returns all maps from all cities either available locally …","The name of the map within the city, in filename-friendly …","","","Create a CityName from a country code and city.","Create a MapName from a country code, city, and map name.","Parses a CityName from something like “gb/london”; …","Extract the map and scenario name from a path. Crashes if …","","","","Returns the filesystem path to this map.","","","","","","","","","","","","","Convenient constructor for the main city of the game.","Convenient constructor for the main city of the game.","","","Returns the string to opt into runtime or input files for …","","","Expresses the city as a path, like “gb/london”; the …","","","","","","","","","","","","","Downloads bytes from a URL. This must be called with a …","Download a file from a URL. This must be called with a …","Print download progress to STDOUT. Pass this the …","Performs an HTTP GET request and returns the raw …","Performs an HTTP POST request and returns the response.","","Keeps file extensions","Just list all things from a directory, return sorted by …","Load all serialized things from a directory, return …","","May be a JSON or binary file. Panics on failure.","","","May be a JSON or binary file","","","","Idempotent","","","","","","","","","","Returns full paths","","","","Also hands back a callback that’ll add the final result …","","","","","","","","","","","",""],"i":[0,0,0,0,0,0,0,0,1,2,3,1,2,0,0,0,0,4,0,0,0,0,0,0,5,6,0,0,5,0,0,0,3,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,6,0,0,5,5,1,0,0,0,0,0,6,4,1,6,4,1,6,1,1,4,1,6,4,4,4,1,6,6,4,1,6,4,4,6,4,6,6,4,1,6,4,1,6,4,1,6,4,1,6,1,0,0,0,0,7,8,3,3,7,8,2,3,7,8,2,3,2,3,2,3,3,2,3,2,3,2,7,8,2,3,2,3,2,3,2,3,2,3,7,8,2,3,3,3,7,8,2,7,8,2,3,2,2,2,2,3,2,3,3,3,3,3,3,2,3,2,3,2,0,2,3,0,3,0,0,0,0,0,0,0,0,0,0,0,0,2,3,2,3,3,2,3,2,7,8,2,3,7,8,2,3,7,8,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,5,5,0,5,5,0,5,5,5,0,0,0,0,5,5,5,5,5,0,5,5,5,5,5,0,0],"f":[null,null,null,null,null,null,null,null,null,null,null,null,null,[[["asref",8],["str",15]]],null,[[["asref",8],["sender",3],["str",15],["option",4],["string",3]]],[[["asref",8],["str",15],["option",4],["string",3]]],null,[[["asref",8],["str",15]],["bool",15]],[[["string",3]],[["string",3],["option",4]]],[[["string",3]],[["string",3],["option",4]]],null,[[["asref",8],["str",15]]],[[["asref",8],["string",3],["str",15]]],null,null,null,null,null,[[["string",3]],[["string",3],["vec",3]]],[[["string",3]],[["string",3],["vec",3]]],[[["string",3]],["vec",3]],null,[[["string",3],["timer",3]],[["result",6],["deserializeowned",8]]],[[["string",3],["timer",3]],[["result",6],["deserializeowned",8]]],[[["string",3],["timer",3]],["deserializeowned",8]],[[["str",15]]],[[["asref",8],["str",15]],["string",3]],null,[[["mapname",3]],["string",3]],[[["mapname",3],["str",15]],["string",3]],[[["mapname",3]],["string",3]],[[["mapname",3]],["string",3]],[[["mapname",3],["str",15]],["string",3]],[[["asref",8],["str",15]],["string",3]],[[],["string",3]],[[["mapname",3],["str",15]],["string",3]],[[["mapname",3]],["string",3]],[[["mapname",3],["str",15],["string",3]],["string",3]],[[["mapname",3],["str",15]],["string",3]],[[["asref",8],["str",15]],["string",3]],[[["receiver",3],["string",3]]],null,[[["string",3],["timer",3]],["deserializeowned",8]],[[["string",3],["timer",3]],["deserializeowned",8]],[[["string",3],["timer",3]],[["result",6],["deserializeowned",8]]],null,[[["str",15]],[["vec",3],["u8",15]]],[[["asref",8],["str",15]],[["result",6],["vec",3]]],null,null,null,[[["string",3]]],[[["string",3]]],null,null,null,[[],["datapacks",3]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],null,[[["datapacks",3]],["manifest",3]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[["str",15]],["bool",15]],[[],["manifest",3]],[[],["datapacks",3]],[[["str",15]],[["option",4],["cityname",3]]],null,[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,null,null,[[],["any",8]],[[],["string",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[],["cityname",3]],[[],["mapname",3]],[[],[["box",3],["cloneableany",8],["global",3]]],[[]],[[]],[[["cityname",3]],["ordering",4]],[[["mapname",3]],["ordering",4]],null,[[],["string",3]],[[],["string",3]],[[],["string",3]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[["cityname",3]],["bool",15]],[[["mapname",3]],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[["cityname",3],["str",15]],["mapname",3]],[[["str",15]],[["mapname",3],["option",4]]],[[]],[[]],[[["asref",8],["str",15]],["string",3]],[[]],[[]],[[]],[[]],[[],[["cityname",3],["vec",3]]],[[["manifest",3]],[["cityname",3],["vec",3]]],[[],[["cityname",3],["vec",3]]],[[["manifest",3]],[["cityname",3],["vec",3]]],[[["manifest",3]],[["mapname",3],["vec",3]]],[[],[["mapname",3],["vec",3]]],[[["cityname",3],["manifest",3]],[["mapname",3],["vec",3]]],[[["cityname",3]],[["mapname",3],["vec",3]]],[[["cityname",3],["manifest",3]],[["mapname",3],["vec",3]]],[[],[["mapname",3],["vec",3]]],[[["manifest",3]],[["mapname",3],["vec",3]]],null,[[["cityname",3]],["bool",15]],[[["mapname",3]],["bool",15]],[[["str",15]],["cityname",3]],[[["str",15]],["mapname",3]],[[["str",15]],[["result",6],["cityname",3]]],[[["str",15]]],[[["cityname",3]],[["option",4],["ordering",4]]],[[["mapname",3]],[["option",4],["ordering",4]]],[[["asref",8],["str",15]],["string",3]],[[],["string",3]],[[["mapname",3]],["string",3]],[[["mapname",3],["str",15]],["string",3]],[[["mapname",3]],["string",3]],[[["mapname",3]],["string",3]],[[["mapname",3],["str",15]],["string",3]],[[["asref",8],["str",15]],["string",3]],[[],["string",3]],[[["mapname",3],["str",15]],["string",3]],[[["mapname",3]],["string",3]],[[["mapname",3],["str",15],["string",3]],["string",3]],[[["mapname",3],["str",15]],["string",3]],[[["asref",8],["str",15]],["string",3]],[[],["cityname",3]],[[["str",15]],["mapname",3]],[[],["result",4]],[[],["result",4]],[[],["string",3]],[[]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[["asref",8],["sender",3],["str",15],["option",4],["string",3]]],[[["asref",8],["str",15],["option",4],["string",3]]],[[["receiver",3],["string",3]]],[[["asref",8],["str",15]]],[[["asref",8],["string",3],["str",15]]],[[["string",3]],[["string",3],["option",4]]],[[["string",3]],[["string",3],["option",4]]],[[["string",3]],[["string",3],["vec",3]]],[[["string",3]],["vec",3]],[[["string",3],["timer",3]],[["result",6],["deserializeowned",8]]],[[["string",3],["timer",3]],["deserializeowned",8]],[[["string",3],["timer",3]],["deserializeowned",8]],[[["string",3],["timer",3]],["deserializeowned",8]],[[["string",3],["timer",3]],[["result",6],["deserializeowned",8]]],null,[[]],[[]],[[["asref",8],["str",15]]],[[],["events",3]],[[],["eventsandraw",3]],[[["asref",8],["str",15]],["bool",15]],[[]],null,[[["str",15]],[["result",6],["vec",3]]],[[]],[[],["keys",3]],null,[[["string",3]],[["string",3],["vec",3]]],[[["string",3],["timer",3]],[["result",6],["deserializeowned",8]]],[[["str",15]],["result",6]],[[["str",15]],["result",6]],[[["str",15]],["result",6]],null,null,[[],[["result",6],["usize",15],["error",3]]],[[],[["result",4],["error",3],["option",4]]],[[["asref",8],["str",15]],[["result",6],["vec",3]]],null,null,[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[["string",3]]],[[["string",3]]]],"p":[[3,"Entry"],[3,"CityName"],[3,"MapName"],[3,"Manifest"],[3,"FileWithProgress"],[3,"DataPacks"],[3,"ROOT_DIR"],[3,"ROOT_PLAYER_DIR"]]},\
"abstutil":{"doc":"The contents of this crate need to be organized better:","t":[12,8,8,3,3,3,8,3,17,3,3,5,10,5,12,0,0,10,0,5,5,5,5,5,12,12,5,5,5,5,10,12,12,12,12,0,12,12,5,5,5,5,0,0,5,5,5,5,5,5,12,0,5,5,5,12,0,5,3,12,11,11,11,11,12,11,11,11,12,11,11,11,11,5,11,11,11,11,11,11,12,8,8,10,10,12,3,3,8,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,13,3,13,4,3,3,8,3,13,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,5,11,11,12,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,12,12,12,12,12,11,11,11,11,11,11,12,11,11,12,5,10,11,12,12,11,11,11,10,12,11,12,12,11,11,12,12,12,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,5,5,5],"n":["0","CloneableAny","CloneableImpl","CmdArgs","Counter","FixedMap","IndexableKey","MultiMap","PROGRESS_FREQUENCY_SECONDS","Tags","VecMap","abbreviated_format","as_any","basename","bits","cli","clone","clone_box","collections","contains_duplicates","deserialize_btreemap","deserialize_hashmap","deserialize_multimap","deserialize_usize","empty","free","from_binary","from_binary_reader","from_json","from_json_reader","index","inner","inner","key_type","kv","logger","map","map","must_run_cmd","parent_path","plain_list_names","prettyprint_usize","process","serde","serialize_btreemap","serialize_hashmap","serialize_multimap","serialize_usize","serialized_size_bytes","setup","sum","time","to_binary","to_json","to_json_terse","used","utils","wraparound_get","CmdArgs","bits","borrow","borrow_mut","done","enabled","free","from","from_args","into","kv","new","optional","optional_free","optional_parse","parse_args","required","required_free","true_false","try_from","try_into","type_id","used","CloneableAny","CloneableImpl","as_any","clone_box","0","Counter","FixedMap","IndexableKey","MultiMap","Tags","VecMap","add","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","compare","consume","consume","consume","contains_duplicates","contains_key","contains_key","default","default","default","default","deserialize","deserialize","diff","empty","empty","eq","eq","fmt","from","from","from","from","from","get","get","get","get","get","get_mut","get_result","highest_n","inc","index","index","inner","inner","inner","insert","insert","insert","into","into","into","into","into","is","is_any","is_empty","is_empty","is_empty","key_type","len","len","map","map","max","mut_or_insert","ne","ne","new","new","new","new","new","push","remove","remove","remove","serialize","serialize","set","sorted_asc","sum","sum","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","values","wraparound_get","setup","must_run_cmd","deserialize_btreemap","deserialize_hashmap","deserialize_multimap","deserialize_usize","from_binary","from_binary_reader","from_json","from_json_reader","serialize_btreemap","serialize_hashmap","serialize_multimap","serialize_usize","serialized_size_bytes","to_binary","to_json","to_json_terse","File","Progress","Progress","StackEntry","TimedFileReader","Timer","TimerSink","TimerSpan","TimerSpan","add_result","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cancel_iter_early","cancel_iter_early","clear_current_line","done","drop","elapsed_seconds","events","events_and_raw","first_update","fmt","from","from","from","from","from","inner","inner_parallelize","into","into","into","into","into","keys","label","last_printed_at","last_printed_at","name","nested_results","nested_time","new","new","new","new_with_sink","next","next","outermost_name","parallelize","parallelize_polite","path","prettyprint_time","println","println","processed_bytes","processed_items","read","read_file","read_line","reprintln","results","selfless_println","sink","stack","start","start_iter","started_at","started_at","started_at","stop","throwaway","total_bytes","total_items","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","abbreviated_format","basename","parent_path","plain_list_names","prettyprint_usize"],"q":["abstutil","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","abstutil::cli","","","","","","","","","","","","","","","","","","","","","","","abstutil::clone","","","","abstutil::collections","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","abstutil::logger","abstutil::process","abstutil::serde","","","","","","","","","","","","","","","","abstutil::time","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","abstutil::utils","","","",""],"d":["","Trick to make a cloneable Any from …","","Yet another barebones command-line flag parsing library.","","A drop-in replacement for BTreeMap, where the keys have …","Use with FixedMap. From a particular key, extract a usize…","","","Convenience functions around a string->string map","Use when your key is just PartialEq, not Ord or Hash.","","","","","","","","","","Deserializes a BTreeMap from a list of tuples. Necessary …","Deserializes a HashMap from a list of tuples.","Deserializes a MultiMap.","Deserializes a usize from a u32.","","","Deserializes an object from the bincode format.","Deserializes an object from the bincode format, from a …","Deserializes an object from a JSON string.","Deserializes an object from JSON, from a reader.","","","","","","","","","Runs a command, asserts success. STDOUT and STDERR aren’…","","","","","","Serializes a BTreeMap as a list of tuples. Necessary when …","Serializes a HashMap as a list of tuples, first sorting …","Serializes a MultiMap.","Serializes a usize as a u32 to save space. Useful when …","The number of bytes for an object serialized to bincode.","On native: uses env_log","","","Transforms an object to bincoded bytes.","Stringifies an object to nicely formatted JSON.","Stringifies an object to terse JSON.","","","","Yet another barebones command-line flag parsing library.","","","","","","","","","","","On native, initialize with real flags. On web, transform …","","","","","","","","","","","","Trick to make a cloneable Any from …","","","","","","A drop-in replacement for BTreeMap, where the keys have …","Use with FixedMap. From a particular key, extract a usize…","","Convenience functions around a string->string map","Use when your key is just PartialEq, not Ord or Hash.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Find all values that differ. Returns (key, value1, …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Doesn’t dedupe","","","","","","","Values with the same count are grouped together","","","","","","","","","","","","","","","","","","","","","","","","On native: uses env_log","Runs a command, asserts success. STDOUT and STDERR aren’…","Deserializes a BTreeMap from a list of tuples. Necessary …","Deserializes a HashMap from a list of tuples.","Deserializes a MultiMap.","Deserializes a usize from a u32.","Deserializes an object from the bincode format.","Deserializes an object from the bincode format, from a …","Deserializes an object from a JSON string.","Deserializes an object from JSON, from a reader.","Serializes a BTreeMap as a list of tuples. Necessary when …","Serializes a HashMap as a list of tuples, first sorting …","Serializes a MultiMap.","Serializes a usize as a u32 to save space. Useful when …","The number of bytes for an object serialized to bincode.","Transforms an object to bincoded bytes.","Stringifies an object to nicely formatted JSON.","Stringifies an object to terse JSON.","","","","","","Hierarchial magic","","","","","","","","","","","","","","","","","","Used to end the scope of a timer early.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Execute the callback over all requests, using all CPUs …","Like parallelize, but leave one CPU free, to avoid …","","","","","","","","Then the caller passes this in as a reader","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[1,0,0,0,0,0,0,0,0,0,0,0,2,0,3,0,0,2,0,0,0,0,0,0,4,3,0,0,0,0,5,6,7,7,3,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,3,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,0,0,2,2,1,0,0,0,0,0,0,8,6,4,4,8,8,1,7,6,4,8,1,7,4,8,1,7,4,8,1,7,8,6,4,8,0,1,7,6,4,8,7,1,7,1,1,4,4,1,1,6,4,8,1,7,6,4,8,1,7,7,1,8,8,5,7,1,6,7,4,1,7,6,4,8,1,7,1,1,6,4,1,7,6,4,4,8,8,6,4,1,6,4,8,1,7,6,4,1,7,1,7,4,8,8,8,4,8,1,7,6,4,8,1,7,6,4,8,1,7,6,4,8,1,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,9,0,0,0,0,0,9,10,9,10,11,12,13,9,10,11,12,13,10,13,0,10,10,0,10,10,13,13,9,10,11,12,13,12,10,9,10,11,12,13,10,13,12,13,11,11,11,10,12,13,10,10,13,10,10,10,12,0,14,10,12,13,10,10,10,14,10,10,10,10,10,10,11,12,13,10,10,12,13,9,10,11,12,13,9,10,11,12,13,9,10,11,12,13,0,0,0,0,0],"f":[null,null,null,null,null,null,null,null,null,null,null,[[["usize",15]],["string",3]],[[],["any",8]],[[["asref",8],["str",15]],["string",3]],null,null,null,[[],[["box",3],["cloneableany",8]]],null,[[],["bool",15]],[[["deserializer",8]],[["result",6],["btreemap",3]]],[[["deserializer",8]],[["result",6],["hashmap",3]]],[[["deserializer",8]],[["multimap",3],["result",6]]],[[["deserializer",8]],[["result",6],["usize",15]]],null,null,[[],[["result",6],["deserializeowned",8]]],[[["read",8]],[["result",6],["deserializeowned",8]]],[[],[["result",6],["deserializeowned",8]]],[[["read",8]],[["result",6],["deserializeowned",8]]],[[],["usize",15]],null,null,null,null,null,null,null,[[["command",3]]],[[["str",15]],["string",3]],[[["btreeset",3],["string",3]],["string",3]],[[["usize",15]],["string",3]],null,null,[[["serializer",8],["btreemap",3]],["result",6]],[[["hashmap",3],["serializer",8]],["result",6]],[[["multimap",3],["serializer",8]],["result",6]],[[["usize",15],["serializer",8]],["result",6]],[[],["usize",15]],[[]],null,null,[[],[["vec",3],["u8",15]]],[[],["string",3]],[[],["string",3]],null,null,[[["isize",15]]],null,null,[[]],[[]],[[]],[[["str",15]],["bool",15]],null,[[]],[[["vec",3],["string",3]],["cmdargs",3]],[[]],null,[[],["cmdargs",3]],[[["str",15]],[["option",4],["string",3]]],[[],[["option",4],["string",3]]],[[["fn",8],["str",15]],["option",4]],[[],[["result",6],["vec",3]]],[[["str",15]],["string",3]],[[],["string",3]],[[["str",15]],["bool",15]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,[[],["any",8]],[[],[["box",3],["cloneableany",8]]],null,null,null,null,null,null,null,[[["usize",15]],["usize",15]],[[]],[[],["btreemap",3]],[[]],[[]],[[],["btreemap",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["multimap",3]],[[],["counter",3]],[[],["tags",3]],[[],["fixedmap",3]],[[]],[[]],[[]],[[]],[[["counter",3]],["vec",3]],[[],["vec",3]],[[],[["btreemap",3],["btreeset",3]]],[[],[["btreemap",3],["usize",15]]],[[],["bool",15]],[[["str",15]],["bool",15]],[[],["bool",15]],[[]],[[],["multimap",3]],[[],["counter",3]],[[]],[[],["result",4]],[[],["result",4]],[[["tags",3]],["vec",3]],[[],["tags",3]],null,[[["multimap",3]],["bool",15]],[[["tags",3]],["bool",15]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[],["option",4]],[[],["btreeset",3]],[[],["usize",15]],[[["str",15]],[["string",3],["option",4]]],[[],["option",4]],[[],["option",4]],[[["str",15]],[["string",3],["result",6]]],[[["usize",15]],["vec",3]],[[],["usize",15]],[[],["usize",15]],[[]],[[],["btreemap",3]],null,null,[[]],[[["into",8],["string",3]]],[[]],[[]],[[]],[[]],[[]],[[]],[[["str",15]],["bool",15]],[[["vec",3],["str",15]],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],null,[[],["usize",15]],[[],["usize",15]],null,null,[[],["usize",15]],[[["fn",8]]],[[["multimap",3]],["bool",15]],[[["tags",3]],["bool",15]],[[],["vecmap",3]],[[],["multimap",3]],[[],["counter",3]],[[["btreemap",3],["string",3]],["tags",3]],[[],["fixedmap",3]],[[]],[[]],[[["str",15]],[["option",4],["string",3]]],[[],["option",4]],[[],["result",4]],[[],["result",4]],[[["btreeset",3]]],[[],[["vec",3],["vec",3]]],[[],["usize",15]],null,[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],[["flatten",3],["iter",3]]],[[["isize",15]]],[[]],[[["command",3]]],[[["deserializer",8]],[["result",6],["btreemap",3]]],[[["deserializer",8]],[["result",6],["hashmap",3]]],[[["deserializer",8]],[["multimap",3],["result",6]]],[[["deserializer",8]],[["result",6],["usize",15]]],[[],[["result",6],["deserializeowned",8]]],[[["read",8]],[["result",6],["deserializeowned",8]]],[[],[["result",6],["deserializeowned",8]]],[[["read",8]],[["result",6],["deserializeowned",8]]],[[["serializer",8],["btreemap",3]],["result",6]],[[["hashmap",3],["serializer",8]],["result",6]],[[["multimap",3],["serializer",8]],["result",6]],[[["usize",15],["serializer",8]],["result",6]],[[],["usize",15]],[[],[["vec",3],["u8",15]]],[[],["string",3]],[[],["string",3]],null,null,null,null,null,null,null,null,null,[[["f64",15],["string",3]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["f64",15]],[[]],[[]],[[]],[[["instant",6]],["f64",15]],[[],["events",3]],[[],["eventsandraw",3]],null,[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],null,[[["str",15],["vec",3],["u32",15],["fn",8]],["vec",3]],[[]],[[]],[[]],[[]],[[]],[[],["keys",3]],null,null,null,null,null,null,[[["into",8],["string",3]],["timer",3]],[[["str",15]],[["timedfilereader",3],["result",6]]],[[["usize",15],["string",3]],["progress",3]],[[["box",3],["str",15],["timersink",8]],["timer",3]],[[]],[[["option",4]],["option",4]],null,[[["vec",3],["str",15],["fn",8]],["vec",3]],[[["vec",3],["str",15],["fn",8]],["vec",3]],null,[[["f64",15]],["string",3]],[[["string",3]]],[[["string",3]]],null,null,[[],[["error",3],["usize",15],["result",6]]],[[["str",15]],["result",6]],[[],[["result",4],["option",4],["error",3]]],[[["string",3]]],null,[[["option",4],["string",3]]],null,null,[[["into",8],["string",3]]],[[["into",8],["usize",15],["string",3]]],null,null,null,[[["into",8],["string",3]]],[[],["timer",3]],null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[["usize",15]],["string",3]],[[["asref",8],["str",15]],["string",3]],[[["str",15]],["string",3]],[[["btreeset",3],["string",3]],["string",3]],[[["usize",15]],["string",3]]],"p":[[3,"Tags"],[8,"CloneableImpl"],[3,"CmdArgs"],[3,"MultiMap"],[8,"IndexableKey"],[3,"VecMap"],[3,"FixedMap"],[3,"Counter"],[4,"StackEntry"],[3,"Timer"],[3,"TimerSpan"],[3,"TimedFileReader"],[3,"Progress"],[8,"TimerSink"]]},\
"augment_scenario":{"doc":"A tool to modify each person’s schedule from an …","t":[5,5,5,5,5],"n":["add_lunch_trips","add_return_trips","main","pick_lunch_spot","rand_duration"],"q":["augment_scenario","","","",""],"d":["","","","",""],"i":[0,0,0,0,0],"f":[[[["xorshiftrng",3],["scenario",3],["timer",3],["map",3]]],[[["xorshiftrng",3],["scenario",3]]],[[]],[[["bool",15],["buildingid",3],["xorshiftrng",3],["findclosest",3],["map",3]],["option",4]],[[["duration",3],["xorshiftrng",3]],["duration",3]]],"p":[]},\
"clip_osm":{"doc":"","t":[5,5,5],"n":["clip","main","to_pt"],"q":["clip_osm","",""],"d":["","Clips an .osm.pbf specified by --pbf using the Osmosis …",""],"i":[0,0,0],"f":[[[["polygon",3],["str",15]],["result",6]],[[],["result",6]],[[],[["point",3],["f64",15]]]],"p":[]},\
diff --git a/rustdoc/src/abstio/http.rs.html b/rustdoc/src/abstio/http.rs.html
index 40750b1145..475520ebec 100644
--- a/rustdoc/src/abstio/http.rs.html
+++ b/rustdoc/src/abstio/http.rs.html
@@ -24,6 +24,7 @@
222324
+25
useanyhow::Result;
@@ -31,14 +32,15 @@
pubasyncfnhttp_post<I: AsRef<str>>(url: I, body: String) ->Result<String> {
leturl=url.as_ref();
info!("HTTP POST to {}", url);
- letresp=reqwest::Client::new()
- .post(url)
- .body(body)
- .send()
- .await?
- .text()
- .await?;
- Ok(resp)
+ letresp=reqwest::Client::new().post(url).body(body).send().await?;
+ letstatus=resp.status();
+ lettext=resp.text().await?;
+ // With error_for_status{_ref}, it's unclear how to propagate errors and also get the error
+ // message from the body, so do this
+ ifstatus.is_client_error() ||status.is_server_error() {
+ bail!("HTTP error {}: {}", status, text);
+ }
+ Ok(text)
}
/// Performs an HTTP GET request and returns the raw response. Unlike the variations in
@@ -46,7 +48,7 @@
pubasyncfnhttp_get<I: AsRef<str>>(url: I) ->Result<Vec<u8>> {
leturl=url.as_ref();
info!("HTTP GET {}", url);
- letresp=reqwest::get(url).await?.bytes().await?;
+ letresp=reqwest::get(url).await?.error_for_status()?.bytes().await?;
Ok(resp.to_vec())
}
diff --git a/rustdoc/src/game/home/runner/work/abstreet/abstreet/target/debug/build/game-7b2f388b02b372bc/out/built.rs.html b/rustdoc/src/game/home/runner/work/abstreet/abstreet/target/debug/build/game-7b2f388b02b372bc/out/built.rs.html
index 62552f6cd4..35332c56fe 100644
--- a/rustdoc/src/game/home/runner/work/abstreet/abstreet/target/debug/build/game-7b2f388b02b372bc/out/built.rs.html
+++ b/rustdoc/src/game/home/runner/work/abstreet/abstreet/target/debug/build/game-7b2f388b02b372bc/out/built.rs.html
@@ -177,7 +177,7 @@
pubconstRUSTDOC_VERSION: &str=r"rustdoc 1.54.0 (a178d0322 2021-07-26)";
#[doc=r#"The build time in RFC2822, UTC."#]#[allow(dead_code)]
-pubconstBUILT_TIME_UTC: &str=r"Wed, 18 Aug 2021 17:33:01 +0000";
+pubconstBUILT_TIME_UTC: &str=r"Wed, 18 Aug 2021 20:24:33 +0000";
#[doc=r#"The target architecture, given by `CARGO_CFG_TARGET_ARCH`."#]#[allow(dead_code)]pubconstCFG_TARGET_ARCH: &str=r"x86_64";