diff --git a/rustdoc/augment_scenario/all.html b/rustdoc/augment_scenario/all.html new file mode 100644 index 0000000000..091ba76c19 --- /dev/null +++ b/rustdoc/augment_scenario/all.html @@ -0,0 +1,6 @@ +List of all items in this crate + +

[] + + List of all items

Functions

\ No newline at end of file diff --git a/rustdoc/augment_scenario/fn.add_lunch_trips.html b/rustdoc/augment_scenario/fn.add_lunch_trips.html new file mode 100644 index 0000000000..f2aa22f3b6 --- /dev/null +++ b/rustdoc/augment_scenario/fn.add_lunch_trips.html @@ -0,0 +1,4 @@ +augment_scenario::add_lunch_trips - Rust + +

[][src]Function augment_scenario::add_lunch_trips

pub(crate) fn add_lunch_trips(
    scenario: &mut Scenario,
    map: &Map,
    timer: &mut Timer<'_>
)
\ No newline at end of file diff --git a/rustdoc/augment_scenario/fn.add_return_trips.html b/rustdoc/augment_scenario/fn.add_return_trips.html new file mode 100644 index 0000000000..b901169162 --- /dev/null +++ b/rustdoc/augment_scenario/fn.add_return_trips.html @@ -0,0 +1,4 @@ +augment_scenario::add_return_trips - Rust + +

[][src]Function augment_scenario::add_return_trips

pub(crate) fn add_return_trips(scenario: &mut Scenario, map: &Map)
\ No newline at end of file diff --git a/rustdoc/augment_scenario/fn.main.html b/rustdoc/augment_scenario/fn.main.html new file mode 100644 index 0000000000..f5f0656af9 --- /dev/null +++ b/rustdoc/augment_scenario/fn.main.html @@ -0,0 +1,4 @@ +augment_scenario::main - Rust + +

[][src]Function augment_scenario::main

pub(crate) fn main()
\ No newline at end of file diff --git a/rustdoc/augment_scenario/index.html b/rustdoc/augment_scenario/index.html new file mode 100644 index 0000000000..85a85c2874 --- /dev/null +++ b/rustdoc/augment_scenario/index.html @@ -0,0 +1,13 @@ +augment_scenario - Rust + +

[][src]Crate augment_scenario

A tool to modify each person's schedule from an existing scenario in various ways.

+

--add_return_trips: For people with only a single trip before noon, add a return trip back +home sometime in the evening. +--add_lunch_trips: After the last trip somebody takes before noon, insert a round-trip to a +nearby cafe or restaurant.

+

These tools aren't very smart about detecting if a scenario already has these extra trips added +in; be careful about running this on the correct input. It modifies the given --input binary +scenario in-place.

+

Functions

+
add_lunch_trips
add_return_trips
main
\ No newline at end of file diff --git a/rustdoc/augment_scenario/sidebar-items.js b/rustdoc/augment_scenario/sidebar-items.js new file mode 100644 index 0000000000..6e9a8326ce --- /dev/null +++ b/rustdoc/augment_scenario/sidebar-items.js @@ -0,0 +1 @@ +initSidebarItems({"fn":[["add_lunch_trips",""],["add_return_trips",""],["main",""]]}); \ No newline at end of file diff --git a/rustdoc/game/pregame/built_info/constant.BUILT_TIME_UTC.html b/rustdoc/game/pregame/built_info/constant.BUILT_TIME_UTC.html index 0bc78753f6..242a838989 100644 --- a/rustdoc/game/pregame/built_info/constant.BUILT_TIME_UTC.html +++ b/rustdoc/game/pregame/built_info/constant.BUILT_TIME_UTC.html @@ -1,5 +1,5 @@ game::pregame::built_info::BUILT_TIME_UTC - Rust

[][src]Constant game::pregame::built_info::BUILT_TIME_UTC

pub const BUILT_TIME_UTC: &str = "Mon, 01 Mar 2021 19:15:52 +0000";

The built-time in RFC2822, UTC

+ Change settings

[][src]Constant game::pregame::built_info::BUILT_TIME_UTC

pub const BUILT_TIME_UTC: &str = "Mon, 01 Mar 2021 19:30:50 +0000";

The built-time in RFC2822, UTC

\ No newline at end of file diff --git a/rustdoc/search-index.js b/rustdoc/search-index.js index 4eb038df79..3bd245c5dd 100644 --- a/rustdoc/search-index.js +++ b/rustdoc/search-index.js @@ -1,6 +1,7 @@ var searchIndex = JSON.parse('{\ "abstio":{"doc":"A/B Street organizes data files in a particular way. This …","i":[[0,"io_native","abstio","Normal file IO using the filesystem",null,null],[5,"file_exists","abstio::io_native","",null,[[["string",3],["into",8]]]],[5,"list_dir","","Returns full paths",null,[[["string",3]],[["string",3],["vec",3]]]],[5,"slurp_file","","",null,[[["string",3],["into",8]],[["vec",3],["result",6]]]],[5,"inner_slurp_file","","",null,[[],[["vec",3],["result",6]]]],[5,"maybe_read_binary","","",null,[[["string",3],["timer",3]],[["result",6],["deserializeowned",8]]]],[5,"maybe_write_json","","",null,[[],["result",6]]],[5,"write_json","","",null,[[["string",3]]]],[5,"maybe_write_binary","","",null,[[],["result",6]]],[5,"write_binary","","",null,[[["string",3]]]],[5,"delete_file","","Idempotent",null,[[["string",3],["into",8]]]],[3,"FileWithProgress","","",null,null],[12,"inner","","",0,null],[12,"path","","",0,null],[12,"processed_bytes","","",0,null],[12,"total_bytes","","",0,null],[12,"started_at","","",0,null],[12,"last_printed_at","","",0,null],[11,"new","","Also hands back a callback that\'ll add the final result …",0,[[],["result",6]]],[0,"abst_data","abstio","",null,null],[3,"Manifest","abstio::abst_data","A list of all canonical data files for A/B Street that\'re …",null,null],[12,"entries","","Keyed by path, starting with \\\"data/\\\"",1,null],[3,"Entry","","A single file",null,null],[12,"checksum","","md5sum of the file",2,null],[12,"uncompressed_size_bytes","","Uncompressed size in bytes",2,null],[12,"compressed_size_bytes","","Compressed size in bytes",2,null],[11,"load","","",1,[[],["manifest",3]]],[11,"filter","","Removes entries from the Manifest to match the DataPacks …",1,[[["datapacks",3]],["manifest",3]]],[3,"DataPacks","","Player-chosen groups of files to opt into downloading",null,null],[12,"runtime","","A list of cities to download for using in A/B Street. …",3,null],[12,"input","","A list of cities to download for running the map importer.",3,null],[11,"load_or_create","","Load the player\'s config for what files to download, or …",3,[[],["datapacks",3]]],[0,"abst_paths","abstio","Generate paths for different A/B Street files",null,null],[3,"ROOT_DIR","abstio::abst_paths","",null,null],[12,"__private_field","","",4,null],[3,"ROOT_PLAYER_DIR","","",null,null],[12,"__private_field","","",5,null],[5,"path","","",null,[[["string",3],["into",8]],["string",3]]],[3,"CityName","","A single city is identified using this.",null,null],[12,"country","","A two letter lowercase country code, from …",6,null],[12,"city","","The name of the city, in filename-friendly form -- for …",6,null],[11,"new","","Create a CityName from a country code and city.",6,[[],["cityname",3]]],[11,"list_all_cities_from_system_data","","Returns all city names based on system data.",6,[[],[["cityname",3],["vec",3]]]],[11,"list_all_cities_from_importer_config","","Returns all city names based on importer config.",6,[[],[["cityname",3],["vec",3]]]],[11,"parse","","Parses a CityName from something like \\\"gb/london\\\"; the …",6,[[],[["result",6],["cityname",3]]]],[11,"to_path","","Expresses the city as a path, like \\\"gb/london\\\"; the …",6,[[],["string",3]]],[11,"describe","","Stringify the city name for debug messages. Don\'t …",6,[[],["string",3]]],[11,"input_path","","Constructs the path to some city-scoped data/input.",6,[[["string",3],["into",8]],["string",3]]],[3,"MapName","","A single map is identified using this.",null,null],[12,"city","","",7,null],[12,"map","","The name of the map within the city, in filename-friendly …",7,null],[11,"new","","Create a MapName from a country code, city, and map name.",7,[[],["mapname",3]]],[11,"from_city","","Create a MapName from a city and map within that city.",7,[[["cityname",3]],["mapname",3]]],[11,"seattle","","Convenient constructor for the main city of the game.",7,[[],["mapname",3]]],[11,"describe","","Stringify the map name for debug messages. Don\'t …",7,[[],["string",3]]],[11,"as_filename","","Stringify the map name for filenames.",7,[[],["string",3]]],[11,"from_path","","Transforms a path to a map back to a MapName. Returns None…",7,[[],[["mapname",3],["option",4]]]],[11,"path","","Returns the filesystem path to this map.",7,[[],["string",3]]],[11,"list_all_maps_in_city","","Returns all maps from one city.",7,[[["cityname",3]],[["vec",3],["mapname",3]]]],[11,"list_all_maps","","Returns all maps from all cities, using system data.",7,[[],[["vec",3],["mapname",3]]]],[5,"path_prebaked_results","","",null,[[["mapname",3]],["string",3]]],[5,"path_scenario","","",null,[[["mapname",3]],["string",3]]],[5,"path_all_scenarios","","",null,[[["mapname",3]],["string",3]]],[5,"parse_scenario_path","","Extract the map and scenario name from a path. Crashes if …",null,[[]]],[5,"path_player","","",null,[[["string",3],["into",8]],["string",3]]],[5,"path_camera_state","","",null,[[["mapname",3]],["string",3]]],[5,"path_edits","","",null,[[["mapname",3]],["string",3]]],[5,"path_all_edits","","",null,[[["mapname",3]],["string",3]]],[5,"path_save","","",null,[[["mapname",3],["string",3]],["string",3]]],[5,"path_all_saves","","",null,[[["mapname",3]],["string",3]]],[5,"path_popdat","","",null,[[],["string",3]]],[5,"path_raw_map","","",null,[[["mapname",3]],["string",3]]],[0,"io","abstio","",null,null],[5,"maybe_read_json","abstio::io","",null,[[["string",3],["timer",3]],[["result",6],["deserializeowned",8]]]],[5,"read_json","","",null,[[["string",3],["timer",3]],["deserializeowned",8]]],[5,"read_binary","","",null,[[["string",3],["timer",3]],["deserializeowned",8]]],[5,"read_object","","May be a JSON or binary file",null,[[["string",3],["timer",3]],[["result",6],["deserializeowned",8]]]],[5,"must_read_object","","May be a JSON or binary file. Panics on failure.",null,[[["string",3],["timer",3]],["deserializeowned",8]]],[5,"find_prev_file","","Keeps file extensions",null,[[["string",3]],[["string",3],["option",4]]]],[5,"find_next_file","","",null,[[["string",3]],[["string",3],["option",4]]]],[5,"load_all_objects","","Load all serialized things from a directory, return …",null,[[["string",3]],["vec",3]]],[5,"list_all_objects","","Just list all things from a directory, return sorted by …",null,[[["string",3]],[["string",3],["vec",3]]]],[5,"maybe_read_json","abstio","",null,[[["string",3],["timer",3]],[["result",6],["deserializeowned",8]]]],[5,"read_json","","",null,[[["string",3],["timer",3]],["deserializeowned",8]]],[5,"read_binary","","",null,[[["string",3],["timer",3]],["deserializeowned",8]]],[5,"read_object","","May be a JSON or binary file",null,[[["string",3],["timer",3]],[["result",6],["deserializeowned",8]]]],[5,"must_read_object","","May be a JSON or binary file. Panics on failure.",null,[[["string",3],["timer",3]],["deserializeowned",8]]],[5,"find_prev_file","","Keeps file extensions",null,[[["string",3]],[["string",3],["option",4]]]],[5,"find_next_file","","",null,[[["string",3]],[["string",3],["option",4]]]],[5,"load_all_objects","","Load all serialized things from a directory, return …",null,[[["string",3]],["vec",3]]],[5,"list_all_objects","","Just list all things from a directory, return sorted by …",null,[[["string",3]],[["string",3],["vec",3]]]],[5,"file_exists","","",null,[[["string",3],["into",8]]]],[5,"list_dir","","Returns full paths",null,[[["string",3]],[["string",3],["vec",3]]]],[5,"slurp_file","","",null,[[["string",3],["into",8]],[["vec",3],["result",6]]]],[5,"maybe_read_binary","","",null,[[["string",3],["timer",3]],[["result",6],["deserializeowned",8]]]],[5,"write_json","","",null,[[["string",3]]]],[5,"write_binary","","",null,[[["string",3]]]],[5,"delete_file","","Idempotent",null,[[["string",3],["into",8]]]],[3,"FileWithProgress","","",null,null],[12,"inner","","",0,null],[12,"path","","",0,null],[12,"processed_bytes","","",0,null],[12,"total_bytes","","",0,null],[12,"started_at","","",0,null],[12,"last_printed_at","","",0,null],[3,"Manifest","","A list of all canonical data files for A/B Street that\'re …",null,null],[12,"entries","","Keyed by path, starting with \\\"data/\\\"",1,null],[3,"Entry","","A single file",null,null],[12,"checksum","","md5sum of the file",2,null],[12,"uncompressed_size_bytes","","Uncompressed size in bytes",2,null],[12,"compressed_size_bytes","","Compressed size in bytes",2,null],[3,"DataPacks","","Player-chosen groups of files to opt into downloading",null,null],[12,"runtime","","A list of cities to download for using in A/B Street. …",3,null],[12,"input","","A list of cities to download for running the map importer.",3,null],[5,"path","","",null,[[["string",3],["into",8]],["string",3]]],[3,"CityName","","A single city is identified using this.",null,null],[12,"country","","A two letter lowercase country code, from …",6,null],[12,"city","","The name of the city, in filename-friendly form -- for …",6,null],[3,"MapName","","A single map is identified using this.",null,null],[12,"city","","",7,null],[12,"map","","The name of the map within the city, in filename-friendly …",7,null],[5,"path_prebaked_results","","",null,[[["mapname",3]],["string",3]]],[5,"path_scenario","","",null,[[["mapname",3]],["string",3]]],[5,"path_all_scenarios","","",null,[[["mapname",3]],["string",3]]],[5,"parse_scenario_path","","Extract the map and scenario name from a path. Crashes if …",null,[[]]],[5,"path_player","","",null,[[["string",3],["into",8]],["string",3]]],[5,"path_camera_state","","",null,[[["mapname",3]],["string",3]]],[5,"path_edits","","",null,[[["mapname",3]],["string",3]]],[5,"path_all_edits","","",null,[[["mapname",3]],["string",3]]],[5,"path_save","","",null,[[["mapname",3],["string",3]],["string",3]]],[5,"path_all_saves","","",null,[[["mapname",3]],["string",3]]],[5,"path_popdat","","",null,[[],["string",3]]],[5,"path_raw_map","","",null,[[["mapname",3]],["string",3]]],[5,"slurp_bytes","","An adapter for widgetry::Settings::read_svg to read SVGs …",null,[[],["vec",3]]],[11,"from","abstio::io_native","",0,[[]]],[11,"into","","",0,[[]]],[11,"borrow","","",0,[[]]],[11,"borrow_mut","","",0,[[]]],[11,"try_from","","",0,[[],["result",4]]],[11,"try_into","","",0,[[],["result",4]]],[11,"type_id","","",0,[[],["typeid",3]]],[11,"events","","",0,[[],["events",3]]],[11,"keys","","",0,[[],["keys",3]]],[11,"read_line","","",0,[[],[["result",4],["option",4],["error",3]]]],[11,"events_and_raw","","",0,[[],["eventsandraw",3]]],[11,"from","abstio::abst_data","",1,[[]]],[11,"into","","",1,[[]]],[11,"borrow","","",1,[[]]],[11,"borrow_mut","","",1,[[]]],[11,"try_from","","",1,[[],["result",4]]],[11,"try_into","","",1,[[],["result",4]]],[11,"type_id","","",1,[[],["typeid",3]]],[11,"from","","",2,[[]]],[11,"into","","",2,[[]]],[11,"borrow","","",2,[[]]],[11,"borrow_mut","","",2,[[]]],[11,"try_from","","",2,[[],["result",4]]],[11,"try_into","","",2,[[],["result",4]]],[11,"type_id","","",2,[[],["typeid",3]]],[11,"from","","",3,[[]]],[11,"into","","",3,[[]]],[11,"borrow","","",3,[[]]],[11,"borrow_mut","","",3,[[]]],[11,"try_from","","",3,[[],["result",4]]],[11,"try_into","","",3,[[],["result",4]]],[11,"type_id","","",3,[[],["typeid",3]]],[11,"from","abstio::abst_paths","",4,[[]]],[11,"into","","",4,[[]]],[11,"borrow","","",4,[[]]],[11,"borrow_mut","","",4,[[]]],[11,"try_from","","",4,[[],["result",4]]],[11,"try_into","","",4,[[],["result",4]]],[11,"type_id","","",4,[[],["typeid",3]]],[11,"from","","",5,[[]]],[11,"into","","",5,[[]]],[11,"borrow","","",5,[[]]],[11,"borrow_mut","","",5,[[]]],[11,"try_from","","",5,[[],["result",4]]],[11,"try_into","","",5,[[],["result",4]]],[11,"type_id","","",5,[[],["typeid",3]]],[11,"from","","",6,[[]]],[11,"into","","",6,[[]]],[11,"to_owned","","",6,[[]]],[11,"clone_into","","",6,[[]]],[11,"borrow","","",6,[[]]],[11,"borrow_mut","","",6,[[]]],[11,"try_from","","",6,[[],["result",4]]],[11,"try_into","","",6,[[],["result",4]]],[11,"type_id","","",6,[[],["typeid",3]]],[11,"from","","",7,[[]]],[11,"into","","",7,[[]]],[11,"to_owned","","",7,[[]]],[11,"clone_into","","",7,[[]]],[11,"borrow","","",7,[[]]],[11,"borrow_mut","","",7,[[]]],[11,"try_from","","",7,[[],["result",4]]],[11,"try_into","","",7,[[],["result",4]]],[11,"type_id","","",7,[[],["typeid",3]]],[11,"clone","","",6,[[],["cityname",3]]],[11,"clone","","",7,[[],["mapname",3]]],[11,"cmp","","",6,[[["cityname",3]],["ordering",4]]],[11,"cmp","","",7,[[["mapname",3]],["ordering",4]]],[11,"eq","","",6,[[["cityname",3]]]],[11,"ne","","",6,[[["cityname",3]]]],[11,"eq","","",7,[[["mapname",3]]]],[11,"ne","","",7,[[["mapname",3]]]],[11,"partial_cmp","","",6,[[["cityname",3]],[["option",4],["ordering",4]]]],[11,"lt","","",6,[[["cityname",3]]]],[11,"le","","",6,[[["cityname",3]]]],[11,"gt","","",6,[[["cityname",3]]]],[11,"ge","","",6,[[["cityname",3]]]],[11,"partial_cmp","","",7,[[["mapname",3]],[["option",4],["ordering",4]]]],[11,"lt","","",7,[[["mapname",3]]]],[11,"le","","",7,[[["mapname",3]]]],[11,"gt","","",7,[[["mapname",3]]]],[11,"ge","","",7,[[["mapname",3]]]],[11,"deref","","",4,[[],["string",3]]],[11,"deref","","",5,[[],["string",3]]],[11,"fmt","","",6,[[["formatter",3]],["result",6]]],[11,"fmt","","",7,[[["formatter",3]],["result",6]]],[11,"read","abstio::io_native","",0,[[],[["error",3],["result",6]]]],[11,"serialize","abstio::abst_data","",1,[[],["result",4]]],[11,"serialize","","",2,[[],["result",4]]],[11,"serialize","","",3,[[],["result",4]]],[11,"serialize","abstio::abst_paths","",6,[[],["result",4]]],[11,"serialize","","",7,[[],["result",4]]],[11,"deserialize","abstio::abst_data","",1,[[],["result",4]]],[11,"deserialize","","",2,[[],["result",4]]],[11,"deserialize","","",3,[[],["result",4]]],[11,"deserialize","abstio::abst_paths","",6,[[],["result",4]]],[11,"deserialize","","",7,[[],["result",4]]],[11,"initialize","","",4,[[]]],[11,"initialize","","",5,[[]]]],"p":[[3,"FileWithProgress"],[3,"Manifest"],[3,"Entry"],[3,"DataPacks"],[3,"ROOT_DIR"],[3,"ROOT_PLAYER_DIR"],[3,"CityName"],[3,"MapName"]]},\ "abstutil":{"doc":"The contents of this crate need to be organized better:","i":[[0,"cli","abstutil","",null,null],[3,"CmdArgs","abstutil::cli","Yet another barebones command-line flag parsing library.",null,null],[12,"kv","","",0,null],[12,"bits","","",0,null],[12,"free","","",0,null],[12,"used","","",0,null],[11,"new","","On native, initialize with real flags. On web, transform …",0,[[],["cmdargs",3]]],[11,"from_args","","",0,[[["vec",3],["string",3]],["cmdargs",3]]],[11,"required","","",0,[[],["string",3]]],[11,"optional","","",0,[[],[["string",3],["option",4]]]],[11,"optional_parse","","",0,[[["fn",8]],["option",4]]],[11,"true_false","","",0,[[]]],[11,"enabled","","",0,[[]]],[11,"required_free","","",0,[[],["string",3]]],[11,"optional_free","","",0,[[],[["string",3],["option",4]]]],[11,"done","","",0,[[]]],[5,"parse_args","","",null,[[],[["vec",3],["result",6]]]],[0,"collections","abstutil","",null,null],[3,"MultiMap","abstutil::collections","",null,null],[12,"map","","",1,null],[12,"empty","","",1,null],[11,"new","","",1,[[],["multimap",3]]],[11,"insert","","",1,[[]]],[11,"remove","","",1,[[]]],[11,"get","","",1,[[],["btreeset",3]]],[11,"set","","",1,[[["btreeset",3]]]],[11,"len","","",1,[[]]],[11,"borrow","","",1,[[],["btreemap",3]]],[11,"consume","","",1,[[],[["btreemap",3],["btreeset",3]]]],[3,"Counter","","",null,null],[12,"map","","",2,null],[12,"sum","","",2,null],[11,"new","","",2,[[],["counter",3]]],[11,"add","","",2,[[]]],[11,"inc","","",2,[[]]],[11,"get","","",2,[[]]],[11,"sorted_asc","","Values with the same count are grouped together",2,[[],[["vec",3],["vec",3]]]],[11,"highest_n","","",2,[[],["vec",3]]],[11,"max","","",2,[[]]],[11,"sum","","",2,[[]]],[11,"compare","","",2,[[["counter",3]],["vec",3]]],[11,"borrow","","",2,[[],["btreemap",3]]],[11,"consume","","",2,[[],["btreemap",3]]],[5,"wraparound_get","","",null,[[["vec",3]]]],[5,"retain_btreemap","","",null,[[["fnmut",8],["btreemap",3]]]],[5,"retain_btreeset","","",null,[[["btreeset",3],["fnmut",8]]]],[5,"contains_duplicates","","",null,[[["vec",3]]]],[3,"VecMap","","Use when your key is just PartialEq, not Ord or Hash.",null,null],[12,"inner","","",3,null],[11,"new","","",3,[[],["vecmap",3]]],[11,"consume","","",3,[[],["vec",3]]],[11,"mut_or_insert","","",3,[[["fn",8]]]],[3,"Tags","","Convenience functions around a string->string map",null,null],[12,"0","","",4,null],[11,"new","","",4,[[["btreemap",3],["string",3]],["tags",3]]],[11,"empty","","",4,[[],["tags",3]]],[11,"get","","",4,[[],[["string",3],["option",4]]]],[11,"contains_key","","",4,[[]]],[11,"is","","",4,[[]]],[11,"is_any","","",4,[[["vec",3]]]],[11,"insert","","",4,[[["string",3],["into",8]]]],[11,"remove","","",4,[[],[["string",3],["option",4]]]],[11,"is_empty","","",4,[[]]],[11,"inner","","",4,[[],["btreemap",3]]],[8,"IndexableKey","","Use with FixedMap. From a particular key, extract a usize…",null,null],[10,"index","","",5,[[]]],[3,"FixedMap","","A drop-in replacement for BTreeMap, where the keys have …",null,null],[12,"inner","","",6,null],[12,"key_type","","",6,null],[11,"new","","",6,[[],["fixedmap",3]]],[11,"insert","","",6,[[]]],[11,"get","","",6,[[],["option",4]]],[11,"get_mut","","",6,[[],["option",4]]],[11,"contains_key","","",6,[[]]],[11,"remove","","",6,[[],["option",4]]],[11,"values","","",6,[[],[["iter",3],["flatten",3]]]],[0,"logger","abstutil","",null,null],[5,"setup","abstutil::logger","On native: uses env_logYou can adjust the log level …",null,[[]]],[0,"process","abstutil","",null,null],[5,"must_run_cmd","abstutil::process","Runs a command, asserts success. STDOUT and STDERR aren\'t …",null,[[["command",3]]]],[0,"serde","abstutil","",null,null],[5,"to_json","abstutil::serde","Stringifies an object to nicely formatted JSON.",null,[[],["string",3]]],[5,"to_json_terse","","Stringifies an object to terse JSON.",null,[[],["string",3]]],[5,"from_json","","Deserializes an object from a JSON string.",null,[[["vec",3]],[["deserializeowned",8],["result",6]]]],[5,"from_json_reader","","Deserializes an object from JSON, from a reader.",null,[[["read",8]],[["deserializeowned",8],["result",6]]]],[5,"from_binary","","Deserializes an object from the bincode format.",null,[[["vec",3]],[["deserializeowned",8],["result",6]]]],[5,"from_binary_reader","","Deserializes an object from the bincode format, from a …",null,[[["read",8]],[["deserializeowned",8],["result",6]]]],[5,"serialized_size_bytes","","The number of bytes for an object serialized to bincode.",null,[[]]],[5,"serialize_btreemap","","Serializes a BTreeMap as a list of tuples. Necessary when …",null,[[["btreemap",3],["serializer",8]],["result",6]]],[5,"deserialize_btreemap","","Deserializes a BTreeMap from a list of tuples. Necessary …",null,[[["deserializer",8]],[["result",6],["btreemap",3]]]],[5,"serialize_hashmap","","Serializes a HashMap as a list of tuples, first sorting …",null,[[["hashmap",3],["serializer",8]],["result",6]]],[5,"deserialize_hashmap","","Deserializes a HashMap from a list of tuples.",null,[[["deserializer",8]],[["result",6],["hashmap",3]]]],[5,"serialize_multimap","","Serializes a MultiMap.",null,[[["serializer",8],["multimap",3]],["result",6]]],[5,"deserialize_multimap","","Deserializes a MultiMap.",null,[[["deserializer",8]],[["multimap",3],["result",6]]]],[5,"serialize_usize","","Serializes a usize as a u32 to save space. Useful when …",null,[[["serializer",8]],["result",6]]],[5,"deserialize_usize","","Deserializes a usize from a u32.",null,[[["deserializer",8]],["result",6]]],[0,"time","abstutil","",null,null],[5,"elapsed_seconds","abstutil::time","",null,[[["instant",6]]]],[3,"Progress","","",null,null],[12,"label","","",7,null],[12,"processed_items","","",7,null],[12,"total_items","","",7,null],[12,"started_at","","",7,null],[12,"last_printed_at","","",7,null],[12,"first_update","","",7,null],[11,"new","","",7,[[["string",3]],["progress",3]]],[11,"next","","",7,[[["option",4]],["option",4]]],[11,"cancel_iter_early","","",7,[[]]],[4,"StackEntry","","",null,null],[13,"TimerSpan","","",8,null],[13,"Progress","","",8,null],[13,"File","","",8,null],[8,"TimerSink","","",null,null],[10,"println","","",9,[[["string",3]]]],[10,"reprintln","","",9,[[["string",3]]]],[3,"Timer","","Hierarchial magic",null,null],[12,"results","","",10,null],[12,"stack","","",10,null],[12,"outermost_name","","",10,null],[12,"sink","","",10,null],[3,"TimerSpan","","",null,null],[12,"name","","",11,null],[12,"started_at","","",11,null],[12,"nested_results","","",11,null],[12,"nested_time","","",11,null],[4,"Parallelism","","",null,null],[13,"Fastest","","Use all CPUs",12,null],[13,"Polite","","Use half of CPUs",12,null],[11,"new","","",10,[[["string",3],["into",8]],["timer",3]]],[11,"new_with_sink","","",10,[[["box",3],["timersink",8]],["timer",3]]],[11,"throwaway","","",10,[[],["timer",3]]],[11,"println","","",10,[[["string",3]]]],[11,"selfless_println","","",10,[[["string",3],["option",4]]]],[11,"done","","Used to end the scope of a timer early.",10,[[]]],[11,"start","","",10,[[["string",3],["into",8]]]],[11,"stop","","",10,[[["string",3],["into",8]]]],[11,"start_iter","","",10,[[["string",3],["into",8]]]],[11,"next","","",10,[[]]],[11,"cancel_iter_early","","",10,[[]]],[11,"add_result","","",10,[[["string",3]]]],[11,"parallelize","","The order of the result is deterministic / matches the …",10,[[["parallelism",4],["vec",3],["fn",8]],["vec",3]]],[11,"read_file","","Then the caller passes this in as a reader",10,[[],["result",6]]],[5,"prettyprint_time","","",null,[[],["string",3]]],[5,"clear_current_line","","",null,[[]]],[3,"TimedFileReader","","",null,null],[12,"inner","","",13,null],[12,"path","","",13,null],[12,"processed_bytes","","",13,null],[12,"total_bytes","","",13,null],[12,"started_at","","",13,null],[12,"last_printed_at","","",13,null],[11,"new","","",13,[[],[["timedfilereader",3],["result",6]]]],[0,"utils","abstutil","",null,null],[5,"plain_list_names","abstutil::utils","",null,[[["btreeset",3],["string",3]],["string",3]]],[5,"prettyprint_usize","","",null,[[],["string",3]]],[5,"basename","","",null,[[["string",3],["into",8]],["string",3]]],[5,"parent_path","","",null,[[],["string",3]]],[5,"to_json","abstutil","Stringifies an object to nicely formatted JSON.",null,[[],["string",3]]],[5,"to_json_terse","","Stringifies an object to terse JSON.",null,[[],["string",3]]],[5,"from_json","","Deserializes an object from a JSON string.",null,[[["vec",3]],[["deserializeowned",8],["result",6]]]],[5,"from_json_reader","","Deserializes an object from JSON, from a reader.",null,[[["read",8]],[["deserializeowned",8],["result",6]]]],[5,"from_binary","","Deserializes an object from the bincode format.",null,[[["vec",3]],[["deserializeowned",8],["result",6]]]],[5,"from_binary_reader","","Deserializes an object from the bincode format, from a …",null,[[["read",8]],[["deserializeowned",8],["result",6]]]],[5,"serialized_size_bytes","","The number of bytes for an object serialized to bincode.",null,[[]]],[5,"serialize_btreemap","","Serializes a BTreeMap as a list of tuples. Necessary when …",null,[[["btreemap",3],["serializer",8]],["result",6]]],[5,"deserialize_btreemap","","Deserializes a BTreeMap from a list of tuples. Necessary …",null,[[["deserializer",8]],[["result",6],["btreemap",3]]]],[5,"serialize_hashmap","","Serializes a HashMap as a list of tuples, first sorting …",null,[[["hashmap",3],["serializer",8]],["result",6]]],[5,"deserialize_hashmap","","Deserializes a HashMap from a list of tuples.",null,[[["deserializer",8]],[["result",6],["hashmap",3]]]],[5,"serialize_multimap","","Serializes a MultiMap.",null,[[["serializer",8],["multimap",3]],["result",6]]],[5,"deserialize_multimap","","Deserializes a MultiMap.",null,[[["deserializer",8]],[["multimap",3],["result",6]]]],[5,"serialize_usize","","Serializes a usize as a u32 to save space. Useful when …",null,[[["serializer",8]],["result",6]]],[5,"deserialize_usize","","Deserializes a usize from a u32.",null,[[["deserializer",8]],["result",6]]],[3,"CmdArgs","","Yet another barebones command-line flag parsing library.",null,null],[12,"kv","","",0,null],[12,"bits","","",0,null],[12,"free","","",0,null],[12,"used","","",0,null],[3,"MultiMap","","",null,null],[12,"map","","",1,null],[12,"empty","","",1,null],[3,"Counter","","",null,null],[12,"map","","",2,null],[12,"sum","","",2,null],[5,"wraparound_get","","",null,[[["vec",3]]]],[5,"retain_btreemap","","",null,[[["fnmut",8],["btreemap",3]]]],[5,"retain_btreeset","","",null,[[["btreeset",3],["fnmut",8]]]],[5,"contains_duplicates","","",null,[[["vec",3]]]],[3,"VecMap","","Use when your key is just PartialEq, not Ord or Hash.",null,null],[12,"inner","","",3,null],[3,"Tags","","Convenience functions around a string->string map",null,null],[12,"0","","",4,null],[8,"IndexableKey","","Use with FixedMap. From a particular key, extract a usize…",null,null],[10,"index","","",5,[[]]],[3,"FixedMap","","A drop-in replacement for BTreeMap, where the keys have …",null,null],[12,"inner","","",6,null],[12,"key_type","","",6,null],[5,"setup","","On native: uses env_logYou can adjust the log level …",null,[[]]],[5,"must_run_cmd","","Runs a command, asserts success. STDOUT and STDERR aren\'t …",null,[[["command",3]]]],[5,"plain_list_names","","",null,[[["btreeset",3],["string",3]],["string",3]]],[5,"prettyprint_usize","","",null,[[],["string",3]]],[5,"basename","","",null,[[["string",3],["into",8]],["string",3]]],[5,"parent_path","","",null,[[],["string",3]]],[17,"PROGRESS_FREQUENCY_SECONDS","","",null,null],[11,"from","abstutil::cli","",0,[[]]],[11,"into","","",0,[[]]],[11,"borrow","","",0,[[]]],[11,"borrow_mut","","",0,[[]]],[11,"try_from","","",0,[[],["result",4]]],[11,"try_into","","",0,[[],["result",4]]],[11,"type_id","","",0,[[],["typeid",3]]],[11,"from","abstutil::collections","",1,[[]]],[11,"into","","",1,[[]]],[11,"to_owned","","",1,[[]]],[11,"clone_into","","",1,[[]]],[11,"borrow","","",1,[[]]],[11,"borrow_mut","","",1,[[]]],[11,"try_from","","",1,[[],["result",4]]],[11,"try_into","","",1,[[],["result",4]]],[11,"type_id","","",1,[[],["typeid",3]]],[11,"from","","",2,[[]]],[11,"into","","",2,[[]]],[11,"to_owned","","",2,[[]]],[11,"clone_into","","",2,[[]]],[11,"borrow","","",2,[[]]],[11,"borrow_mut","","",2,[[]]],[11,"try_from","","",2,[[],["result",4]]],[11,"try_into","","",2,[[],["result",4]]],[11,"type_id","","",2,[[],["typeid",3]]],[11,"from","","",3,[[]]],[11,"into","","",3,[[]]],[11,"borrow","","",3,[[]]],[11,"borrow_mut","","",3,[[]]],[11,"try_from","","",3,[[],["result",4]]],[11,"try_into","","",3,[[],["result",4]]],[11,"type_id","","",3,[[],["typeid",3]]],[11,"from","","",4,[[]]],[11,"into","","",4,[[]]],[11,"to_owned","","",4,[[]]],[11,"clone_into","","",4,[[]]],[11,"borrow","","",4,[[]]],[11,"borrow_mut","","",4,[[]]],[11,"try_from","","",4,[[],["result",4]]],[11,"try_into","","",4,[[],["result",4]]],[11,"type_id","","",4,[[],["typeid",3]]],[11,"from","","",6,[[]]],[11,"into","","",6,[[]]],[11,"to_owned","","",6,[[]]],[11,"clone_into","","",6,[[]]],[11,"borrow","","",6,[[]]],[11,"borrow_mut","","",6,[[]]],[11,"try_from","","",6,[[],["result",4]]],[11,"try_into","","",6,[[],["result",4]]],[11,"type_id","","",6,[[],["typeid",3]]],[11,"from","abstutil::time","",7,[[]]],[11,"into","","",7,[[]]],[11,"borrow","","",7,[[]]],[11,"borrow_mut","","",7,[[]]],[11,"try_from","","",7,[[],["result",4]]],[11,"try_into","","",7,[[],["result",4]]],[11,"type_id","","",7,[[],["typeid",3]]],[11,"from","","",8,[[]]],[11,"into","","",8,[[]]],[11,"borrow","","",8,[[]]],[11,"borrow_mut","","",8,[[]]],[11,"try_from","","",8,[[],["result",4]]],[11,"try_into","","",8,[[],["result",4]]],[11,"type_id","","",8,[[],["typeid",3]]],[11,"from","","",10,[[]]],[11,"into","","",10,[[]]],[11,"borrow","","",10,[[]]],[11,"borrow_mut","","",10,[[]]],[11,"try_from","","",10,[[],["result",4]]],[11,"try_into","","",10,[[],["result",4]]],[11,"type_id","","",10,[[],["typeid",3]]],[11,"events","","",10,[[],["events",3]]],[11,"keys","","",10,[[],["keys",3]]],[11,"read_line","","",10,[[],[["result",4],["option",4],["error",3]]]],[11,"events_and_raw","","",10,[[],["eventsandraw",3]]],[11,"from","","",11,[[]]],[11,"into","","",11,[[]]],[11,"borrow","","",11,[[]]],[11,"borrow_mut","","",11,[[]]],[11,"try_from","","",11,[[],["result",4]]],[11,"try_into","","",11,[[],["result",4]]],[11,"type_id","","",11,[[],["typeid",3]]],[11,"from","","",12,[[]]],[11,"into","","",12,[[]]],[11,"borrow","","",12,[[]]],[11,"borrow_mut","","",12,[[]]],[11,"try_from","","",12,[[],["result",4]]],[11,"try_into","","",12,[[],["result",4]]],[11,"type_id","","",12,[[],["typeid",3]]],[11,"from","","",13,[[]]],[11,"into","","",13,[[]]],[11,"borrow","","",13,[[]]],[11,"borrow_mut","","",13,[[]]],[11,"try_from","","",13,[[],["result",4]]],[11,"try_into","","",13,[[],["result",4]]],[11,"type_id","","",13,[[],["typeid",3]]],[11,"drop","","",10,[[]]],[11,"clone","abstutil::collections","",1,[[],["multimap",3]]],[11,"clone","","",2,[[],["counter",3]]],[11,"clone","","",4,[[],["tags",3]]],[11,"clone","","",6,[[],["fixedmap",3]]],[11,"default","","",1,[[],["multimap",3]]],[11,"default","","",2,[[],["counter",3]]],[11,"eq","","",1,[[["multimap",3]]]],[11,"ne","","",1,[[["multimap",3]]]],[11,"eq","","",4,[[["tags",3]]]],[11,"ne","","",4,[[["tags",3]]]],[11,"fmt","","",4,[[["formatter",3]],["result",6]]],[11,"fmt","abstutil::time","",7,[[["formatter",3]],["result",6]]],[11,"index","abstutil::collections","",6,[[]]],[11,"read","abstutil::time","",10,[[],[["result",6],["error",3]]]],[11,"serialize","abstutil::collections","",4,[[],["result",4]]],[11,"serialize","","",6,[[],["result",4]]],[11,"deserialize","","",4,[[],["result",4]]],[11,"deserialize","","",6,[[],["result",4]]]],"p":[[3,"CmdArgs"],[3,"MultiMap"],[3,"Counter"],[3,"VecMap"],[3,"Tags"],[8,"IndexableKey"],[3,"FixedMap"],[3,"Progress"],[4,"StackEntry"],[8,"TimerSink"],[3,"Timer"],[3,"TimerSpan"],[4,"Parallelism"],[3,"TimedFileReader"]]},\ +"augment_scenario":{"doc":"A tool to modify each person\'s schedule from an existing …","i":[[5,"main","augment_scenario","",null,[[]]],[5,"add_return_trips","","",null,[[["scenario",3],["map",3]]]],[5,"add_lunch_trips","","",null,[[["scenario",3],["map",3],["timer",3]]]]],"p":[]},\ "collisions":{"doc":"A simple data format to list collisions that\'ve occurred …","i":[[3,"CollisionDataset","collisions","A single dataset describing some collisions that happened.",null,null],[12,"source_url","","A URL pointing to the original data source.",0,null],[12,"collisions","","The collisions imported from the data source.",0,null],[3,"Collision","","A single collision that occurred in the real world.",null,null],[12,"location","","A single point describing where the collision occurred.",1,null],[12,"time","","The local time the collision occurred.",1,null],[12,"severity","","The severity reported in the original data source.",1,null],[4,"Severity","","A simple ranking for how severe the collision was. …",null,null],[13,"Slight","","",2,null],[13,"Serious","","",2,null],[13,"Fatal","","",2,null],[5,"import_stats19","","Import data from the UK STATS19 dataset. See …",null,[[["extrashapes",3]],["collisiondataset",3]]],[5,"import_seattle","","Import data from Seattle GeoData …",null,[[["extrashapes",3]],["collisiondataset",3]]],[5,"parse_incdttm","","",null,[[],[["duration",3],["option",4]]]],[11,"from","","",0,[[]]],[11,"into","","",0,[[]]],[11,"borrow","","",0,[[]]],[11,"borrow_mut","","",0,[[]]],[11,"try_from","","",0,[[],["result",4]]],[11,"try_into","","",0,[[],["result",4]]],[11,"type_id","","",0,[[],["typeid",3]]],[11,"from","","",1,[[]]],[11,"into","","",1,[[]]],[11,"borrow","","",1,[[]]],[11,"borrow_mut","","",1,[[]]],[11,"try_from","","",1,[[],["result",4]]],[11,"try_into","","",1,[[],["result",4]]],[11,"type_id","","",1,[[],["typeid",3]]],[11,"from","","",2,[[]]],[11,"into","","",2,[[]]],[11,"to_owned","","",2,[[]]],[11,"clone_into","","",2,[[]]],[11,"borrow","","",2,[[]]],[11,"borrow_mut","","",2,[[]]],[11,"try_from","","",2,[[],["result",4]]],[11,"try_into","","",2,[[],["result",4]]],[11,"type_id","","",2,[[],["typeid",3]]],[11,"clone","","",2,[[],["severity",4]]],[11,"eq","","",2,[[["severity",4]]]],[11,"fmt","","",2,[[["formatter",3]],["result",6]]],[11,"deserialize","","",0,[[],["result",4]]],[11,"deserialize","","",1,[[],["result",4]]],[11,"deserialize","","",2,[[],["result",4]]],[11,"serialize","","",0,[[],["result",4]]],[11,"serialize","","",1,[[],["result",4]]],[11,"serialize","","",2,[[],["result",4]]]],"p":[[3,"CollisionDataset"],[3,"Collision"],[4,"Severity"]]},\ "convert_osm":{"doc":"","i":[[0,"clip","convert_osm","",null,null],[5,"clip_map","convert_osm::clip","",null,[[["timer",3],["rawmap",3]]]],[0,"extract","convert_osm","",null,null],[3,"OsmExtract","convert_osm::extract","",null,null],[12,"roads","","Unsplit roads",0,null],[12,"traffic_signals","","Traffic signals to the direction they apply",0,null],[12,"osm_node_ids","","",0,null],[12,"simple_turn_restrictions","","(ID, restriction type, from way ID, via node ID, to way …",0,null],[12,"complicated_turn_restrictions","","(relation ID, from way ID, via way ID, to way ID)",0,null],[12,"amenities","","(location, amenity)",0,null],[5,"extract_osm","","",null,[[["timer",3],["rawmap",3],["options",3]],["osmextract",3]]],[5,"is_road","","",null,[[["tags",3],["options",3]]]],[5,"is_bldg","","",null,[[["tags",3]]]],[5,"get_bldg_amenities","","",null,[[["tags",3]],[["vec",3],["amenity",3]]]],[5,"get_area_type","","",null,[[["tags",3]],[["option",4],["areatype",4]]]],[5,"find_parking_aisles","","",null,[[["rawmap",3],["vec",3]]]],[5,"service_road_crosses_parking_lot","","",null,[[["vec",3],["rawroad",3],["rawmap",3]]]],[0,"osm_geom","convert_osm","Utilities for extracting concrete geometry from OSM …",null,null],[5,"get_multipolygon_members","convert_osm::osm_geom","",null,[[["relationid",3],["document",3],["relation",3]],["vec",3]]],[5,"glue_multipolygon","","Take a bunch of partial PolyLines and attempt to glue …",null,[[["relationid",3],["option",4],["ring",3],["vec",3]],[["polygon",3],["vec",3]]]],[5,"glue_to_boundary","","",null,[[["polyline",3],["ring",3]],[["polygon",3],["option",4]]]],[5,"multipoly_geometry","","",null,[[["relationid",3],["document",3],["relation",3]],[["result",6],["polygon",3]]]],[0,"parking","convert_osm","",null,null],[17,"DIRECTED_ROAD_THICKNESS","convert_osm::parking","",null,null],[5,"apply_parking","","",null,[[["timer",3],["rawmap",3],["options",3]]]],[5,"use_parking_hints","","",null,[[["timer",3],["rawmap",3],["string",3]]]],[5,"use_offstreet_parking","","",null,[[["timer",3],["rawmap",3],["string",3]]]],[5,"apply_private_offstreet_parking","","",null,[[["privateoffstreetparking",4],["rawmap",3]]]],[0,"reader","convert_osm","",null,null],[3,"Document","convert_osm::reader","",null,null],[12,"gps_bounds","","",1,null],[12,"nodes","","",1,null],[12,"ways","","",1,null],[12,"relations","","",1,null],[3,"Node","","",null,null],[12,"pt","","",2,null],[12,"tags","","",2,null],[3,"Way","","",null,null],[12,"nodes","","",3,null],[12,"pts","","",3,null],[12,"tags","","",3,null],[3,"Relation","","",null,null],[12,"tags","","",4,null],[12,"members","","Role, member",4,null],[5,"read","","",null,[[["timer",3],["gpsbounds",3]],[["result",6],["document",3]]]],[5,"read_tags","","",null,[[["node",3]],["tags",3]]],[5,"scrape_bounds","","",null,[[["document",3]],["gpsbounds",3]]],[0,"snappy","convert_osm","",null,null],[5,"snap_cycleways","convert_osm::snappy","Attempt to snap separately mapped cycleways to main …",null,[[["timer",3],["rawmap",3]]]],[5,"dump_output","","",null,[[["hashmap",3],["btreemap",3],["multimap",3],["wayid",3],["rawmap",3]]]],[5,"v1","","",null,[[["hashmap",3],["btreemap",3],["rawmap",3]],[["multimap",3],["wayid",3]]]],[0,"split_ways","convert_osm","",null,null],[5,"split_up_roads","convert_osm::split_ways","Returns amenities and a mapping of all points to split …",null,[[["timer",3],["rawmap",3],["osmextract",3]]]],[5,"dedupe_angles","","",null,[[["vec",3],["pt2d",3]],[["vec",3],["pt2d",3]]]],[5,"should_collapse_roundabout","","Many \\\"roundabouts\\\" like …",null,[[["rawroad",3]]]],[0,"srtm","convert_osm","",null,null],[17,"GRID_DIM","convert_osm::srtm","",null,null],[3,"Elevation","","",null,null],[12,"lon_offset","","",5,null],[12,"lat_offset","","",5,null],[12,"data","","",5,null],[11,"load","","",5,[[],[["result",6],["elevation",3]]]],[11,"get","","",5,[[["lonlat",3]],["distance",3]]],[0,"transit","convert_osm","",null,null],[5,"extract_route","convert_osm::transit","",null,[[["relationid",3],["polygon",3],["relation",3],["document",3]],[["rawbusroute",3],["option",4]]]],[5,"glue_route","","",null,[[["document",3],["wayid",3],["vec",3]],[["vec",3],["result",6]]]],[5,"snap_bus_stops","","",null,[[["rawbusroute",3],["hashmap",3],["rawmap",3]],[["rawbusroute",3],["result",6]]]],[3,"Options","convert_osm","",null,null],[12,"osm_input","","",6,null],[12,"name","","",6,null],[12,"clip","","The path to an osmosis boundary polygon. Highly …",6,null],[12,"map_config","","",6,null],[12,"onstreet_parking","","",6,null],[12,"public_offstreet_parking","","",6,null],[12,"private_offstreet_parking","","",6,null],[12,"elevation","","If provided, pull elevation data from this SRTM file. The …",6,null],[12,"include_railroads","","OSM railway=rail will be included as light rail if so. …",6,null],[12,"extra_buildings","","If provided, read polygons from this GeoJSON file and add …",6,null],[4,"OnstreetParking","","What roads will have on-street parking lanes? Data from …",null,null],[13,"JustOSM","","If not tagged, there won\'t be parking.",7,null],[13,"Blockface","","If OSM data is missing, then try to match data from …",7,null],[13,"SomeAdditionalWhereNoData","","If OSM data is missing, then infer parking lanes on some …",7,null],[12,"pct","convert_osm::OnstreetParking","[0, 100]",8,null],[4,"PublicOffstreetParking","convert_osm","How many spots are available in public parking garages?",null,null],[13,"None","","",9,null],[13,"GIS","","Pull data from …",9,null],[4,"PrivateOffstreetParking","","If a building doesn\'t have anything from …",null,null],[13,"FixedPerBldg","","",10,null],[5,"convert","","",null,[[["options",3],["timer",3]],["rawmap",3]]],[5,"use_amenities","","",null,[[["timer",3],["rawmap",3],["vec",3]]]],[5,"use_elevation","","",null,[[["timer",3],["rawmap",3]]]],[5,"generate_elevation_queries","","",null,[[["rawmap",3]],["result",6]]],[5,"add_extra_buildings","","",null,[[["rawmap",3]],["result",6]]],[11,"from","convert_osm::extract","",0,[[]]],[11,"into","","",0,[[]]],[11,"borrow","","",0,[[]]],[11,"borrow_mut","","",0,[[]]],[11,"try_from","","",0,[[],["result",4]]],[11,"try_into","","",0,[[],["result",4]]],[11,"type_id","","",0,[[],["typeid",3]]],[11,"vzip","","",0,[[]]],[11,"from","convert_osm::reader","",1,[[]]],[11,"into","","",1,[[]]],[11,"borrow","","",1,[[]]],[11,"borrow_mut","","",1,[[]]],[11,"try_from","","",1,[[],["result",4]]],[11,"try_into","","",1,[[],["result",4]]],[11,"type_id","","",1,[[],["typeid",3]]],[11,"vzip","","",1,[[]]],[11,"from","","",2,[[]]],[11,"into","","",2,[[]]],[11,"borrow","","",2,[[]]],[11,"borrow_mut","","",2,[[]]],[11,"try_from","","",2,[[],["result",4]]],[11,"try_into","","",2,[[],["result",4]]],[11,"type_id","","",2,[[],["typeid",3]]],[11,"vzip","","",2,[[]]],[11,"from","","",3,[[]]],[11,"into","","",3,[[]]],[11,"borrow","","",3,[[]]],[11,"borrow_mut","","",3,[[]]],[11,"try_from","","",3,[[],["result",4]]],[11,"try_into","","",3,[[],["result",4]]],[11,"type_id","","",3,[[],["typeid",3]]],[11,"vzip","","",3,[[]]],[11,"from","","",4,[[]]],[11,"into","","",4,[[]]],[11,"borrow","","",4,[[]]],[11,"borrow_mut","","",4,[[]]],[11,"try_from","","",4,[[],["result",4]]],[11,"try_into","","",4,[[],["result",4]]],[11,"type_id","","",4,[[],["typeid",3]]],[11,"vzip","","",4,[[]]],[11,"from","convert_osm::srtm","",5,[[]]],[11,"into","","",5,[[]]],[11,"borrow","","",5,[[]]],[11,"borrow_mut","","",5,[[]]],[11,"try_from","","",5,[[],["result",4]]],[11,"try_into","","",5,[[],["result",4]]],[11,"type_id","","",5,[[],["typeid",3]]],[11,"vzip","","",5,[[]]],[11,"from","convert_osm","",6,[[]]],[11,"into","","",6,[[]]],[11,"borrow","","",6,[[]]],[11,"borrow_mut","","",6,[[]]],[11,"try_from","","",6,[[],["result",4]]],[11,"try_into","","",6,[[],["result",4]]],[11,"type_id","","",6,[[],["typeid",3]]],[11,"vzip","","",6,[[]]],[11,"from","","",7,[[]]],[11,"into","","",7,[[]]],[11,"to_owned","","",7,[[]]],[11,"clone_into","","",7,[[]]],[11,"borrow","","",7,[[]]],[11,"borrow_mut","","",7,[[]]],[11,"try_from","","",7,[[],["result",4]]],[11,"try_into","","",7,[[],["result",4]]],[11,"type_id","","",7,[[],["typeid",3]]],[11,"vzip","","",7,[[]]],[11,"from","","",9,[[]]],[11,"into","","",9,[[]]],[11,"to_owned","","",9,[[]]],[11,"clone_into","","",9,[[]]],[11,"borrow","","",9,[[]]],[11,"borrow_mut","","",9,[[]]],[11,"try_from","","",9,[[],["result",4]]],[11,"try_into","","",9,[[],["result",4]]],[11,"type_id","","",9,[[],["typeid",3]]],[11,"vzip","","",9,[[]]],[11,"from","","",10,[[]]],[11,"into","","",10,[[]]],[11,"to_owned","","",10,[[]]],[11,"clone_into","","",10,[[]]],[11,"borrow","","",10,[[]]],[11,"borrow_mut","","",10,[[]]],[11,"try_from","","",10,[[],["result",4]]],[11,"try_into","","",10,[[],["result",4]]],[11,"type_id","","",10,[[],["typeid",3]]],[11,"vzip","","",10,[[]]],[11,"clone","","",7,[[],["onstreetparking",4]]],[11,"clone","","",9,[[],["publicoffstreetparking",4]]],[11,"clone","","",10,[[],["privateoffstreetparking",4]]],[11,"serialize","","",7,[[],["result",4]]],[11,"serialize","","",9,[[],["result",4]]],[11,"serialize","","",10,[[],["result",4]]],[11,"deserialize","","",7,[[],["result",4]]],[11,"deserialize","","",9,[[],["result",4]]],[11,"deserialize","","",10,[[],["result",4]]]],"p":[[3,"OsmExtract"],[3,"Document"],[3,"Node"],[3,"Way"],[3,"Relation"],[3,"Elevation"],[3,"Options"],[4,"OnstreetParking"],[13,"SomeAdditionalWhereNoData"],[4,"PublicOffstreetParking"],[4,"PrivateOffstreetParking"]]},\ "dump_map":{"doc":"","i":[[5,"main","dump_map","",null,[[]]]],"p":[]},\ diff --git a/rustdoc/source-files.js b/rustdoc/source-files.js index 42dac98425..47e28da541 100644 --- a/rustdoc/source-files.js +++ b/rustdoc/source-files.js @@ -1,6 +1,7 @@ var N = null;var sourcesIndex = {}; sourcesIndex["abstio"] = {"name":"","files":["abst_data.rs","abst_paths.rs","io.rs","io_native.rs","lib.rs"]}; sourcesIndex["abstutil"] = {"name":"","files":["cli.rs","collections.rs","lib.rs","logger.rs","process.rs","serde.rs","time.rs","utils.rs"]}; +sourcesIndex["augment_scenario"] = {"name":"","files":["augment_scenario.rs"]}; sourcesIndex["collisions"] = {"name":"","files":["lib.rs"]}; sourcesIndex["convert_osm"] = {"name":"","files":["clip.rs","extract.rs","lib.rs","osm_geom.rs","parking.rs","reader.rs","snappy.rs","split_ways.rs","srtm.rs","transit.rs"]}; sourcesIndex["dump_map"] = {"name":"","files":["dump_map.rs"]}; diff --git a/rustdoc/src/augment_scenario/augment_scenario.rs.html b/rustdoc/src/augment_scenario/augment_scenario.rs.html new file mode 100644 index 0000000000..0d5572590c --- /dev/null +++ b/rustdoc/src/augment_scenario/augment_scenario.rs.html @@ -0,0 +1,86 @@ +augment_scenario.rs - source + +
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+
+//! A tool to modify each person's schedule from an existing scenario in various ways.
+//!
+//! `--add_return_trips`: For people with only a single trip before noon, add a return trip back
+//!                       home sometime in the evening.
+//! `--add_lunch_trips`: After the last trip somebody takes before noon, insert a round-trip to a
+//!                      nearby cafe or restaurant.
+//!
+//! These tools aren't very smart about detecting if a scenario already has these extra trips added
+//! in; be careful about running this on the correct input. It modifies the given `--input` binary
+//! scenario in-place.
+
+use abstutil::{CmdArgs, Timer};
+use map_model::Map;
+use sim::Scenario;
+
+fn main() {
+    let mut args = CmdArgs::new();
+    let input = args.required("--input");
+    let should_add_return_trips = args.enabled("--add_return_trips");
+    let should_add_lunch_trips = args.enabled("--add_lunch_trips");
+    args.done();
+
+    let mut timer = Timer::new("augment scenario");
+
+    let mut scenario: Scenario = abstio::must_read_object(input, &mut timer);
+    let map = Map::new(scenario.map_name.path(), &mut timer);
+
+    if should_add_return_trips {
+        add_return_trips(&mut scenario, &map);
+    }
+    if should_add_lunch_trips {
+        add_lunch_trips(&mut scenario, &map, &mut timer);
+    }
+
+    scenario.save();
+}
+
+fn add_return_trips(scenario: &mut Scenario, map: &Map) {}
+
+fn add_lunch_trips(scenario: &mut Scenario, map: &Map, timer: &mut Timer) {}
+
+
\ No newline at end of file diff --git a/rustdoc/src/game/home/runner/work/abstreet/abstreet/target/debug/build/game-a95c4551e63dceca/out/built.rs.html b/rustdoc/src/game/home/runner/work/abstreet/abstreet/target/debug/build/game-a95c4551e63dceca/out/built.rs.html index aa8061fa6f..3655955585 100644 --- a/rustdoc/src/game/home/runner/work/abstreet/abstreet/target/debug/build/game-a95c4551e63dceca/out/built.rs.html +++ b/rustdoc/src/game/home/runner/work/abstreet/abstreet/target/debug/build/game-a95c4551e63dceca/out/built.rs.html @@ -122,7 +122,7 @@ /// The output of `rustdoc -V` pub const RUSTDOC_VERSION: &str = "rustdoc 1.50.0 (cb75ad5db 2021-02-10)"; /// The built-time in RFC2822, UTC -pub const BUILT_TIME_UTC: &str = "Mon, 01 Mar 2021 19:15:52 +0000"; +pub const BUILT_TIME_UTC: &str = "Mon, 01 Mar 2021 19:30:50 +0000"; /// The target architecture, given by `cfg!(target_arch)`. pub const CFG_TARGET_ARCH: &str = "x86_64"; /// The endianness, given by `cfg!(target_endian)`.