diff --git a/chapter6/rstat/.DS_Store b/chapter6/.DS_Store similarity index 100% rename from chapter6/rstat/.DS_Store rename to chapter6/.DS_Store diff --git a/chapter6/rstat/Cargo.lock b/chapter6/rstat/Cargo.lock index 85e3238..242030b 100644 --- a/chapter6/rstat/Cargo.lock +++ b/chapter6/rstat/Cargo.lock @@ -52,9 +52,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.1.15" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9" +checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8" dependencies = [ "libc", ] @@ -67,9 +67,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.76" +version = "0.2.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "755456fae044e6fa1ebbbd1b3e902ae19e73097ed4ed87bb79934a867c007bc3" +checksum = "4d58d1b70b004888f764dfbf6a26a3b0342a1632d33968e4a179d8011c760614" [[package]] name = "proc-macro-error" @@ -97,9 +97,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.19" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12" +checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" dependencies = [ "unicode-xid", ] @@ -128,9 +128,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" [[package]] name = "structopt" -version = "0.3.17" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cc388d94ffabf39b5ed5fadddc40147cb21e605f53db6f8f36a625d27489ac5" +checksum = "126d630294ec449fae0b16f964e35bf3c74f940da9dca17ee9b905f7b3112eb8" dependencies = [ "clap", "lazy_static", @@ -139,9 +139,9 @@ dependencies = [ [[package]] name = "structopt-derive" -version = "0.4.10" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e2513111825077552a6751dfad9e11ce0fba07d7276a3943a037d7e93e64c5f" +checksum = "65e51c492f9e23a220534971ff5afc14037289de430e3c83f9daf6a1b6ae91e8" dependencies = [ "heck", "proc-macro-error", @@ -152,9 +152,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.39" +version = "1.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891d8d6567fe7c7f8835a3a98af4208f3846fba258c1bc3c31d6e506239f11f9" +checksum = "cc371affeffc477f42a221a1e4297aedcea33d47d19b61455588bd9d8f6b19ac" dependencies = [ "proc-macro2", "quote", diff --git a/chapter6/rstat/Cargo.toml b/chapter6/rstat/Cargo.toml index 70b2d02..20b459a 100644 --- a/chapter6/rstat/Cargo.toml +++ b/chapter6/rstat/Cargo.toml @@ -4,7 +4,5 @@ version = "0.1.0" authors = ["peshwar9"] edition = "2018" -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - [dependencies] -structopt = "0.3.16" +structopt = "0.3.16" \ No newline at end of file diff --git a/chapter6/rstat/src/errors.rs b/chapter6/rstat/src/errors.rs index 7095d5e..b163399 100644 --- a/chapter6/rstat/src/errors.rs +++ b/chapter6/rstat/src/errors.rs @@ -1,17 +1,14 @@ use std::fmt; use std::io; - #[derive(Debug)] pub struct StatsError { pub message: String, } - impl fmt::Display for StatsError { fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { write!(f, "{}", self) } } - impl From<&str> for StatsError { fn from(s: &str) -> Self { StatsError { @@ -27,7 +24,6 @@ impl From for StatsError { } } } - impl From for StatsError { fn from(_e: std::num::TryFromIntError) -> Self { StatsError { diff --git a/chapter6/rstat/src/main.rs b/chapter6/rstat/src/main.rs index d2bf7ed..8031f1c 100644 --- a/chapter6/rstat/src/main.rs +++ b/chapter6/rstat/src/main.rs @@ -2,10 +2,8 @@ use std::path::PathBuf; use structopt::StructOpt; mod srcstats; use srcstats::get_summary_src_stats; - mod errors; use errors::StatsError; - #[derive(Debug, StructOpt)] #[structopt( name = "rstat", @@ -17,7 +15,6 @@ struct Opt { #[structopt(name = "mode", short)] mode: String, } - fn main() -> Result<(), StatsError> { let opt = Opt::from_args(); let mode = &opt.mode[..]; diff --git a/chapter6/rstat/src/srcstats.rs b/chapter6/rstat/src/srcstats.rs index 0c5ac6d..8459124 100644 --- a/chapter6/rstat/src/srcstats.rs +++ b/chapter6/rstat/src/srcstats.rs @@ -5,7 +5,6 @@ use std::fs; use std::fs::DirEntry; use std::path::{Path, PathBuf}; -// Struct to hold the stats #[derive(Debug)] pub struct SrcStats { pub number_of_files: u32, @@ -14,39 +13,12 @@ pub struct SrcStats { pub blanks: u32, } -pub fn get_src_stats_for_file(file_name: &Path) -> Result { - let file_contents = fs::read_to_string(file_name)?; - let mut loc = 0; - let mut blanks = 0; - let mut comments = 0; - - for line in file_contents.lines() { - if line.len() == 0 { - blanks += 1; - } else if line.starts_with("//") { - comments += 1; - } else { - loc += 1; - } - } - let source_stats = SrcStats { - number_of_files: u32::try_from(file_contents.lines().count())?, - loc: loc, - comments: comments, - blanks: blanks, - }; - Ok(source_stats) -} - pub fn get_summary_src_stats(in_dir: &Path) -> Result { let mut total_loc = 0; let mut total_comments = 0; let mut total_blanks = 0; let mut dir_entries: Vec = vec![in_dir.to_path_buf()]; let mut file_entries: Vec = vec![]; - - // Recursively iterate over directory entries to get flat list of .rs files - while let Some(entry) = dir_entries.pop() { for inner_entry in fs::read_dir(&entry)? { if let Ok(entry) = inner_entry { @@ -68,7 +40,6 @@ pub fn get_summary_src_stats(in_dir: &Path) -> Result { total_blanks += stat.blanks; total_comments += stat.comments; } - Ok(SrcStats { number_of_files: u32::try_from(file_count)?, loc: total_loc, @@ -76,3 +47,26 @@ pub fn get_summary_src_stats(in_dir: &Path) -> Result { blanks: total_blanks, }) } + +pub fn get_src_stats_for_file(file_name: &Path) -> Result { + let file_contents = fs::read_to_string(file_name)?; + let mut loc = 0; + let mut blanks = 0; + let mut comments = 0; + for line in file_contents.lines() { + if line.len() == 0 { + blanks += 1; + } else if line.trim_start().starts_with("//") { + comments += 1; + } else { + loc += 1; + } + } + let source_stats = SrcStats { + number_of_files: u32::try_from(file_contents.lines().count())?, + loc: loc, + comments: comments, + blanks: blanks, + }; + Ok(source_stats) +} diff --git a/chapter8/myshell/src/iter1.rs b/chapter8/myshell/src/iter1.rs index 0e23c81..5f9ae58 100644 --- a/chapter8/myshell/src/iter1.rs +++ b/chapter8/myshell/src/iter1.rs @@ -3,7 +3,7 @@ use std::io::{stdin, stdout}; use std::process::Command; fn main() { loop { - print!("$"); + print!("$ "); stdout().flush().unwrap(); let mut user_input = String::new(); stdin() diff --git a/chapter8/myshell/src/iter2.rs b/chapter8/myshell/src/iter2.rs index 9e8701d..1713a5d 100644 --- a/chapter8/myshell/src/iter2.rs +++ b/chapter8/myshell/src/iter2.rs @@ -4,7 +4,7 @@ use std::process::Command; fn main() { loop { - print!("$"); + print!("$ "); stdout().flush().unwrap(); let mut user_input = String::new(); stdin() diff --git a/chapter8/myshell/src/iter3.rs b/chapter8/myshell/src/iter3.rs index 9fe524b..cc9fe92 100644 --- a/chapter8/myshell/src/iter3.rs +++ b/chapter8/myshell/src/iter3.rs @@ -5,7 +5,7 @@ use std::process::Command; fn main() { println!("Hello! Welcome to Myshell"); loop { - print!("$"); + print!("$ "); stdout().flush().unwrap(); let mut user_input = String::new(); stdin() @@ -37,8 +37,7 @@ fn main() { }; match child { Ok(mut child) => { - if child.wait().unwrap().success() { - } else { + if !child.wait().unwrap().success() { println!("\n{}", "Child process failed") } } diff --git a/chapter8/myshell/target/rls/.rustc_info.json b/chapter8/myshell/target/rls/.rustc_info.json new file mode 100644 index 0000000..df3c16e --- /dev/null +++ b/chapter8/myshell/target/rls/.rustc_info.json @@ -0,0 +1 @@ +{"rustc_fingerprint":4503571881771466578,"outputs":{"4476964694761187371":["___\nlib___.rlib\nlib___.dylib\nlib___.dylib\nlib___.a\nlib___.dylib\n/Users/prabhueshwarla/.rustup/toolchains/stable-x86_64-apple-darwin\ndebug_assertions\nproc_macro\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_feature=\"sse3\"\ntarget_feature=\"ssse3\"\ntarget_os=\"macos\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"apple\"\nunix\n",""],"1164083562126845933":["rustc 1.43.0 (4fb7144ed 2020-04-20)\nbinary: rustc\ncommit-hash: 4fb7144ed159f94491249e86d5bbd033b5d60550\ncommit-date: 2020-04-20\nhost: x86_64-apple-darwin\nrelease: 1.43.0\nLLVM version: 9.0\n",""]},"successes":{}} \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.cargo-lock b/chapter8/myshell/target/rls/debug/.cargo-lock new file mode 100644 index 0000000..e69de29 diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/arc-swap-8bf521bbb97717a8/dep-lib-arc_swap-8bf521bbb97717a8 b/chapter8/myshell/target/rls/debug/.fingerprint/arc-swap-8bf521bbb97717a8/dep-lib-arc_swap-8bf521bbb97717a8 new file mode 100644 index 0000000..e69de29 diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/arc-swap-8bf521bbb97717a8/invoked.timestamp b/chapter8/myshell/target/rls/debug/.fingerprint/arc-swap-8bf521bbb97717a8/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/arc-swap-8bf521bbb97717a8/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/arc-swap-8bf521bbb97717a8/lib-arc_swap-8bf521bbb97717a8 b/chapter8/myshell/target/rls/debug/.fingerprint/arc-swap-8bf521bbb97717a8/lib-arc_swap-8bf521bbb97717a8 new file mode 100644 index 0000000..d965a4e --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/arc-swap-8bf521bbb97717a8/lib-arc_swap-8bf521bbb97717a8 @@ -0,0 +1 @@ +ba22e64e6fd5869b \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/arc-swap-8bf521bbb97717a8/lib-arc_swap-8bf521bbb97717a8.json b/chapter8/myshell/target/rls/debug/.fingerprint/arc-swap-8bf521bbb97717a8/lib-arc_swap-8bf521bbb97717a8.json new file mode 100644 index 0000000..08b4ea2 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/arc-swap-8bf521bbb97717a8/lib-arc_swap-8bf521bbb97717a8.json @@ -0,0 +1 @@ +{"rustc":12217307662193597186,"features":"[]","target":7769495828907550557,"profile":14672114853574311971,"path":17978127198865149935,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/arc-swap-8bf521bbb97717a8/dep-lib-arc_swap-8bf521bbb97717a8"}}],"rustflags":[],"metadata":5403683474337919509} \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/libc-c09e8ee8b5d2cfeb/build-script-build_script_build-c09e8ee8b5d2cfeb b/chapter8/myshell/target/rls/debug/.fingerprint/libc-c09e8ee8b5d2cfeb/build-script-build_script_build-c09e8ee8b5d2cfeb new file mode 100644 index 0000000..ee8b3d7 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/libc-c09e8ee8b5d2cfeb/build-script-build_script_build-c09e8ee8b5d2cfeb @@ -0,0 +1 @@ +6e8bd519b82adf21 \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/libc-c09e8ee8b5d2cfeb/build-script-build_script_build-c09e8ee8b5d2cfeb.json b/chapter8/myshell/target/rls/debug/.fingerprint/libc-c09e8ee8b5d2cfeb/build-script-build_script_build-c09e8ee8b5d2cfeb.json new file mode 100644 index 0000000..dfdd78f --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/libc-c09e8ee8b5d2cfeb/build-script-build_script_build-c09e8ee8b5d2cfeb.json @@ -0,0 +1 @@ +{"rustc":12217307662193597186,"features":"[\"default\", \"std\"]","target":10088282520713642473,"profile":9935990280773120926,"path":5668189319116796272,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/libc-c09e8ee8b5d2cfeb/dep-build-script-build_script_build-c09e8ee8b5d2cfeb"}}],"rustflags":[],"metadata":14998826085014762512} \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/libc-c09e8ee8b5d2cfeb/dep-build-script-build_script_build-c09e8ee8b5d2cfeb b/chapter8/myshell/target/rls/debug/.fingerprint/libc-c09e8ee8b5d2cfeb/dep-build-script-build_script_build-c09e8ee8b5d2cfeb new file mode 100644 index 0000000..e69de29 diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/libc-c09e8ee8b5d2cfeb/invoked.timestamp b/chapter8/myshell/target/rls/debug/.fingerprint/libc-c09e8ee8b5d2cfeb/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/libc-c09e8ee8b5d2cfeb/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/libc-c3d2f05d5692145a/run-build-script-build_script_build-c3d2f05d5692145a b/chapter8/myshell/target/rls/debug/.fingerprint/libc-c3d2f05d5692145a/run-build-script-build_script_build-c3d2f05d5692145a new file mode 100644 index 0000000..7865881 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/libc-c3d2f05d5692145a/run-build-script-build_script_build-c3d2f05d5692145a @@ -0,0 +1 @@ +b368d365cb43825b \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/libc-c3d2f05d5692145a/run-build-script-build_script_build-c3d2f05d5692145a.json b/chapter8/myshell/target/rls/debug/.fingerprint/libc-c3d2f05d5692145a/run-build-script-build_script_build-c3d2f05d5692145a.json new file mode 100644 index 0000000..8e0bb5e --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/libc-c3d2f05d5692145a/run-build-script-build_script_build-c3d2f05d5692145a.json @@ -0,0 +1 @@ +{"rustc":12217307662193597186,"features":"","target":0,"profile":0,"path":0,"deps":[[15839404612938784224,"build_script_build",false,2440716493253872494]],"local":[{"Precalculated":"0.2.77"}],"rustflags":[],"metadata":0} \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/libc-c6c7e72937a09c21/dep-lib-libc-c6c7e72937a09c21 b/chapter8/myshell/target/rls/debug/.fingerprint/libc-c6c7e72937a09c21/dep-lib-libc-c6c7e72937a09c21 new file mode 100644 index 0000000..e69de29 diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/libc-c6c7e72937a09c21/invoked.timestamp b/chapter8/myshell/target/rls/debug/.fingerprint/libc-c6c7e72937a09c21/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/libc-c6c7e72937a09c21/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/libc-c6c7e72937a09c21/lib-libc-c6c7e72937a09c21 b/chapter8/myshell/target/rls/debug/.fingerprint/libc-c6c7e72937a09c21/lib-libc-c6c7e72937a09c21 new file mode 100644 index 0000000..9163e0a --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/libc-c6c7e72937a09c21/lib-libc-c6c7e72937a09c21 @@ -0,0 +1 @@ +dc0b3b0b4e3bac3c \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/libc-c6c7e72937a09c21/lib-libc-c6c7e72937a09c21.json b/chapter8/myshell/target/rls/debug/.fingerprint/libc-c6c7e72937a09c21/lib-libc-c6c7e72937a09c21.json new file mode 100644 index 0000000..9dab064 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/libc-c6c7e72937a09c21/lib-libc-c6c7e72937a09c21.json @@ -0,0 +1 @@ +{"rustc":12217307662193597186,"features":"[\"default\", \"std\"]","target":15220052048028810702,"profile":14672114853574311971,"path":17141904341920083751,"deps":[[15839404612938784224,"build_script_build",false,6593907345289603251]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/libc-c6c7e72937a09c21/dep-lib-libc-c6c7e72937a09c21"}}],"rustflags":[],"metadata":14998826085014762512} \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-4a230df71cc4a53d/dep-test-bin-iter2-4a230df71cc4a53d b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-4a230df71cc4a53d/dep-test-bin-iter2-4a230df71cc4a53d new file mode 100644 index 0000000..8f800c5 Binary files /dev/null and b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-4a230df71cc4a53d/dep-test-bin-iter2-4a230df71cc4a53d differ diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-4a230df71cc4a53d/invoked.timestamp b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-4a230df71cc4a53d/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-4a230df71cc4a53d/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-4a230df71cc4a53d/test-bin-iter2-4a230df71cc4a53d b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-4a230df71cc4a53d/test-bin-iter2-4a230df71cc4a53d new file mode 100644 index 0000000..ba08da4 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-4a230df71cc4a53d/test-bin-iter2-4a230df71cc4a53d @@ -0,0 +1 @@ +9232b31c1c46a23f \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-4a230df71cc4a53d/test-bin-iter2-4a230df71cc4a53d.json b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-4a230df71cc4a53d/test-bin-iter2-4a230df71cc4a53d.json new file mode 100644 index 0000000..b2a542c --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-4a230df71cc4a53d/test-bin-iter2-4a230df71cc4a53d.json @@ -0,0 +1 @@ +{"rustc":12217307662193597186,"features":"[]","target":3779090933834725706,"profile":1647870076477133176,"path":8614225337931830846,"deps":[[16146517112962250453,"signal_hook",false,4781934258960965705]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/myshell-4a230df71cc4a53d/dep-test-bin-iter2-4a230df71cc4a53d"}}],"rustflags":[],"metadata":13779719443416291531} \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-9d7ed183b90f11e5/dep-test-bin-iter1-9d7ed183b90f11e5 b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-9d7ed183b90f11e5/dep-test-bin-iter1-9d7ed183b90f11e5 new file mode 100644 index 0000000..6185c64 Binary files /dev/null and b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-9d7ed183b90f11e5/dep-test-bin-iter1-9d7ed183b90f11e5 differ diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-9d7ed183b90f11e5/invoked.timestamp b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-9d7ed183b90f11e5/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-9d7ed183b90f11e5/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-9d7ed183b90f11e5/test-bin-iter1-9d7ed183b90f11e5 b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-9d7ed183b90f11e5/test-bin-iter1-9d7ed183b90f11e5 new file mode 100644 index 0000000..0f97ca0 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-9d7ed183b90f11e5/test-bin-iter1-9d7ed183b90f11e5 @@ -0,0 +1 @@ +92ed892f7130971e \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-9d7ed183b90f11e5/test-bin-iter1-9d7ed183b90f11e5.json b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-9d7ed183b90f11e5/test-bin-iter1-9d7ed183b90f11e5.json new file mode 100644 index 0000000..7351236 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-9d7ed183b90f11e5/test-bin-iter1-9d7ed183b90f11e5.json @@ -0,0 +1 @@ +{"rustc":12217307662193597186,"features":"[]","target":5524743927054684670,"profile":1647870076477133176,"path":8359889324943501007,"deps":[[16146517112962250453,"signal_hook",false,4781934258960965705]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/myshell-9d7ed183b90f11e5/dep-test-bin-iter1-9d7ed183b90f11e5"}}],"rustflags":[],"metadata":13779719443416291531} \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-b5e1356f9653d959/bin-iter2-b5e1356f9653d959 b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-b5e1356f9653d959/bin-iter2-b5e1356f9653d959 new file mode 100644 index 0000000..370681f --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-b5e1356f9653d959/bin-iter2-b5e1356f9653d959 @@ -0,0 +1 @@ +476038f3f191c41a \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-b5e1356f9653d959/bin-iter2-b5e1356f9653d959.json b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-b5e1356f9653d959/bin-iter2-b5e1356f9653d959.json new file mode 100644 index 0000000..ca55985 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-b5e1356f9653d959/bin-iter2-b5e1356f9653d959.json @@ -0,0 +1 @@ +{"rustc":12217307662193597186,"features":"[]","target":3779090933834725706,"profile":14891217944882224483,"path":8614225337931830846,"deps":[[16146517112962250453,"signal_hook",false,4781934258960965705]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/myshell-b5e1356f9653d959/dep-bin-iter2-b5e1356f9653d959"}}],"rustflags":[],"metadata":13779719443416291531} \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-b5e1356f9653d959/dep-bin-iter2-b5e1356f9653d959 b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-b5e1356f9653d959/dep-bin-iter2-b5e1356f9653d959 new file mode 100644 index 0000000..8f800c5 Binary files /dev/null and b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-b5e1356f9653d959/dep-bin-iter2-b5e1356f9653d959 differ diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-b5e1356f9653d959/invoked.timestamp b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-b5e1356f9653d959/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-b5e1356f9653d959/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-ce354c228a26eb2e/bin-iter1-ce354c228a26eb2e b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-ce354c228a26eb2e/bin-iter1-ce354c228a26eb2e new file mode 100644 index 0000000..332d911 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-ce354c228a26eb2e/bin-iter1-ce354c228a26eb2e @@ -0,0 +1 @@ +acfc4500889d01ad \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-ce354c228a26eb2e/bin-iter1-ce354c228a26eb2e.json b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-ce354c228a26eb2e/bin-iter1-ce354c228a26eb2e.json new file mode 100644 index 0000000..8cad523 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-ce354c228a26eb2e/bin-iter1-ce354c228a26eb2e.json @@ -0,0 +1 @@ +{"rustc":12217307662193597186,"features":"[]","target":5524743927054684670,"profile":14891217944882224483,"path":8359889324943501007,"deps":[[16146517112962250453,"signal_hook",false,4781934258960965705]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/myshell-ce354c228a26eb2e/dep-bin-iter1-ce354c228a26eb2e"}}],"rustflags":[],"metadata":13779719443416291531} \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-ce354c228a26eb2e/dep-bin-iter1-ce354c228a26eb2e b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-ce354c228a26eb2e/dep-bin-iter1-ce354c228a26eb2e new file mode 100644 index 0000000..6185c64 Binary files /dev/null and b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-ce354c228a26eb2e/dep-bin-iter1-ce354c228a26eb2e differ diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-ce354c228a26eb2e/invoked.timestamp b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-ce354c228a26eb2e/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-ce354c228a26eb2e/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-cf53089a5eadc167/bin-iter3-cf53089a5eadc167 b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-cf53089a5eadc167/bin-iter3-cf53089a5eadc167 new file mode 100644 index 0000000..3b85bb4 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-cf53089a5eadc167/bin-iter3-cf53089a5eadc167 @@ -0,0 +1 @@ +1ff492708f9ed32e \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-cf53089a5eadc167/bin-iter3-cf53089a5eadc167.json b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-cf53089a5eadc167/bin-iter3-cf53089a5eadc167.json new file mode 100644 index 0000000..ae5140d --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-cf53089a5eadc167/bin-iter3-cf53089a5eadc167.json @@ -0,0 +1 @@ +{"rustc":12217307662193597186,"features":"[]","target":5315428249130279951,"profile":14891217944882224483,"path":2006210273669501031,"deps":[[16146517112962250453,"signal_hook",false,4781934258960965705]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/myshell-cf53089a5eadc167/dep-bin-iter3-cf53089a5eadc167"}}],"rustflags":[],"metadata":13779719443416291531} \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-cf53089a5eadc167/dep-bin-iter3-cf53089a5eadc167 b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-cf53089a5eadc167/dep-bin-iter3-cf53089a5eadc167 new file mode 100644 index 0000000..09d4838 Binary files /dev/null and b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-cf53089a5eadc167/dep-bin-iter3-cf53089a5eadc167 differ diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-cf53089a5eadc167/invoked.timestamp b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-cf53089a5eadc167/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-cf53089a5eadc167/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-de37f18890843faa/dep-test-bin-iter3-de37f18890843faa b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-de37f18890843faa/dep-test-bin-iter3-de37f18890843faa new file mode 100644 index 0000000..09d4838 Binary files /dev/null and b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-de37f18890843faa/dep-test-bin-iter3-de37f18890843faa differ diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-de37f18890843faa/invoked.timestamp b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-de37f18890843faa/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-de37f18890843faa/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-de37f18890843faa/test-bin-iter3-de37f18890843faa b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-de37f18890843faa/test-bin-iter3-de37f18890843faa new file mode 100644 index 0000000..6415fe6 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-de37f18890843faa/test-bin-iter3-de37f18890843faa @@ -0,0 +1 @@ +5dcb26f97b27d0eb \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/myshell-de37f18890843faa/test-bin-iter3-de37f18890843faa.json b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-de37f18890843faa/test-bin-iter3-de37f18890843faa.json new file mode 100644 index 0000000..3d388b8 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/myshell-de37f18890843faa/test-bin-iter3-de37f18890843faa.json @@ -0,0 +1 @@ +{"rustc":12217307662193597186,"features":"[]","target":5315428249130279951,"profile":1647870076477133176,"path":2006210273669501031,"deps":[[16146517112962250453,"signal_hook",false,4781934258960965705]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/myshell-de37f18890843faa/dep-test-bin-iter3-de37f18890843faa"}}],"rustflags":[],"metadata":13779719443416291531} \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/signal-hook-e0628f0be09b0325/dep-lib-signal_hook-e0628f0be09b0325 b/chapter8/myshell/target/rls/debug/.fingerprint/signal-hook-e0628f0be09b0325/dep-lib-signal_hook-e0628f0be09b0325 new file mode 100644 index 0000000..e69de29 diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/signal-hook-e0628f0be09b0325/invoked.timestamp b/chapter8/myshell/target/rls/debug/.fingerprint/signal-hook-e0628f0be09b0325/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/signal-hook-e0628f0be09b0325/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/signal-hook-e0628f0be09b0325/lib-signal_hook-e0628f0be09b0325 b/chapter8/myshell/target/rls/debug/.fingerprint/signal-hook-e0628f0be09b0325/lib-signal_hook-e0628f0be09b0325 new file mode 100644 index 0000000..8e4b3d2 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/signal-hook-e0628f0be09b0325/lib-signal_hook-e0628f0be09b0325 @@ -0,0 +1 @@ +49a0a36cdfd75c42 \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/signal-hook-e0628f0be09b0325/lib-signal_hook-e0628f0be09b0325.json b/chapter8/myshell/target/rls/debug/.fingerprint/signal-hook-e0628f0be09b0325/lib-signal_hook-e0628f0be09b0325.json new file mode 100644 index 0000000..c1a3451 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/signal-hook-e0628f0be09b0325/lib-signal_hook-e0628f0be09b0325.json @@ -0,0 +1 @@ +{"rustc":12217307662193597186,"features":"[]","target":96680986830323986,"profile":14672114853574311971,"path":5451802912678436059,"deps":[[2102304134188301628,"signal_hook_registry",false,16384833267052773235],[15839404612938784224,"libc",false,4371934544651815900]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/signal-hook-e0628f0be09b0325/dep-lib-signal_hook-e0628f0be09b0325"}}],"rustflags":[],"metadata":740907220319991922} \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/signal-hook-registry-e474ff654680bd11/dep-lib-signal_hook_registry-e474ff654680bd11 b/chapter8/myshell/target/rls/debug/.fingerprint/signal-hook-registry-e474ff654680bd11/dep-lib-signal_hook_registry-e474ff654680bd11 new file mode 100644 index 0000000..e69de29 diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/signal-hook-registry-e474ff654680bd11/invoked.timestamp b/chapter8/myshell/target/rls/debug/.fingerprint/signal-hook-registry-e474ff654680bd11/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/signal-hook-registry-e474ff654680bd11/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/signal-hook-registry-e474ff654680bd11/lib-signal_hook_registry-e474ff654680bd11 b/chapter8/myshell/target/rls/debug/.fingerprint/signal-hook-registry-e474ff654680bd11/lib-signal_hook_registry-e474ff654680bd11 new file mode 100644 index 0000000..4a01894 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/signal-hook-registry-e474ff654680bd11/lib-signal_hook_registry-e474ff654680bd11 @@ -0,0 +1 @@ +73ffaeba0b9f62e3 \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/.fingerprint/signal-hook-registry-e474ff654680bd11/lib-signal_hook_registry-e474ff654680bd11.json b/chapter8/myshell/target/rls/debug/.fingerprint/signal-hook-registry-e474ff654680bd11/lib-signal_hook_registry-e474ff654680bd11.json new file mode 100644 index 0000000..f04b54a --- /dev/null +++ b/chapter8/myshell/target/rls/debug/.fingerprint/signal-hook-registry-e474ff654680bd11/lib-signal_hook_registry-e474ff654680bd11.json @@ -0,0 +1 @@ +{"rustc":12217307662193597186,"features":"[]","target":17412909115425170117,"profile":14672114853574311971,"path":912204364448912419,"deps":[[7746290385362245390,"arc_swap",false,11206879396799849146],[15839404612938784224,"libc",false,4371934544651815900]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/signal-hook-registry-e474ff654680bd11/dep-lib-signal_hook_registry-e474ff654680bd11"}}],"rustflags":[],"metadata":6760549636108522644} \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/build/libc-c09e8ee8b5d2cfeb/build-script-build b/chapter8/myshell/target/rls/debug/build/libc-c09e8ee8b5d2cfeb/build-script-build new file mode 100755 index 0000000..3cbe38c Binary files /dev/null and b/chapter8/myshell/target/rls/debug/build/libc-c09e8ee8b5d2cfeb/build-script-build differ diff --git a/chapter8/myshell/target/rls/debug/build/libc-c09e8ee8b5d2cfeb/build_script_build-c09e8ee8b5d2cfeb b/chapter8/myshell/target/rls/debug/build/libc-c09e8ee8b5d2cfeb/build_script_build-c09e8ee8b5d2cfeb new file mode 100755 index 0000000..3cbe38c Binary files /dev/null and b/chapter8/myshell/target/rls/debug/build/libc-c09e8ee8b5d2cfeb/build_script_build-c09e8ee8b5d2cfeb differ diff --git a/chapter8/myshell/target/rls/debug/build/libc-c09e8ee8b5d2cfeb/build_script_build-c09e8ee8b5d2cfeb.d b/chapter8/myshell/target/rls/debug/build/libc-c09e8ee8b5d2cfeb/build_script_build-c09e8ee8b5d2cfeb.d new file mode 100644 index 0000000..0f0a241 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/build/libc-c09e8ee8b5d2cfeb/build_script_build-c09e8ee8b5d2cfeb.d @@ -0,0 +1,5 @@ +/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/build/libc-c09e8ee8b5d2cfeb/build_script_build-c09e8ee8b5d2cfeb: /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/build.rs + +/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/build/libc-c09e8ee8b5d2cfeb/build_script_build-c09e8ee8b5d2cfeb.d: /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/build.rs + +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/build.rs: diff --git a/chapter8/myshell/target/rls/debug/build/libc-c09e8ee8b5d2cfeb/build_script_build-c09e8ee8b5d2cfeb.dSYM/Contents/Info.plist b/chapter8/myshell/target/rls/debug/build/libc-c09e8ee8b5d2cfeb/build_script_build-c09e8ee8b5d2cfeb.dSYM/Contents/Info.plist new file mode 100644 index 0000000..81d546f --- /dev/null +++ b/chapter8/myshell/target/rls/debug/build/libc-c09e8ee8b5d2cfeb/build_script_build-c09e8ee8b5d2cfeb.dSYM/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.build_script_build-c09e8ee8b5d2cfeb + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/chapter8/myshell/target/rls/debug/build/libc-c09e8ee8b5d2cfeb/build_script_build-c09e8ee8b5d2cfeb.dSYM/Contents/Resources/DWARF/build_script_build-c09e8ee8b5d2cfeb b/chapter8/myshell/target/rls/debug/build/libc-c09e8ee8b5d2cfeb/build_script_build-c09e8ee8b5d2cfeb.dSYM/Contents/Resources/DWARF/build_script_build-c09e8ee8b5d2cfeb new file mode 100644 index 0000000..efcaf7f Binary files /dev/null and b/chapter8/myshell/target/rls/debug/build/libc-c09e8ee8b5d2cfeb/build_script_build-c09e8ee8b5d2cfeb.dSYM/Contents/Resources/DWARF/build_script_build-c09e8ee8b5d2cfeb differ diff --git a/chapter8/myshell/target/rls/debug/build/libc-c09e8ee8b5d2cfeb/save-analysis/build_script_build-c09e8ee8b5d2cfeb.json b/chapter8/myshell/target/rls/debug/build/libc-c09e8ee8b5d2cfeb/save-analysis/build_script_build-c09e8ee8b5d2cfeb.json new file mode 100644 index 0000000..f42ea5a --- /dev/null +++ b/chapter8/myshell/target/rls/debug/build/libc-c09e8ee8b5d2cfeb/save-analysis/build_script_build-c09e8ee8b5d2cfeb.json @@ -0,0 +1 @@ +{"config":{"output_file":null,"full_docs":false,"pub_only":true,"reachable_only":true,"distro_crate":false,"signatures":false,"borrow_data":false},"version":"0.19.0","compilation":{"directory":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77","program":"/Users/prabhueshwarla/.rustup/toolchains/stable-x86_64-apple-darwin/bin/rls","arguments":["--crate-name","build_script_build","/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/build.rs","--json=diagnostic-rendered-ansi","--crate-type","bin","--emit=dep-info,link","-C","debuginfo=2","--cfg","feature=\"default\"","--cfg","feature=\"std\"","-C","metadata=c09e8ee8b5d2cfeb","-C","extra-filename=-c09e8ee8b5d2cfeb","--out-dir","/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/build/libc-c09e8ee8b5d2cfeb","-L","dependency=/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps","--cap-lints","allow","--error-format=json","--sysroot","/Users/prabhueshwarla/.rustup/toolchains/stable-x86_64-apple-darwin"],"output":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/build/libc-c09e8ee8b5d2cfeb/build_script_build-c09e8ee8b5d2cfeb"},"prelude":{"crate_id":{"name":"build_script_build","disambiguator":[10236305082320143431,7815402239146070316]},"crate_root":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77","external_crates":[{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/build.rs","num":1,"id":{"name":"std","disambiguator":[9054049529852543209,5756799355281213394]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/build.rs","num":2,"id":{"name":"core","disambiguator":[649336883146201894,3308516238322163950]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/build.rs","num":3,"id":{"name":"compiler_builtins","disambiguator":[1154582834482060450,16344204990542480537]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/build.rs","num":4,"id":{"name":"rustc_std_workspace_core","disambiguator":[9212379515936652129,17808485286264063370]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/build.rs","num":5,"id":{"name":"alloc","disambiguator":[13327579764654116281,14306064291630426625]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/build.rs","num":6,"id":{"name":"libc","disambiguator":[17773251733480933597,18239998491734583498]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/build.rs","num":7,"id":{"name":"unwind","disambiguator":[8567743581675804787,15655200220621371766]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/build.rs","num":8,"id":{"name":"cfg_if","disambiguator":[15115520782807859583,9813785573872252500]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/build.rs","num":9,"id":{"name":"backtrace","disambiguator":[1572943810868196833,3902827232285166711]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/build.rs","num":10,"id":{"name":"rustc_demangle","disambiguator":[6290371580101917419,15395902185345451181]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/build.rs","num":11,"id":{"name":"backtrace_sys","disambiguator":[2934540361684350378,924291485644145262]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/build.rs","num":12,"id":{"name":"hashbrown","disambiguator":[9277678418438935259,15657907931940784437]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/build.rs","num":13,"id":{"name":"rustc_std_workspace_alloc","disambiguator":[5423566938548125357,18340948646597872466]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/build.rs","num":14,"id":{"name":"panic_unwind","disambiguator":[489208416821938960,3305070343783546974]}}],"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/build.rs","byte_start":0,"byte_end":4807,"line_start":1,"line_end":145,"column_start":1,"column_end":2}},"imports":[],"defs":[{"kind":"Mod","id":{"krate":0,"index":0},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/build.rs","byte_start":0,"byte_end":4807,"line_start":1,"line_end":145,"column_start":1,"column_end":2},"name":"","qualname":"::","value":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/build.rs","parent":null,"children":[{"krate":0,"index":1},{"krate":0,"index":2},{"krate":0,"index":3},{"krate":0,"index":4},{"krate":0,"index":5},{"krate":0,"index":6},{"krate":0,"index":7},{"krate":0,"index":10}],"decl_id":null,"docs":"","sig":null,"attributes":[]}],"impls":[],"refs":[],"macro_refs":[],"relations":[]} \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/build/libc-c3d2f05d5692145a/invoked.timestamp b/chapter8/myshell/target/rls/debug/build/libc-c3d2f05d5692145a/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/chapter8/myshell/target/rls/debug/build/libc-c3d2f05d5692145a/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/build/libc-c3d2f05d5692145a/output b/chapter8/myshell/target/rls/debug/build/libc-c3d2f05d5692145a/output new file mode 100644 index 0000000..6f1b6a9 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/build/libc-c3d2f05d5692145a/output @@ -0,0 +1,8 @@ +cargo:rustc-cfg=freebsd11 +cargo:rustc-cfg=libc_priv_mod_use +cargo:rustc-cfg=libc_union +cargo:rustc-cfg=libc_const_size_of +cargo:rustc-cfg=libc_align +cargo:rustc-cfg=libc_core_cvoid +cargo:rustc-cfg=libc_packedN +cargo:rustc-cfg=libc_cfg_target_vendor diff --git a/chapter8/myshell/target/rls/debug/build/libc-c3d2f05d5692145a/root-output b/chapter8/myshell/target/rls/debug/build/libc-c3d2f05d5692145a/root-output new file mode 100644 index 0000000..0f04400 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/build/libc-c3d2f05d5692145a/root-output @@ -0,0 +1 @@ +/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/build/libc-c3d2f05d5692145a/out \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/build/libc-c3d2f05d5692145a/stderr b/chapter8/myshell/target/rls/debug/build/libc-c3d2f05d5692145a/stderr new file mode 100644 index 0000000..e69de29 diff --git a/chapter8/myshell/target/rls/debug/deps/arc_swap-8bf521bbb97717a8.d b/chapter8/myshell/target/rls/debug/deps/arc_swap-8bf521bbb97717a8.d new file mode 100644 index 0000000..2cb676e --- /dev/null +++ b/chapter8/myshell/target/rls/debug/deps/arc_swap-8bf521bbb97717a8.d @@ -0,0 +1,12 @@ +/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/arc_swap-8bf521bbb97717a8.rmeta: /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/compile_fail_tests.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/debt.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs + +/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/arc_swap-8bf521bbb97717a8.d: /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/compile_fail_tests.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/debt.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs + +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/compile_fail_tests.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/debt.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs: diff --git a/chapter8/myshell/target/rls/debug/deps/iter1-9d7ed183b90f11e5.d b/chapter8/myshell/target/rls/debug/deps/iter1-9d7ed183b90f11e5.d new file mode 100644 index 0000000..dd36864 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/deps/iter1-9d7ed183b90f11e5.d @@ -0,0 +1,5 @@ +/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/iter1-9d7ed183b90f11e5.rmeta: src/iter1.rs + +/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/iter1-9d7ed183b90f11e5.d: src/iter1.rs + +src/iter1.rs: diff --git a/chapter8/myshell/target/rls/debug/deps/iter1-ce354c228a26eb2e.d b/chapter8/myshell/target/rls/debug/deps/iter1-ce354c228a26eb2e.d new file mode 100644 index 0000000..2d873e8 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/deps/iter1-ce354c228a26eb2e.d @@ -0,0 +1,5 @@ +/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/iter1-ce354c228a26eb2e.rmeta: src/iter1.rs + +/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/iter1-ce354c228a26eb2e.d: src/iter1.rs + +src/iter1.rs: diff --git a/chapter8/myshell/target/rls/debug/deps/iter2-4a230df71cc4a53d.d b/chapter8/myshell/target/rls/debug/deps/iter2-4a230df71cc4a53d.d new file mode 100644 index 0000000..2a0dfe0 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/deps/iter2-4a230df71cc4a53d.d @@ -0,0 +1,5 @@ +/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/iter2-4a230df71cc4a53d.rmeta: src/iter2.rs + +/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/iter2-4a230df71cc4a53d.d: src/iter2.rs + +src/iter2.rs: diff --git a/chapter8/myshell/target/rls/debug/deps/iter2-b5e1356f9653d959.d b/chapter8/myshell/target/rls/debug/deps/iter2-b5e1356f9653d959.d new file mode 100644 index 0000000..6c1a2ae --- /dev/null +++ b/chapter8/myshell/target/rls/debug/deps/iter2-b5e1356f9653d959.d @@ -0,0 +1,5 @@ +/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/iter2-b5e1356f9653d959.rmeta: src/iter2.rs + +/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/iter2-b5e1356f9653d959.d: src/iter2.rs + +src/iter2.rs: diff --git a/chapter8/myshell/target/rls/debug/deps/iter3-cf53089a5eadc167.d b/chapter8/myshell/target/rls/debug/deps/iter3-cf53089a5eadc167.d new file mode 100644 index 0000000..e565093 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/deps/iter3-cf53089a5eadc167.d @@ -0,0 +1,5 @@ +/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/iter3-cf53089a5eadc167.rmeta: src/iter3.rs + +/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/iter3-cf53089a5eadc167.d: src/iter3.rs + +src/iter3.rs: diff --git a/chapter8/myshell/target/rls/debug/deps/iter3-de37f18890843faa.d b/chapter8/myshell/target/rls/debug/deps/iter3-de37f18890843faa.d new file mode 100644 index 0000000..2e91c8f --- /dev/null +++ b/chapter8/myshell/target/rls/debug/deps/iter3-de37f18890843faa.d @@ -0,0 +1,5 @@ +/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/iter3-de37f18890843faa.rmeta: src/iter3.rs + +/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/iter3-de37f18890843faa.d: src/iter3.rs + +src/iter3.rs: diff --git a/chapter8/myshell/target/rls/debug/deps/libarc_swap-8bf521bbb97717a8.rmeta b/chapter8/myshell/target/rls/debug/deps/libarc_swap-8bf521bbb97717a8.rmeta new file mode 100644 index 0000000..e79f9fe Binary files /dev/null and b/chapter8/myshell/target/rls/debug/deps/libarc_swap-8bf521bbb97717a8.rmeta differ diff --git a/chapter8/myshell/target/rls/debug/deps/libc-c6c7e72937a09c21.d b/chapter8/myshell/target/rls/debug/deps/libc-c6c7e72937a09c21.d new file mode 100644 index 0000000..3022011 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/deps/libc-c6c7e72937a09c21.d @@ -0,0 +1,34 @@ +/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/libc-c6c7e72937a09c21.rmeta: /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/lib.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/macros.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/fixed_width_ints.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/windows/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/cloudabi/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/fuchsia/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/switch.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/psp.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/vxworks/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/hermit/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/sgx.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/wasi.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/uclibc/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/newlib/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/linux_like/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/bsd/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/solarish/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/solarish/compat.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/haiku/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/hermit/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/redox/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/bsd/apple/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/bsd/netbsdlike/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/bsd/freebsdlike/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/bsd/apple/b32/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/bsd/apple/b64/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/bsd/apple/b64/align.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/align.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/no_align.rs + +/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/libc-c6c7e72937a09c21.d: /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/lib.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/macros.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/fixed_width_ints.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/windows/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/cloudabi/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/fuchsia/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/switch.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/psp.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/vxworks/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/hermit/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/sgx.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/wasi.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/uclibc/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/newlib/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/linux_like/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/bsd/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/solarish/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/solarish/compat.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/haiku/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/hermit/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/redox/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/bsd/apple/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/bsd/netbsdlike/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/bsd/freebsdlike/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/bsd/apple/b32/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/bsd/apple/b64/mod.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/bsd/apple/b64/align.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/align.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/no_align.rs + +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/lib.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/macros.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/fixed_width_ints.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/windows/mod.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/cloudabi/mod.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/fuchsia/mod.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/switch.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/psp.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/vxworks/mod.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/mod.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/hermit/mod.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/sgx.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/wasi.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/uclibc/mod.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/newlib/mod.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/linux_like/mod.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/bsd/mod.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/solarish/mod.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/solarish/compat.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/haiku/mod.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/hermit/mod.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/redox/mod.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/bsd/apple/mod.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/bsd/netbsdlike/mod.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/bsd/freebsdlike/mod.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/bsd/apple/b32/mod.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/bsd/apple/b64/mod.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/bsd/apple/b64/align.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/align.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.77/src/unix/no_align.rs: diff --git a/chapter8/myshell/target/rls/debug/deps/libiter1-9d7ed183b90f11e5.rmeta b/chapter8/myshell/target/rls/debug/deps/libiter1-9d7ed183b90f11e5.rmeta new file mode 100644 index 0000000..e69de29 diff --git a/chapter8/myshell/target/rls/debug/deps/libiter1-ce354c228a26eb2e.rmeta b/chapter8/myshell/target/rls/debug/deps/libiter1-ce354c228a26eb2e.rmeta new file mode 100644 index 0000000..e69de29 diff --git a/chapter8/myshell/target/rls/debug/deps/libiter2-4a230df71cc4a53d.rmeta b/chapter8/myshell/target/rls/debug/deps/libiter2-4a230df71cc4a53d.rmeta new file mode 100644 index 0000000..e69de29 diff --git a/chapter8/myshell/target/rls/debug/deps/libiter2-b5e1356f9653d959.rmeta b/chapter8/myshell/target/rls/debug/deps/libiter2-b5e1356f9653d959.rmeta new file mode 100644 index 0000000..e69de29 diff --git a/chapter8/myshell/target/rls/debug/deps/libiter3-cf53089a5eadc167.rmeta b/chapter8/myshell/target/rls/debug/deps/libiter3-cf53089a5eadc167.rmeta new file mode 100644 index 0000000..e69de29 diff --git a/chapter8/myshell/target/rls/debug/deps/libiter3-de37f18890843faa.rmeta b/chapter8/myshell/target/rls/debug/deps/libiter3-de37f18890843faa.rmeta new file mode 100644 index 0000000..e69de29 diff --git a/chapter8/myshell/target/rls/debug/deps/liblibc-c6c7e72937a09c21.rmeta b/chapter8/myshell/target/rls/debug/deps/liblibc-c6c7e72937a09c21.rmeta new file mode 100644 index 0000000..d1ef62c Binary files /dev/null and b/chapter8/myshell/target/rls/debug/deps/liblibc-c6c7e72937a09c21.rmeta differ diff --git a/chapter8/myshell/target/rls/debug/deps/libsignal_hook-e0628f0be09b0325.rmeta b/chapter8/myshell/target/rls/debug/deps/libsignal_hook-e0628f0be09b0325.rmeta new file mode 100644 index 0000000..7729088 Binary files /dev/null and b/chapter8/myshell/target/rls/debug/deps/libsignal_hook-e0628f0be09b0325.rmeta differ diff --git a/chapter8/myshell/target/rls/debug/deps/libsignal_hook_registry-e474ff654680bd11.rmeta b/chapter8/myshell/target/rls/debug/deps/libsignal_hook_registry-e474ff654680bd11.rmeta new file mode 100644 index 0000000..0d4df22 Binary files /dev/null and b/chapter8/myshell/target/rls/debug/deps/libsignal_hook_registry-e474ff654680bd11.rmeta differ diff --git a/chapter8/myshell/target/rls/debug/deps/save-analysis/iter1-9d7ed183b90f11e5.json b/chapter8/myshell/target/rls/debug/deps/save-analysis/iter1-9d7ed183b90f11e5.json new file mode 100644 index 0000000..f0677b4 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/deps/save-analysis/iter1-9d7ed183b90f11e5.json @@ -0,0 +1 @@ +{"config":{"output_file":null,"full_docs":false,"pub_only":false,"reachable_only":false,"distro_crate":false,"signatures":false,"borrow_data":false},"version":"0.19.0","compilation":{"directory":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell","program":"/Users/prabhueshwarla/.rustup/toolchains/stable-x86_64-apple-darwin/bin/rls","arguments":[],"output":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/libiter1-9d7ed183b90f11e5.rmeta"},"prelude":{"crate_id":{"name":"iter1","disambiguator":[9172791163077244166,1767422509950646103]},"crate_root":"src","external_crates":[{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":1,"id":{"name":"std","disambiguator":[9054049529852543209,5756799355281213394]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":2,"id":{"name":"core","disambiguator":[649336883146201894,3308516238322163950]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":3,"id":{"name":"compiler_builtins","disambiguator":[1154582834482060450,16344204990542480537]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":4,"id":{"name":"rustc_std_workspace_core","disambiguator":[9212379515936652129,17808485286264063370]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":5,"id":{"name":"alloc","disambiguator":[13327579764654116281,14306064291630426625]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":6,"id":{"name":"libc","disambiguator":[17773251733480933597,18239998491734583498]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":7,"id":{"name":"unwind","disambiguator":[8567743581675804787,15655200220621371766]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":8,"id":{"name":"cfg_if","disambiguator":[15115520782807859583,9813785573872252500]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":9,"id":{"name":"backtrace","disambiguator":[1572943810868196833,3902827232285166711]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":10,"id":{"name":"rustc_demangle","disambiguator":[6290371580101917419,15395902185345451181]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":11,"id":{"name":"backtrace_sys","disambiguator":[2934540361684350378,924291485644145262]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":12,"id":{"name":"hashbrown","disambiguator":[9277678418438935259,15657907931940784437]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":13,"id":{"name":"rustc_std_workspace_alloc","disambiguator":[5423566938548125357,18340948646597872466]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":14,"id":{"name":"panic_unwind","disambiguator":[489208416821938960,3305070343783546974]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":15,"id":{"name":"test","disambiguator":[14047927703376091429,2987777764842779506]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":16,"id":{"name":"getopts","disambiguator":[8756684592220063638,17365201988200505114]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":17,"id":{"name":"rustc_std_workspace_std","disambiguator":[5624357766471051433,12442286086064031042]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":18,"id":{"name":"unicode_width","disambiguator":[392462334362905977,9392482956235306384]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":19,"id":{"name":"term","disambiguator":[12331301280898709063,16641210874887239414]}}],"span":{"file_name":"src/iter1.rs","byte_start":0,"byte_end":525,"line_start":1,"line_end":18,"column_start":1,"column_end":2}},"imports":[{"kind":"Use","ref_id":{"krate":1,"index":2915},"span":{"file_name":"src/iter1.rs","byte_start":13,"byte_end":18,"line_start":1,"line_end":1,"column_start":14,"column_end":19},"alias_span":null,"name":"Write","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":2702},"span":{"file_name":"src/iter1.rs","byte_start":34,"byte_end":39,"line_start":2,"line_end":2,"column_start":15,"column_end":20},"alias_span":null,"name":"stdin","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":2732},"span":{"file_name":"src/iter1.rs","byte_start":41,"byte_end":47,"line_start":2,"line_end":2,"column_start":22,"column_end":28},"alias_span":null,"name":"stdout","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":4230},"span":{"file_name":"src/iter1.rs","byte_start":68,"byte_end":75,"line_start":3,"line_end":3,"column_start":19,"column_end":26},"alias_span":null,"name":"Command","value":"","parent":{"krate":0,"index":0}}],"defs":[{"kind":"Mod","id":{"krate":0,"index":0},"span":{"file_name":"src/iter1.rs","byte_start":0,"byte_end":525,"line_start":1,"line_end":18,"column_start":1,"column_end":2},"name":"","qualname":"::","value":"src/iter1.rs","parent":null,"children":[{"krate":0,"index":1},{"krate":0,"index":2},{"krate":0,"index":3},{"krate":0,"index":4},{"krate":0,"index":7},{"krate":0,"index":8},{"krate":0,"index":9}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":8},"span":{"file_name":"src/iter1.rs","byte_start":80,"byte_end":84,"line_start":4,"line_end":4,"column_start":4,"column_end":8},"name":"main","qualname":"::main","value":"fn () -> ()","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"allow(dead_code)","span":{"file_name":"src/iter1.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1}}]},{"kind":"Local","id":{"krate":0,"index":4294967251},"span":{"file_name":"src/iter1.rs","byte_start":173,"byte_end":183,"line_start":8,"line_end":8,"column_start":17,"column_end":27},"name":"user_input","qualname":"user_input$44","value":"std::string::String","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4294967234},"span":{"file_name":"src/iter1.rs","byte_start":319,"byte_end":337,"line_start":12,"line_end":12,"column_start":13,"column_end":31},"name":"command_to_execute","qualname":"command_to_execute$61","value":"&str","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4294967228},"span":{"file_name":"src/iter1.rs","byte_start":375,"byte_end":380,"line_start":13,"line_end":13,"column_start":17,"column_end":22},"name":"child","qualname":"child$67","value":"std::process::Child","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]}],"impls":[],"refs":[{"kind":"Mod","span":{"file_name":"src/iter1.rs","byte_start":4,"byte_end":7,"line_start":1,"line_end":1,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter1.rs","byte_start":9,"byte_end":11,"line_start":1,"line_end":1,"column_start":10,"column_end":12},"ref_id":{"krate":1,"index":2251}},{"kind":"Mod","span":{"file_name":"src/iter1.rs","byte_start":24,"byte_end":27,"line_start":2,"line_end":2,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter1.rs","byte_start":29,"byte_end":31,"line_start":2,"line_end":2,"column_start":10,"column_end":12},"ref_id":{"krate":1,"index":2251}},{"kind":"Mod","span":{"file_name":"src/iter1.rs","byte_start":24,"byte_end":27,"line_start":2,"line_end":2,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter1.rs","byte_start":29,"byte_end":31,"line_start":2,"line_end":2,"column_start":10,"column_end":12},"ref_id":{"krate":1,"index":2251}},{"kind":"Mod","span":{"file_name":"src/iter1.rs","byte_start":54,"byte_end":57,"line_start":3,"line_end":3,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter1.rs","byte_start":59,"byte_end":66,"line_start":3,"line_end":3,"column_start":10,"column_end":17},"ref_id":{"krate":1,"index":4154}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":147,"byte_end":153,"line_start":7,"line_end":7,"column_start":26,"column_end":32},"ref_id":{"krate":2,"index":5495}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":139,"byte_end":144,"line_start":7,"line_end":7,"column_start":18,"column_end":23},"ref_id":{"krate":1,"index":2919}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":130,"byte_end":136,"line_start":7,"line_end":7,"column_start":9,"column_end":15},"ref_id":{"krate":1,"index":2732}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":194,"byte_end":197,"line_start":8,"line_end":8,"column_start":38,"column_end":41},"ref_id":{"krate":5,"index":3479}},{"kind":"Type","span":{"file_name":"src/iter1.rs","byte_start":186,"byte_end":192,"line_start":8,"line_end":8,"column_start":30,"column_end":36},"ref_id":{"krate":5,"index":4732}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":270,"byte_end":276,"line_start":11,"line_end":11,"column_start":14,"column_end":20},"ref_id":{"krate":2,"index":5494}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":230,"byte_end":239,"line_start":10,"line_end":10,"column_start":14,"column_end":23},"ref_id":{"krate":1,"index":2708}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":209,"byte_end":214,"line_start":9,"line_end":9,"column_start":9,"column_end":14},"ref_id":{"krate":1,"index":2702}},{"kind":"Variable","span":{"file_name":"src/iter1.rs","byte_start":245,"byte_end":255,"line_start":10,"line_end":10,"column_start":29,"column_end":39},"ref_id":{"krate":0,"index":4294967251}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":351,"byte_end":355,"line_start":12,"line_end":12,"column_start":45,"column_end":49},"ref_id":{"krate":2,"index":7843}},{"kind":"Variable","span":{"file_name":"src/iter1.rs","byte_start":340,"byte_end":350,"line_start":12,"line_end":12,"column_start":34,"column_end":44},"ref_id":{"krate":0,"index":4294967251}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":450,"byte_end":456,"line_start":15,"line_end":15,"column_start":14,"column_end":20},"ref_id":{"krate":2,"index":5494}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":429,"byte_end":434,"line_start":14,"line_end":14,"column_start":14,"column_end":19},"ref_id":{"krate":1,"index":4258}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":392,"byte_end":395,"line_start":13,"line_end":13,"column_start":34,"column_end":37},"ref_id":{"krate":1,"index":4233}},{"kind":"Type","span":{"file_name":"src/iter1.rs","byte_start":383,"byte_end":390,"line_start":13,"line_end":13,"column_start":25,"column_end":32},"ref_id":{"krate":1,"index":4230}},{"kind":"Variable","span":{"file_name":"src/iter1.rs","byte_start":396,"byte_end":414,"line_start":13,"line_end":13,"column_start":38,"column_end":56},"ref_id":{"krate":0,"index":4294967234}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":508,"byte_end":514,"line_start":16,"line_end":16,"column_start":22,"column_end":28},"ref_id":{"krate":2,"index":5495}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":501,"byte_end":505,"line_start":16,"line_end":16,"column_start":15,"column_end":19},"ref_id":{"krate":1,"index":4305}},{"kind":"Variable","span":{"file_name":"src/iter1.rs","byte_start":495,"byte_end":500,"line_start":16,"line_end":16,"column_start":9,"column_end":14},"ref_id":{"krate":0,"index":4294967228}}],"macro_refs":[],"relations":[]} \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/deps/save-analysis/iter1-ce354c228a26eb2e.json b/chapter8/myshell/target/rls/debug/deps/save-analysis/iter1-ce354c228a26eb2e.json new file mode 100644 index 0000000..637fd70 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/deps/save-analysis/iter1-ce354c228a26eb2e.json @@ -0,0 +1 @@ +{"config":{"output_file":null,"full_docs":false,"pub_only":false,"reachable_only":false,"distro_crate":false,"signatures":false,"borrow_data":false},"version":"0.19.0","compilation":{"directory":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell","program":"/Users/prabhueshwarla/.rustup/toolchains/stable-x86_64-apple-darwin/bin/rls","arguments":[],"output":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/libiter1-ce354c228a26eb2e.rmeta"},"prelude":{"crate_id":{"name":"iter1","disambiguator":[17813382568913335662,14865624880880693158]},"crate_root":"src","external_crates":[{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":1,"id":{"name":"std","disambiguator":[9054049529852543209,5756799355281213394]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":2,"id":{"name":"core","disambiguator":[649336883146201894,3308516238322163950]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":3,"id":{"name":"compiler_builtins","disambiguator":[1154582834482060450,16344204990542480537]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":4,"id":{"name":"rustc_std_workspace_core","disambiguator":[9212379515936652129,17808485286264063370]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":5,"id":{"name":"alloc","disambiguator":[13327579764654116281,14306064291630426625]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":6,"id":{"name":"libc","disambiguator":[17773251733480933597,18239998491734583498]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":7,"id":{"name":"unwind","disambiguator":[8567743581675804787,15655200220621371766]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":8,"id":{"name":"cfg_if","disambiguator":[15115520782807859583,9813785573872252500]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":9,"id":{"name":"backtrace","disambiguator":[1572943810868196833,3902827232285166711]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":10,"id":{"name":"rustc_demangle","disambiguator":[6290371580101917419,15395902185345451181]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":11,"id":{"name":"backtrace_sys","disambiguator":[2934540361684350378,924291485644145262]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":12,"id":{"name":"hashbrown","disambiguator":[9277678418438935259,15657907931940784437]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":13,"id":{"name":"rustc_std_workspace_alloc","disambiguator":[5423566938548125357,18340948646597872466]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter1.rs","num":14,"id":{"name":"panic_unwind","disambiguator":[489208416821938960,3305070343783546974]}}],"span":{"file_name":"src/iter1.rs","byte_start":0,"byte_end":525,"line_start":1,"line_end":18,"column_start":1,"column_end":2}},"imports":[{"kind":"Use","ref_id":{"krate":1,"index":2915},"span":{"file_name":"src/iter1.rs","byte_start":13,"byte_end":18,"line_start":1,"line_end":1,"column_start":14,"column_end":19},"alias_span":null,"name":"Write","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":2702},"span":{"file_name":"src/iter1.rs","byte_start":34,"byte_end":39,"line_start":2,"line_end":2,"column_start":15,"column_end":20},"alias_span":null,"name":"stdin","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":2732},"span":{"file_name":"src/iter1.rs","byte_start":41,"byte_end":47,"line_start":2,"line_end":2,"column_start":22,"column_end":28},"alias_span":null,"name":"stdout","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":4230},"span":{"file_name":"src/iter1.rs","byte_start":68,"byte_end":75,"line_start":3,"line_end":3,"column_start":19,"column_end":26},"alias_span":null,"name":"Command","value":"","parent":{"krate":0,"index":0}}],"defs":[{"kind":"Mod","id":{"krate":0,"index":0},"span":{"file_name":"src/iter1.rs","byte_start":0,"byte_end":525,"line_start":1,"line_end":18,"column_start":1,"column_end":2},"name":"","qualname":"::","value":"src/iter1.rs","parent":null,"children":[{"krate":0,"index":1},{"krate":0,"index":2},{"krate":0,"index":3},{"krate":0,"index":4},{"krate":0,"index":7},{"krate":0,"index":8}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":8},"span":{"file_name":"src/iter1.rs","byte_start":80,"byte_end":84,"line_start":4,"line_end":4,"column_start":4,"column_end":8},"name":"main","qualname":"::main","value":"fn () -> ()","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4294967251},"span":{"file_name":"src/iter1.rs","byte_start":173,"byte_end":183,"line_start":8,"line_end":8,"column_start":17,"column_end":27},"name":"user_input","qualname":"user_input$44","value":"std::string::String","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4294967234},"span":{"file_name":"src/iter1.rs","byte_start":319,"byte_end":337,"line_start":12,"line_end":12,"column_start":13,"column_end":31},"name":"command_to_execute","qualname":"command_to_execute$61","value":"&str","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4294967228},"span":{"file_name":"src/iter1.rs","byte_start":375,"byte_end":380,"line_start":13,"line_end":13,"column_start":17,"column_end":22},"name":"child","qualname":"child$67","value":"std::process::Child","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]}],"impls":[],"refs":[{"kind":"Mod","span":{"file_name":"src/iter1.rs","byte_start":4,"byte_end":7,"line_start":1,"line_end":1,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter1.rs","byte_start":9,"byte_end":11,"line_start":1,"line_end":1,"column_start":10,"column_end":12},"ref_id":{"krate":1,"index":2251}},{"kind":"Mod","span":{"file_name":"src/iter1.rs","byte_start":24,"byte_end":27,"line_start":2,"line_end":2,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter1.rs","byte_start":29,"byte_end":31,"line_start":2,"line_end":2,"column_start":10,"column_end":12},"ref_id":{"krate":1,"index":2251}},{"kind":"Mod","span":{"file_name":"src/iter1.rs","byte_start":24,"byte_end":27,"line_start":2,"line_end":2,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter1.rs","byte_start":29,"byte_end":31,"line_start":2,"line_end":2,"column_start":10,"column_end":12},"ref_id":{"krate":1,"index":2251}},{"kind":"Mod","span":{"file_name":"src/iter1.rs","byte_start":54,"byte_end":57,"line_start":3,"line_end":3,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter1.rs","byte_start":59,"byte_end":66,"line_start":3,"line_end":3,"column_start":10,"column_end":17},"ref_id":{"krate":1,"index":4154}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":147,"byte_end":153,"line_start":7,"line_end":7,"column_start":26,"column_end":32},"ref_id":{"krate":2,"index":5495}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":139,"byte_end":144,"line_start":7,"line_end":7,"column_start":18,"column_end":23},"ref_id":{"krate":1,"index":2919}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":130,"byte_end":136,"line_start":7,"line_end":7,"column_start":9,"column_end":15},"ref_id":{"krate":1,"index":2732}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":194,"byte_end":197,"line_start":8,"line_end":8,"column_start":38,"column_end":41},"ref_id":{"krate":5,"index":3479}},{"kind":"Type","span":{"file_name":"src/iter1.rs","byte_start":186,"byte_end":192,"line_start":8,"line_end":8,"column_start":30,"column_end":36},"ref_id":{"krate":5,"index":4732}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":270,"byte_end":276,"line_start":11,"line_end":11,"column_start":14,"column_end":20},"ref_id":{"krate":2,"index":5494}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":230,"byte_end":239,"line_start":10,"line_end":10,"column_start":14,"column_end":23},"ref_id":{"krate":1,"index":2708}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":209,"byte_end":214,"line_start":9,"line_end":9,"column_start":9,"column_end":14},"ref_id":{"krate":1,"index":2702}},{"kind":"Variable","span":{"file_name":"src/iter1.rs","byte_start":245,"byte_end":255,"line_start":10,"line_end":10,"column_start":29,"column_end":39},"ref_id":{"krate":0,"index":4294967251}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":351,"byte_end":355,"line_start":12,"line_end":12,"column_start":45,"column_end":49},"ref_id":{"krate":2,"index":7843}},{"kind":"Variable","span":{"file_name":"src/iter1.rs","byte_start":340,"byte_end":350,"line_start":12,"line_end":12,"column_start":34,"column_end":44},"ref_id":{"krate":0,"index":4294967251}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":450,"byte_end":456,"line_start":15,"line_end":15,"column_start":14,"column_end":20},"ref_id":{"krate":2,"index":5494}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":429,"byte_end":434,"line_start":14,"line_end":14,"column_start":14,"column_end":19},"ref_id":{"krate":1,"index":4258}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":392,"byte_end":395,"line_start":13,"line_end":13,"column_start":34,"column_end":37},"ref_id":{"krate":1,"index":4233}},{"kind":"Type","span":{"file_name":"src/iter1.rs","byte_start":383,"byte_end":390,"line_start":13,"line_end":13,"column_start":25,"column_end":32},"ref_id":{"krate":1,"index":4230}},{"kind":"Variable","span":{"file_name":"src/iter1.rs","byte_start":396,"byte_end":414,"line_start":13,"line_end":13,"column_start":38,"column_end":56},"ref_id":{"krate":0,"index":4294967234}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":508,"byte_end":514,"line_start":16,"line_end":16,"column_start":22,"column_end":28},"ref_id":{"krate":2,"index":5495}},{"kind":"Function","span":{"file_name":"src/iter1.rs","byte_start":501,"byte_end":505,"line_start":16,"line_end":16,"column_start":15,"column_end":19},"ref_id":{"krate":1,"index":4305}},{"kind":"Variable","span":{"file_name":"src/iter1.rs","byte_start":495,"byte_end":500,"line_start":16,"line_end":16,"column_start":9,"column_end":14},"ref_id":{"krate":0,"index":4294967228}}],"macro_refs":[],"relations":[]} \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/deps/save-analysis/iter2-4a230df71cc4a53d.json b/chapter8/myshell/target/rls/debug/deps/save-analysis/iter2-4a230df71cc4a53d.json new file mode 100644 index 0000000..1b7bbe6 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/deps/save-analysis/iter2-4a230df71cc4a53d.json @@ -0,0 +1 @@ +{"config":{"output_file":null,"full_docs":false,"pub_only":false,"reachable_only":false,"distro_crate":false,"signatures":false,"borrow_data":false},"version":"0.19.0","compilation":{"directory":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell","program":"/Users/prabhueshwarla/.rustup/toolchains/stable-x86_64-apple-darwin/bin/rls","arguments":[],"output":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/libiter2-4a230df71cc4a53d.rmeta"},"prelude":{"crate_id":{"name":"iter2","disambiguator":[9448165253537252384,798471660736509]},"crate_root":"src","external_crates":[{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":1,"id":{"name":"std","disambiguator":[9054049529852543209,5756799355281213394]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":2,"id":{"name":"core","disambiguator":[649336883146201894,3308516238322163950]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":3,"id":{"name":"compiler_builtins","disambiguator":[1154582834482060450,16344204990542480537]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":4,"id":{"name":"rustc_std_workspace_core","disambiguator":[9212379515936652129,17808485286264063370]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":5,"id":{"name":"alloc","disambiguator":[13327579764654116281,14306064291630426625]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":6,"id":{"name":"libc","disambiguator":[17773251733480933597,18239998491734583498]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":7,"id":{"name":"unwind","disambiguator":[8567743581675804787,15655200220621371766]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":8,"id":{"name":"cfg_if","disambiguator":[15115520782807859583,9813785573872252500]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":9,"id":{"name":"backtrace","disambiguator":[1572943810868196833,3902827232285166711]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":10,"id":{"name":"rustc_demangle","disambiguator":[6290371580101917419,15395902185345451181]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":11,"id":{"name":"backtrace_sys","disambiguator":[2934540361684350378,924291485644145262]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":12,"id":{"name":"hashbrown","disambiguator":[9277678418438935259,15657907931940784437]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":13,"id":{"name":"rustc_std_workspace_alloc","disambiguator":[5423566938548125357,18340948646597872466]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":14,"id":{"name":"panic_unwind","disambiguator":[489208416821938960,3305070343783546974]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":15,"id":{"name":"test","disambiguator":[14047927703376091429,2987777764842779506]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":16,"id":{"name":"getopts","disambiguator":[8756684592220063638,17365201988200505114]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":17,"id":{"name":"rustc_std_workspace_std","disambiguator":[5624357766471051433,12442286086064031042]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":18,"id":{"name":"unicode_width","disambiguator":[392462334362905977,9392482956235306384]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":19,"id":{"name":"term","disambiguator":[12331301280898709063,16641210874887239414]}}],"span":{"file_name":"src/iter2.rs","byte_start":0,"byte_end":649,"line_start":1,"line_end":22,"column_start":1,"column_end":2}},"imports":[{"kind":"Use","ref_id":{"krate":1,"index":2915},"span":{"file_name":"src/iter2.rs","byte_start":13,"byte_end":18,"line_start":1,"line_end":1,"column_start":14,"column_end":19},"alias_span":null,"name":"Write","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":2702},"span":{"file_name":"src/iter2.rs","byte_start":34,"byte_end":39,"line_start":2,"line_end":2,"column_start":15,"column_end":20},"alias_span":null,"name":"stdin","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":2732},"span":{"file_name":"src/iter2.rs","byte_start":41,"byte_end":47,"line_start":2,"line_end":2,"column_start":22,"column_end":28},"alias_span":null,"name":"stdout","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":4230},"span":{"file_name":"src/iter2.rs","byte_start":68,"byte_end":75,"line_start":3,"line_end":3,"column_start":19,"column_end":26},"alias_span":null,"name":"Command","value":"","parent":{"krate":0,"index":0}}],"defs":[{"kind":"Mod","id":{"krate":0,"index":0},"span":{"file_name":"src/iter2.rs","byte_start":0,"byte_end":649,"line_start":1,"line_end":22,"column_start":1,"column_end":2},"name":"","qualname":"::","value":"src/iter2.rs","parent":null,"children":[{"krate":0,"index":1},{"krate":0,"index":2},{"krate":0,"index":3},{"krate":0,"index":4},{"krate":0,"index":7},{"krate":0,"index":8},{"krate":0,"index":9}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":8},"span":{"file_name":"src/iter2.rs","byte_start":81,"byte_end":85,"line_start":5,"line_end":5,"column_start":4,"column_end":8},"name":"main","qualname":"::main","value":"fn () -> ()","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"allow(dead_code)","span":{"file_name":"src/iter2.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1}}]},{"kind":"Local","id":{"krate":0,"index":4294967251},"span":{"file_name":"src/iter2.rs","byte_start":174,"byte_end":184,"line_start":9,"line_end":9,"column_start":17,"column_end":27},"name":"user_input","qualname":"user_input$44","value":"std::string::String","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4294967234},"span":{"file_name":"src/iter2.rs","byte_start":320,"byte_end":338,"line_start":13,"line_end":13,"column_start":13,"column_end":31},"name":"command_to_execute","qualname":"command_to_execute$61","value":"&str","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4294967228},"span":{"file_name":"src/iter2.rs","byte_start":372,"byte_end":384,"line_start":14,"line_end":14,"column_start":13,"column_end":25},"name":"command_args","qualname":"command_args$67","value":"std::vec::Vec<&str>","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4294967215},"span":{"file_name":"src/iter2.rs","byte_start":464,"byte_end":469,"line_start":16,"line_end":16,"column_start":17,"column_end":22},"name":"child","qualname":"child$80","value":"std::process::Child","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]}],"impls":[],"refs":[{"kind":"Mod","span":{"file_name":"src/iter2.rs","byte_start":4,"byte_end":7,"line_start":1,"line_end":1,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter2.rs","byte_start":9,"byte_end":11,"line_start":1,"line_end":1,"column_start":10,"column_end":12},"ref_id":{"krate":1,"index":2251}},{"kind":"Mod","span":{"file_name":"src/iter2.rs","byte_start":24,"byte_end":27,"line_start":2,"line_end":2,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter2.rs","byte_start":29,"byte_end":31,"line_start":2,"line_end":2,"column_start":10,"column_end":12},"ref_id":{"krate":1,"index":2251}},{"kind":"Mod","span":{"file_name":"src/iter2.rs","byte_start":24,"byte_end":27,"line_start":2,"line_end":2,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter2.rs","byte_start":29,"byte_end":31,"line_start":2,"line_end":2,"column_start":10,"column_end":12},"ref_id":{"krate":1,"index":2251}},{"kind":"Mod","span":{"file_name":"src/iter2.rs","byte_start":54,"byte_end":57,"line_start":3,"line_end":3,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter2.rs","byte_start":59,"byte_end":66,"line_start":3,"line_end":3,"column_start":10,"column_end":17},"ref_id":{"krate":1,"index":4154}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":148,"byte_end":154,"line_start":8,"line_end":8,"column_start":26,"column_end":32},"ref_id":{"krate":2,"index":5495}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":140,"byte_end":145,"line_start":8,"line_end":8,"column_start":18,"column_end":23},"ref_id":{"krate":1,"index":2919}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":131,"byte_end":137,"line_start":8,"line_end":8,"column_start":9,"column_end":15},"ref_id":{"krate":1,"index":2732}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":195,"byte_end":198,"line_start":9,"line_end":9,"column_start":38,"column_end":41},"ref_id":{"krate":5,"index":3479}},{"kind":"Type","span":{"file_name":"src/iter2.rs","byte_start":187,"byte_end":193,"line_start":9,"line_end":9,"column_start":30,"column_end":36},"ref_id":{"krate":5,"index":4732}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":271,"byte_end":277,"line_start":12,"line_end":12,"column_start":14,"column_end":20},"ref_id":{"krate":2,"index":5494}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":231,"byte_end":240,"line_start":11,"line_end":11,"column_start":14,"column_end":23},"ref_id":{"krate":1,"index":2708}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":210,"byte_end":215,"line_start":10,"line_end":10,"column_start":9,"column_end":14},"ref_id":{"krate":1,"index":2702}},{"kind":"Variable","span":{"file_name":"src/iter2.rs","byte_start":246,"byte_end":256,"line_start":11,"line_end":11,"column_start":29,"column_end":39},"ref_id":{"krate":0,"index":4294967251}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":352,"byte_end":356,"line_start":13,"line_end":13,"column_start":45,"column_end":49},"ref_id":{"krate":2,"index":7843}},{"kind":"Variable","span":{"file_name":"src/iter2.rs","byte_start":341,"byte_end":351,"line_start":13,"line_end":13,"column_start":34,"column_end":44},"ref_id":{"krate":0,"index":4294967251}},{"kind":"Type","span":{"file_name":"src/iter2.rs","byte_start":386,"byte_end":389,"line_start":14,"line_end":14,"column_start":27,"column_end":30},"ref_id":{"krate":5,"index":4064}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":436,"byte_end":443,"line_start":14,"line_end":14,"column_start":77,"column_end":84},"ref_id":{"krate":2,"index":4826}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":417,"byte_end":433,"line_start":14,"line_end":14,"column_start":58,"column_end":74},"ref_id":{"krate":2,"index":7788}},{"kind":"Variable","span":{"file_name":"src/iter2.rs","byte_start":398,"byte_end":416,"line_start":14,"line_end":14,"column_start":39,"column_end":57},"ref_id":{"krate":0,"index":4294967234}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":574,"byte_end":580,"line_start":19,"line_end":19,"column_start":14,"column_end":20},"ref_id":{"krate":2,"index":5494}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":553,"byte_end":558,"line_start":18,"line_end":18,"column_start":14,"column_end":19},"ref_id":{"krate":1,"index":4258}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":515,"byte_end":519,"line_start":17,"line_end":17,"column_start":14,"column_end":18},"ref_id":{"krate":1,"index":4237}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":481,"byte_end":484,"line_start":16,"line_end":16,"column_start":34,"column_end":37},"ref_id":{"krate":1,"index":4233}},{"kind":"Type","span":{"file_name":"src/iter2.rs","byte_start":472,"byte_end":479,"line_start":16,"line_end":16,"column_start":25,"column_end":32},"ref_id":{"krate":1,"index":4230}},{"kind":"Variable","span":{"file_name":"src/iter2.rs","byte_start":485,"byte_end":497,"line_start":16,"line_end":16,"column_start":38,"column_end":50},"ref_id":{"krate":0,"index":4294967228}},{"kind":"Variable","span":{"file_name":"src/iter2.rs","byte_start":521,"byte_end":533,"line_start":17,"line_end":17,"column_start":20,"column_end":32},"ref_id":{"krate":0,"index":4294967228}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":632,"byte_end":638,"line_start":20,"line_end":20,"column_start":22,"column_end":28},"ref_id":{"krate":2,"index":5495}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":625,"byte_end":629,"line_start":20,"line_end":20,"column_start":15,"column_end":19},"ref_id":{"krate":1,"index":4305}},{"kind":"Variable","span":{"file_name":"src/iter2.rs","byte_start":619,"byte_end":624,"line_start":20,"line_end":20,"column_start":9,"column_end":14},"ref_id":{"krate":0,"index":4294967215}}],"macro_refs":[],"relations":[]} \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/deps/save-analysis/iter2-b5e1356f9653d959.json b/chapter8/myshell/target/rls/debug/deps/save-analysis/iter2-b5e1356f9653d959.json new file mode 100644 index 0000000..e446241 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/deps/save-analysis/iter2-b5e1356f9653d959.json @@ -0,0 +1 @@ +{"config":{"output_file":null,"full_docs":false,"pub_only":false,"reachable_only":false,"distro_crate":false,"signatures":false,"borrow_data":false},"version":"0.19.0","compilation":{"directory":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell","program":"/Users/prabhueshwarla/.rustup/toolchains/stable-x86_64-apple-darwin/bin/rls","arguments":[],"output":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/libiter2-b5e1356f9653d959.rmeta"},"prelude":{"crate_id":{"name":"iter2","disambiguator":[8398141573047659934,12897849418474116910]},"crate_root":"src","external_crates":[{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":1,"id":{"name":"std","disambiguator":[9054049529852543209,5756799355281213394]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":2,"id":{"name":"core","disambiguator":[649336883146201894,3308516238322163950]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":3,"id":{"name":"compiler_builtins","disambiguator":[1154582834482060450,16344204990542480537]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":4,"id":{"name":"rustc_std_workspace_core","disambiguator":[9212379515936652129,17808485286264063370]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":5,"id":{"name":"alloc","disambiguator":[13327579764654116281,14306064291630426625]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":6,"id":{"name":"libc","disambiguator":[17773251733480933597,18239998491734583498]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":7,"id":{"name":"unwind","disambiguator":[8567743581675804787,15655200220621371766]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":8,"id":{"name":"cfg_if","disambiguator":[15115520782807859583,9813785573872252500]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":9,"id":{"name":"backtrace","disambiguator":[1572943810868196833,3902827232285166711]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":10,"id":{"name":"rustc_demangle","disambiguator":[6290371580101917419,15395902185345451181]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":11,"id":{"name":"backtrace_sys","disambiguator":[2934540361684350378,924291485644145262]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":12,"id":{"name":"hashbrown","disambiguator":[9277678418438935259,15657907931940784437]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":13,"id":{"name":"rustc_std_workspace_alloc","disambiguator":[5423566938548125357,18340948646597872466]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter2.rs","num":14,"id":{"name":"panic_unwind","disambiguator":[489208416821938960,3305070343783546974]}}],"span":{"file_name":"src/iter2.rs","byte_start":0,"byte_end":649,"line_start":1,"line_end":22,"column_start":1,"column_end":2}},"imports":[{"kind":"Use","ref_id":{"krate":1,"index":2915},"span":{"file_name":"src/iter2.rs","byte_start":13,"byte_end":18,"line_start":1,"line_end":1,"column_start":14,"column_end":19},"alias_span":null,"name":"Write","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":2702},"span":{"file_name":"src/iter2.rs","byte_start":34,"byte_end":39,"line_start":2,"line_end":2,"column_start":15,"column_end":20},"alias_span":null,"name":"stdin","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":2732},"span":{"file_name":"src/iter2.rs","byte_start":41,"byte_end":47,"line_start":2,"line_end":2,"column_start":22,"column_end":28},"alias_span":null,"name":"stdout","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":4230},"span":{"file_name":"src/iter2.rs","byte_start":68,"byte_end":75,"line_start":3,"line_end":3,"column_start":19,"column_end":26},"alias_span":null,"name":"Command","value":"","parent":{"krate":0,"index":0}}],"defs":[{"kind":"Mod","id":{"krate":0,"index":0},"span":{"file_name":"src/iter2.rs","byte_start":0,"byte_end":649,"line_start":1,"line_end":22,"column_start":1,"column_end":2},"name":"","qualname":"::","value":"src/iter2.rs","parent":null,"children":[{"krate":0,"index":1},{"krate":0,"index":2},{"krate":0,"index":3},{"krate":0,"index":4},{"krate":0,"index":7},{"krate":0,"index":8}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":8},"span":{"file_name":"src/iter2.rs","byte_start":81,"byte_end":85,"line_start":5,"line_end":5,"column_start":4,"column_end":8},"name":"main","qualname":"::main","value":"fn () -> ()","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4294967251},"span":{"file_name":"src/iter2.rs","byte_start":174,"byte_end":184,"line_start":9,"line_end":9,"column_start":17,"column_end":27},"name":"user_input","qualname":"user_input$44","value":"std::string::String","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4294967234},"span":{"file_name":"src/iter2.rs","byte_start":320,"byte_end":338,"line_start":13,"line_end":13,"column_start":13,"column_end":31},"name":"command_to_execute","qualname":"command_to_execute$61","value":"&str","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4294967228},"span":{"file_name":"src/iter2.rs","byte_start":372,"byte_end":384,"line_start":14,"line_end":14,"column_start":13,"column_end":25},"name":"command_args","qualname":"command_args$67","value":"std::vec::Vec<&str>","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4294967215},"span":{"file_name":"src/iter2.rs","byte_start":464,"byte_end":469,"line_start":16,"line_end":16,"column_start":17,"column_end":22},"name":"child","qualname":"child$80","value":"std::process::Child","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]}],"impls":[],"refs":[{"kind":"Mod","span":{"file_name":"src/iter2.rs","byte_start":4,"byte_end":7,"line_start":1,"line_end":1,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter2.rs","byte_start":9,"byte_end":11,"line_start":1,"line_end":1,"column_start":10,"column_end":12},"ref_id":{"krate":1,"index":2251}},{"kind":"Mod","span":{"file_name":"src/iter2.rs","byte_start":24,"byte_end":27,"line_start":2,"line_end":2,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter2.rs","byte_start":29,"byte_end":31,"line_start":2,"line_end":2,"column_start":10,"column_end":12},"ref_id":{"krate":1,"index":2251}},{"kind":"Mod","span":{"file_name":"src/iter2.rs","byte_start":24,"byte_end":27,"line_start":2,"line_end":2,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter2.rs","byte_start":29,"byte_end":31,"line_start":2,"line_end":2,"column_start":10,"column_end":12},"ref_id":{"krate":1,"index":2251}},{"kind":"Mod","span":{"file_name":"src/iter2.rs","byte_start":54,"byte_end":57,"line_start":3,"line_end":3,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter2.rs","byte_start":59,"byte_end":66,"line_start":3,"line_end":3,"column_start":10,"column_end":17},"ref_id":{"krate":1,"index":4154}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":148,"byte_end":154,"line_start":8,"line_end":8,"column_start":26,"column_end":32},"ref_id":{"krate":2,"index":5495}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":140,"byte_end":145,"line_start":8,"line_end":8,"column_start":18,"column_end":23},"ref_id":{"krate":1,"index":2919}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":131,"byte_end":137,"line_start":8,"line_end":8,"column_start":9,"column_end":15},"ref_id":{"krate":1,"index":2732}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":195,"byte_end":198,"line_start":9,"line_end":9,"column_start":38,"column_end":41},"ref_id":{"krate":5,"index":3479}},{"kind":"Type","span":{"file_name":"src/iter2.rs","byte_start":187,"byte_end":193,"line_start":9,"line_end":9,"column_start":30,"column_end":36},"ref_id":{"krate":5,"index":4732}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":271,"byte_end":277,"line_start":12,"line_end":12,"column_start":14,"column_end":20},"ref_id":{"krate":2,"index":5494}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":231,"byte_end":240,"line_start":11,"line_end":11,"column_start":14,"column_end":23},"ref_id":{"krate":1,"index":2708}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":210,"byte_end":215,"line_start":10,"line_end":10,"column_start":9,"column_end":14},"ref_id":{"krate":1,"index":2702}},{"kind":"Variable","span":{"file_name":"src/iter2.rs","byte_start":246,"byte_end":256,"line_start":11,"line_end":11,"column_start":29,"column_end":39},"ref_id":{"krate":0,"index":4294967251}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":352,"byte_end":356,"line_start":13,"line_end":13,"column_start":45,"column_end":49},"ref_id":{"krate":2,"index":7843}},{"kind":"Variable","span":{"file_name":"src/iter2.rs","byte_start":341,"byte_end":351,"line_start":13,"line_end":13,"column_start":34,"column_end":44},"ref_id":{"krate":0,"index":4294967251}},{"kind":"Type","span":{"file_name":"src/iter2.rs","byte_start":386,"byte_end":389,"line_start":14,"line_end":14,"column_start":27,"column_end":30},"ref_id":{"krate":5,"index":4064}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":436,"byte_end":443,"line_start":14,"line_end":14,"column_start":77,"column_end":84},"ref_id":{"krate":2,"index":4826}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":417,"byte_end":433,"line_start":14,"line_end":14,"column_start":58,"column_end":74},"ref_id":{"krate":2,"index":7788}},{"kind":"Variable","span":{"file_name":"src/iter2.rs","byte_start":398,"byte_end":416,"line_start":14,"line_end":14,"column_start":39,"column_end":57},"ref_id":{"krate":0,"index":4294967234}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":574,"byte_end":580,"line_start":19,"line_end":19,"column_start":14,"column_end":20},"ref_id":{"krate":2,"index":5494}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":553,"byte_end":558,"line_start":18,"line_end":18,"column_start":14,"column_end":19},"ref_id":{"krate":1,"index":4258}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":515,"byte_end":519,"line_start":17,"line_end":17,"column_start":14,"column_end":18},"ref_id":{"krate":1,"index":4237}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":481,"byte_end":484,"line_start":16,"line_end":16,"column_start":34,"column_end":37},"ref_id":{"krate":1,"index":4233}},{"kind":"Type","span":{"file_name":"src/iter2.rs","byte_start":472,"byte_end":479,"line_start":16,"line_end":16,"column_start":25,"column_end":32},"ref_id":{"krate":1,"index":4230}},{"kind":"Variable","span":{"file_name":"src/iter2.rs","byte_start":485,"byte_end":497,"line_start":16,"line_end":16,"column_start":38,"column_end":50},"ref_id":{"krate":0,"index":4294967228}},{"kind":"Variable","span":{"file_name":"src/iter2.rs","byte_start":521,"byte_end":533,"line_start":17,"line_end":17,"column_start":20,"column_end":32},"ref_id":{"krate":0,"index":4294967228}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":632,"byte_end":638,"line_start":20,"line_end":20,"column_start":22,"column_end":28},"ref_id":{"krate":2,"index":5495}},{"kind":"Function","span":{"file_name":"src/iter2.rs","byte_start":625,"byte_end":629,"line_start":20,"line_end":20,"column_start":15,"column_end":19},"ref_id":{"krate":1,"index":4305}},{"kind":"Variable","span":{"file_name":"src/iter2.rs","byte_start":619,"byte_end":624,"line_start":20,"line_end":20,"column_start":9,"column_end":14},"ref_id":{"krate":0,"index":4294967215}}],"macro_refs":[],"relations":[]} \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/deps/save-analysis/iter3-cf53089a5eadc167.json b/chapter8/myshell/target/rls/debug/deps/save-analysis/iter3-cf53089a5eadc167.json new file mode 100644 index 0000000..5038d72 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/deps/save-analysis/iter3-cf53089a5eadc167.json @@ -0,0 +1 @@ +{"config":{"output_file":null,"full_docs":false,"pub_only":false,"reachable_only":false,"distro_crate":false,"signatures":false,"borrow_data":false},"version":"0.19.0","compilation":{"directory":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell","program":"/Users/prabhueshwarla/.rustup/toolchains/stable-x86_64-apple-darwin/bin/rls","arguments":[],"output":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/libiter3-cf53089a5eadc167.rmeta"},"prelude":{"crate_id":{"name":"iter3","disambiguator":[1692091921929331613,5013875059831265324]},"crate_root":"src","external_crates":[{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":1,"id":{"name":"std","disambiguator":[9054049529852543209,5756799355281213394]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":2,"id":{"name":"core","disambiguator":[649336883146201894,3308516238322163950]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":3,"id":{"name":"compiler_builtins","disambiguator":[1154582834482060450,16344204990542480537]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":4,"id":{"name":"rustc_std_workspace_core","disambiguator":[9212379515936652129,17808485286264063370]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":5,"id":{"name":"alloc","disambiguator":[13327579764654116281,14306064291630426625]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":6,"id":{"name":"libc","disambiguator":[17773251733480933597,18239998491734583498]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":7,"id":{"name":"unwind","disambiguator":[8567743581675804787,15655200220621371766]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":8,"id":{"name":"cfg_if","disambiguator":[15115520782807859583,9813785573872252500]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":9,"id":{"name":"backtrace","disambiguator":[1572943810868196833,3902827232285166711]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":10,"id":{"name":"rustc_demangle","disambiguator":[6290371580101917419,15395902185345451181]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":11,"id":{"name":"backtrace_sys","disambiguator":[2934540361684350378,924291485644145262]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":12,"id":{"name":"hashbrown","disambiguator":[9277678418438935259,15657907931940784437]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":13,"id":{"name":"rustc_std_workspace_alloc","disambiguator":[5423566938548125357,18340948646597872466]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":14,"id":{"name":"panic_unwind","disambiguator":[489208416821938960,3305070343783546974]}}],"span":{"file_name":"src/iter3.rs","byte_start":0,"byte_end":2015,"line_start":1,"line_end":54,"column_start":1,"column_end":2}},"imports":[{"kind":"Use","ref_id":{"krate":1,"index":2915},"span":{"file_name":"src/iter3.rs","byte_start":13,"byte_end":18,"line_start":1,"line_end":1,"column_start":14,"column_end":19},"alias_span":null,"name":"Write","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":2702},"span":{"file_name":"src/iter3.rs","byte_start":34,"byte_end":39,"line_start":2,"line_end":2,"column_start":15,"column_end":20},"alias_span":null,"name":"stdin","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":2732},"span":{"file_name":"src/iter3.rs","byte_start":41,"byte_end":47,"line_start":2,"line_end":2,"column_start":22,"column_end":28},"alias_span":null,"name":"stdout","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":2481},"span":{"file_name":"src/iter3.rs","byte_start":64,"byte_end":69,"line_start":3,"line_end":3,"column_start":15,"column_end":20},"alias_span":null,"name":"Error","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":6604},"span":{"file_name":"src/iter3.rs","byte_start":71,"byte_end":80,"line_start":3,"line_end":3,"column_start":22,"column_end":31},"alias_span":null,"name":"ErrorKind","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":4230},"span":{"file_name":"src/iter3.rs","byte_start":101,"byte_end":108,"line_start":4,"line_end":4,"column_start":19,"column_end":26},"alias_span":null,"name":"Command","value":"","parent":{"krate":0,"index":0}}],"defs":[{"kind":"Mod","id":{"krate":0,"index":0},"span":{"file_name":"src/iter3.rs","byte_start":0,"byte_end":2015,"line_start":1,"line_end":54,"column_start":1,"column_end":2},"name":"","qualname":"::","value":"src/iter3.rs","parent":null,"children":[{"krate":0,"index":1},{"krate":0,"index":2},{"krate":0,"index":3},{"krate":0,"index":4},{"krate":0,"index":7},{"krate":0,"index":10},{"krate":0,"index":11}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":11},"span":{"file_name":"src/iter3.rs","byte_start":113,"byte_end":117,"line_start":5,"line_end":5,"column_start":4,"column_end":8},"name":"main","qualname":"::main","value":"fn () -> ()","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4294967240},"span":{"file_name":"src/iter3.rs","byte_start":249,"byte_end":259,"line_start":10,"line_end":10,"column_start":17,"column_end":27},"name":"user_input","qualname":"user_input$55","value":"std::string::String","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4294967223},"span":{"file_name":"src/iter3.rs","byte_start":395,"byte_end":413,"line_start":14,"line_end":14,"column_start":13,"column_end":31},"name":"command_to_execute","qualname":"command_to_execute$72","value":"&str","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4294967217},"span":{"file_name":"src/iter3.rs","byte_start":447,"byte_end":459,"line_start":15,"line_end":15,"column_start":13,"column_end":25},"name":"command_args","qualname":"command_args$78","value":"std::vec::Vec<&str>","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4294967197},"span":{"file_name":"src/iter3.rs","byte_start":575,"byte_end":580,"line_start":18,"line_end":18,"column_start":17,"column_end":22},"name":"child","qualname":"child$98","value":"std::result::Result","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4294967074},"span":{"file_name":"src/iter3.rs","byte_start":1466,"byte_end":1471,"line_start":39,"line_end":39,"column_start":24,"column_end":29},"name":"child","qualname":"child$221","value":"std::process::Child","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4294967057},"span":{"file_name":"src/iter3.rs","byte_start":1661,"byte_end":1662,"line_start":44,"line_end":44,"column_start":21,"column_end":22},"name":"e","qualname":"e$238","value":"std::io::Error","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]}],"impls":[],"refs":[{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":4,"byte_end":7,"line_start":1,"line_end":1,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":9,"byte_end":11,"line_start":1,"line_end":1,"column_start":10,"column_end":12},"ref_id":{"krate":1,"index":2251}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":24,"byte_end":27,"line_start":2,"line_end":2,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":29,"byte_end":31,"line_start":2,"line_end":2,"column_start":10,"column_end":12},"ref_id":{"krate":1,"index":2251}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":24,"byte_end":27,"line_start":2,"line_end":2,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":29,"byte_end":31,"line_start":2,"line_end":2,"column_start":10,"column_end":12},"ref_id":{"krate":1,"index":2251}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":54,"byte_end":57,"line_start":3,"line_end":3,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":59,"byte_end":61,"line_start":3,"line_end":3,"column_start":10,"column_end":12},"ref_id":{"krate":1,"index":2251}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":54,"byte_end":57,"line_start":3,"line_end":3,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":59,"byte_end":61,"line_start":3,"line_end":3,"column_start":10,"column_end":12},"ref_id":{"krate":1,"index":2251}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":87,"byte_end":90,"line_start":4,"line_end":4,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":92,"byte_end":99,"line_start":4,"line_end":4,"column_start":10,"column_end":17},"ref_id":{"krate":1,"index":4154}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":223,"byte_end":229,"line_start":9,"line_end":9,"column_start":26,"column_end":32},"ref_id":{"krate":2,"index":5495}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":215,"byte_end":220,"line_start":9,"line_end":9,"column_start":18,"column_end":23},"ref_id":{"krate":1,"index":2919}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":206,"byte_end":212,"line_start":9,"line_end":9,"column_start":9,"column_end":15},"ref_id":{"krate":1,"index":2732}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":270,"byte_end":273,"line_start":10,"line_end":10,"column_start":38,"column_end":41},"ref_id":{"krate":5,"index":3479}},{"kind":"Type","span":{"file_name":"src/iter3.rs","byte_start":262,"byte_end":268,"line_start":10,"line_end":10,"column_start":30,"column_end":36},"ref_id":{"krate":5,"index":4732}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":346,"byte_end":352,"line_start":13,"line_end":13,"column_start":14,"column_end":20},"ref_id":{"krate":2,"index":5494}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":306,"byte_end":315,"line_start":12,"line_end":12,"column_start":14,"column_end":23},"ref_id":{"krate":1,"index":2708}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":285,"byte_end":290,"line_start":11,"line_end":11,"column_start":9,"column_end":14},"ref_id":{"krate":1,"index":2702}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":321,"byte_end":331,"line_start":12,"line_end":12,"column_start":29,"column_end":39},"ref_id":{"krate":0,"index":4294967240}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":427,"byte_end":431,"line_start":14,"line_end":14,"column_start":45,"column_end":49},"ref_id":{"krate":2,"index":7843}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":416,"byte_end":426,"line_start":14,"line_end":14,"column_start":34,"column_end":44},"ref_id":{"krate":0,"index":4294967240}},{"kind":"Type","span":{"file_name":"src/iter3.rs","byte_start":461,"byte_end":464,"line_start":15,"line_end":15,"column_start":27,"column_end":30},"ref_id":{"krate":5,"index":4064}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":511,"byte_end":518,"line_start":15,"line_end":15,"column_start":77,"column_end":84},"ref_id":{"krate":2,"index":4826}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":492,"byte_end":508,"line_start":15,"line_end":15,"column_start":58,"column_end":74},"ref_id":{"krate":2,"index":7788}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":473,"byte_end":491,"line_start":15,"line_end":15,"column_start":39,"column_end":57},"ref_id":{"krate":0,"index":4294967223}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":547,"byte_end":550,"line_start":17,"line_end":17,"column_start":25,"column_end":28},"ref_id":{"krate":5,"index":4106}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":534,"byte_end":546,"line_start":17,"line_end":17,"column_start":12,"column_end":24},"ref_id":{"krate":0,"index":4294967217}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":589,"byte_end":601,"line_start":18,"line_end":18,"column_start":31,"column_end":43},"ref_id":{"krate":0,"index":4294967217}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":646,"byte_end":649,"line_start":19,"line_end":19,"column_start":40,"column_end":43},"ref_id":{"krate":5,"index":4106}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":633,"byte_end":645,"line_start":19,"line_end":19,"column_start":27,"column_end":39},"ref_id":{"krate":0,"index":4294967217}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":665,"byte_end":677,"line_start":19,"line_end":19,"column_start":59,"column_end":71},"ref_id":{"krate":0,"index":4294967217}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":758,"byte_end":763,"line_start":20,"line_end":20,"column_start":76,"column_end":81},"ref_id":{"krate":1,"index":4258}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":733,"byte_end":737,"line_start":20,"line_end":20,"column_start":51,"column_end":55},"ref_id":{"krate":1,"index":4237}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":723,"byte_end":726,"line_start":20,"line_end":20,"column_start":41,"column_end":44},"ref_id":{"krate":1,"index":4233}},{"kind":"Type","span":{"file_name":"src/iter3.rs","byte_start":714,"byte_end":721,"line_start":20,"line_end":20,"column_start":32,"column_end":39},"ref_id":{"krate":1,"index":4230}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":739,"byte_end":751,"line_start":20,"line_end":20,"column_start":57,"column_end":69},"ref_id":{"krate":0,"index":4294967217}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":845,"byte_end":850,"line_start":22,"line_end":22,"column_start":78,"column_end":83},"ref_id":{"krate":1,"index":4258}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":820,"byte_end":824,"line_start":22,"line_end":22,"column_start":53,"column_end":57},"ref_id":{"krate":1,"index":4237}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":810,"byte_end":813,"line_start":22,"line_end":22,"column_start":43,"column_end":46},"ref_id":{"krate":1,"index":4233}},{"kind":"Type","span":{"file_name":"src/iter3.rs","byte_start":801,"byte_end":808,"line_start":22,"line_end":22,"column_start":34,"column_end":41},"ref_id":{"krate":1,"index":4230}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":826,"byte_end":838,"line_start":22,"line_end":22,"column_start":59,"column_end":71},"ref_id":{"krate":0,"index":4294967217}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":880,"byte_end":883,"line_start":24,"line_end":24,"column_start":26,"column_end":29},"ref_id":{"krate":2,"index":29436}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":891,"byte_end":894,"line_start":24,"line_end":24,"column_start":37,"column_end":40},"ref_id":{"krate":1,"index":2500}},{"kind":"Type","span":{"file_name":"src/iter3.rs","byte_start":884,"byte_end":889,"line_start":24,"line_end":24,"column_start":30,"column_end":35},"ref_id":{"krate":1,"index":2481}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":931,"byte_end":943,"line_start":25,"line_end":25,"column_start":36,"column_end":48},"ref_id":{"krate":1,"index":6628}},{"kind":"Type","span":{"file_name":"src/iter3.rs","byte_start":920,"byte_end":929,"line_start":25,"line_end":25,"column_start":25,"column_end":34},"ref_id":{"krate":1,"index":6604}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":1081,"byte_end":1084,"line_start":29,"line_end":29,"column_start":40,"column_end":43},"ref_id":{"krate":5,"index":4106}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1068,"byte_end":1080,"line_start":29,"line_end":29,"column_start":27,"column_end":39},"ref_id":{"krate":0,"index":4294967217}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1095,"byte_end":1098,"line_start":29,"line_end":29,"column_start":54,"column_end":57},"ref_id":{"krate":2,"index":29436}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":1106,"byte_end":1109,"line_start":29,"line_end":29,"column_start":65,"column_end":68},"ref_id":{"krate":1,"index":2500}},{"kind":"Type","span":{"file_name":"src/iter3.rs","byte_start":1099,"byte_end":1104,"line_start":29,"line_end":29,"column_start":58,"column_end":63},"ref_id":{"krate":1,"index":2481}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1142,"byte_end":1154,"line_start":30,"line_end":30,"column_start":32,"column_end":44},"ref_id":{"krate":1,"index":6628}},{"kind":"Type","span":{"file_name":"src/iter3.rs","byte_start":1131,"byte_end":1140,"line_start":30,"line_end":30,"column_start":21,"column_end":30},"ref_id":{"krate":1,"index":6604}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":1266,"byte_end":1270,"line_start":33,"line_end":33,"column_start":41,"column_end":45},"ref_id":{"krate":1,"index":4308}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":1252,"byte_end":1255,"line_start":33,"line_end":33,"column_start":27,"column_end":30},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":1257,"byte_end":1264,"line_start":33,"line_end":33,"column_start":32,"column_end":39},"ref_id":{"krate":1,"index":4154}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":1393,"byte_end":1398,"line_start":36,"line_end":36,"column_start":22,"column_end":27},"ref_id":{"krate":1,"index":4258}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":1347,"byte_end":1351,"line_start":35,"line_end":35,"column_start":22,"column_end":26},"ref_id":{"krate":1,"index":4237}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":1305,"byte_end":1308,"line_start":34,"line_end":34,"column_start":31,"column_end":34},"ref_id":{"krate":1,"index":4233}},{"kind":"Type","span":{"file_name":"src/iter3.rs","byte_start":1296,"byte_end":1303,"line_start":34,"line_end":34,"column_start":22,"column_end":29},"ref_id":{"krate":1,"index":4230}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1309,"byte_end":1321,"line_start":34,"line_end":34,"column_start":35,"column_end":47},"ref_id":{"krate":0,"index":4294967217}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1353,"byte_end":1365,"line_start":35,"line_end":35,"column_start":28,"column_end":40},"ref_id":{"krate":0,"index":4294967217}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1435,"byte_end":1440,"line_start":38,"line_end":38,"column_start":19,"column_end":24},"ref_id":{"krate":0,"index":4294967197}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1459,"byte_end":1461,"line_start":39,"line_end":39,"column_start":17,"column_end":19},"ref_id":{"krate":2,"index":29433}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1459,"byte_end":1461,"line_start":39,"line_end":39,"column_start":17,"column_end":19},"ref_id":{"krate":2,"index":29433}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":1524,"byte_end":1531,"line_start":40,"line_end":40,"column_start":47,"column_end":54},"ref_id":{"krate":1,"index":4291}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":1515,"byte_end":1521,"line_start":40,"line_end":40,"column_start":38,"column_end":44},"ref_id":{"krate":2,"index":5495}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":1508,"byte_end":1512,"line_start":40,"line_end":40,"column_start":31,"column_end":35},"ref_id":{"krate":1,"index":4305}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1502,"byte_end":1507,"line_start":40,"line_end":40,"column_start":25,"column_end":30},"ref_id":{"krate":0,"index":4294967074}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1657,"byte_end":1660,"line_start":44,"line_end":44,"column_start":17,"column_end":20},"ref_id":{"krate":2,"index":29436}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1657,"byte_end":1660,"line_start":44,"line_end":44,"column_start":17,"column_end":20},"ref_id":{"krate":2,"index":29436}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":1675,"byte_end":1679,"line_start":44,"line_end":44,"column_start":35,"column_end":39},"ref_id":{"krate":1,"index":2509}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1673,"byte_end":1674,"line_start":44,"line_end":44,"column_start":33,"column_end":34},"ref_id":{"krate":0,"index":4294967057}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1715,"byte_end":1727,"line_start":45,"line_end":45,"column_start":32,"column_end":44},"ref_id":{"krate":1,"index":6628}},{"kind":"Type","span":{"file_name":"src/iter3.rs","byte_start":1704,"byte_end":1713,"line_start":45,"line_end":45,"column_start":21,"column_end":30},"ref_id":{"krate":1,"index":6604}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1715,"byte_end":1727,"line_start":45,"line_end":45,"column_start":32,"column_end":44},"ref_id":{"krate":1,"index":6628}},{"kind":"Type","span":{"file_name":"src/iter3.rs","byte_start":1704,"byte_end":1713,"line_start":45,"line_end":45,"column_start":21,"column_end":30},"ref_id":{"krate":1,"index":6604}}],"macro_refs":[],"relations":[]} \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/deps/save-analysis/iter3-de37f18890843faa.json b/chapter8/myshell/target/rls/debug/deps/save-analysis/iter3-de37f18890843faa.json new file mode 100644 index 0000000..e23fe6e --- /dev/null +++ b/chapter8/myshell/target/rls/debug/deps/save-analysis/iter3-de37f18890843faa.json @@ -0,0 +1 @@ +{"config":{"output_file":null,"full_docs":false,"pub_only":false,"reachable_only":false,"distro_crate":false,"signatures":false,"borrow_data":false},"version":"0.19.0","compilation":{"directory":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell","program":"/Users/prabhueshwarla/.rustup/toolchains/stable-x86_64-apple-darwin/bin/rls","arguments":[],"output":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/libiter3-de37f18890843faa.rmeta"},"prelude":{"crate_id":{"name":"iter3","disambiguator":[5638460409397103717,12465302466703041751]},"crate_root":"src","external_crates":[{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":1,"id":{"name":"std","disambiguator":[9054049529852543209,5756799355281213394]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":2,"id":{"name":"core","disambiguator":[649336883146201894,3308516238322163950]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":3,"id":{"name":"compiler_builtins","disambiguator":[1154582834482060450,16344204990542480537]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":4,"id":{"name":"rustc_std_workspace_core","disambiguator":[9212379515936652129,17808485286264063370]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":5,"id":{"name":"alloc","disambiguator":[13327579764654116281,14306064291630426625]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":6,"id":{"name":"libc","disambiguator":[17773251733480933597,18239998491734583498]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":7,"id":{"name":"unwind","disambiguator":[8567743581675804787,15655200220621371766]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":8,"id":{"name":"cfg_if","disambiguator":[15115520782807859583,9813785573872252500]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":9,"id":{"name":"backtrace","disambiguator":[1572943810868196833,3902827232285166711]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":10,"id":{"name":"rustc_demangle","disambiguator":[6290371580101917419,15395902185345451181]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":11,"id":{"name":"backtrace_sys","disambiguator":[2934540361684350378,924291485644145262]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":12,"id":{"name":"hashbrown","disambiguator":[9277678418438935259,15657907931940784437]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":13,"id":{"name":"rustc_std_workspace_alloc","disambiguator":[5423566938548125357,18340948646597872466]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":14,"id":{"name":"panic_unwind","disambiguator":[489208416821938960,3305070343783546974]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":15,"id":{"name":"test","disambiguator":[14047927703376091429,2987777764842779506]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":16,"id":{"name":"getopts","disambiguator":[8756684592220063638,17365201988200505114]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":17,"id":{"name":"rustc_std_workspace_std","disambiguator":[5624357766471051433,12442286086064031042]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":18,"id":{"name":"unicode_width","disambiguator":[392462334362905977,9392482956235306384]}},{"file_name":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/src/iter3.rs","num":19,"id":{"name":"term","disambiguator":[12331301280898709063,16641210874887239414]}}],"span":{"file_name":"src/iter3.rs","byte_start":0,"byte_end":2015,"line_start":1,"line_end":54,"column_start":1,"column_end":2}},"imports":[{"kind":"Use","ref_id":{"krate":1,"index":2915},"span":{"file_name":"src/iter3.rs","byte_start":13,"byte_end":18,"line_start":1,"line_end":1,"column_start":14,"column_end":19},"alias_span":null,"name":"Write","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":2702},"span":{"file_name":"src/iter3.rs","byte_start":34,"byte_end":39,"line_start":2,"line_end":2,"column_start":15,"column_end":20},"alias_span":null,"name":"stdin","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":2732},"span":{"file_name":"src/iter3.rs","byte_start":41,"byte_end":47,"line_start":2,"line_end":2,"column_start":22,"column_end":28},"alias_span":null,"name":"stdout","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":2481},"span":{"file_name":"src/iter3.rs","byte_start":64,"byte_end":69,"line_start":3,"line_end":3,"column_start":15,"column_end":20},"alias_span":null,"name":"Error","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":6604},"span":{"file_name":"src/iter3.rs","byte_start":71,"byte_end":80,"line_start":3,"line_end":3,"column_start":22,"column_end":31},"alias_span":null,"name":"ErrorKind","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":4230},"span":{"file_name":"src/iter3.rs","byte_start":101,"byte_end":108,"line_start":4,"line_end":4,"column_start":19,"column_end":26},"alias_span":null,"name":"Command","value":"","parent":{"krate":0,"index":0}}],"defs":[{"kind":"Mod","id":{"krate":0,"index":0},"span":{"file_name":"src/iter3.rs","byte_start":0,"byte_end":2015,"line_start":1,"line_end":54,"column_start":1,"column_end":2},"name":"","qualname":"::","value":"src/iter3.rs","parent":null,"children":[{"krate":0,"index":1},{"krate":0,"index":2},{"krate":0,"index":3},{"krate":0,"index":4},{"krate":0,"index":7},{"krate":0,"index":10},{"krate":0,"index":11},{"krate":0,"index":12}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":11},"span":{"file_name":"src/iter3.rs","byte_start":113,"byte_end":117,"line_start":5,"line_end":5,"column_start":4,"column_end":8},"name":"main","qualname":"::main","value":"fn () -> ()","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"allow(dead_code)","span":{"file_name":"src/iter3.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1}}]},{"kind":"Local","id":{"krate":0,"index":4294967240},"span":{"file_name":"src/iter3.rs","byte_start":249,"byte_end":259,"line_start":10,"line_end":10,"column_start":17,"column_end":27},"name":"user_input","qualname":"user_input$55","value":"std::string::String","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4294967223},"span":{"file_name":"src/iter3.rs","byte_start":395,"byte_end":413,"line_start":14,"line_end":14,"column_start":13,"column_end":31},"name":"command_to_execute","qualname":"command_to_execute$72","value":"&str","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4294967217},"span":{"file_name":"src/iter3.rs","byte_start":447,"byte_end":459,"line_start":15,"line_end":15,"column_start":13,"column_end":25},"name":"command_args","qualname":"command_args$78","value":"std::vec::Vec<&str>","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4294967197},"span":{"file_name":"src/iter3.rs","byte_start":575,"byte_end":580,"line_start":18,"line_end":18,"column_start":17,"column_end":22},"name":"child","qualname":"child$98","value":"std::result::Result","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4294967074},"span":{"file_name":"src/iter3.rs","byte_start":1466,"byte_end":1471,"line_start":39,"line_end":39,"column_start":24,"column_end":29},"name":"child","qualname":"child$221","value":"std::process::Child","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4294967057},"span":{"file_name":"src/iter3.rs","byte_start":1661,"byte_end":1662,"line_start":44,"line_end":44,"column_start":21,"column_end":22},"name":"e","qualname":"e$238","value":"std::io::Error","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]}],"impls":[],"refs":[{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":4,"byte_end":7,"line_start":1,"line_end":1,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":9,"byte_end":11,"line_start":1,"line_end":1,"column_start":10,"column_end":12},"ref_id":{"krate":1,"index":2251}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":24,"byte_end":27,"line_start":2,"line_end":2,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":29,"byte_end":31,"line_start":2,"line_end":2,"column_start":10,"column_end":12},"ref_id":{"krate":1,"index":2251}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":24,"byte_end":27,"line_start":2,"line_end":2,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":29,"byte_end":31,"line_start":2,"line_end":2,"column_start":10,"column_end":12},"ref_id":{"krate":1,"index":2251}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":54,"byte_end":57,"line_start":3,"line_end":3,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":59,"byte_end":61,"line_start":3,"line_end":3,"column_start":10,"column_end":12},"ref_id":{"krate":1,"index":2251}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":54,"byte_end":57,"line_start":3,"line_end":3,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":59,"byte_end":61,"line_start":3,"line_end":3,"column_start":10,"column_end":12},"ref_id":{"krate":1,"index":2251}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":87,"byte_end":90,"line_start":4,"line_end":4,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":92,"byte_end":99,"line_start":4,"line_end":4,"column_start":10,"column_end":17},"ref_id":{"krate":1,"index":4154}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":223,"byte_end":229,"line_start":9,"line_end":9,"column_start":26,"column_end":32},"ref_id":{"krate":2,"index":5495}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":215,"byte_end":220,"line_start":9,"line_end":9,"column_start":18,"column_end":23},"ref_id":{"krate":1,"index":2919}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":206,"byte_end":212,"line_start":9,"line_end":9,"column_start":9,"column_end":15},"ref_id":{"krate":1,"index":2732}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":270,"byte_end":273,"line_start":10,"line_end":10,"column_start":38,"column_end":41},"ref_id":{"krate":5,"index":3479}},{"kind":"Type","span":{"file_name":"src/iter3.rs","byte_start":262,"byte_end":268,"line_start":10,"line_end":10,"column_start":30,"column_end":36},"ref_id":{"krate":5,"index":4732}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":346,"byte_end":352,"line_start":13,"line_end":13,"column_start":14,"column_end":20},"ref_id":{"krate":2,"index":5494}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":306,"byte_end":315,"line_start":12,"line_end":12,"column_start":14,"column_end":23},"ref_id":{"krate":1,"index":2708}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":285,"byte_end":290,"line_start":11,"line_end":11,"column_start":9,"column_end":14},"ref_id":{"krate":1,"index":2702}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":321,"byte_end":331,"line_start":12,"line_end":12,"column_start":29,"column_end":39},"ref_id":{"krate":0,"index":4294967240}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":427,"byte_end":431,"line_start":14,"line_end":14,"column_start":45,"column_end":49},"ref_id":{"krate":2,"index":7843}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":416,"byte_end":426,"line_start":14,"line_end":14,"column_start":34,"column_end":44},"ref_id":{"krate":0,"index":4294967240}},{"kind":"Type","span":{"file_name":"src/iter3.rs","byte_start":461,"byte_end":464,"line_start":15,"line_end":15,"column_start":27,"column_end":30},"ref_id":{"krate":5,"index":4064}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":511,"byte_end":518,"line_start":15,"line_end":15,"column_start":77,"column_end":84},"ref_id":{"krate":2,"index":4826}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":492,"byte_end":508,"line_start":15,"line_end":15,"column_start":58,"column_end":74},"ref_id":{"krate":2,"index":7788}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":473,"byte_end":491,"line_start":15,"line_end":15,"column_start":39,"column_end":57},"ref_id":{"krate":0,"index":4294967223}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":547,"byte_end":550,"line_start":17,"line_end":17,"column_start":25,"column_end":28},"ref_id":{"krate":5,"index":4106}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":534,"byte_end":546,"line_start":17,"line_end":17,"column_start":12,"column_end":24},"ref_id":{"krate":0,"index":4294967217}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":589,"byte_end":601,"line_start":18,"line_end":18,"column_start":31,"column_end":43},"ref_id":{"krate":0,"index":4294967217}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":646,"byte_end":649,"line_start":19,"line_end":19,"column_start":40,"column_end":43},"ref_id":{"krate":5,"index":4106}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":633,"byte_end":645,"line_start":19,"line_end":19,"column_start":27,"column_end":39},"ref_id":{"krate":0,"index":4294967217}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":665,"byte_end":677,"line_start":19,"line_end":19,"column_start":59,"column_end":71},"ref_id":{"krate":0,"index":4294967217}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":758,"byte_end":763,"line_start":20,"line_end":20,"column_start":76,"column_end":81},"ref_id":{"krate":1,"index":4258}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":733,"byte_end":737,"line_start":20,"line_end":20,"column_start":51,"column_end":55},"ref_id":{"krate":1,"index":4237}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":723,"byte_end":726,"line_start":20,"line_end":20,"column_start":41,"column_end":44},"ref_id":{"krate":1,"index":4233}},{"kind":"Type","span":{"file_name":"src/iter3.rs","byte_start":714,"byte_end":721,"line_start":20,"line_end":20,"column_start":32,"column_end":39},"ref_id":{"krate":1,"index":4230}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":739,"byte_end":751,"line_start":20,"line_end":20,"column_start":57,"column_end":69},"ref_id":{"krate":0,"index":4294967217}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":845,"byte_end":850,"line_start":22,"line_end":22,"column_start":78,"column_end":83},"ref_id":{"krate":1,"index":4258}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":820,"byte_end":824,"line_start":22,"line_end":22,"column_start":53,"column_end":57},"ref_id":{"krate":1,"index":4237}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":810,"byte_end":813,"line_start":22,"line_end":22,"column_start":43,"column_end":46},"ref_id":{"krate":1,"index":4233}},{"kind":"Type","span":{"file_name":"src/iter3.rs","byte_start":801,"byte_end":808,"line_start":22,"line_end":22,"column_start":34,"column_end":41},"ref_id":{"krate":1,"index":4230}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":826,"byte_end":838,"line_start":22,"line_end":22,"column_start":59,"column_end":71},"ref_id":{"krate":0,"index":4294967217}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":880,"byte_end":883,"line_start":24,"line_end":24,"column_start":26,"column_end":29},"ref_id":{"krate":2,"index":29436}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":891,"byte_end":894,"line_start":24,"line_end":24,"column_start":37,"column_end":40},"ref_id":{"krate":1,"index":2500}},{"kind":"Type","span":{"file_name":"src/iter3.rs","byte_start":884,"byte_end":889,"line_start":24,"line_end":24,"column_start":30,"column_end":35},"ref_id":{"krate":1,"index":2481}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":931,"byte_end":943,"line_start":25,"line_end":25,"column_start":36,"column_end":48},"ref_id":{"krate":1,"index":6628}},{"kind":"Type","span":{"file_name":"src/iter3.rs","byte_start":920,"byte_end":929,"line_start":25,"line_end":25,"column_start":25,"column_end":34},"ref_id":{"krate":1,"index":6604}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":1081,"byte_end":1084,"line_start":29,"line_end":29,"column_start":40,"column_end":43},"ref_id":{"krate":5,"index":4106}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1068,"byte_end":1080,"line_start":29,"line_end":29,"column_start":27,"column_end":39},"ref_id":{"krate":0,"index":4294967217}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1095,"byte_end":1098,"line_start":29,"line_end":29,"column_start":54,"column_end":57},"ref_id":{"krate":2,"index":29436}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":1106,"byte_end":1109,"line_start":29,"line_end":29,"column_start":65,"column_end":68},"ref_id":{"krate":1,"index":2500}},{"kind":"Type","span":{"file_name":"src/iter3.rs","byte_start":1099,"byte_end":1104,"line_start":29,"line_end":29,"column_start":58,"column_end":63},"ref_id":{"krate":1,"index":2481}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1142,"byte_end":1154,"line_start":30,"line_end":30,"column_start":32,"column_end":44},"ref_id":{"krate":1,"index":6628}},{"kind":"Type","span":{"file_name":"src/iter3.rs","byte_start":1131,"byte_end":1140,"line_start":30,"line_end":30,"column_start":21,"column_end":30},"ref_id":{"krate":1,"index":6604}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":1266,"byte_end":1270,"line_start":33,"line_end":33,"column_start":41,"column_end":45},"ref_id":{"krate":1,"index":4308}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":1252,"byte_end":1255,"line_start":33,"line_end":33,"column_start":27,"column_end":30},"ref_id":{"krate":1,"index":0}},{"kind":"Mod","span":{"file_name":"src/iter3.rs","byte_start":1257,"byte_end":1264,"line_start":33,"line_end":33,"column_start":32,"column_end":39},"ref_id":{"krate":1,"index":4154}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":1393,"byte_end":1398,"line_start":36,"line_end":36,"column_start":22,"column_end":27},"ref_id":{"krate":1,"index":4258}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":1347,"byte_end":1351,"line_start":35,"line_end":35,"column_start":22,"column_end":26},"ref_id":{"krate":1,"index":4237}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":1305,"byte_end":1308,"line_start":34,"line_end":34,"column_start":31,"column_end":34},"ref_id":{"krate":1,"index":4233}},{"kind":"Type","span":{"file_name":"src/iter3.rs","byte_start":1296,"byte_end":1303,"line_start":34,"line_end":34,"column_start":22,"column_end":29},"ref_id":{"krate":1,"index":4230}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1309,"byte_end":1321,"line_start":34,"line_end":34,"column_start":35,"column_end":47},"ref_id":{"krate":0,"index":4294967217}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1353,"byte_end":1365,"line_start":35,"line_end":35,"column_start":28,"column_end":40},"ref_id":{"krate":0,"index":4294967217}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1435,"byte_end":1440,"line_start":38,"line_end":38,"column_start":19,"column_end":24},"ref_id":{"krate":0,"index":4294967197}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1459,"byte_end":1461,"line_start":39,"line_end":39,"column_start":17,"column_end":19},"ref_id":{"krate":2,"index":29433}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1459,"byte_end":1461,"line_start":39,"line_end":39,"column_start":17,"column_end":19},"ref_id":{"krate":2,"index":29433}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":1524,"byte_end":1531,"line_start":40,"line_end":40,"column_start":47,"column_end":54},"ref_id":{"krate":1,"index":4291}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":1515,"byte_end":1521,"line_start":40,"line_end":40,"column_start":38,"column_end":44},"ref_id":{"krate":2,"index":5495}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":1508,"byte_end":1512,"line_start":40,"line_end":40,"column_start":31,"column_end":35},"ref_id":{"krate":1,"index":4305}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1502,"byte_end":1507,"line_start":40,"line_end":40,"column_start":25,"column_end":30},"ref_id":{"krate":0,"index":4294967074}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1657,"byte_end":1660,"line_start":44,"line_end":44,"column_start":17,"column_end":20},"ref_id":{"krate":2,"index":29436}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1657,"byte_end":1660,"line_start":44,"line_end":44,"column_start":17,"column_end":20},"ref_id":{"krate":2,"index":29436}},{"kind":"Function","span":{"file_name":"src/iter3.rs","byte_start":1675,"byte_end":1679,"line_start":44,"line_end":44,"column_start":35,"column_end":39},"ref_id":{"krate":1,"index":2509}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1673,"byte_end":1674,"line_start":44,"line_end":44,"column_start":33,"column_end":34},"ref_id":{"krate":0,"index":4294967057}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1715,"byte_end":1727,"line_start":45,"line_end":45,"column_start":32,"column_end":44},"ref_id":{"krate":1,"index":6628}},{"kind":"Type","span":{"file_name":"src/iter3.rs","byte_start":1704,"byte_end":1713,"line_start":45,"line_end":45,"column_start":21,"column_end":30},"ref_id":{"krate":1,"index":6604}},{"kind":"Variable","span":{"file_name":"src/iter3.rs","byte_start":1715,"byte_end":1727,"line_start":45,"line_end":45,"column_start":32,"column_end":44},"ref_id":{"krate":1,"index":6628}},{"kind":"Type","span":{"file_name":"src/iter3.rs","byte_start":1704,"byte_end":1713,"line_start":45,"line_end":45,"column_start":21,"column_end":30},"ref_id":{"krate":1,"index":6604}}],"macro_refs":[],"relations":[]} \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/deps/save-analysis/libarc_swap-8bf521bbb97717a8.json b/chapter8/myshell/target/rls/debug/deps/save-analysis/libarc_swap-8bf521bbb97717a8.json new file mode 100644 index 0000000..3b412d8 --- /dev/null +++ b/chapter8/myshell/target/rls/debug/deps/save-analysis/libarc_swap-8bf521bbb97717a8.json @@ -0,0 +1 @@ +{"config":{"output_file":null,"full_docs":false,"pub_only":true,"reachable_only":true,"distro_crate":false,"signatures":false,"borrow_data":false},"version":"0.19.0","compilation":{"directory":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7","program":"/Users/prabhueshwarla/.rustup/toolchains/stable-x86_64-apple-darwin/bin/rls","arguments":["--crate-name","arc_swap","/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","--json=diagnostic-rendered-ansi","--crate-type","lib","--emit=dep-info,metadata","-C","debuginfo=2","-C","metadata=8bf521bbb97717a8","-C","extra-filename=-8bf521bbb97717a8","--out-dir","/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps","-L","dependency=/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps","--cap-lints","allow","--error-format=json","--sysroot","/Users/prabhueshwarla/.rustup/toolchains/stable-x86_64-apple-darwin"],"output":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/libarc_swap-8bf521bbb97717a8.rmeta"},"prelude":{"crate_id":{"name":"arc_swap","disambiguator":[17779198299154035100,6875815130371589823]},"crate_root":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src","external_crates":[{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","num":1,"id":{"name":"std","disambiguator":[9054049529852543209,5756799355281213394]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","num":2,"id":{"name":"core","disambiguator":[649336883146201894,3308516238322163950]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","num":3,"id":{"name":"compiler_builtins","disambiguator":[1154582834482060450,16344204990542480537]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","num":4,"id":{"name":"rustc_std_workspace_core","disambiguator":[9212379515936652129,17808485286264063370]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","num":5,"id":{"name":"alloc","disambiguator":[13327579764654116281,14306064291630426625]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","num":6,"id":{"name":"libc","disambiguator":[17773251733480933597,18239998491734583498]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","num":7,"id":{"name":"unwind","disambiguator":[8567743581675804787,15655200220621371766]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","num":8,"id":{"name":"cfg_if","disambiguator":[15115520782807859583,9813785573872252500]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","num":9,"id":{"name":"backtrace","disambiguator":[1572943810868196833,3902827232285166711]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","num":10,"id":{"name":"rustc_demangle","disambiguator":[6290371580101917419,15395902185345451181]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","num":11,"id":{"name":"backtrace_sys","disambiguator":[2934540361684350378,924291485644145262]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","num":12,"id":{"name":"hashbrown","disambiguator":[9277678418438935259,15657907931940784437]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","num":13,"id":{"name":"rustc_std_workspace_alloc","disambiguator":[5423566938548125357,18340948646597872466]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","num":14,"id":{"name":"panic_unwind","disambiguator":[489208416821938960,3305070343783546974]}}],"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":0,"byte_end":73990,"line_start":1,"line_end":1860,"column_start":1,"column_end":2}},"imports":[{"kind":"Use","ref_id":{"krate":0,"index":559},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":13219,"byte_end":13224,"line_start":292,"line_end":292,"column_start":16,"column_end":21},"alias_span":null,"name":"Cache","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":0,"index":250},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":13323,"byte_end":13329,"line_start":295,"line_end":295,"column_start":18,"column_end":24},"alias_span":null,"name":"RefCnt","value":"","parent":{"krate":0,"index":0}}],"defs":[{"kind":"Mod","id":{"krate":0,"index":0},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":0,"byte_end":73990,"line_start":1,"line_end":1860,"column_start":1,"column_end":2},"name":"","qualname":"::","value":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","parent":null,"children":[{"krate":0,"index":1},{"krate":0,"index":2},{"krate":0,"index":3},{"krate":0,"index":95},{"krate":0,"index":120},{"krate":0,"index":158},{"krate":0,"index":159},{"krate":0,"index":203},{"krate":0,"index":246},{"krate":0,"index":275},{"krate":0,"index":280},{"krate":0,"index":281},{"krate":0,"index":282},{"krate":0,"index":285},{"krate":0,"index":286},{"krate":0,"index":287},{"krate":0,"index":288},{"krate":0,"index":293},{"krate":0,"index":294},{"krate":0,"index":295},{"krate":0,"index":298},{"krate":0,"index":299},{"krate":0,"index":300},{"krate":0,"index":301},{"krate":0,"index":306},{"krate":0,"index":307},{"krate":0,"index":308},{"krate":0,"index":311},{"krate":0,"index":316},{"krate":0,"index":319},{"krate":0,"index":329},{"krate":0,"index":332},{"krate":0,"index":337},{"krate":0,"index":343},{"krate":0,"index":348},{"krate":0,"index":352},{"krate":0,"index":356},{"krate":0,"index":360},{"krate":0,"index":629},{"krate":0,"index":636},{"krate":0,"index":634},{"krate":0,"index":364},{"krate":0,"index":365},{"krate":0,"index":371},{"krate":0,"index":375},{"krate":0,"index":379},{"krate":0,"index":383},{"krate":0,"index":387},{"krate":0,"index":391},{"krate":0,"index":395},{"krate":0,"index":421},{"krate":0,"index":423},{"krate":0,"index":431},{"krate":0,"index":433},{"krate":0,"index":439}],"decl_id":null,"docs":" Making [`Arc`][Arc] itself atomic","sig":null,"attributes":[{"value":"deny(missing_docs, warnings)","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":106,"byte_end":138,"line_start":5,"line_end":5,"column_start":1,"column_end":33}},{"value":"allow(unknown_lints, bare_trait_objects, renamed_and_removed_lints)","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":184,"byte_end":255,"line_start":7,"line_end":7,"column_start":1,"column_end":72}},{"value":"! Making [`Arc`][Arc] itself atomic","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":257,"byte_end":294,"line_start":9,"line_end":9,"column_start":1,"column_end":38}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":295,"byte_end":298,"line_start":10,"line_end":10,"column_start":1,"column_end":4}},{"value":"! The library provides a type that is somewhat similar to what `RwLock>` is or","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":299,"byte_end":386,"line_start":11,"line_end":11,"column_start":1,"column_end":88}},{"value":"! `Atomic>` would be if it existed, optimized for read-mostly update-seldom scenarios,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":387,"byte_end":482,"line_start":12,"line_end":12,"column_start":1,"column_end":96}},{"value":"! with consistent performance characteristics.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":483,"byte_end":531,"line_start":13,"line_end":13,"column_start":1,"column_end":49}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":532,"byte_end":535,"line_start":14,"line_end":14,"column_start":1,"column_end":4}},{"value":"! # Motivation","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":536,"byte_end":552,"line_start":15,"line_end":15,"column_start":1,"column_end":17}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":553,"byte_end":556,"line_start":16,"line_end":16,"column_start":1,"column_end":4}},{"value":"! There are many situations in which one might want to have some data structure that is often","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":557,"byte_end":652,"line_start":17,"line_end":17,"column_start":1,"column_end":96}},{"value":"! read and seldom updated. Some examples might be a configuration of a service, routing tables,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":653,"byte_end":750,"line_start":18,"line_end":18,"column_start":1,"column_end":98}},{"value":"! snapshot of some data that is renewed every few minutes, etc.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":751,"byte_end":816,"line_start":19,"line_end":19,"column_start":1,"column_end":66}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":817,"byte_end":820,"line_start":20,"line_end":20,"column_start":1,"column_end":4}},{"value":"! In all these cases one needs:","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":821,"byte_end":854,"line_start":21,"line_end":21,"column_start":1,"column_end":34}},{"value":"! * Being able to read the current value of the data structure, *fast*.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":855,"byte_end":928,"line_start":22,"line_end":22,"column_start":1,"column_end":74}},{"value":"! * Using the same version of the data structure over longer period of time ‒ a query should be","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":929,"byte_end":1028,"line_start":23,"line_end":23,"column_start":1,"column_end":98}},{"value":"! answered by a consistent version of data, a packet should be routed either by an old or by a","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":1029,"byte_end":1127,"line_start":24,"line_end":24,"column_start":1,"column_end":99}},{"value":"! new version of the routing table but not by a combination, etc.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":1128,"byte_end":1197,"line_start":25,"line_end":25,"column_start":1,"column_end":70}},{"value":"! * Perform an update without disrupting the processing.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":1198,"byte_end":1256,"line_start":26,"line_end":26,"column_start":1,"column_end":59}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":1257,"byte_end":1260,"line_start":27,"line_end":27,"column_start":1,"column_end":4}},{"value":"! The first idea would be to use [`RwLock`][RwLock] and keep a read-lock for the whole time of","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":1261,"byte_end":1360,"line_start":28,"line_end":28,"column_start":1,"column_end":100}},{"value":"! processing. Update would, however, pause all processing until done.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":1361,"byte_end":1432,"line_start":29,"line_end":29,"column_start":1,"column_end":72}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":1433,"byte_end":1436,"line_start":30,"line_end":30,"column_start":1,"column_end":4}},{"value":"! Better option would be to have [`RwLock>`][RwLock]. Then one would lock, clone the [Arc]","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":1437,"byte_end":1536,"line_start":31,"line_end":31,"column_start":1,"column_end":100}},{"value":"! and unlock. This suffers from CPU-level contention (on the lock and on the reference count of","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":1537,"byte_end":1634,"line_start":32,"line_end":32,"column_start":1,"column_end":98}},{"value":"! the [Arc]) which makes it relatively slow. Depending on the implementation, an update may be","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":1635,"byte_end":1731,"line_start":33,"line_end":33,"column_start":1,"column_end":97}},{"value":"! blocked for arbitrary long time by a steady inflow of readers.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":1732,"byte_end":1798,"line_start":34,"line_end":34,"column_start":1,"column_end":67}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":1799,"byte_end":1802,"line_start":35,"line_end":35,"column_start":1,"column_end":4}},{"value":"! ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":1803,"byte_end":1814,"line_start":36,"line_end":36,"column_start":1,"column_end":12}},{"value":"! # extern crate once_cell;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":1815,"byte_end":1844,"line_start":37,"line_end":37,"column_start":1,"column_end":30}},{"value":"! # use std::sync::{Arc, RwLock};","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":1845,"byte_end":1880,"line_start":38,"line_end":38,"column_start":1,"column_end":36}},{"value":"! # use once_cell::sync::Lazy;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":1881,"byte_end":1913,"line_start":39,"line_end":39,"column_start":1,"column_end":33}},{"value":"! # struct RoutingTable; struct Packet; impl RoutingTable { fn route(&self, _: Packet) {} }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":1914,"byte_end":2007,"line_start":40,"line_end":40,"column_start":1,"column_end":94}},{"value":"! static ROUTING_TABLE: Lazy>> = Lazy::new(|| {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2008,"byte_end":2082,"line_start":41,"line_end":41,"column_start":1,"column_end":75}},{"value":"! RwLock::new(Arc::new(RoutingTable))","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2083,"byte_end":2126,"line_start":42,"line_end":42,"column_start":1,"column_end":44}},{"value":"! });","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2127,"byte_end":2134,"line_start":43,"line_end":43,"column_start":1,"column_end":8}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2135,"byte_end":2138,"line_start":44,"line_end":44,"column_start":1,"column_end":4}},{"value":"! fn process_packet(packet: Packet) {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2139,"byte_end":2178,"line_start":45,"line_end":45,"column_start":1,"column_end":40}},{"value":"! let table = Arc::clone(&ROUTING_TABLE.read().unwrap());","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2179,"byte_end":2242,"line_start":46,"line_end":46,"column_start":1,"column_end":64}},{"value":"! table.route(packet);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2243,"byte_end":2271,"line_start":47,"line_end":47,"column_start":1,"column_end":29}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2272,"byte_end":2277,"line_start":48,"line_end":48,"column_start":1,"column_end":6}},{"value":"! # fn main() { process_packet(Packet); }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2278,"byte_end":2321,"line_start":49,"line_end":49,"column_start":1,"column_end":44}},{"value":"! ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2322,"byte_end":2329,"line_start":50,"line_end":50,"column_start":1,"column_end":8}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2330,"byte_end":2333,"line_start":51,"line_end":51,"column_start":1,"column_end":4}},{"value":"! The [ArcSwap] can be used instead, which solves the above problems and has better performance","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2334,"byte_end":2431,"line_start":52,"line_end":52,"column_start":1,"column_end":98}},{"value":"! characteristics than the [RwLock], both in contended and non-contended scenarios.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2432,"byte_end":2517,"line_start":53,"line_end":53,"column_start":1,"column_end":86}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2518,"byte_end":2521,"line_start":54,"line_end":54,"column_start":1,"column_end":4}},{"value":"! ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2522,"byte_end":2533,"line_start":55,"line_end":55,"column_start":1,"column_end":12}},{"value":"! # extern crate arc_swap;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2534,"byte_end":2562,"line_start":56,"line_end":56,"column_start":1,"column_end":29}},{"value":"! # extern crate once_cell;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2563,"byte_end":2592,"line_start":57,"line_end":57,"column_start":1,"column_end":30}},{"value":"! # use arc_swap::ArcSwap;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2593,"byte_end":2621,"line_start":58,"line_end":58,"column_start":1,"column_end":29}},{"value":"! # use once_cell::sync::Lazy;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2622,"byte_end":2654,"line_start":59,"line_end":59,"column_start":1,"column_end":33}},{"value":"! # struct RoutingTable; struct Packet; impl RoutingTable { fn route(&self, _: Packet) {} }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2655,"byte_end":2748,"line_start":60,"line_end":60,"column_start":1,"column_end":94}},{"value":"! static ROUTING_TABLE: Lazy> = Lazy::new(|| {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2749,"byte_end":2819,"line_start":61,"line_end":61,"column_start":1,"column_end":71}},{"value":"! ArcSwap::from_pointee(RoutingTable)","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2820,"byte_end":2863,"line_start":62,"line_end":62,"column_start":1,"column_end":44}},{"value":"! });","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2864,"byte_end":2871,"line_start":63,"line_end":63,"column_start":1,"column_end":8}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2872,"byte_end":2875,"line_start":64,"line_end":64,"column_start":1,"column_end":4}},{"value":"! fn process_packet(packet: Packet) {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2876,"byte_end":2915,"line_start":65,"line_end":65,"column_start":1,"column_end":40}},{"value":"! let table = ROUTING_TABLE.load();","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2916,"byte_end":2957,"line_start":66,"line_end":66,"column_start":1,"column_end":42}},{"value":"! table.route(packet);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2958,"byte_end":2986,"line_start":67,"line_end":67,"column_start":1,"column_end":29}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2987,"byte_end":2992,"line_start":68,"line_end":68,"column_start":1,"column_end":6}},{"value":"! # fn main() { process_packet(Packet); }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":2993,"byte_end":3036,"line_start":69,"line_end":69,"column_start":1,"column_end":44}},{"value":"! ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":3037,"byte_end":3044,"line_start":70,"line_end":70,"column_start":1,"column_end":8}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":3045,"byte_end":3048,"line_start":71,"line_end":71,"column_start":1,"column_end":4}},{"value":"! # Type aliases","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":3049,"byte_end":3067,"line_start":72,"line_end":72,"column_start":1,"column_end":19}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":3068,"byte_end":3071,"line_start":73,"line_end":73,"column_start":1,"column_end":4}},{"value":"! The most interesting types in the crate are the [ArcSwap] and [ArcSwapOption] (the latter","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":3072,"byte_end":3165,"line_start":74,"line_end":74,"column_start":1,"column_end":94}},{"value":"! similar to `Atomic>>`). These are the types users will want to use.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":3166,"byte_end":3251,"line_start":75,"line_end":75,"column_start":1,"column_end":86}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":3252,"byte_end":3255,"line_start":76,"line_end":76,"column_start":1,"column_end":4}},{"value":"! Note, however, that these are type aliases of the [ArcSwapAny]. While that type is the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":3256,"byte_end":3346,"line_start":77,"line_end":77,"column_start":1,"column_end":91}},{"value":"! low-level implementation and usually isn't referred to directly in the user code, all the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":3347,"byte_end":3440,"line_start":78,"line_end":78,"column_start":1,"column_end":94}},{"value":"! relevant methods (and therefore documentation) is on it.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":3441,"byte_end":3501,"line_start":79,"line_end":79,"column_start":1,"column_end":61}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":3502,"byte_end":3505,"line_start":80,"line_end":80,"column_start":1,"column_end":4}},{"value":"! # Atomic orderings","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":3506,"byte_end":3528,"line_start":81,"line_end":81,"column_start":1,"column_end":23}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":3529,"byte_end":3532,"line_start":82,"line_end":82,"column_start":1,"column_end":4}},{"value":"! Each operation on the [ArcSwapAny] type callable concurrently (eg. [load], but not","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":3533,"byte_end":3619,"line_start":83,"line_end":83,"column_start":1,"column_end":87}},{"value":"! [into_inner]) contains at least one SeqCst atomic read-write operation, therefore even","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":3620,"byte_end":3710,"line_start":84,"line_end":84,"column_start":1,"column_end":91}},{"value":"! operations on different instances have a defined global order of operations.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":3711,"byte_end":3791,"line_start":85,"line_end":85,"column_start":1,"column_end":81}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":3792,"byte_end":3795,"line_start":86,"line_end":86,"column_start":1,"column_end":4}},{"value":"! # Less usual needs","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":3796,"byte_end":3818,"line_start":87,"line_end":87,"column_start":1,"column_end":23}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":3819,"byte_end":3822,"line_start":88,"line_end":88,"column_start":1,"column_end":4}},{"value":"! There are some utilities that make the crate useful in more places than just the basics","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":3823,"byte_end":3914,"line_start":89,"line_end":89,"column_start":1,"column_end":92}},{"value":"! described above.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":3915,"byte_end":3935,"line_start":90,"line_end":90,"column_start":1,"column_end":21}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":3936,"byte_end":3939,"line_start":91,"line_end":91,"column_start":1,"column_end":4}},{"value":"! The [load_signal_safe] method can be safely used inside unix signal handlers (it is the only","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":3940,"byte_end":4036,"line_start":92,"line_end":92,"column_start":1,"column_end":97}},{"value":"! one guaranteed to be safe there).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":4037,"byte_end":4074,"line_start":93,"line_end":93,"column_start":1,"column_end":38}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":4075,"byte_end":4078,"line_start":94,"line_end":94,"column_start":1,"column_end":4}},{"value":"! The [Cache] allows further speed improvements over simply using [load] every time. The downside","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":4079,"byte_end":4178,"line_start":95,"line_end":95,"column_start":1,"column_end":100}},{"value":"! is less comfortable API (the caller needs to keep the cache around). Also, a cache may keep the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":4179,"byte_end":4278,"line_start":96,"line_end":96,"column_start":1,"column_end":100}},{"value":"! older version of the value alive even when it is not in active use, until the cache is","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":4279,"byte_end":4369,"line_start":97,"line_end":97,"column_start":1,"column_end":91}},{"value":"! re-validated.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":4370,"byte_end":4387,"line_start":98,"line_end":98,"column_start":1,"column_end":18}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":4388,"byte_end":4391,"line_start":99,"line_end":99,"column_start":1,"column_end":4}},{"value":"! The [access] module (and similar traits in the [cache] module) allows shielding independent","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":4392,"byte_end":4487,"line_start":100,"line_end":100,"column_start":1,"column_end":96}},{"value":"! parts of application from each other and from the exact structure of the *whole* configuration.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":4488,"byte_end":4587,"line_start":101,"line_end":101,"column_start":1,"column_end":100}},{"value":"! This helps structuring the application and giving it access only to its own parts of the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":4588,"byte_end":4680,"line_start":102,"line_end":102,"column_start":1,"column_end":93}},{"value":"! configuration.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":4681,"byte_end":4699,"line_start":103,"line_end":103,"column_start":1,"column_end":19}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":4700,"byte_end":4703,"line_start":104,"line_end":104,"column_start":1,"column_end":4}},{"value":"! Finally, the [gen_lock] module allows further customization of low-level locking/concurrency","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":4704,"byte_end":4800,"line_start":105,"line_end":105,"column_start":1,"column_end":97}},{"value":"! details.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":4801,"byte_end":4813,"line_start":106,"line_end":106,"column_start":1,"column_end":13}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":4814,"byte_end":4817,"line_start":107,"line_end":107,"column_start":1,"column_end":4}},{"value":"! # Performance characteristics","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":4818,"byte_end":4851,"line_start":108,"line_end":108,"column_start":1,"column_end":34}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":4852,"byte_end":4855,"line_start":109,"line_end":109,"column_start":1,"column_end":4}},{"value":"! There are several performance advantages of [ArcSwap] over [RwLock].","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":4856,"byte_end":4928,"line_start":110,"line_end":110,"column_start":1,"column_end":73}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":4929,"byte_end":4932,"line_start":111,"line_end":111,"column_start":1,"column_end":4}},{"value":"! ## Lock-free readers","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":4933,"byte_end":4957,"line_start":112,"line_end":112,"column_start":1,"column_end":25}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":4958,"byte_end":4961,"line_start":113,"line_end":113,"column_start":1,"column_end":4}},{"value":"! All the read operations are always [lock-free]. Most of the time, they are actually","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":4962,"byte_end":5049,"line_start":114,"line_end":114,"column_start":1,"column_end":88}},{"value":"! [wait-free], the notable exception is the first [load] access in each thread (across all the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":5050,"byte_end":5146,"line_start":115,"line_end":115,"column_start":1,"column_end":97}},{"value":"! instances of [ArcSwap]), as it sets up some thread-local data structures.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":5147,"byte_end":5224,"line_start":116,"line_end":116,"column_start":1,"column_end":78}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":5225,"byte_end":5228,"line_start":117,"line_end":117,"column_start":1,"column_end":4}},{"value":"! Whenever the documentation talks about *contention* in the context of [ArcSwap], it talks about","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":5229,"byte_end":5328,"line_start":118,"line_end":118,"column_start":1,"column_end":100}},{"value":"! contention on the CPU level ‒ multpile cores having to deal with accessing the same cache line.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":5329,"byte_end":5430,"line_start":119,"line_end":119,"column_start":1,"column_end":100}},{"value":"! This slows things down (compared to each one accessing its own cache line), but an eventual","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":5431,"byte_end":5526,"line_start":120,"line_end":120,"column_start":1,"column_end":96}},{"value":"! progress is still guaranteed and the cost is significantly lower than parking threads as with","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":5527,"byte_end":5624,"line_start":121,"line_end":121,"column_start":1,"column_end":98}},{"value":"! mutex-style contention.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":5625,"byte_end":5652,"line_start":122,"line_end":122,"column_start":1,"column_end":28}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":5653,"byte_end":5656,"line_start":123,"line_end":123,"column_start":1,"column_end":4}},{"value":"! Unfortunately writers are *not* [lock-free]. A reader stuck (suspended/killed) in a critical","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":5657,"byte_end":5753,"line_start":124,"line_end":124,"column_start":1,"column_end":97}},{"value":"! section (few instructions long in case of [load]) may block a writer from completion.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":5754,"byte_end":5843,"line_start":125,"line_end":125,"column_start":1,"column_end":90}},{"value":"! Nevertheless, a steady inflow of new readers nor other writers will not block the writer.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":5844,"byte_end":5937,"line_start":126,"line_end":126,"column_start":1,"column_end":94}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":5938,"byte_end":5941,"line_start":127,"line_end":127,"column_start":1,"column_end":4}},{"value":"! ## Speeds","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":5942,"byte_end":5955,"line_start":128,"line_end":128,"column_start":1,"column_end":14}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":5956,"byte_end":5959,"line_start":129,"line_end":129,"column_start":1,"column_end":4}},{"value":"! The base line speed of read operations is similar to using an *uncontended* [`Mutex`][Mutex].","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":5960,"byte_end":6057,"line_start":130,"line_end":130,"column_start":1,"column_end":98}},{"value":"! However, [load] suffers no contention from any other read operations and only slight","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":6058,"byte_end":6146,"line_start":131,"line_end":131,"column_start":1,"column_end":89}},{"value":"! ones during updates. The [`load_full`][load_full] operation is additionally contended only on","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":6147,"byte_end":6244,"line_start":132,"line_end":132,"column_start":1,"column_end":98}},{"value":"! the reference count of the [Arc] inside ‒ so, in general, while [Mutex] rapidly","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":6245,"byte_end":6330,"line_start":133,"line_end":133,"column_start":1,"column_end":84}},{"value":"! loses its performance when being in active use by multiple threads at once and","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":6331,"byte_end":6413,"line_start":134,"line_end":134,"column_start":1,"column_end":83}},{"value":"! [RwLock] is slow to start with, [ArcSwap] mostly keeps its performance even when read by many","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":6414,"byte_end":6511,"line_start":135,"line_end":135,"column_start":1,"column_end":98}},{"value":"! threads in parallel.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":6512,"byte_end":6536,"line_start":136,"line_end":136,"column_start":1,"column_end":25}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":6537,"byte_end":6540,"line_start":137,"line_end":137,"column_start":1,"column_end":4}},{"value":"! Write operations are considered expensive. A write operation is more expensive than access to","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":6541,"byte_end":6638,"line_start":138,"line_end":138,"column_start":1,"column_end":98}},{"value":"! an *uncontended* [Mutex] and on some architectures even slower than uncontended","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":6639,"byte_end":6722,"line_start":139,"line_end":139,"column_start":1,"column_end":84}},{"value":"! [RwLock]. However, it is faster than either under contention.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":6723,"byte_end":6788,"line_start":140,"line_end":140,"column_start":1,"column_end":66}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":6789,"byte_end":6792,"line_start":141,"line_end":141,"column_start":1,"column_end":4}},{"value":"! There are some (very unscientific) [benchmarks] within the source code of the library.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":6793,"byte_end":6883,"line_start":142,"line_end":142,"column_start":1,"column_end":91}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":6884,"byte_end":6887,"line_start":143,"line_end":143,"column_start":1,"column_end":4}},{"value":"! The exact numbers are highly dependant on the machine used (both absolute numbers and relative","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":6888,"byte_end":6986,"line_start":144,"line_end":144,"column_start":1,"column_end":99}},{"value":"! between different data structures). Not only architectures have a huge impact (eg. x86 vs ARM),","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":6987,"byte_end":7086,"line_start":145,"line_end":145,"column_start":1,"column_end":100}},{"value":"! but even AMD vs. Intel or two different Intel processors. Therefore, if what matters is more","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":7087,"byte_end":7183,"line_start":146,"line_end":146,"column_start":1,"column_end":97}},{"value":"! the speed than the wait-free guarantees, you're advised to do your own measurements.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":7184,"byte_end":7272,"line_start":147,"line_end":147,"column_start":1,"column_end":89}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":7273,"byte_end":7276,"line_start":148,"line_end":148,"column_start":1,"column_end":4}},{"value":"! Further speed improvements may be gained by the use of the [Cache].","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":7277,"byte_end":7348,"line_start":149,"line_end":149,"column_start":1,"column_end":72}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":7349,"byte_end":7352,"line_start":150,"line_end":150,"column_start":1,"column_end":4}},{"value":"! ## Consistency","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":7353,"byte_end":7371,"line_start":151,"line_end":151,"column_start":1,"column_end":19}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":7372,"byte_end":7375,"line_start":152,"line_end":152,"column_start":1,"column_end":4}},{"value":"! The combination of [wait-free] guarantees of readers and no contention between concurrent","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":7376,"byte_end":7469,"line_start":153,"line_end":153,"column_start":1,"column_end":94}},{"value":"! [load]s provides *consistent* performance characteristics of the synchronization mechanism.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":7470,"byte_end":7565,"line_start":154,"line_end":154,"column_start":1,"column_end":96}},{"value":"! This might be important for soft-realtime applications (the CPU-level contention caused by a","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":7566,"byte_end":7662,"line_start":155,"line_end":155,"column_start":1,"column_end":97}},{"value":"! recent update/write operation might be problematic for some hard-realtime cases, though).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":7663,"byte_end":7756,"line_start":156,"line_end":156,"column_start":1,"column_end":94}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":7757,"byte_end":7760,"line_start":157,"line_end":157,"column_start":1,"column_end":4}},{"value":"! ## Choosing the right reading operation","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":7761,"byte_end":7804,"line_start":158,"line_end":158,"column_start":1,"column_end":44}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":7805,"byte_end":7808,"line_start":159,"line_end":159,"column_start":1,"column_end":4}},{"value":"! There are several load operations available. While the general go-to one should be","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":7809,"byte_end":7895,"line_start":160,"line_end":160,"column_start":1,"column_end":87}},{"value":"! [load], there may be situations in which the others are a better match.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":7896,"byte_end":7971,"line_start":161,"line_end":161,"column_start":1,"column_end":76}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":7972,"byte_end":7975,"line_start":162,"line_end":162,"column_start":1,"column_end":4}},{"value":"! The [load] usually only borrows the instance from the shared [ArcSwap]. This makes","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":7976,"byte_end":8062,"line_start":163,"line_end":163,"column_start":1,"column_end":87}},{"value":"! it faster, because different threads don't contend on the reference count. There are two","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":8063,"byte_end":8155,"line_start":164,"line_end":164,"column_start":1,"column_end":93}},{"value":"! situations when this borrow isn't possible. If the content gets changed, all existing","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":8156,"byte_end":8245,"line_start":165,"line_end":165,"column_start":1,"column_end":90}},{"value":"! [`Guard`][Guard]s are promoted to contain an owned instance. The promotion is done by the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":8246,"byte_end":8339,"line_start":166,"line_end":166,"column_start":1,"column_end":94}},{"value":"! writer, but the readers still need to decrement the reference counts of the old instance when","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":8340,"byte_end":8437,"line_start":167,"line_end":167,"column_start":1,"column_end":98}},{"value":"! they no longer use it, contending on the count.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":8438,"byte_end":8489,"line_start":168,"line_end":168,"column_start":1,"column_end":52}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":8490,"byte_end":8493,"line_start":169,"line_end":169,"column_start":1,"column_end":4}},{"value":"! The other situation derives from internal implementation. The number of borrows each thread can","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":8494,"byte_end":8593,"line_start":170,"line_end":170,"column_start":1,"column_end":100}},{"value":"! have at each time (across all [Guard]s) is limited. If this limit is exceeded, an onwed","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":8594,"byte_end":8685,"line_start":171,"line_end":171,"column_start":1,"column_end":92}},{"value":"! instance is created instead.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":8686,"byte_end":8718,"line_start":172,"line_end":172,"column_start":1,"column_end":33}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":8719,"byte_end":8722,"line_start":173,"line_end":173,"column_start":1,"column_end":4}},{"value":"! Therefore, if you intend to hold onto the loaded value for extended time span, you may prefer","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":8723,"byte_end":8820,"line_start":174,"line_end":174,"column_start":1,"column_end":98}},{"value":"! [load_full]. It loads the pointer instance (`Arc`) without borrowing, which is","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":8821,"byte_end":8903,"line_start":175,"line_end":175,"column_start":1,"column_end":83}},{"value":"! slower (because of the possible contention on the reference count), but doesn't consume one of","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":8904,"byte_end":9002,"line_start":176,"line_end":176,"column_start":1,"column_end":99}},{"value":"! the borrow slots, which will make it more likely for following [load]s to have a slot","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9003,"byte_end":9092,"line_start":177,"line_end":177,"column_start":1,"column_end":90}},{"value":"! available. Similarly, if some API needs an owned `Arc`, [load_full] is more convenient.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9093,"byte_end":9184,"line_start":178,"line_end":178,"column_start":1,"column_end":92}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9185,"byte_end":9188,"line_start":179,"line_end":179,"column_start":1,"column_end":4}},{"value":"! There's also [load_signal_safe]. This is the only method guaranteed to be","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9189,"byte_end":9266,"line_start":180,"line_end":180,"column_start":1,"column_end":78}},{"value":"! safely usable inside a unix signal handler. It has no advantages outside of them, so it makes","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9267,"byte_end":9364,"line_start":181,"line_end":181,"column_start":1,"column_end":98}},{"value":"! it kind of niche one.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9365,"byte_end":9390,"line_start":182,"line_end":182,"column_start":1,"column_end":26}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9391,"byte_end":9394,"line_start":183,"line_end":183,"column_start":1,"column_end":4}},{"value":"! Additionally, it is possible to use a [`Cache`][Cache] to get further speed improvement at the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9395,"byte_end":9493,"line_start":184,"line_end":184,"column_start":1,"column_end":99}},{"value":"! cost of less comfortable API and possibly keeping the older values alive for longer than","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9494,"byte_end":9586,"line_start":185,"line_end":185,"column_start":1,"column_end":93}},{"value":"! necessary.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9587,"byte_end":9601,"line_start":186,"line_end":186,"column_start":1,"column_end":15}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9602,"byte_end":9605,"line_start":187,"line_end":187,"column_start":1,"column_end":4}},{"value":"! # Examples","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9606,"byte_end":9620,"line_start":188,"line_end":188,"column_start":1,"column_end":15}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9621,"byte_end":9624,"line_start":189,"line_end":189,"column_start":1,"column_end":4}},{"value":"! ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9625,"byte_end":9636,"line_start":190,"line_end":190,"column_start":1,"column_end":12}},{"value":"! extern crate arc_swap;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9637,"byte_end":9663,"line_start":191,"line_end":191,"column_start":1,"column_end":27}},{"value":"! extern crate crossbeam_utils;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9664,"byte_end":9697,"line_start":192,"line_end":192,"column_start":1,"column_end":34}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9698,"byte_end":9701,"line_start":193,"line_end":193,"column_start":1,"column_end":4}},{"value":"! use std::sync::Arc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9702,"byte_end":9725,"line_start":194,"line_end":194,"column_start":1,"column_end":24}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9726,"byte_end":9729,"line_start":195,"line_end":195,"column_start":1,"column_end":4}},{"value":"! use arc_swap::ArcSwap;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9730,"byte_end":9756,"line_start":196,"line_end":196,"column_start":1,"column_end":27}},{"value":"! use crossbeam_utils::thread;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9757,"byte_end":9789,"line_start":197,"line_end":197,"column_start":1,"column_end":33}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9790,"byte_end":9793,"line_start":198,"line_end":198,"column_start":1,"column_end":4}},{"value":"! fn main() {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9794,"byte_end":9809,"line_start":199,"line_end":199,"column_start":1,"column_end":16}},{"value":"! let config = ArcSwap::from(Arc::new(String::default()));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9810,"byte_end":9874,"line_start":200,"line_end":200,"column_start":1,"column_end":65}},{"value":"! thread::scope(|scope| {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9875,"byte_end":9906,"line_start":201,"line_end":201,"column_start":1,"column_end":32}},{"value":"! scope.spawn(|_| {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9907,"byte_end":9936,"line_start":202,"line_end":202,"column_start":1,"column_end":30}},{"value":"! let new_conf = Arc::new(\"New configuration\".to_owned());","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":9937,"byte_end":10009,"line_start":203,"line_end":203,"column_start":1,"column_end":73}},{"value":"! config.store(new_conf);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10010,"byte_end":10049,"line_start":204,"line_end":204,"column_start":1,"column_end":40}},{"value":"! });","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10050,"byte_end":10065,"line_start":205,"line_end":205,"column_start":1,"column_end":16}},{"value":"! for _ in 0..10 {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10066,"byte_end":10094,"line_start":206,"line_end":206,"column_start":1,"column_end":29}},{"value":"! scope.spawn(|_| {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10095,"byte_end":10128,"line_start":207,"line_end":207,"column_start":1,"column_end":34}},{"value":"! loop {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10129,"byte_end":10155,"line_start":208,"line_end":208,"column_start":1,"column_end":27}},{"value":"! let cfg = config.load();","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10156,"byte_end":10204,"line_start":209,"line_end":209,"column_start":1,"column_end":49}},{"value":"! if !cfg.is_empty() {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10205,"byte_end":10249,"line_start":210,"line_end":210,"column_start":1,"column_end":45}},{"value":"! assert_eq!(**cfg, \"New configuration\");","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10250,"byte_end":10317,"line_start":211,"line_end":211,"column_start":1,"column_end":68}},{"value":"! return;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10318,"byte_end":10353,"line_start":212,"line_end":212,"column_start":1,"column_end":36}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10354,"byte_end":10379,"line_start":213,"line_end":213,"column_start":1,"column_end":26}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10380,"byte_end":10401,"line_start":214,"line_end":214,"column_start":1,"column_end":22}},{"value":"! });","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10402,"byte_end":10421,"line_start":215,"line_end":215,"column_start":1,"column_end":20}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10422,"byte_end":10435,"line_start":216,"line_end":216,"column_start":1,"column_end":14}},{"value":"! }).unwrap();","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10436,"byte_end":10456,"line_start":217,"line_end":217,"column_start":1,"column_end":21}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10457,"byte_end":10462,"line_start":218,"line_end":218,"column_start":1,"column_end":6}},{"value":"! ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10463,"byte_end":10470,"line_start":219,"line_end":219,"column_start":1,"column_end":8}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10471,"byte_end":10474,"line_start":220,"line_end":220,"column_start":1,"column_end":4}},{"value":"! # Features","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10475,"byte_end":10489,"line_start":221,"line_end":221,"column_start":1,"column_end":15}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10490,"byte_end":10493,"line_start":222,"line_end":222,"column_start":1,"column_end":4}},{"value":"! The `weak` feature adds the ability to use arc-swap with the [Weak] pointer too,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10494,"byte_end":10578,"line_start":223,"line_end":223,"column_start":1,"column_end":85}},{"value":"! through the [ArcSwapWeak] type. The needed std support is stabilized in rust version 1.45 (as","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10579,"byte_end":10676,"line_start":224,"line_end":224,"column_start":1,"column_end":98}},{"value":"! of now in beta).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10677,"byte_end":10697,"line_start":225,"line_end":225,"column_start":1,"column_end":21}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10698,"byte_end":10701,"line_start":226,"line_end":226,"column_start":1,"column_end":4}},{"value":"! # Internal details","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10702,"byte_end":10724,"line_start":227,"line_end":227,"column_start":1,"column_end":23}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10725,"byte_end":10728,"line_start":228,"line_end":228,"column_start":1,"column_end":4}},{"value":"! The crate uses a hybrid approach of stripped-down hazard pointers and something close to a","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10729,"byte_end":10823,"line_start":229,"line_end":229,"column_start":1,"column_end":95}},{"value":"! sharded spin lock with asymmetric read/write usage (called the generation lock).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10824,"byte_end":10908,"line_start":230,"line_end":230,"column_start":1,"column_end":85}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10909,"byte_end":10912,"line_start":231,"line_end":231,"column_start":1,"column_end":4}},{"value":"! Further details are described in comments inside the source code and in two blog posts:","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":10913,"byte_end":11004,"line_start":232,"line_end":232,"column_start":1,"column_end":92}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11005,"byte_end":11008,"line_start":233,"line_end":233,"column_start":1,"column_end":4}},{"value":"! * [Making `Arc` more atomic](https://vorner.github.io/2018/06/24/arc-more-atomic.html)","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11009,"byte_end":11099,"line_start":234,"line_end":234,"column_start":1,"column_end":91}},{"value":"! * [More tricks up in the ArcSwap's sleeve](https://vorner.github.io/2019/04/06/tricks-in-arc-swap.html)","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11100,"byte_end":11207,"line_start":235,"line_end":235,"column_start":1,"column_end":108}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11208,"byte_end":11211,"line_start":236,"line_end":236,"column_start":1,"column_end":4}},{"value":"! # Limitations","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11212,"byte_end":11229,"line_start":237,"line_end":237,"column_start":1,"column_end":18}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11230,"byte_end":11233,"line_start":238,"line_end":238,"column_start":1,"column_end":4}},{"value":"! This currently works only for `Sized` types. Unsized types have „fat pointers“, which are twice","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11234,"byte_end":11337,"line_start":239,"line_end":239,"column_start":1,"column_end":100}},{"value":"! as large as the normal ones. The [`AtomicPtr`] doesn't support them. One could use something","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11338,"byte_end":11434,"line_start":240,"line_end":240,"column_start":1,"column_end":97}},{"value":"! like `AtomicU128` for them. The catch is this doesn't exist and the difference would make it","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11435,"byte_end":11531,"line_start":241,"line_end":241,"column_start":1,"column_end":97}},{"value":"! really hard to implement the debt storage/stripped down hazard pointers.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11532,"byte_end":11608,"line_start":242,"line_end":242,"column_start":1,"column_end":77}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11609,"byte_end":11612,"line_start":243,"line_end":243,"column_start":1,"column_end":4}},{"value":"! A workaround is to use double indirection:","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11613,"byte_end":11659,"line_start":244,"line_end":244,"column_start":1,"column_end":47}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11660,"byte_end":11663,"line_start":245,"line_end":245,"column_start":1,"column_end":4}},{"value":"! ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11664,"byte_end":11675,"line_start":246,"line_end":246,"column_start":1,"column_end":12}},{"value":"! # use arc_swap::ArcSwap;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11676,"byte_end":11704,"line_start":247,"line_end":247,"column_start":1,"column_end":29}},{"value":"! // This doesn't work:","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11705,"byte_end":11730,"line_start":248,"line_end":248,"column_start":1,"column_end":26}},{"value":"! // let data: ArcSwap<[u8]> = ArcSwap::new(Arc::from([1, 2, 3]));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11731,"byte_end":11799,"line_start":249,"line_end":249,"column_start":1,"column_end":69}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11800,"byte_end":11803,"line_start":250,"line_end":250,"column_start":1,"column_end":4}},{"value":"! // But this does:","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11804,"byte_end":11825,"line_start":251,"line_end":251,"column_start":1,"column_end":22}},{"value":"! let data: ArcSwap> = ArcSwap::from_pointee(Box::new([1, 2, 3]));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11826,"byte_end":11904,"line_start":252,"line_end":252,"column_start":1,"column_end":79}},{"value":"! # drop(data);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11905,"byte_end":11922,"line_start":253,"line_end":253,"column_start":1,"column_end":18}},{"value":"! ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11923,"byte_end":11930,"line_start":254,"line_end":254,"column_start":1,"column_end":8}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11931,"byte_end":11934,"line_start":255,"line_end":255,"column_start":1,"column_end":4}},{"value":"! [Arc]: https://doc.rust-lang.org/std/sync/struct.Arc.html","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11935,"byte_end":11996,"line_start":256,"line_end":256,"column_start":1,"column_end":62}},{"value":"! [Weak]: https://doc.rust-lang.org/std/sync/struct.Arc.html","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":11997,"byte_end":12059,"line_start":257,"line_end":257,"column_start":1,"column_end":63}},{"value":"! [RwLock]: https://doc.rust-lang.org/std/sync/struct.RwLock.html","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":12060,"byte_end":12127,"line_start":258,"line_end":258,"column_start":1,"column_end":68}},{"value":"! [Mutex]: https://doc.rust-lang.org/std/sync/struct.Mutex.html","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":12128,"byte_end":12193,"line_start":259,"line_end":259,"column_start":1,"column_end":66}},{"value":"! [lock-free]: https://en.wikipedia.org/wiki/Non-blocking_algorithm#Lock-freedom","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":12194,"byte_end":12276,"line_start":260,"line_end":260,"column_start":1,"column_end":83}},{"value":"! [wait-free]: https://en.wikipedia.org/wiki/Non-blocking_algorithm#Wait-freedom","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":12277,"byte_end":12359,"line_start":261,"line_end":261,"column_start":1,"column_end":83}},{"value":"! [load]: struct.ArcSwapAny.html#method.load","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":12360,"byte_end":12406,"line_start":262,"line_end":262,"column_start":1,"column_end":47}},{"value":"! [into_inner]: struct.ArcSwapAny.html#method.into_inner","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":12407,"byte_end":12465,"line_start":263,"line_end":263,"column_start":1,"column_end":59}},{"value":"! [load_full]: struct.ArcSwapAny.html#method.load_full","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":12466,"byte_end":12522,"line_start":264,"line_end":264,"column_start":1,"column_end":57}},{"value":"! [load_signal_safe]: struct.ArcSwapAny.html#method.peek_signal_safe","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":12523,"byte_end":12593,"line_start":265,"line_end":265,"column_start":1,"column_end":71}},{"value":"! [benchmarks]: https://github.com/vorner/arc-swap/tree/master/benchmarks","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":12594,"byte_end":12669,"line_start":266,"line_end":266,"column_start":1,"column_end":76}},{"value":"! [ArcSwapWeak]: type.ArcSwapWeak.html","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":12670,"byte_end":12710,"line_start":267,"line_end":267,"column_start":1,"column_end":41}}]},{"kind":"Mod","id":{"krate":0,"index":3},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"name":"access","qualname":"::access","value":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","parent":null,"children":[{"krate":0,"index":4},{"krate":0,"index":5},{"krate":0,"index":6},{"krate":0,"index":7},{"krate":0,"index":8},{"krate":0,"index":9},{"krate":0,"index":10},{"krate":0,"index":13},{"krate":0,"index":17},{"krate":0,"index":23},{"krate":0,"index":441},{"krate":0,"index":445},{"krate":0,"index":28},{"krate":0,"index":32},{"krate":0,"index":37},{"krate":0,"index":41},{"krate":0,"index":46},{"krate":0,"index":50},{"krate":0,"index":54},{"krate":0,"index":57},{"krate":0,"index":448},{"krate":0,"index":461},{"krate":0,"index":457},{"krate":0,"index":453},{"krate":0,"index":61},{"krate":0,"index":65},{"krate":0,"index":69},{"krate":0,"index":464},{"krate":0,"index":481},{"krate":0,"index":476},{"krate":0,"index":471},{"krate":0,"index":74},{"krate":0,"index":80},{"krate":0,"index":485},{"krate":0,"index":520},{"krate":0,"index":517},{"krate":0,"index":514},{"krate":0,"index":509},{"krate":0,"index":511},{"krate":0,"index":503},{"krate":0,"index":505},{"krate":0,"index":500},{"krate":0,"index":493},{"krate":0,"index":489},{"krate":0,"index":87},{"krate":0,"index":522},{"krate":0,"index":557},{"krate":0,"index":554},{"krate":0,"index":551},{"krate":0,"index":546},{"krate":0,"index":548},{"krate":0,"index":540},{"krate":0,"index":542},{"krate":0,"index":537},{"krate":0,"index":530},{"krate":0,"index":526},{"krate":0,"index":91}],"decl_id":null,"docs":" Abstracting over accessing parts of stored value.","sig":null,"attributes":[{"value":"! Abstracting over accessing parts of stored value.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":73992,"byte_end":74045,"line_start":1,"line_end":1,"column_start":1,"column_end":54}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":74046,"byte_end":74049,"line_start":2,"line_end":2,"column_start":1,"column_end":4}},{"value":"! Sometimes, there's a big globalish data structure (like a configuration for the whole program).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":74050,"byte_end":74149,"line_start":3,"line_end":3,"column_start":1,"column_end":100}},{"value":"! Then there are parts of the program that need access to up-to-date version of their *part* of","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":74150,"byte_end":74247,"line_start":4,"line_end":4,"column_start":1,"column_end":98}},{"value":"! the configuration, but for reasons of code separation and reusability, it is not desirable to","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":74248,"byte_end":74345,"line_start":5,"line_end":5,"column_start":1,"column_end":98}},{"value":"! pass the whole configuration to each of the parts.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":74346,"byte_end":74400,"line_start":6,"line_end":6,"column_start":1,"column_end":55}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":74401,"byte_end":74404,"line_start":7,"line_end":7,"column_start":1,"column_end":4}},{"value":"! This module provides means to grant the parts access to the relevant subsets of such global","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":74405,"byte_end":74500,"line_start":8,"line_end":8,"column_start":1,"column_end":96}},{"value":"! data structure while masking the fact it is part of the bigger whole from the component.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":74501,"byte_end":74593,"line_start":9,"line_end":9,"column_start":1,"column_end":93}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":74594,"byte_end":74597,"line_start":10,"line_end":10,"column_start":1,"column_end":4}},{"value":"! Note that the [`cache`][::cache] module has its own [`Access`][::cache::Access] trait that","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":74598,"byte_end":74692,"line_start":11,"line_end":11,"column_start":1,"column_end":95}},{"value":"! serves a similar purpose, but with cached access. The signatures are different, therefore an","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":74693,"byte_end":74789,"line_start":12,"line_end":12,"column_start":1,"column_end":97}},{"value":"! incompatible trait.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":74790,"byte_end":74813,"line_start":13,"line_end":13,"column_start":1,"column_end":24}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":74814,"byte_end":74817,"line_start":14,"line_end":14,"column_start":1,"column_end":4}},{"value":"! # The general idea","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":74818,"byte_end":74840,"line_start":15,"line_end":15,"column_start":1,"column_end":23}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":74841,"byte_end":74844,"line_start":16,"line_end":16,"column_start":1,"column_end":4}},{"value":"! Each part of the code accepts generic [`Access`][Access] for the `T` of its interest. This","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":74845,"byte_end":74942,"line_start":17,"line_end":17,"column_start":1,"column_end":98}},{"value":"! provides means to load current version of the structure behind the scenes and get only the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":74943,"byte_end":75037,"line_start":18,"line_end":18,"column_start":1,"column_end":95}},{"value":"! relevant part, without knowing what the big structure is.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":75038,"byte_end":75099,"line_start":19,"line_end":19,"column_start":1,"column_end":62}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":75100,"byte_end":75103,"line_start":20,"line_end":20,"column_start":1,"column_end":4}},{"value":"! For technical reasons, the [`Access`] trait is not object safe. If type erasure is desired, it","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":75104,"byte_end":75202,"line_start":21,"line_end":21,"column_start":1,"column_end":99}},{"value":"! is possible use the [`DynAccess`][::access::DynAccess] instead, which is object safe, but","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":75203,"byte_end":75296,"line_start":22,"line_end":22,"column_start":1,"column_end":94}},{"value":"! slightly slower.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":75297,"byte_end":75317,"line_start":23,"line_end":23,"column_start":1,"column_end":21}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":75318,"byte_end":75321,"line_start":24,"line_end":24,"column_start":1,"column_end":4}},{"value":"! For some cases, it is possible to use [`ArcSwapAny::map`]. If that is not flexible enough, the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":75322,"byte_end":75420,"line_start":25,"line_end":25,"column_start":1,"column_end":99}},{"value":"! [`Map`] type can be created directly.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":75421,"byte_end":75462,"line_start":26,"line_end":26,"column_start":1,"column_end":42}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":75463,"byte_end":75466,"line_start":27,"line_end":27,"column_start":1,"column_end":4}},{"value":"! Note that the [`Access`] trait is also implemented for [`ArcSwapAny`] itself. Additionally,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":75467,"byte_end":75562,"line_start":28,"line_end":28,"column_start":1,"column_end":96}},{"value":"! there's the [`Constant`][::access::Constant] helper type, which is useful mostly for testing","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":75563,"byte_end":75659,"line_start":29,"line_end":29,"column_start":1,"column_end":97}},{"value":"! (it doesn't allow reloading).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":75660,"byte_end":75693,"line_start":30,"line_end":30,"column_start":1,"column_end":34}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":75694,"byte_end":75697,"line_start":31,"line_end":31,"column_start":1,"column_end":4}},{"value":"! # Performance","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":75698,"byte_end":75715,"line_start":32,"line_end":32,"column_start":1,"column_end":18}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":75716,"byte_end":75719,"line_start":33,"line_end":33,"column_start":1,"column_end":4}},{"value":"! In general, these utilities use [`ArcSwapAny::load`] internally and then apply the provided","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":75720,"byte_end":75815,"line_start":34,"line_end":34,"column_start":1,"column_end":96}},{"value":"! transformation. This has several consequences:","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":75816,"byte_end":75866,"line_start":35,"line_end":35,"column_start":1,"column_end":51}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":75867,"byte_end":75870,"line_start":36,"line_end":36,"column_start":1,"column_end":4}},{"value":"! * Limitations of the [`load`][ArcSwapAny::load] apply ‒ including the recommendation to not","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":75871,"byte_end":75968,"line_start":37,"line_end":37,"column_start":1,"column_end":96}},{"value":"! hold the returned guard object for too long, but long enough to get consistency.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":75969,"byte_end":76055,"line_start":38,"line_end":38,"column_start":1,"column_end":87}},{"value":"! * The transformation should be cheap ‒ optimally just borrowing into the structure.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76056,"byte_end":76145,"line_start":39,"line_end":39,"column_start":1,"column_end":88}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76146,"byte_end":76149,"line_start":40,"line_end":40,"column_start":1,"column_end":4}},{"value":"! # Examples","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76150,"byte_end":76164,"line_start":41,"line_end":41,"column_start":1,"column_end":15}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76165,"byte_end":76168,"line_start":42,"line_end":42,"column_start":1,"column_end":4}},{"value":"! ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76169,"byte_end":76180,"line_start":43,"line_end":43,"column_start":1,"column_end":12}},{"value":"! extern crate arc_swap;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76181,"byte_end":76207,"line_start":44,"line_end":44,"column_start":1,"column_end":27}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76208,"byte_end":76211,"line_start":45,"line_end":45,"column_start":1,"column_end":4}},{"value":"! use std::sync::Arc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76212,"byte_end":76235,"line_start":46,"line_end":46,"column_start":1,"column_end":24}},{"value":"! use std::thread;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76236,"byte_end":76256,"line_start":47,"line_end":47,"column_start":1,"column_end":21}},{"value":"! use std::time::Duration;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76257,"byte_end":76285,"line_start":48,"line_end":48,"column_start":1,"column_end":29}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76286,"byte_end":76289,"line_start":49,"line_end":49,"column_start":1,"column_end":4}},{"value":"! use arc_swap::ArcSwap;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76290,"byte_end":76316,"line_start":50,"line_end":50,"column_start":1,"column_end":27}},{"value":"! use arc_swap::access::{Access, Constant, Map};","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76317,"byte_end":76367,"line_start":51,"line_end":51,"column_start":1,"column_end":51}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76368,"byte_end":76371,"line_start":52,"line_end":52,"column_start":1,"column_end":4}},{"value":"! fn work_with_usize + Send + 'static>(a: A) {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76372,"byte_end":76437,"line_start":53,"line_end":53,"column_start":1,"column_end":66}},{"value":"! thread::spawn(move || {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76438,"byte_end":76469,"line_start":54,"line_end":54,"column_start":1,"column_end":32}},{"value":"! loop {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76470,"byte_end":76488,"line_start":55,"line_end":55,"column_start":1,"column_end":19}},{"value":"! let value = a.load();","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76489,"byte_end":76526,"line_start":56,"line_end":56,"column_start":1,"column_end":38}},{"value":"! println!(\"{}\", *value);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76527,"byte_end":76566,"line_start":57,"line_end":57,"column_start":1,"column_end":40}},{"value":"! // Not strictly necessary, but dropping the guard can free some resources, like","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76567,"byte_end":76662,"line_start":58,"line_end":58,"column_start":1,"column_end":96}},{"value":"! // slots for tracking what values are still in use. We do it before the sleeping,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76663,"byte_end":76760,"line_start":59,"line_end":59,"column_start":1,"column_end":98}},{"value":"! // not at the end of the scope.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76761,"byte_end":76808,"line_start":60,"line_end":60,"column_start":1,"column_end":48}},{"value":"! drop(value);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76809,"byte_end":76837,"line_start":61,"line_end":61,"column_start":1,"column_end":29}},{"value":"! thread::sleep(Duration::from_millis(50));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76838,"byte_end":76895,"line_start":62,"line_end":62,"column_start":1,"column_end":58}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76896,"byte_end":76909,"line_start":63,"line_end":63,"column_start":1,"column_end":14}},{"value":"! });","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76910,"byte_end":76921,"line_start":64,"line_end":64,"column_start":1,"column_end":12}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76922,"byte_end":76927,"line_start":65,"line_end":65,"column_start":1,"column_end":6}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76928,"byte_end":76931,"line_start":66,"line_end":66,"column_start":1,"column_end":4}},{"value":"! // Passing the whole thing directly","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76932,"byte_end":76971,"line_start":67,"line_end":67,"column_start":1,"column_end":40}},{"value":"! // (If we kept another Arc to it, we could change the value behind the scenes)","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":76972,"byte_end":77054,"line_start":68,"line_end":68,"column_start":1,"column_end":83}},{"value":"! work_with_usize(Arc::new(ArcSwap::from_pointee(42)));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":77055,"byte_end":77112,"line_start":69,"line_end":69,"column_start":1,"column_end":58}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":77113,"byte_end":77116,"line_start":70,"line_end":70,"column_start":1,"column_end":4}},{"value":"! // Passing a subset of a structure","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":77117,"byte_end":77155,"line_start":71,"line_end":71,"column_start":1,"column_end":39}},{"value":"! struct Cfg {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":77156,"byte_end":77172,"line_start":72,"line_end":72,"column_start":1,"column_end":17}},{"value":"! value: usize,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":77173,"byte_end":77194,"line_start":73,"line_end":73,"column_start":1,"column_end":22}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":77195,"byte_end":77200,"line_start":74,"line_end":74,"column_start":1,"column_end":6}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":77201,"byte_end":77204,"line_start":75,"line_end":75,"column_start":1,"column_end":4}},{"value":"! let cfg = Arc::new(ArcSwap::from_pointee(Cfg { value: 0 }));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":77205,"byte_end":77269,"line_start":76,"line_end":76,"column_start":1,"column_end":65}},{"value":"! work_with_usize(Map::new(Arc::clone(&cfg), |cfg: &Cfg| &cfg.value));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":77270,"byte_end":77342,"line_start":77,"line_end":77,"column_start":1,"column_end":73}},{"value":"! cfg.store(Arc::new(Cfg { value: 42 }));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":77343,"byte_end":77386,"line_start":78,"line_end":78,"column_start":1,"column_end":44}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":77387,"byte_end":77390,"line_start":79,"line_end":79,"column_start":1,"column_end":4}},{"value":"! // Passing a constant that can't change. Useful mostly for testing purposes.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":77391,"byte_end":77471,"line_start":80,"line_end":80,"column_start":1,"column_end":81}},{"value":"! work_with_usize(Constant(42));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":77472,"byte_end":77506,"line_start":81,"line_end":81,"column_start":1,"column_end":35}},{"value":"! ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":77507,"byte_end":77514,"line_start":82,"line_end":82,"column_start":1,"column_end":8}}]},{"kind":"Trait","id":{"krate":0,"index":13},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":77944,"byte_end":77950,"line_start":97,"line_end":97,"column_start":11,"column_end":17},"name":"Access","qualname":"::access::Access","value":"Access","parent":null,"children":[{"krate":0,"index":15},{"krate":0,"index":16}],"decl_id":null,"docs":" Abstracts over ways code can get access to a value of type `T`.","sig":null,"attributes":[{"value":"/ Abstracts over ways code can get access to a value of type `T`.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":77700,"byte_end":77767,"line_start":93,"line_end":93,"column_start":1,"column_end":68}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":77768,"byte_end":77771,"line_start":94,"line_end":94,"column_start":1,"column_end":4}},{"value":"/ This is the trait that parts of code will use when accessing a subpart of the big data","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":77772,"byte_end":77862,"line_start":95,"line_end":95,"column_start":1,"column_end":91}},{"value":"/ structure. See the [module documentation](index.html) for details.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":77863,"byte_end":77933,"line_start":96,"line_end":96,"column_start":1,"column_end":71}}]},{"kind":"Type","id":{"krate":0,"index":15},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":78245,"byte_end":78250,"line_start":103,"line_end":103,"column_start":10,"column_end":15},"name":"Guard","qualname":"::access::Access::Guard","value":"type Guard: Deref;","parent":{"krate":0,"index":13},"children":[],"decl_id":null,"docs":" A guard object containing the value and keeping it alive.","sig":null,"attributes":[{"value":"/ A guard object containing the value and keeping it alive.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":77960,"byte_end":78021,"line_start":98,"line_end":98,"column_start":5,"column_end":66}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":78026,"byte_end":78029,"line_start":99,"line_end":99,"column_start":5,"column_end":8}},{"value":"/ For technical reasons, the library doesn't allow direct access into the stored value. A","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":78034,"byte_end":78125,"line_start":100,"line_end":100,"column_start":5,"column_end":96}},{"value":"/ temporary guard object must be loaded, that keeps the actual value alive for the time of","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":78130,"byte_end":78222,"line_start":101,"line_end":101,"column_start":5,"column_end":97}},{"value":"/ use.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":78227,"byte_end":78235,"line_start":102,"line_end":102,"column_start":5,"column_end":13}}]},{"kind":"Method","id":{"krate":0,"index":16},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":78440,"byte_end":78444,"line_start":109,"line_end":109,"column_start":8,"column_end":12},"name":"load","qualname":"::access::Access::load","value":"fn (&self) -> Self::Guard","parent":{"krate":0,"index":13},"children":[],"decl_id":null,"docs":" The loading method.","sig":null,"attributes":[{"value":"/ The loading method.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":78276,"byte_end":78299,"line_start":105,"line_end":105,"column_start":5,"column_end":28}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":78304,"byte_end":78307,"line_start":106,"line_end":106,"column_start":5,"column_end":8}},{"value":"/ This returns the guard that holds the actual value. Should be called anew each time a fresh","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":78312,"byte_end":78407,"line_start":107,"line_end":107,"column_start":5,"column_end":100}},{"value":"/ value is needed.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":78412,"byte_end":78432,"line_start":108,"line_end":108,"column_start":5,"column_end":25}}]},{"kind":"Struct","id":{"krate":0,"index":441},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":78916,"byte_end":78927,"line_start":131,"line_end":131,"column_start":12,"column_end":23},"name":"DirectDeref","qualname":"::access::DirectDeref","value":"","parent":null,"children":[],"decl_id":null,"docs":" Plumbing type.","sig":null,"attributes":[{"value":"/ Plumbing type.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":78800,"byte_end":78818,"line_start":127,"line_end":127,"column_start":1,"column_end":19}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":78819,"byte_end":78822,"line_start":128,"line_end":128,"column_start":1,"column_end":4}},{"value":"/ Accessible, but not expected to be used directly in general.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":78823,"byte_end":78887,"line_start":129,"line_end":129,"column_start":1,"column_end":65}}]},{"kind":"Struct","id":{"krate":0,"index":46},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":79695,"byte_end":79703,"line_start":164,"line_end":164,"column_start":12,"column_end":20},"name":"DynGuard","qualname":"::access::DynGuard","value":"","parent":null,"children":[],"decl_id":null,"docs":" Plumbing type.","sig":null,"attributes":[{"value":"/ Plumbing type.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":79571,"byte_end":79589,"line_start":161,"line_end":161,"column_start":1,"column_end":19}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":79590,"byte_end":79593,"line_start":162,"line_end":162,"column_start":1,"column_end":4}},{"value":"/ This is the guard of [`DynAccess`] trait. It is effectively `Box>`.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":79594,"byte_end":79683,"line_start":163,"line_end":163,"column_start":1,"column_end":90}}]},{"kind":"Trait","id":{"krate":0,"index":54},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80651,"byte_end":80660,"line_start":199,"line_end":199,"column_start":11,"column_end":20},"name":"DynAccess","qualname":"::access::DynAccess","value":"DynAccess","parent":null,"children":[{"krate":0,"index":56}],"decl_id":null,"docs":" An object-safe version of the [`Access`] trait.","sig":null,"attributes":[{"value":"/ An object-safe version of the [`Access`] trait.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":79855,"byte_end":79906,"line_start":173,"line_end":173,"column_start":1,"column_end":52}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":79907,"byte_end":79910,"line_start":174,"line_end":174,"column_start":1,"column_end":4}},{"value":"/ This can be used instead of the [`Access`] trait in case a type erasure is desired. This has","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":79911,"byte_end":80007,"line_start":175,"line_end":175,"column_start":1,"column_end":97}},{"value":"/ the effect of performance hit (due to boxing of the result and due to dynamic dispatch), but","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80008,"byte_end":80104,"line_start":176,"line_end":176,"column_start":1,"column_end":97}},{"value":"/ makes certain code simpler and possibly makes the executable smaller.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80105,"byte_end":80178,"line_start":177,"line_end":177,"column_start":1,"column_end":74}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80179,"byte_end":80182,"line_start":178,"line_end":178,"column_start":1,"column_end":4}},{"value":"/ This is automatically implemented for everything that implements [`Access`].","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80183,"byte_end":80263,"line_start":179,"line_end":179,"column_start":1,"column_end":81}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80264,"byte_end":80267,"line_start":180,"line_end":180,"column_start":1,"column_end":4}},{"value":"/ # Examples","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80268,"byte_end":80282,"line_start":181,"line_end":181,"column_start":1,"column_end":15}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80283,"byte_end":80286,"line_start":182,"line_end":182,"column_start":1,"column_end":4}},{"value":"/ ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80287,"byte_end":80298,"line_start":183,"line_end":183,"column_start":1,"column_end":12}},{"value":"/ extern crate arc_swap;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80299,"byte_end":80325,"line_start":184,"line_end":184,"column_start":1,"column_end":27}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80326,"byte_end":80329,"line_start":185,"line_end":185,"column_start":1,"column_end":4}},{"value":"/ use std::thread;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80330,"byte_end":80350,"line_start":186,"line_end":186,"column_start":1,"column_end":21}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80351,"byte_end":80354,"line_start":187,"line_end":187,"column_start":1,"column_end":4}},{"value":"/ use arc_swap::access::{Constant, DynAccess};","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80355,"byte_end":80403,"line_start":188,"line_end":188,"column_start":1,"column_end":49}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80404,"byte_end":80407,"line_start":189,"line_end":189,"column_start":1,"column_end":4}},{"value":"/ fn do_something(value: Box + Send>) {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80408,"byte_end":80470,"line_start":190,"line_end":190,"column_start":1,"column_end":63}},{"value":"/ thread::spawn(move || {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80471,"byte_end":80502,"line_start":191,"line_end":191,"column_start":1,"column_end":32}},{"value":"/ let v = value.load();","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80503,"byte_end":80536,"line_start":192,"line_end":192,"column_start":1,"column_end":34}},{"value":"/ println!(\"{}\", *v);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80537,"byte_end":80568,"line_start":193,"line_end":193,"column_start":1,"column_end":32}},{"value":"/ });","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80569,"byte_end":80580,"line_start":194,"line_end":194,"column_start":1,"column_end":12}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80581,"byte_end":80586,"line_start":195,"line_end":195,"column_start":1,"column_end":6}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80587,"byte_end":80590,"line_start":196,"line_end":196,"column_start":1,"column_end":4}},{"value":"/ do_something(Box::new(Constant(42)));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80591,"byte_end":80632,"line_start":197,"line_end":197,"column_start":1,"column_end":42}},{"value":"/ ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80633,"byte_end":80640,"line_start":198,"line_end":198,"column_start":1,"column_end":8}}]},{"kind":"Method","id":{"krate":0,"index":56},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80717,"byte_end":80721,"line_start":201,"line_end":201,"column_start":8,"column_end":12},"name":"load","qualname":"::access::DynAccess::load","value":"fn (&self) -> DynGuard","parent":{"krate":0,"index":54},"children":[],"decl_id":null,"docs":" The equivalent of [`Access::load`].\n","sig":null,"attributes":[{"value":"/ The equivalent of [`Access::load`].","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80670,"byte_end":80709,"line_start":200,"line_end":200,"column_start":5,"column_end":44}}]},{"kind":"Struct","id":{"krate":0,"index":448},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":81111,"byte_end":81119,"line_start":219,"line_end":219,"column_start":12,"column_end":20},"name":"MapGuard","qualname":"::access::MapGuard","value":"MapGuard { }","parent":null,"children":[{"krate":0,"index":451},{"krate":0,"index":452}],"decl_id":null,"docs":" A plumbing type.","sig":null,"attributes":[{"value":"/ A plumbing type.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80919,"byte_end":80939,"line_start":214,"line_end":214,"column_start":1,"column_end":21}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80940,"byte_end":80943,"line_start":215,"line_end":215,"column_start":1,"column_end":4}},{"value":"/ This is the guard type for [`Map`]. It is accessible and nameable, but is not expected to be","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80944,"byte_end":81040,"line_start":216,"line_end":216,"column_start":1,"column_end":97}},{"value":"/ generally used directly.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":81041,"byte_end":81069,"line_start":217,"line_end":217,"column_start":1,"column_end":29}}]},{"kind":"Struct","id":{"krate":0,"index":464},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":82401,"byte_end":82404,"line_start":260,"line_end":260,"column_start":12,"column_end":15},"name":"Map","qualname":"::access::Map","value":"Map { }","parent":null,"children":[{"krate":0,"index":468},{"krate":0,"index":469},{"krate":0,"index":470}],"decl_id":null,"docs":" An adaptor to provide access to a part of larger structure.","sig":null,"attributes":[{"value":"/ An adaptor to provide access to a part of larger structure.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":82182,"byte_end":82245,"line_start":255,"line_end":255,"column_start":1,"column_end":64}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":82246,"byte_end":82249,"line_start":256,"line_end":256,"column_start":1,"column_end":4}},{"value":"/ This is the *active* part of this module. Use the [module documentation](index.html) for the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":82250,"byte_end":82346,"line_start":257,"line_end":257,"column_start":1,"column_end":97}},{"value":"/ details.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":82347,"byte_end":82359,"line_start":258,"line_end":258,"column_start":1,"column_end":13}}]},{"kind":"Method","id":{"krate":0,"index":78},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":83141,"byte_end":83144,"line_start":278,"line_end":278,"column_start":12,"column_end":15},"name":"new","qualname":">::new","value":"fn (access: A, projection: F) -> Self","parent":null,"children":[],"decl_id":null,"docs":" Creates a new instance.","sig":null,"attributes":[{"value":"/ Creates a new instance.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":82518,"byte_end":82545,"line_start":267,"line_end":267,"column_start":5,"column_end":32}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":82550,"byte_end":82553,"line_start":268,"line_end":268,"column_start":5,"column_end":8}},{"value":"/ # Parameters","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":82558,"byte_end":82574,"line_start":269,"line_end":269,"column_start":5,"column_end":21}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":82579,"byte_end":82582,"line_start":270,"line_end":270,"column_start":5,"column_end":8}},{"value":"/ * `access`: Access to the bigger structure. This is usually something like `Arc`","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":82587,"byte_end":82680,"line_start":271,"line_end":271,"column_start":5,"column_end":98}},{"value":"/ or `&ArcSwap`. It is technically possible to use any other [`Access`] here, though, for","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":82685,"byte_end":82778,"line_start":272,"line_end":272,"column_start":5,"column_end":98}},{"value":"/ example to sub-delegate into even smaller structure from a [`Map`] (or generic","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":82783,"byte_end":82867,"line_start":273,"line_end":273,"column_start":5,"column_end":89}},{"value":"/ [`Access`]).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":82872,"byte_end":82890,"line_start":274,"line_end":274,"column_start":5,"column_end":23}},{"value":"/ * `projection`: A function (or closure) responsible to providing a reference into the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":82895,"byte_end":82984,"line_start":275,"line_end":275,"column_start":5,"column_end":94}},{"value":"/ bigger bigger structure, selecting just subset of it. In general, it is expected to be","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":82989,"byte_end":83081,"line_start":276,"line_end":276,"column_start":5,"column_end":97}},{"value":"/ *cheap* (like only taking reference).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":83086,"byte_end":83129,"line_start":277,"line_end":277,"column_start":5,"column_end":48}}]},{"kind":"Struct","id":{"krate":0,"index":485},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":83899,"byte_end":83912,"line_start":311,"line_end":311,"column_start":12,"column_end":25},"name":"ConstantDeref","qualname":"::access::ConstantDeref","value":"","parent":null,"children":[],"decl_id":null,"docs":" A plumbing type.","sig":null,"attributes":[{"value":"/ A plumbing type.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":83677,"byte_end":83697,"line_start":306,"line_end":306,"column_start":1,"column_end":21}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":83698,"byte_end":83701,"line_start":307,"line_end":307,"column_start":1,"column_end":4}},{"value":"/ This is the guard type for [`Constant`]. It is accessible, but is not expected to be generally","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":83702,"byte_end":83800,"line_start":308,"line_end":308,"column_start":1,"column_end":99}},{"value":"/ used directly.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":83801,"byte_end":83819,"line_start":309,"line_end":309,"column_start":1,"column_end":19}}]},{"kind":"Struct","id":{"krate":0,"index":522},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":84498,"byte_end":84506,"line_start":329,"line_end":329,"column_start":12,"column_end":20},"name":"Constant","qualname":"::access::Constant","value":"","parent":null,"children":[],"decl_id":null,"docs":" Access to an constant.","sig":null,"attributes":[{"value":"/ Access to an constant.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":84032,"byte_end":84058,"line_start":320,"line_end":320,"column_start":1,"column_end":27}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":84059,"byte_end":84062,"line_start":321,"line_end":321,"column_start":1,"column_end":4}},{"value":"/ This wraps a constant value to provide [`Access`] to it. It is constant in the sense that,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":84063,"byte_end":84157,"line_start":322,"line_end":322,"column_start":1,"column_end":95}},{"value":"/ unlike [`ArcSwapAny`] and [`Map`], the loaded value will always stay the same (there's no","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":84158,"byte_end":84251,"line_start":323,"line_end":323,"column_start":1,"column_end":94}},{"value":"/ remote `store`).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":84252,"byte_end":84272,"line_start":324,"line_end":324,"column_start":1,"column_end":21}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":84273,"byte_end":84276,"line_start":325,"line_end":325,"column_start":1,"column_end":4}},{"value":"/ The purpose is mostly testing and plugging a parameter that works generically from code that","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":84277,"byte_end":84373,"line_start":326,"line_end":326,"column_start":1,"column_end":97}},{"value":"/ doesn't need the updating functionality.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":84374,"byte_end":84418,"line_start":327,"line_end":327,"column_start":1,"column_end":45}}]},{"kind":"Trait","id":{"krate":0,"index":99},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":88337,"byte_end":88342,"line_start":25,"line_end":25,"column_start":11,"column_end":16},"name":"AsRaw","qualname":"::as_raw::AsRaw","value":"AsRaw","parent":null,"children":[{"krate":0,"index":101}],"decl_id":null,"docs":" A trait describing things that can be turned into a raw pointer.","sig":null,"attributes":[{"value":"/ A trait describing things that can be turned into a raw pointer.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":87580,"byte_end":87648,"line_start":3,"line_end":3,"column_start":1,"column_end":69}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":87649,"byte_end":87652,"line_start":4,"line_end":4,"column_start":1,"column_end":4}},{"value":"/ This is just an abstraction of things that can be passed to the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":87653,"byte_end":87720,"line_start":5,"line_end":5,"column_start":1,"column_end":68}},{"value":"/ [`compare_and_swap`](struct.ArcSwapAny.html#method.compare_and_swap).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":87721,"byte_end":87794,"line_start":6,"line_end":6,"column_start":1,"column_end":74}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":87795,"byte_end":87798,"line_start":7,"line_end":7,"column_start":1,"column_end":4}},{"value":"/ # Examples","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":87799,"byte_end":87813,"line_start":8,"line_end":8,"column_start":1,"column_end":15}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":87814,"byte_end":87817,"line_start":9,"line_end":9,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":87818,"byte_end":87825,"line_start":10,"line_end":10,"column_start":1,"column_end":8}},{"value":"/ use std::ptr;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":87826,"byte_end":87843,"line_start":11,"line_end":11,"column_start":1,"column_end":18}},{"value":"/ use std::sync::Arc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":87844,"byte_end":87867,"line_start":12,"line_end":12,"column_start":1,"column_end":24}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":87868,"byte_end":87871,"line_start":13,"line_end":13,"column_start":1,"column_end":4}},{"value":"/ use arc_swap::ArcSwapOption;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":87872,"byte_end":87904,"line_start":14,"line_end":14,"column_start":1,"column_end":33}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":87905,"byte_end":87908,"line_start":15,"line_end":15,"column_start":1,"column_end":4}},{"value":"/ let a = Arc::new(42);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":87909,"byte_end":87934,"line_start":16,"line_end":16,"column_start":1,"column_end":26}},{"value":"/ let shared = ArcSwapOption::from(Some(Arc::clone(&a)));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":87935,"byte_end":87994,"line_start":17,"line_end":17,"column_start":1,"column_end":60}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":87995,"byte_end":87998,"line_start":18,"line_end":18,"column_start":1,"column_end":4}},{"value":"/ shared.compare_and_swap(&a, Some(Arc::clone(&a)));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":87999,"byte_end":88053,"line_start":19,"line_end":19,"column_start":1,"column_end":55}},{"value":"/ shared.compare_and_swap(&None::>, Some(Arc::clone(&a)));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":88054,"byte_end":88121,"line_start":20,"line_end":20,"column_start":1,"column_end":68}},{"value":"/ shared.compare_and_swap(shared.load(), Some(Arc::clone(&a)));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":88122,"byte_end":88187,"line_start":21,"line_end":21,"column_start":1,"column_end":66}},{"value":"/ shared.compare_and_swap(&shared.load(), Some(Arc::clone(&a)));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":88188,"byte_end":88254,"line_start":22,"line_end":22,"column_start":1,"column_end":67}},{"value":"/ shared.compare_and_swap(ptr::null(), Some(Arc::clone(&a)));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":88255,"byte_end":88318,"line_start":23,"line_end":23,"column_start":1,"column_end":64}},{"value":"/ ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":88319,"byte_end":88326,"line_start":24,"line_end":24,"column_start":1,"column_end":8}}]},{"kind":"Method","id":{"krate":0,"index":101},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":88402,"byte_end":88408,"line_start":27,"line_end":27,"column_start":8,"column_end":14},"name":"as_raw","qualname":"::as_raw::AsRaw::as_raw","value":"fn (&self) -> *mut T","parent":{"krate":0,"index":99},"children":[],"decl_id":null,"docs":" Converts the value into a raw pointer.\n","sig":null,"attributes":[{"value":"/ Converts the value into a raw pointer.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":88352,"byte_end":88394,"line_start":26,"line_end":26,"column_start":5,"column_end":47}}]},{"kind":"Mod","id":{"krate":0,"index":120},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"name":"cache","qualname":"::cache","value":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","parent":null,"children":[{"krate":0,"index":121},{"krate":0,"index":122},{"krate":0,"index":123},{"krate":0,"index":124},{"krate":0,"index":125},{"krate":0,"index":126},{"krate":0,"index":559},{"krate":0,"index":568},{"krate":0,"index":564},{"krate":0,"index":129},{"krate":0,"index":141},{"krate":0,"index":146},{"krate":0,"index":572},{"krate":0,"index":583},{"krate":0,"index":578},{"krate":0,"index":151}],"decl_id":null,"docs":" Caching handle into the [ArcSwapAny].","sig":null,"attributes":[{"value":"deny(unsafe_code)","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":89003,"byte_end":89024,"line_start":1,"line_end":1,"column_start":1,"column_end":22}},{"value":"! Caching handle into the [ArcSwapAny].","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":89026,"byte_end":89067,"line_start":3,"line_end":3,"column_start":1,"column_end":42}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":89068,"byte_end":89071,"line_start":4,"line_end":4,"column_start":1,"column_end":4}},{"value":"! The [Cache] keeps a copy of the internal [Arc] for faster access.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":89072,"byte_end":89141,"line_start":5,"line_end":5,"column_start":1,"column_end":70}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":89142,"byte_end":89145,"line_start":6,"line_end":6,"column_start":1,"column_end":4}},{"value":"! [Arc]: std::sync::Arc","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":89146,"byte_end":89171,"line_start":7,"line_end":7,"column_start":1,"column_end":26}}]},{"kind":"Trait","id":{"krate":0,"index":126},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":89641,"byte_end":89647,"line_start":23,"line_end":23,"column_start":11,"column_end":17},"name":"Access","qualname":"::cache::Access","value":"Access","parent":null,"children":[{"krate":0,"index":128}],"decl_id":null,"docs":" Generalization of caches providing access to `T`.","sig":null,"attributes":[{"value":"/ Generalization of caches providing access to `T`.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":89314,"byte_end":89367,"line_start":16,"line_end":16,"column_start":1,"column_end":54}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":89368,"byte_end":89371,"line_start":17,"line_end":17,"column_start":1,"column_end":4}},{"value":"/ This abstracts over all kinds of caches that can provide a cheap access to values of type `T`.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":89372,"byte_end":89470,"line_start":18,"line_end":18,"column_start":1,"column_end":99}},{"value":"/ This is useful in cases where some code doesn't care if the `T` is the whole structure or just","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":89471,"byte_end":89569,"line_start":19,"line_end":19,"column_start":1,"column_end":99}},{"value":"/ a part of it.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":89570,"byte_end":89587,"line_start":20,"line_end":20,"column_start":1,"column_end":18}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":89588,"byte_end":89591,"line_start":21,"line_end":21,"column_start":1,"column_end":4}},{"value":"/ See the example at [`Cache::map`].","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":89592,"byte_end":89630,"line_start":22,"line_end":22,"column_start":1,"column_end":39}}]},{"kind":"Method","id":{"krate":0,"index":128},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":89799,"byte_end":89803,"line_start":27,"line_end":27,"column_start":8,"column_end":12},"name":"load","qualname":"::cache::Access::load","value":"fn (&mut self) -> &T","parent":{"krate":0,"index":126},"children":[],"decl_id":null,"docs":" Loads the value from cache.","sig":null,"attributes":[{"value":"/ Loads the value from cache.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":89657,"byte_end":89688,"line_start":24,"line_end":24,"column_start":5,"column_end":36}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":89693,"byte_end":89696,"line_start":25,"line_end":25,"column_start":5,"column_end":8}},{"value":"/ This revalidates the value in the cache, then provides the access to the cached value.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":89701,"byte_end":89791,"line_start":26,"line_end":26,"column_start":5,"column_end":95}}]},{"kind":"Struct","id":{"krate":0,"index":559},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91561,"byte_end":91566,"line_start":74,"line_end":74,"column_start":12,"column_end":17},"name":"Cache","qualname":"::cache::Cache","value":"Cache { }","parent":null,"children":[{"krate":0,"index":562},{"krate":0,"index":563}],"decl_id":null,"docs":" Caching handle for [`ArcSwapAny`][ArcSwapAny].","sig":null,"attributes":[{"value":"/ Caching handle for [`ArcSwapAny`][ArcSwapAny].","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":89825,"byte_end":89875,"line_start":30,"line_end":30,"column_start":1,"column_end":51}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":89876,"byte_end":89879,"line_start":31,"line_end":31,"column_start":1,"column_end":4}},{"value":"/ Instead of loading the [`Arc`][Arc] on every request from the shared storage, this keeps","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":89880,"byte_end":89972,"line_start":32,"line_end":32,"column_start":1,"column_end":93}},{"value":"/ another copy inside itself. Upon request it only cheaply revalidates it is up to","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":89973,"byte_end":90057,"line_start":33,"line_end":33,"column_start":1,"column_end":85}},{"value":"/ date. If it is, access is significantly faster. If it is stale, the [load_full] is done and the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":90058,"byte_end":90157,"line_start":34,"line_end":34,"column_start":1,"column_end":100}},{"value":"/ cache value is replaced. Under a read-heavy loads, the measured speedup are 10-25 times,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":90158,"byte_end":90250,"line_start":35,"line_end":35,"column_start":1,"column_end":93}},{"value":"/ depending on the architecture.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":90251,"byte_end":90285,"line_start":36,"line_end":36,"column_start":1,"column_end":35}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":90286,"byte_end":90289,"line_start":37,"line_end":37,"column_start":1,"column_end":4}},{"value":"/ There are, however, downsides:","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":90290,"byte_end":90324,"line_start":38,"line_end":38,"column_start":1,"column_end":35}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":90325,"byte_end":90328,"line_start":39,"line_end":39,"column_start":1,"column_end":4}},{"value":"/ * The handle needs to be kept around by the caller (usually, one per thread). This is fine if","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":90329,"byte_end":90426,"line_start":40,"line_end":40,"column_start":1,"column_end":98}},{"value":"/ there's one global `ArcSwapAny`, but starts being tricky with eg. data structures build from","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":90427,"byte_end":90525,"line_start":41,"line_end":41,"column_start":1,"column_end":99}},{"value":"/ them.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":90526,"byte_end":90537,"line_start":42,"line_end":42,"column_start":1,"column_end":12}},{"value":"/ * As it keeps a copy of the [Arc] inside the cache, the old value may be kept alive for longer","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":90538,"byte_end":90636,"line_start":43,"line_end":43,"column_start":1,"column_end":99}},{"value":"/ period of time ‒ it is replaced by the new value on [load][Cache::load]. You may not want to","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":90637,"byte_end":90737,"line_start":44,"line_end":44,"column_start":1,"column_end":99}},{"value":"/ use this if dropping the old value in timely manner is important (possibly because of","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":90738,"byte_end":90829,"line_start":45,"line_end":45,"column_start":1,"column_end":92}},{"value":"/ releasing large amount of RAM or because of closing file handles).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":90830,"byte_end":90902,"line_start":46,"line_end":46,"column_start":1,"column_end":73}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":90903,"byte_end":90906,"line_start":47,"line_end":47,"column_start":1,"column_end":4}},{"value":"/ # Examples","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":90907,"byte_end":90921,"line_start":48,"line_end":48,"column_start":1,"column_end":15}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":90922,"byte_end":90925,"line_start":49,"line_end":49,"column_start":1,"column_end":4}},{"value":"/ ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":90926,"byte_end":90937,"line_start":50,"line_end":50,"column_start":1,"column_end":12}},{"value":"/ # fn do_something(_v: V) { }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":90938,"byte_end":90973,"line_start":51,"line_end":51,"column_start":1,"column_end":36}},{"value":"/ use std::sync::Arc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":90974,"byte_end":90997,"line_start":52,"line_end":52,"column_start":1,"column_end":24}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":90998,"byte_end":91001,"line_start":53,"line_end":53,"column_start":1,"column_end":4}},{"value":"/ use arc_swap::{ArcSwap, Cache};","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91002,"byte_end":91037,"line_start":54,"line_end":54,"column_start":1,"column_end":36}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91038,"byte_end":91041,"line_start":55,"line_end":55,"column_start":1,"column_end":4}},{"value":"/ let shared = Arc::new(ArcSwap::from_pointee(42));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91042,"byte_end":91095,"line_start":56,"line_end":56,"column_start":1,"column_end":54}},{"value":"/ // Start 10 worker threads...","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91096,"byte_end":91129,"line_start":57,"line_end":57,"column_start":1,"column_end":34}},{"value":"/ for _ in 0..10 {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91130,"byte_end":91150,"line_start":58,"line_end":58,"column_start":1,"column_end":21}},{"value":"/ let mut cache = Cache::new(Arc::clone(&shared));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91151,"byte_end":91207,"line_start":59,"line_end":59,"column_start":1,"column_end":57}},{"value":"/ std::thread::spawn(move || {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91208,"byte_end":91244,"line_start":60,"line_end":60,"column_start":1,"column_end":37}},{"value":"/ // Keep loading it like mad..","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91245,"byte_end":91286,"line_start":61,"line_end":61,"column_start":1,"column_end":42}},{"value":"/ loop {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91287,"byte_end":91305,"line_start":62,"line_end":62,"column_start":1,"column_end":19}},{"value":"/ let value = cache.load();","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91306,"byte_end":91347,"line_start":63,"line_end":63,"column_start":1,"column_end":42}},{"value":"/ do_something(value);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91348,"byte_end":91384,"line_start":64,"line_end":64,"column_start":1,"column_end":37}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91385,"byte_end":91398,"line_start":65,"line_end":65,"column_start":1,"column_end":14}},{"value":"/ });","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91399,"byte_end":91410,"line_start":66,"line_end":66,"column_start":1,"column_end":12}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91411,"byte_end":91416,"line_start":67,"line_end":67,"column_start":1,"column_end":6}},{"value":"/ shared.store(Arc::new(12));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91417,"byte_end":91448,"line_start":68,"line_end":68,"column_start":1,"column_end":32}},{"value":"/ ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91449,"byte_end":91456,"line_start":69,"line_end":69,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91457,"byte_end":91460,"line_start":70,"line_end":70,"column_start":1,"column_end":4}},{"value":"/ [Arc]: std::sync::Arc","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91461,"byte_end":91486,"line_start":71,"line_end":71,"column_start":1,"column_end":26}},{"value":"/ [load_full]: ArcSwapAny::load_full","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91487,"byte_end":91525,"line_start":72,"line_end":72,"column_start":1,"column_end":39}}]},{"kind":"Method","id":{"krate":0,"index":133},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":92224,"byte_end":92227,"line_start":94,"line_end":94,"column_start":12,"column_end":15},"name":"new","qualname":">::new","value":"fn (arc_swap: A) -> Self","parent":null,"children":[],"decl_id":null,"docs":" Creates a new caching handle.","sig":null,"attributes":[{"value":"/ Creates a new caching handle.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91724,"byte_end":91757,"line_start":85,"line_end":85,"column_start":5,"column_end":38}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91762,"byte_end":91765,"line_start":86,"line_end":86,"column_start":5,"column_end":8}},{"value":"/ The parameter is something dereferencing into an [`ArcSwapAny`] (eg. either to [`ArcSwap`]","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91770,"byte_end":91864,"line_start":87,"line_end":87,"column_start":5,"column_end":99}},{"value":"/ or [`ArcSwapOption`]). That can be [`ArcSwapAny`] itself, but that's not very useful. But","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91869,"byte_end":91962,"line_start":88,"line_end":88,"column_start":5,"column_end":98}},{"value":"/ it also can be a reference to it or `Arc`, which makes it possible to share the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91967,"byte_end":92050,"line_start":89,"line_end":89,"column_start":5,"column_end":88}},{"value":"/ [`ArcSwapAny`] with multiple caches or access it in non-cached way too.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":92055,"byte_end":92130,"line_start":90,"line_end":90,"column_start":5,"column_end":80}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":92135,"byte_end":92138,"line_start":91,"line_end":91,"column_start":5,"column_end":8}},{"value":"/ [`ArcSwapOption`]: ::ArcSwapOption","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":92143,"byte_end":92181,"line_start":92,"line_end":92,"column_start":5,"column_end":43}},{"value":"/ [`ArcSwap`]: ::ArcSwap","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":92186,"byte_end":92212,"line_start":93,"line_end":93,"column_start":5,"column_end":31}}]},{"kind":"Method","id":{"krate":0,"index":134},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":92415,"byte_end":92423,"line_start":100,"line_end":100,"column_start":12,"column_end":20},"name":"arc_swap","qualname":">::arc_swap","value":"fn (&self) -> &A::Target","parent":null,"children":[],"decl_id":null,"docs":" Gives access to the (possibly shared) cached [`ArcSwapAny`].\n","sig":null,"attributes":[{"value":"/ Gives access to the (possibly shared) cached [`ArcSwapAny`].","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":92339,"byte_end":92403,"line_start":99,"line_end":99,"column_start":5,"column_end":69}}]},{"kind":"Method","id":{"krate":0,"index":135},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":92885,"byte_end":92889,"line_start":112,"line_end":112,"column_start":12,"column_end":16},"name":"load","qualname":">::load","value":"fn (&mut self) -> &T","parent":null,"children":[],"decl_id":null,"docs":" Loads the currently held value.","sig":null,"attributes":[{"value":"/ Loads the currently held value.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":92481,"byte_end":92516,"line_start":104,"line_end":104,"column_start":5,"column_end":40}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":92521,"byte_end":92524,"line_start":105,"line_end":105,"column_start":5,"column_end":8}},{"value":"/ This first checks if the cached value is up to date. This check is very cheap.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":92529,"byte_end":92611,"line_start":106,"line_end":106,"column_start":5,"column_end":87}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":92616,"byte_end":92619,"line_start":107,"line_end":107,"column_start":5,"column_end":8}},{"value":"/ If it is up to date, the cached value is simply returned without additional costs. If it is","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":92624,"byte_end":92719,"line_start":108,"line_end":108,"column_start":5,"column_end":100}},{"value":"/ outdated, a load is done on the underlying shared storage. The newly loaded value is then","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":92724,"byte_end":92817,"line_start":109,"line_end":109,"column_start":5,"column_end":98}},{"value":"/ stored in the cache and returned.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":92822,"byte_end":92859,"line_start":110,"line_end":110,"column_start":5,"column_end":42}},{"value":"inline","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":92864,"byte_end":92873,"line_start":111,"line_end":111,"column_start":5,"column_end":14}}]},{"kind":"Method","id":{"krate":0,"index":138},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":95535,"byte_end":95538,"line_start":184,"line_end":184,"column_start":12,"column_end":15},"name":"map","qualname":">::map","value":"fn (self, f: F) -> MapCache","parent":null,"children":[],"decl_id":null,"docs":" Turns this cache into a cache with a projection inside the cached value.","sig":null,"attributes":[{"value":"/ Turns this cache into a cache with a projection inside the cached value.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":93607,"byte_end":93683,"line_start":134,"line_end":134,"column_start":5,"column_end":81}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":93688,"byte_end":93691,"line_start":135,"line_end":135,"column_start":5,"column_end":8}},{"value":"/ You'd use this in case when some part of code needs access to fresh values of `U`, however","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":93696,"byte_end":93790,"line_start":136,"line_end":136,"column_start":5,"column_end":99}},{"value":"/ a bigger structure containing `U` is provided by this cache. The possibility of giving the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":93795,"byte_end":93889,"line_start":137,"line_end":137,"column_start":5,"column_end":99}},{"value":"/ whole structure to the part of the code falls short in terms of reusability (the part of","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":93894,"byte_end":93986,"line_start":138,"line_end":138,"column_start":5,"column_end":97}},{"value":"/ the code could be used within multiple contexts, each with a bigger different structure","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":93991,"byte_end":94082,"line_start":139,"line_end":139,"column_start":5,"column_end":96}},{"value":"/ containing `U`) and code separation (the code shouldn't needs to know about the big","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94087,"byte_end":94174,"line_start":140,"line_end":140,"column_start":5,"column_end":92}},{"value":"/ structure).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94179,"byte_end":94194,"line_start":141,"line_end":141,"column_start":5,"column_end":20}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94199,"byte_end":94202,"line_start":142,"line_end":142,"column_start":5,"column_end":8}},{"value":"/ # Warning","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94207,"byte_end":94220,"line_start":143,"line_end":143,"column_start":5,"column_end":18}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94225,"byte_end":94228,"line_start":144,"line_end":144,"column_start":5,"column_end":8}},{"value":"/ As the provided `f` is called inside every [`load`][Access::load], this one should be","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94233,"byte_end":94322,"line_start":145,"line_end":145,"column_start":5,"column_end":94}},{"value":"/ cheap. Most often it is expected to be just a closure taking reference of some inner field.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94327,"byte_end":94422,"line_start":146,"line_end":146,"column_start":5,"column_end":100}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94427,"byte_end":94430,"line_start":147,"line_end":147,"column_start":5,"column_end":8}},{"value":"/ For the same reasons, it should not have side effects and should never panic (these will","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94435,"byte_end":94527,"line_start":148,"line_end":148,"column_start":5,"column_end":97}},{"value":"/ not break Rust's safety rules, but might produce behaviour you don't expect).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94532,"byte_end":94613,"line_start":149,"line_end":149,"column_start":5,"column_end":86}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94618,"byte_end":94621,"line_start":150,"line_end":150,"column_start":5,"column_end":8}},{"value":"/ # Examples","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94626,"byte_end":94640,"line_start":151,"line_end":151,"column_start":5,"column_end":19}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94645,"byte_end":94648,"line_start":152,"line_end":152,"column_start":5,"column_end":8}},{"value":"/ ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94653,"byte_end":94664,"line_start":153,"line_end":153,"column_start":5,"column_end":16}},{"value":"/ extern crate arc_swap;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94669,"byte_end":94695,"line_start":154,"line_end":154,"column_start":5,"column_end":31}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94700,"byte_end":94703,"line_start":155,"line_end":155,"column_start":5,"column_end":8}},{"value":"/ use arc_swap::ArcSwap;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94708,"byte_end":94734,"line_start":156,"line_end":156,"column_start":5,"column_end":31}},{"value":"/ use arc_swap::cache::{Access, Cache};","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94739,"byte_end":94780,"line_start":157,"line_end":157,"column_start":5,"column_end":46}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94785,"byte_end":94788,"line_start":158,"line_end":158,"column_start":5,"column_end":8}},{"value":"/ struct InnerCfg {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94793,"byte_end":94814,"line_start":159,"line_end":159,"column_start":5,"column_end":26}},{"value":"/ answer: usize,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94819,"byte_end":94841,"line_start":160,"line_end":160,"column_start":5,"column_end":27}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94846,"byte_end":94851,"line_start":161,"line_end":161,"column_start":5,"column_end":10}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94856,"byte_end":94859,"line_start":162,"line_end":162,"column_start":5,"column_end":8}},{"value":"/ struct FullCfg {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94864,"byte_end":94884,"line_start":163,"line_end":163,"column_start":5,"column_end":25}},{"value":"/ inner: InnerCfg,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94889,"byte_end":94913,"line_start":164,"line_end":164,"column_start":5,"column_end":29}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94918,"byte_end":94923,"line_start":165,"line_end":165,"column_start":5,"column_end":10}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94928,"byte_end":94931,"line_start":166,"line_end":166,"column_start":5,"column_end":8}},{"value":"/ fn use_inner>(cache: &mut A) {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94936,"byte_end":94990,"line_start":167,"line_end":167,"column_start":5,"column_end":59}},{"value":"/ let value = cache.load();","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":94995,"byte_end":95028,"line_start":168,"line_end":168,"column_start":5,"column_end":38}},{"value":"/ println!(\"The answer is: {}\", value.answer);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":95033,"byte_end":95085,"line_start":169,"line_end":169,"column_start":5,"column_end":57}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":95090,"byte_end":95095,"line_start":170,"line_end":170,"column_start":5,"column_end":10}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":95100,"byte_end":95103,"line_start":171,"line_end":171,"column_start":5,"column_end":8}},{"value":"/ let full_cfg = ArcSwap::from_pointee(FullCfg {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":95108,"byte_end":95158,"line_start":172,"line_end":172,"column_start":5,"column_end":55}},{"value":"/ inner: InnerCfg {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":95163,"byte_end":95188,"line_start":173,"line_end":173,"column_start":5,"column_end":30}},{"value":"/ answer: 42,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":95193,"byte_end":95216,"line_start":174,"line_end":174,"column_start":5,"column_end":28}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":95221,"byte_end":95230,"line_start":175,"line_end":175,"column_start":5,"column_end":14}},{"value":"/ });","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":95235,"byte_end":95242,"line_start":176,"line_end":176,"column_start":5,"column_end":12}},{"value":"/ let cache = Cache::new(&full_cfg);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":95247,"byte_end":95285,"line_start":177,"line_end":177,"column_start":5,"column_end":43}},{"value":"/ use_inner(&mut cache.map(|full| &full.inner));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":95290,"byte_end":95340,"line_start":178,"line_end":178,"column_start":5,"column_end":55}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":95345,"byte_end":95348,"line_start":179,"line_end":179,"column_start":5,"column_end":8}},{"value":"/ let inner_cfg = ArcSwap::from_pointee(InnerCfg { answer: 24 });","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":95353,"byte_end":95420,"line_start":180,"line_end":180,"column_start":5,"column_end":72}},{"value":"/ let mut inner_cache = Cache::new(&inner_cfg);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":95425,"byte_end":95474,"line_start":181,"line_end":181,"column_start":5,"column_end":54}},{"value":"/ use_inner(&mut inner_cache);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":95479,"byte_end":95511,"line_start":182,"line_end":182,"column_start":5,"column_end":37}},{"value":"/ ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":95516,"byte_end":95523,"line_start":183,"line_end":183,"column_start":5,"column_end":12}}]},{"kind":"Struct","id":{"krate":0,"index":572},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":96413,"byte_end":96421,"line_start":222,"line_end":222,"column_start":12,"column_end":20},"name":"MapCache","qualname":"::cache::MapCache","value":"MapCache { }","parent":null,"children":[{"krate":0,"index":576},{"krate":0,"index":577}],"decl_id":null,"docs":" An implementation of a cache with a projection into the accessed value.","sig":null,"attributes":[{"value":"/ An implementation of a cache with a projection into the accessed value.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":96152,"byte_end":96227,"line_start":217,"line_end":217,"column_start":1,"column_end":76}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":96228,"byte_end":96231,"line_start":218,"line_end":218,"column_start":1,"column_end":4}},{"value":"/ This is the implementation structure for [`Cache::map`]. It can't be created directly and it","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":96232,"byte_end":96328,"line_start":219,"line_end":219,"column_start":1,"column_end":97}},{"value":"/ should be used through the [`Access`] trait.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":96329,"byte_end":96377,"line_start":220,"line_end":220,"column_start":1,"column_end":49}}]},{"kind":"Mod","id":{"krate":0,"index":203},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"name":"gen_lock","qualname":"::gen_lock","value":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","parent":null,"children":[{"krate":0,"index":204},{"krate":0,"index":205},{"krate":0,"index":208},{"krate":0,"index":209},{"krate":0,"index":598},{"krate":0,"index":602},{"krate":0,"index":210},{"krate":0,"index":213},{"krate":0,"index":218},{"krate":0,"index":219},{"krate":0,"index":220},{"krate":0,"index":222},{"krate":0,"index":224},{"krate":0,"index":604},{"krate":0,"index":608},{"krate":0,"index":610},{"krate":0,"index":225},{"krate":0,"index":612},{"krate":0,"index":616},{"krate":0,"index":231},{"krate":0,"index":618},{"krate":0,"index":622},{"krate":0,"index":238},{"krate":0,"index":625},{"krate":0,"index":239}],"decl_id":null,"docs":" Customization of where and how the generation lock works.","sig":null,"attributes":[{"value":"! Customization of where and how the generation lock works.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":111968,"byte_end":112029,"line_start":1,"line_end":1,"column_start":1,"column_end":62}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":112030,"byte_end":112033,"line_start":2,"line_end":2,"column_start":1,"column_end":4}},{"value":"! By default, all the [`ArcSwapAny`](../struct.ArcSwapAny.html) instances share the same","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":112034,"byte_end":112124,"line_start":3,"line_end":3,"column_start":1,"column_end":91}},{"value":"! generation lock. This is to save space in them (they have the same size as a single pointer),","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":112125,"byte_end":112222,"line_start":4,"line_end":4,"column_start":1,"column_end":98}},{"value":"! because the default lock is quite a large data structure (it's sharded, to prevent too much","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":112223,"byte_end":112318,"line_start":5,"line_end":5,"column_start":1,"column_end":96}},{"value":"! contention between different threads). This has the disadvantage that a lock on one instance","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":112319,"byte_end":112415,"line_start":6,"line_end":6,"column_start":1,"column_end":97}},{"value":"! influences another instance.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":112416,"byte_end":112448,"line_start":7,"line_end":7,"column_start":1,"column_end":33}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":112449,"byte_end":112452,"line_start":8,"line_end":8,"column_start":1,"column_end":4}},{"value":"! The things in this module allow customizing how the lock behaves. The default one is","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":112453,"byte_end":112541,"line_start":9,"line_end":9,"column_start":1,"column_end":89}},{"value":"! [`Global`](struct.Global.html). If you want to use independent but unsharded lock, use the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":112542,"byte_end":112636,"line_start":10,"line_end":10,"column_start":1,"column_end":95}},{"value":"! [`PrivateUnsharded`](struct.PrivateUnsharded.html) (or the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":112637,"byte_end":112699,"line_start":11,"line_end":11,"column_start":1,"column_end":63}},{"value":"! [`IndependentArcSwap`](../type.IndependentArcSwap.html) type alias).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":112700,"byte_end":112772,"line_start":12,"line_end":12,"column_start":1,"column_end":73}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":112773,"byte_end":112776,"line_start":13,"line_end":13,"column_start":1,"column_end":4}},{"value":"! Or you can implement your own lock, but you probably should study the internals of the library","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":112777,"byte_end":112875,"line_start":14,"line_end":14,"column_start":1,"column_end":99}},{"value":"! first.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":112876,"byte_end":112886,"line_start":15,"line_end":15,"column_start":1,"column_end":11}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":112887,"byte_end":112890,"line_start":16,"line_end":16,"column_start":1,"column_end":4}},{"value":"! # Not Implemented Yet","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":112891,"byte_end":112916,"line_start":17,"line_end":17,"column_start":1,"column_end":26}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":112917,"byte_end":112920,"line_start":18,"line_end":18,"column_start":1,"column_end":4}},{"value":"! These variants would probably make sense, but haven't been written yet:","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":112921,"byte_end":112996,"line_start":19,"line_end":19,"column_start":1,"column_end":76}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":112997,"byte_end":113000,"line_start":20,"line_end":20,"column_start":1,"column_end":4}},{"value":"! * A lock storage that is shared, but only between a certain group of pointers. It could be","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":113001,"byte_end":113095,"line_start":21,"line_end":21,"column_start":1,"column_end":95}},{"value":"! either as a reference (but then each `ArcSwap` would get a bit bigger), or a macro that could","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":113096,"byte_end":113195,"line_start":22,"line_end":22,"column_start":1,"column_end":100}},{"value":"! generate an independent but global storage.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":113196,"byte_end":113245,"line_start":23,"line_end":23,"column_start":1,"column_end":50}}]},{"kind":"Struct","id":{"krate":0,"index":598},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":114215,"byte_end":114220,"line_start":48,"line_end":48,"column_start":12,"column_end":17},"name":"Shard","qualname":"::gen_lock::Shard","value":"","parent":null,"children":[],"decl_id":null,"docs":" A single shard.","sig":null,"attributes":[{"value":"/ A single shard.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":113468,"byte_end":113487,"line_start":34,"line_end":34,"column_start":1,"column_end":20}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":113488,"byte_end":113491,"line_start":35,"line_end":35,"column_start":1,"column_end":4}},{"value":"/ This is one copy of place where the library keeps tracks of generation locks. It consists of a","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":113492,"byte_end":113590,"line_start":36,"line_end":36,"column_start":1,"column_end":99}},{"value":"/ pair of counters and allows double-buffering readers (therefore, even if there's a never-ending","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":113591,"byte_end":113690,"line_start":37,"line_end":37,"column_start":1,"column_end":100}},{"value":"/ stream of readers coming in, writer will get through eventually).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":113691,"byte_end":113760,"line_start":38,"line_end":38,"column_start":1,"column_end":70}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":113761,"byte_end":113764,"line_start":39,"line_end":39,"column_start":1,"column_end":4}},{"value":"/ To avoid contention and sharing of the counters between readers, we don't have one pair of","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":113765,"byte_end":113859,"line_start":40,"line_end":40,"column_start":1,"column_end":95}},{"value":"/ generation counters, but several. The reader picks one shard and uses that, while the writer","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":113860,"byte_end":113956,"line_start":41,"line_end":41,"column_start":1,"column_end":97}},{"value":"/ looks through all of them. This is still not perfect (two threads may choose the same ID), but","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":113957,"byte_end":114055,"line_start":42,"line_end":42,"column_start":1,"column_end":99}},{"value":"/ it helps.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":114056,"byte_end":114069,"line_start":43,"line_end":43,"column_start":1,"column_end":14}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":114070,"byte_end":114073,"line_start":44,"line_end":44,"column_start":1,"column_end":4}},{"value":"/ Each [`LockStorage`](trait.LockStorage.html) must provide a (non-empty) array of these.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":114074,"byte_end":114165,"line_start":45,"line_end":45,"column_start":1,"column_end":92}},{"value":"repr(align (64))","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":114166,"byte_end":114184,"line_start":46,"line_end":46,"column_start":1,"column_end":19}}]},{"kind":"Trait","id":{"krate":0,"index":213},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":115010,"byte_end":115021,"line_start":67,"line_end":67,"column_start":18,"column_end":29},"name":"LockStorage","qualname":"::gen_lock::LockStorage","value":"LockStorage: Default","parent":null,"children":[{"krate":0,"index":214},{"krate":0,"index":215},{"krate":0,"index":216},{"krate":0,"index":217}],"decl_id":null,"docs":" Abstraction of the place where generation locks are stored.","sig":null,"attributes":[{"value":"/ Abstraction of the place where generation locks are stored.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":114517,"byte_end":114580,"line_start":60,"line_end":60,"column_start":1,"column_end":64}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":114581,"byte_end":114584,"line_start":61,"line_end":61,"column_start":1,"column_end":4}},{"value":"/ The trait is unsafe because if the trait messes up with the values stored in there in any way","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":114585,"byte_end":114682,"line_start":62,"line_end":62,"column_start":1,"column_end":98}},{"value":"/ (or makes the values available to something else that messes them up), this can cause UB and","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":114683,"byte_end":114779,"line_start":63,"line_end":63,"column_start":1,"column_end":97}},{"value":"/ daemons and discomfort to users and such. The library expects it is the only one storing values","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":114780,"byte_end":114879,"line_start":64,"line_end":64,"column_start":1,"column_end":100}},{"value":"/ there. In other words, it is expected the trait is only a dumb storage and doesn't actively do","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":114880,"byte_end":114978,"line_start":65,"line_end":65,"column_start":1,"column_end":99}},{"value":"/ anything.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":114979,"byte_end":114992,"line_start":66,"line_end":66,"column_start":1,"column_end":14}}]},{"kind":"Type","id":{"krate":0,"index":214},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":115220,"byte_end":115226,"line_start":72,"line_end":72,"column_start":10,"column_end":16},"name":"Shards","qualname":"::gen_lock::LockStorage::Shards","value":"type Shards: AsRef<[Shard]>;","parent":{"krate":0,"index":213},"children":[],"decl_id":null,"docs":" The type for keeping several shards.","sig":null,"attributes":[{"value":"/ The type for keeping several shards.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":115037,"byte_end":115077,"line_start":68,"line_end":68,"column_start":5,"column_end":45}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":115082,"byte_end":115085,"line_start":69,"line_end":69,"column_start":5,"column_end":8}},{"value":"/ In general, it is expected to be a fixed-size array, but different implementations can have","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":115090,"byte_end":115185,"line_start":70,"line_end":70,"column_start":5,"column_end":100}},{"value":"/ different sizes.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":115190,"byte_end":115210,"line_start":71,"line_end":71,"column_start":5,"column_end":25}}]},{"kind":"Method","id":{"krate":0,"index":215},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":115486,"byte_end":115493,"line_start":78,"line_end":78,"column_start":8,"column_end":15},"name":"gen_idx","qualname":"::gen_lock::LockStorage::gen_idx","value":"fn (&self) -> &AtomicUsize","parent":{"krate":0,"index":213},"children":[],"decl_id":null,"docs":" Access to the generation index.","sig":null,"attributes":[{"value":"/ Access to the generation index.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":115249,"byte_end":115284,"line_start":74,"line_end":74,"column_start":5,"column_end":40}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":115289,"byte_end":115292,"line_start":75,"line_end":75,"column_start":5,"column_end":8}},{"value":"/ Must return the same instance of the `AtomicUsize` for the lifetime of the storage, must","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":115297,"byte_end":115389,"line_start":76,"line_end":76,"column_start":5,"column_end":97}},{"value":"/ start at `0` and the trait itself must not modify it. Must be async-signal-safe.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":115394,"byte_end":115478,"line_start":77,"line_end":77,"column_start":5,"column_end":89}}]},{"kind":"Method","id":{"krate":0,"index":216},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":115728,"byte_end":115734,"line_start":84,"line_end":84,"column_start":8,"column_end":14},"name":"shards","qualname":"::gen_lock::LockStorage::shards","value":"fn (&self) -> &Self::Shards","parent":{"krate":0,"index":213},"children":[],"decl_id":null,"docs":" Access to the shards storage.","sig":null,"attributes":[{"value":"/ Access to the shards storage.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":115523,"byte_end":115556,"line_start":80,"line_end":80,"column_start":5,"column_end":38}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":115561,"byte_end":115564,"line_start":81,"line_end":81,"column_start":5,"column_end":8}},{"value":"/ Must return the same instance of the shards for the lifetime of the storage. Must start","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":115569,"byte_end":115660,"line_start":82,"line_end":82,"column_start":5,"column_end":96}},{"value":"/ zeroed-out and the trait itself must not modify it.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":115665,"byte_end":115720,"line_start":83,"line_end":83,"column_start":5,"column_end":60}}]},{"kind":"Method","id":{"krate":0,"index":217},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":115949,"byte_end":115961,"line_start":90,"line_end":90,"column_start":8,"column_end":20},"name":"choose_shard","qualname":"::gen_lock::LockStorage::choose_shard","value":"fn (&self) -> usize","parent":{"krate":0,"index":213},"children":[],"decl_id":null,"docs":" Pick one shard of the all selected.","sig":null,"attributes":[{"value":"/ Pick one shard of the all selected.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":115765,"byte_end":115804,"line_start":86,"line_end":86,"column_start":5,"column_end":44}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":115809,"byte_end":115812,"line_start":87,"line_end":87,"column_start":5,"column_end":8}},{"value":"/ Returns the index of one of the shards. The choice can be arbitrary, but it should be fast","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":115817,"byte_end":115911,"line_start":88,"line_end":88,"column_start":5,"column_end":99}},{"value":"/ and avoid collisions.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":115916,"byte_end":115941,"line_start":89,"line_end":89,"column_start":5,"column_end":30}}]},{"kind":"Struct","id":{"krate":0,"index":608},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":117064,"byte_end":117070,"line_start":135,"line_end":135,"column_start":12,"column_end":18},"name":"Global","qualname":"::gen_lock::Global","value":"","parent":null,"children":[],"decl_id":null,"docs":" The default, global lock.","sig":null,"attributes":[{"value":"/ The default, global lock.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":116712,"byte_end":116741,"line_start":128,"line_end":128,"column_start":1,"column_end":30}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":116742,"byte_end":116745,"line_start":129,"line_end":129,"column_start":1,"column_end":4}},{"value":"/ The lock is stored out-of-band, globally. This means that one `ArcSwap` with this lock storage","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":116746,"byte_end":116844,"line_start":130,"line_end":130,"column_start":1,"column_end":99}},{"value":"/ is only one machine word large, but a lock on one instance blocks the other, independent ones.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":116845,"byte_end":116943,"line_start":131,"line_end":131,"column_start":1,"column_end":99}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":116944,"byte_end":116947,"line_start":132,"line_end":132,"column_start":1,"column_end":4}},{"value":"/ It has several shards so threads are less likely to collide (HW-contend) on them.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":116948,"byte_end":117033,"line_start":133,"line_end":133,"column_start":1,"column_end":86}}]},{"kind":"Struct","id":{"krate":0,"index":612},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":118743,"byte_end":118759,"line_start":189,"line_end":189,"column_start":12,"column_end":28},"name":"PrivateUnsharded","qualname":"::gen_lock::PrivateUnsharded","value":"PrivateUnsharded { }","parent":null,"children":[{"krate":0,"index":613},{"krate":0,"index":614}],"decl_id":null,"docs":" A single „shard“ that is stored inline, inside the corresponding `ArcSwap`. Therefore, locks on\n each instance won't influence any other instances. On the other hand, the `ArcSwap` itself gets\n bigger and doesn't have multiple shards, so concurrent uses might contend each other a bit.","sig":null,"attributes":[{"value":"/ A single „shard“ that is stored inline, inside the corresponding `ArcSwap`. Therefore, locks on","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":117672,"byte_end":117775,"line_start":165,"line_end":165,"column_start":1,"column_end":100}},{"value":"/ each instance won't influence any other instances. On the other hand, the `ArcSwap` itself gets","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":117776,"byte_end":117875,"line_start":166,"line_end":166,"column_start":1,"column_end":100}},{"value":"/ bigger and doesn't have multiple shards, so concurrent uses might contend each other a bit.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":117876,"byte_end":117971,"line_start":167,"line_end":167,"column_start":1,"column_end":96}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":117972,"byte_end":117975,"line_start":168,"line_end":168,"column_start":1,"column_end":4}},{"value":"/ ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":117976,"byte_end":117987,"line_start":169,"line_end":169,"column_start":1,"column_end":12}},{"value":"/ # use std::sync::Arc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":117988,"byte_end":118013,"line_start":170,"line_end":170,"column_start":1,"column_end":26}},{"value":"/ # use arc_swap::{ArcSwap, ArcSwapAny};","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":118014,"byte_end":118056,"line_start":171,"line_end":171,"column_start":1,"column_end":43}},{"value":"/ # use arc_swap::gen_lock::PrivateUnsharded;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":118057,"byte_end":118104,"line_start":172,"line_end":172,"column_start":1,"column_end":48}},{"value":"/ // This one shares locks with others.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":118105,"byte_end":118146,"line_start":173,"line_end":173,"column_start":1,"column_end":42}},{"value":"/ let shared = ArcSwap::from_pointee(42);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":118147,"byte_end":118190,"line_start":174,"line_end":174,"column_start":1,"column_end":44}},{"value":"/ // But this one has an independent lock.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":118191,"byte_end":118235,"line_start":175,"line_end":175,"column_start":1,"column_end":45}},{"value":"/ let independent = ArcSwapAny::, PrivateUnsharded>::from_pointee(42);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":118236,"byte_end":118319,"line_start":176,"line_end":176,"column_start":1,"column_end":84}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":118320,"byte_end":118323,"line_start":177,"line_end":177,"column_start":1,"column_end":4}},{"value":"/ // This'll hold a lock so any writers there wouldn't complete","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":118324,"byte_end":118389,"line_start":178,"line_end":178,"column_start":1,"column_end":66}},{"value":"/ let l = independent.load_signal_safe();","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":118390,"byte_end":118433,"line_start":179,"line_end":179,"column_start":1,"column_end":44}},{"value":"/ // But the lock doesn't influence the shared one, so this goes through just fine","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":118434,"byte_end":118518,"line_start":180,"line_end":180,"column_start":1,"column_end":85}},{"value":"/ shared.store(Arc::new(43));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":118519,"byte_end":118550,"line_start":181,"line_end":181,"column_start":1,"column_end":32}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":118551,"byte_end":118554,"line_start":182,"line_end":182,"column_start":1,"column_end":4}},{"value":"/ assert_eq!(42, **l);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":118555,"byte_end":118579,"line_start":183,"line_end":183,"column_start":1,"column_end":25}},{"value":"/ ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":118580,"byte_end":118587,"line_start":184,"line_end":184,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":118588,"byte_end":118591,"line_start":185,"line_end":185,"column_start":1,"column_end":4}},{"value":"/ Note that there`s a type alias [`IndependentArcSwap`](../type.IndependentArcSwap.html) that can","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":118592,"byte_end":118691,"line_start":186,"line_end":186,"column_start":1,"column_end":100}},{"value":"/ be used instead.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":118692,"byte_end":118712,"line_start":187,"line_end":187,"column_start":1,"column_end":21}}]},{"kind":"Struct","id":{"krate":0,"index":618},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":119814,"byte_end":119828,"line_start":227,"line_end":227,"column_start":12,"column_end":26},"name":"PrivateSharded","qualname":"::gen_lock::PrivateSharded","value":"PrivateSharded { }","parent":null,"children":[{"krate":0,"index":620},{"krate":0,"index":621}],"decl_id":null,"docs":" An alternative to [`PrivateUnsharded`], but with configurable number of shards.","sig":null,"attributes":[{"value":"/ An alternative to [`PrivateUnsharded`], but with configurable number of shards.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":119125,"byte_end":119208,"line_start":213,"line_end":213,"column_start":1,"column_end":84}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":119209,"byte_end":119212,"line_start":214,"line_end":214,"column_start":1,"column_end":4}},{"value":"/ The [`PrivateUnsharded`] is almost identical to `PrivateSharded<[Shard; 1]>` (the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":119213,"byte_end":119298,"line_start":215,"line_end":215,"column_start":1,"column_end":86}},{"value":"/ implementation takes advantage of some details to avoid a little bit of overhead). It allows","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":119299,"byte_end":119395,"line_start":216,"line_end":216,"column_start":1,"column_end":97}},{"value":"/ the user to choose the trade-of between contention during locking and size of the pointer and","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":119396,"byte_end":119493,"line_start":217,"line_end":217,"column_start":1,"column_end":98}},{"value":"/ speed during writes.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":119494,"byte_end":119518,"line_start":218,"line_end":218,"column_start":1,"column_end":25}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":119519,"byte_end":119522,"line_start":219,"line_end":219,"column_start":1,"column_end":4}},{"value":"/ [`PrivateUnsharded`]: struct.PrivateUnsharded.html","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":119523,"byte_end":119577,"line_start":220,"line_end":220,"column_start":1,"column_end":55}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":119578,"byte_end":119581,"line_start":221,"line_end":221,"column_start":1,"column_end":4}},{"value":"/ # Note on `AsRef<[Shard]>`","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":119582,"byte_end":119612,"line_start":222,"line_end":222,"column_start":1,"column_end":31}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":119613,"byte_end":119616,"line_start":223,"line_end":223,"column_start":1,"column_end":4}},{"value":"/ Rust provides the `AsRef` trait (or, actually any trait) up to arrays of 32 elements. If you","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":119617,"byte_end":119713,"line_start":224,"line_end":224,"column_start":1,"column_end":97}},{"value":"/ need something bigger, you have to work around it with a newtype.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":119714,"byte_end":119783,"line_start":225,"line_end":225,"column_start":1,"column_end":70}}]},{"kind":"Trait","id":{"krate":0,"index":250},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":123853,"byte_end":123859,"line_start":37,"line_end":37,"column_start":18,"column_end":24},"name":"RefCnt","qualname":"::ref_cnt::RefCnt","value":"RefCnt: Clone","parent":null,"children":[{"krate":0,"index":251},{"krate":0,"index":252},{"krate":0,"index":253},{"krate":0,"index":254},{"krate":0,"index":255},{"krate":0,"index":256}],"decl_id":null,"docs":" A trait describing smart reference counted pointers.","sig":null,"attributes":[{"value":"/ A trait describing smart reference counted pointers.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":122181,"byte_end":122237,"line_start":5,"line_end":5,"column_start":1,"column_end":57}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":122238,"byte_end":122241,"line_start":6,"line_end":6,"column_start":1,"column_end":4}},{"value":"/ Note that in a way [`Option>`][Option] is also a smart reference counted pointer, just","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":122242,"byte_end":122339,"line_start":7,"line_end":7,"column_start":1,"column_end":98}},{"value":"/ one that can hold NULL.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":122340,"byte_end":122367,"line_start":8,"line_end":8,"column_start":1,"column_end":28}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":122368,"byte_end":122371,"line_start":9,"line_end":9,"column_start":1,"column_end":4}},{"value":"/ The trait is unsafe, because a wrong implementation will break the [ArcSwapAny]","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":122372,"byte_end":122455,"line_start":10,"line_end":10,"column_start":1,"column_end":84}},{"value":"/ implementation and lead to UB.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":122456,"byte_end":122490,"line_start":11,"line_end":11,"column_start":1,"column_end":35}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":122491,"byte_end":122494,"line_start":12,"line_end":12,"column_start":1,"column_end":4}},{"value":"/ This is not actually expected for downstream crate to implement, this is just means to reuse","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":122495,"byte_end":122591,"line_start":13,"line_end":13,"column_start":1,"column_end":97}},{"value":"/ code for [Arc] and [`Option`][Option] variants. However, it is theoretically possible (if","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":122592,"byte_end":122690,"line_start":14,"line_end":14,"column_start":1,"column_end":99}},{"value":"/ you have your own [Arc] implementation).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":122691,"byte_end":122735,"line_start":15,"line_end":15,"column_start":1,"column_end":45}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":122736,"byte_end":122739,"line_start":16,"line_end":16,"column_start":1,"column_end":4}},{"value":"/ It is also implemented for [Rc], but that is not considered very useful (because the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":122740,"byte_end":122828,"line_start":17,"line_end":17,"column_start":1,"column_end":89}},{"value":"/ [ArcSwapAny] is not `Send` or `Sync`, therefore there's very little advantage for it to be","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":122829,"byte_end":122923,"line_start":18,"line_end":18,"column_start":1,"column_end":95}},{"value":"/ atomic).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":122924,"byte_end":122936,"line_start":19,"line_end":19,"column_start":1,"column_end":13}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":122937,"byte_end":122940,"line_start":20,"line_end":20,"column_start":1,"column_end":4}},{"value":"/ # Safety","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":122941,"byte_end":122953,"line_start":21,"line_end":21,"column_start":1,"column_end":13}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":122954,"byte_end":122957,"line_start":22,"line_end":22,"column_start":1,"column_end":4}},{"value":"/ Aside from the obvious properties (like that incrementing and decrementing a reference count","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":122958,"byte_end":123054,"line_start":23,"line_end":23,"column_start":1,"column_end":97}},{"value":"/ cancel each out and that having less references tracked than how many things actually point to","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":123055,"byte_end":123153,"line_start":24,"line_end":24,"column_start":1,"column_end":99}},{"value":"/ the value is fine as long as the count doesn't drop to 0), it also must satisfy that if two","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":123154,"byte_end":123249,"line_start":25,"line_end":25,"column_start":1,"column_end":96}},{"value":"/ pointers have the same value, they point to the same object. This is specifically not true for","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":123250,"byte_end":123348,"line_start":26,"line_end":26,"column_start":1,"column_end":99}},{"value":"/ ZSTs, but it is true for `Arc`s of ZSTs, because they have the reference counts just after the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":123349,"byte_end":123447,"line_start":27,"line_end":27,"column_start":1,"column_end":99}},{"value":"/ value. It would be fine to point to a type-erased version of the same object, though (if one","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":123448,"byte_end":123544,"line_start":28,"line_end":28,"column_start":1,"column_end":97}},{"value":"/ could use this trait with unsized types in the first place).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":123545,"byte_end":123609,"line_start":29,"line_end":29,"column_start":1,"column_end":65}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":123610,"byte_end":123613,"line_start":30,"line_end":30,"column_start":1,"column_end":4}},{"value":"/ Furthermore, the type should be Pin (eg. if the type is cloned or moved, it should still","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":123614,"byte_end":123706,"line_start":31,"line_end":31,"column_start":1,"column_end":93}},{"value":"/ point/deref to the same place in memory).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":123707,"byte_end":123752,"line_start":32,"line_end":32,"column_start":1,"column_end":46}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":123753,"byte_end":123756,"line_start":33,"line_end":33,"column_start":1,"column_end":4}},{"value":"/ [Arc]: std::sync::Arc","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":123757,"byte_end":123782,"line_start":34,"line_end":34,"column_start":1,"column_end":26}},{"value":"/ [Rc]: std::rc::Rc","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":123783,"byte_end":123804,"line_start":35,"line_end":35,"column_start":1,"column_end":22}},{"value":"/ [ArcSwapAny]: ::ArcSwapAny","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":123805,"byte_end":123835,"line_start":36,"line_end":36,"column_start":1,"column_end":31}}]},{"kind":"Type","id":{"krate":0,"index":251},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":123923,"byte_end":123927,"line_start":39,"line_end":39,"column_start":10,"column_end":14},"name":"Base","qualname":"::ref_cnt::RefCnt::Base","value":"type Base;","parent":{"krate":0,"index":250},"children":[],"decl_id":null,"docs":" The base type the pointer points to.\n","sig":null,"attributes":[{"value":"/ The base type the pointer points to.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":123873,"byte_end":123913,"line_start":38,"line_end":38,"column_start":5,"column_end":45}}]},{"kind":"Method","id":{"krate":0,"index":252},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":124322,"byte_end":124330,"line_start":48,"line_end":48,"column_start":8,"column_end":16},"name":"into_ptr","qualname":"::ref_cnt::RefCnt::into_ptr","value":"fn (me: Self) -> *mut Self::Base","parent":{"krate":0,"index":250},"children":[],"decl_id":null,"docs":" Converts the smart pointer into a raw pointer, without affecting the reference count.","sig":null,"attributes":[{"value":"/ Converts the smart pointer into a raw pointer, without affecting the reference count.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":123934,"byte_end":124023,"line_start":41,"line_end":41,"column_start":5,"column_end":94}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":124028,"byte_end":124031,"line_start":42,"line_end":42,"column_start":5,"column_end":8}},{"value":"/ This can be seen as kind of freezing the pointer ‒ it'll be later converted back using","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":124036,"byte_end":124128,"line_start":43,"line_end":43,"column_start":5,"column_end":95}},{"value":"/ [`from_ptr`](#method.from_ptr).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":124133,"byte_end":124168,"line_start":44,"line_end":44,"column_start":5,"column_end":40}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":124173,"byte_end":124176,"line_start":45,"line_end":45,"column_start":5,"column_end":8}},{"value":"/ The pointer must point to the value stored (and the value must be the same as one returned","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":124181,"byte_end":124275,"line_start":46,"line_end":46,"column_start":5,"column_end":99}},{"value":"/ by [`as_ptr`](#method.as_ptr).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":124280,"byte_end":124314,"line_start":47,"line_end":47,"column_start":5,"column_end":39}}]},{"kind":"Method","id":{"krate":0,"index":253},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":124525,"byte_end":124531,"line_start":53,"line_end":53,"column_start":8,"column_end":14},"name":"as_ptr","qualname":"::ref_cnt::RefCnt::as_ptr","value":"fn (me: &Self) -> *mut Self::Base","parent":{"krate":0,"index":250},"children":[],"decl_id":null,"docs":" Provides a view into the smart pointer as a raw pointer.","sig":null,"attributes":[{"value":"/ Provides a view into the smart pointer as a raw pointer.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":124366,"byte_end":124426,"line_start":50,"line_end":50,"column_start":5,"column_end":65}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":124431,"byte_end":124434,"line_start":51,"line_end":51,"column_start":5,"column_end":8}},{"value":"/ This must not affect the reference count ‒ the pointer is only borrowed.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":124439,"byte_end":124517,"line_start":52,"line_end":52,"column_start":5,"column_end":81}}]},{"kind":"Method","id":{"krate":0,"index":254},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":125220,"byte_end":125228,"line_start":66,"line_end":66,"column_start":15,"column_end":23},"name":"from_ptr","qualname":"::ref_cnt::RefCnt::from_ptr","value":"fn (ptr: *const Self::Base) -> Self","parent":{"krate":0,"index":250},"children":[],"decl_id":null,"docs":" Converts a raw pointer back into the smart pointer, without affecting the reference count.","sig":null,"attributes":[{"value":"/ Converts a raw pointer back into the smart pointer, without affecting the reference count.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":124568,"byte_end":124662,"line_start":55,"line_end":55,"column_start":5,"column_end":99}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":124667,"byte_end":124670,"line_start":56,"line_end":56,"column_start":5,"column_end":8}},{"value":"/ This is only called on values previously returned by [`into_ptr`](#method.into_ptr).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":124675,"byte_end":124763,"line_start":57,"line_end":57,"column_start":5,"column_end":93}},{"value":"/ However, it is not guaranteed to be 1:1 relation ‒ `from_ptr` may be called more times than","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":124768,"byte_end":124865,"line_start":58,"line_end":58,"column_start":5,"column_end":100}},{"value":"/ `into_ptr` temporarily provided the reference count never drops under 1 during that time","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":124870,"byte_end":124962,"line_start":59,"line_end":59,"column_start":5,"column_end":97}},{"value":"/ (the implementation sometimes owes a reference). These extra pointers will either be","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":124967,"byte_end":125055,"line_start":60,"line_end":60,"column_start":5,"column_end":93}},{"value":"/ converted back using `into_ptr` or forgotten.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":125060,"byte_end":125109,"line_start":61,"line_end":61,"column_start":5,"column_end":54}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":125114,"byte_end":125117,"line_start":62,"line_end":62,"column_start":5,"column_end":8}},{"value":"/ # Safety","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":125122,"byte_end":125134,"line_start":63,"line_end":63,"column_start":5,"column_end":17}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":125139,"byte_end":125142,"line_start":64,"line_end":64,"column_start":5,"column_end":8}},{"value":"/ This must not be called by code outside of this crate.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":125147,"byte_end":125205,"line_start":65,"line_end":65,"column_start":5,"column_end":63}}]},{"kind":"Method","id":{"krate":0,"index":255},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":125317,"byte_end":125320,"line_start":69,"line_end":69,"column_start":8,"column_end":11},"name":"inc","qualname":"::ref_cnt::RefCnt::inc","value":"fn (me: &Self) -> ()","parent":{"krate":0,"index":250},"children":[],"decl_id":null,"docs":" Increments the reference count by one.\n","sig":null,"attributes":[{"value":"/ Increments the reference count by one.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":125267,"byte_end":125309,"line_start":68,"line_end":68,"column_start":5,"column_end":47}}]},{"kind":"Method","id":{"krate":0,"index":256},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":125763,"byte_end":125766,"line_start":82,"line_end":82,"column_start":15,"column_end":18},"name":"dec","qualname":"::ref_cnt::RefCnt::dec","value":"fn (ptr: *const Self::Base) -> ()","parent":{"krate":0,"index":250},"children":[],"decl_id":null,"docs":" Decrements the reference count by one.","sig":null,"attributes":[{"value":"/ Decrements the reference count by one.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":125386,"byte_end":125428,"line_start":73,"line_end":73,"column_start":5,"column_end":47}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":125433,"byte_end":125436,"line_start":74,"line_end":74,"column_start":5,"column_end":8}},{"value":"/ Note this is called on a raw pointer (one previously returned by","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":125441,"byte_end":125509,"line_start":75,"line_end":75,"column_start":5,"column_end":73}},{"value":"/ [`into_ptr`](#method.into_ptr). This may lead to dropping of the reference count to 0 and","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":125514,"byte_end":125607,"line_start":76,"line_end":76,"column_start":5,"column_end":98}},{"value":"/ destruction of the internal pointer.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":125612,"byte_end":125652,"line_start":77,"line_end":77,"column_start":5,"column_end":45}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":125657,"byte_end":125660,"line_start":78,"line_end":78,"column_start":5,"column_end":8}},{"value":"/ # Safety","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":125665,"byte_end":125677,"line_start":79,"line_end":79,"column_start":5,"column_end":17}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":125682,"byte_end":125685,"line_start":80,"line_end":80,"column_start":5,"column_end":8}},{"value":"/ This must not be called by code outside of this crate.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":125690,"byte_end":125748,"line_start":81,"line_end":81,"column_start":5,"column_end":63}}]},{"kind":"Struct","id":{"krate":0,"index":332},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":23466,"byte_end":23471,"line_start":493,"line_end":493,"column_start":12,"column_end":17},"name":"Guard","qualname":"::Guard","value":"Guard { }","parent":null,"children":[{"krate":0,"index":335},{"krate":0,"index":336}],"decl_id":null,"docs":" A temporary storage of the pointer.","sig":null,"attributes":[{"value":"/ A temporary storage of the pointer.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":23164,"byte_end":23203,"line_start":488,"line_end":488,"column_start":1,"column_end":40}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":23204,"byte_end":23207,"line_start":489,"line_end":489,"column_start":1,"column_end":4}},{"value":"/ This guard object is returned from most loading methods (with the notable exception of","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":23208,"byte_end":23298,"line_start":490,"line_end":490,"column_start":1,"column_end":91}},{"value":"/ [`load_full`](struct.ArcSwapAny.html#method.load_full)). It dereferences to the smart pointer","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":23299,"byte_end":23396,"line_start":491,"line_end":491,"column_start":1,"column_end":98}},{"value":"/ loaded, so most operations are to be done using that.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":23397,"byte_end":23454,"line_start":492,"line_end":492,"column_start":1,"column_end":58}}]},{"kind":"Method","id":{"krate":0,"index":341},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":24106,"byte_end":24116,"line_start":513,"line_end":513,"column_start":12,"column_end":22},"name":"into_inner","qualname":"::into_inner","value":"fn (mut lease: Self) -> T","parent":null,"children":[],"decl_id":null,"docs":" Converts it into the held value.","sig":null,"attributes":[{"value":"/ Converts it into the held value.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":23793,"byte_end":23829,"line_start":506,"line_end":506,"column_start":5,"column_end":41}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":23834,"byte_end":23837,"line_start":507,"line_end":507,"column_start":5,"column_end":8}},{"value":"/ This, on occasion, may be a tiny bit faster than cloning the Arc or whatever is being held","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":23842,"byte_end":23936,"line_start":508,"line_end":508,"column_start":5,"column_end":99}},{"value":"/ inside.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":23941,"byte_end":23952,"line_start":509,"line_end":509,"column_start":5,"column_end":16}},{"value":"inline","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":24085,"byte_end":24094,"line_start":512,"line_end":512,"column_start":5,"column_end":14}}]},{"kind":"Method","id":{"krate":0,"index":342},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":25982,"byte_end":25992,"line_start":559,"line_end":559,"column_start":12,"column_end":22},"name":"from_inner","qualname":"::from_inner","value":"fn (inner: T) -> Self","parent":null,"children":[],"decl_id":null,"docs":" Create a guard for a given value `inner`.","sig":null,"attributes":[{"value":"/ Create a guard for a given value `inner`.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":25459,"byte_end":25504,"line_start":543,"line_end":543,"column_start":5,"column_end":50}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":25509,"byte_end":25512,"line_start":544,"line_end":544,"column_start":5,"column_end":8}},{"value":"/ This can be useful on occasion to pass a specific object to code that expects or","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":25517,"byte_end":25601,"line_start":545,"line_end":545,"column_start":5,"column_end":89}},{"value":"/ wants to store a Guard.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":25606,"byte_end":25633,"line_start":546,"line_end":546,"column_start":5,"column_end":32}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":25638,"byte_end":25641,"line_start":547,"line_end":547,"column_start":5,"column_end":8}},{"value":"/ # Example","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":25646,"byte_end":25659,"line_start":548,"line_end":548,"column_start":5,"column_end":18}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":25664,"byte_end":25667,"line_start":549,"line_end":549,"column_start":5,"column_end":8}},{"value":"/ ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":25672,"byte_end":25683,"line_start":550,"line_end":550,"column_start":5,"column_end":16}},{"value":"/ # use arc_swap::{ArcSwap, Guard};","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":25688,"byte_end":25725,"line_start":551,"line_end":551,"column_start":5,"column_end":42}},{"value":"/ # use std::sync::Arc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":25730,"byte_end":25755,"line_start":552,"line_end":552,"column_start":5,"column_end":30}},{"value":"/ # let p = ArcSwap::from_pointee(42);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":25760,"byte_end":25800,"line_start":553,"line_end":553,"column_start":5,"column_end":45}},{"value":"/ // Create two guards pointing to the same object","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":25805,"byte_end":25857,"line_start":554,"line_end":554,"column_start":5,"column_end":57}},{"value":"/ let g1 = p.load();","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":25862,"byte_end":25884,"line_start":555,"line_end":555,"column_start":5,"column_end":27}},{"value":"/ let g2 = Guard::from_inner(Arc::clone(&*g1));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":25889,"byte_end":25938,"line_start":556,"line_end":556,"column_start":5,"column_end":54}},{"value":"/ # drop(g2);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":25943,"byte_end":25958,"line_start":557,"line_end":557,"column_start":5,"column_end":20}},{"value":"/ ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":25963,"byte_end":25970,"line_start":558,"line_end":558,"column_start":5,"column_end":12}}]},{"kind":"Struct","id":{"krate":0,"index":365},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":30437,"byte_end":30447,"line_start":686,"line_end":686,"column_start":12,"column_end":22},"name":"ArcSwapAny","qualname":"::ArcSwapAny","value":"ArcSwapAny { }","parent":null,"children":[{"krate":0,"index":368},{"krate":0,"index":369},{"krate":0,"index":370}],"decl_id":null,"docs":" An atomic storage for a reference counted smart pointer like [`Arc`] or `Option`.","sig":null,"attributes":[{"value":"/ An atomic storage for a reference counted smart pointer like [`Arc`] or `Option`.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":28391,"byte_end":28481,"line_start":639,"line_end":639,"column_start":1,"column_end":91}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":28482,"byte_end":28485,"line_start":640,"line_end":640,"column_start":1,"column_end":4}},{"value":"/ This is a storage where a smart pointer may live. It can be read and written atomically from","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":28486,"byte_end":28582,"line_start":641,"line_end":641,"column_start":1,"column_end":97}},{"value":"/ several threads, but doesn't act like a pointer itself.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":28583,"byte_end":28642,"line_start":642,"line_end":642,"column_start":1,"column_end":60}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":28643,"byte_end":28646,"line_start":643,"line_end":643,"column_start":1,"column_end":4}},{"value":"/ One can be created [`from`] an [`Arc`]. To get the pointer back, use the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":28647,"byte_end":28723,"line_start":644,"line_end":644,"column_start":1,"column_end":77}},{"value":"/ [`load`](#method.load).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":28724,"byte_end":28751,"line_start":645,"line_end":645,"column_start":1,"column_end":28}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":28752,"byte_end":28755,"line_start":646,"line_end":646,"column_start":1,"column_end":4}},{"value":"/ # Note","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":28756,"byte_end":28766,"line_start":647,"line_end":647,"column_start":1,"column_end":11}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":28767,"byte_end":28770,"line_start":648,"line_end":648,"column_start":1,"column_end":4}},{"value":"/ This is the common generic implementation. This allows sharing the same code for storing","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":28771,"byte_end":28863,"line_start":649,"line_end":649,"column_start":1,"column_end":93}},{"value":"/ both `Arc` and `Option` (and possibly other similar types).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":28864,"byte_end":28932,"line_start":650,"line_end":650,"column_start":1,"column_end":69}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":28933,"byte_end":28936,"line_start":651,"line_end":651,"column_start":1,"column_end":4}},{"value":"/ In your code, you most probably want to interact with it through the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":28937,"byte_end":29009,"line_start":652,"line_end":652,"column_start":1,"column_end":73}},{"value":"/ [`ArcSwap`](type.ArcSwap.html) and [`ArcSwapOption`](type.ArcSwapOption.html) aliases. However,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":29010,"byte_end":29109,"line_start":653,"line_end":653,"column_start":1,"column_end":100}},{"value":"/ the methods they share are described here and are applicable to both of them. That's why the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":29110,"byte_end":29206,"line_start":654,"line_end":654,"column_start":1,"column_end":97}},{"value":"/ examples here use `ArcSwap` ‒ but they could as well be written with `ArcSwapOption` or","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":29207,"byte_end":29300,"line_start":655,"line_end":655,"column_start":1,"column_end":92}},{"value":"/ `ArcSwapAny`.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":29301,"byte_end":29318,"line_start":656,"line_end":656,"column_start":1,"column_end":18}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":29319,"byte_end":29322,"line_start":657,"line_end":657,"column_start":1,"column_end":4}},{"value":"/ # Type parameters","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":29323,"byte_end":29344,"line_start":658,"line_end":658,"column_start":1,"column_end":22}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":29345,"byte_end":29348,"line_start":659,"line_end":659,"column_start":1,"column_end":4}},{"value":"/ * `T`: The smart pointer to be kept inside. This crate provides implementation for `Arc<_>` and","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":29349,"byte_end":29448,"line_start":660,"line_end":660,"column_start":1,"column_end":100}},{"value":"/ `Option>` (`Rc` too, but that one is not practically useful). But third party could","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":29449,"byte_end":29545,"line_start":661,"line_end":661,"column_start":1,"column_end":97}},{"value":"/ provide implementations of the [`RefCnt`] trait and plug in others.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":29546,"byte_end":29619,"line_start":662,"line_end":662,"column_start":1,"column_end":74}},{"value":"/ * `S`: This describes where the generation lock is stored and how it works (this allows tuning","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":29620,"byte_end":29718,"line_start":663,"line_end":663,"column_start":1,"column_end":99}},{"value":"/ some of the performance trade-offs). See the [`LockStorage`][LockStorage] trait.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":29719,"byte_end":29805,"line_start":664,"line_end":664,"column_start":1,"column_end":87}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":29806,"byte_end":29809,"line_start":665,"line_end":665,"column_start":1,"column_end":4}},{"value":"/ # Examples","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":29810,"byte_end":29824,"line_start":666,"line_end":666,"column_start":1,"column_end":15}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":29825,"byte_end":29828,"line_start":667,"line_end":667,"column_start":1,"column_end":4}},{"value":"/ ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":29829,"byte_end":29840,"line_start":668,"line_end":668,"column_start":1,"column_end":12}},{"value":"/ # use std::sync::Arc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":29841,"byte_end":29866,"line_start":669,"line_end":669,"column_start":1,"column_end":26}},{"value":"/ # use arc_swap::ArcSwap;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":29867,"byte_end":29895,"line_start":670,"line_end":670,"column_start":1,"column_end":29}},{"value":"/ let arc = Arc::new(42);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":29896,"byte_end":29923,"line_start":671,"line_end":671,"column_start":1,"column_end":28}},{"value":"/ let arc_swap = ArcSwap::from(arc);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":29924,"byte_end":29962,"line_start":672,"line_end":672,"column_start":1,"column_end":39}},{"value":"/ assert_eq!(42, **arc_swap.load());","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":29963,"byte_end":30001,"line_start":673,"line_end":673,"column_start":1,"column_end":39}},{"value":"/ // It can be read multiple times","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":30002,"byte_end":30038,"line_start":674,"line_end":674,"column_start":1,"column_end":37}},{"value":"/ assert_eq!(42, **arc_swap.load());","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":30039,"byte_end":30077,"line_start":675,"line_end":675,"column_start":1,"column_end":39}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":30078,"byte_end":30081,"line_start":676,"line_end":676,"column_start":1,"column_end":4}},{"value":"/ // Put a new one in there","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":30082,"byte_end":30111,"line_start":677,"line_end":677,"column_start":1,"column_end":30}},{"value":"/ let new_arc = Arc::new(0);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":30112,"byte_end":30142,"line_start":678,"line_end":678,"column_start":1,"column_end":31}},{"value":"/ assert_eq!(42, *arc_swap.swap(new_arc));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":30143,"byte_end":30187,"line_start":679,"line_end":679,"column_start":1,"column_end":45}},{"value":"/ assert_eq!(0, **arc_swap.load());","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":30188,"byte_end":30225,"line_start":680,"line_end":680,"column_start":1,"column_end":38}},{"value":"/ ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":30226,"byte_end":30233,"line_start":681,"line_end":681,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":30234,"byte_end":30237,"line_start":682,"line_end":682,"column_start":1,"column_end":4}},{"value":"/ [`Arc`]: https://doc.rust-lang.org/std/sync/struct.Arc.html","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":30238,"byte_end":30301,"line_start":683,"line_end":683,"column_start":1,"column_end":64}},{"value":"/ [`from`]: https://doc.rust-lang.org/nightly/std/convert/trait.From.html#tymethod.from","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":30302,"byte_end":30391,"line_start":684,"line_end":684,"column_start":1,"column_end":90}},{"value":"/ [`RefCnt`]: trait.RefCnt.html","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":30392,"byte_end":30425,"line_start":685,"line_end":685,"column_start":1,"column_end":34}}]},{"kind":"Method","id":{"krate":0,"index":398},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":32406,"byte_end":32409,"line_start":757,"line_end":757,"column_start":12,"column_end":15},"name":"new","qualname":">::new","value":"fn (val: T) -> Self","parent":null,"children":[],"decl_id":null,"docs":" Constructs a new value.\n","sig":null,"attributes":[{"value":"/ Constructs a new value.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":32367,"byte_end":32394,"line_start":756,"line_end":756,"column_start":5,"column_end":32}}]},{"kind":"Method","id":{"krate":0,"index":399},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":32505,"byte_end":32515,"line_start":762,"line_end":762,"column_start":12,"column_end":22},"name":"into_inner","qualname":">::into_inner","value":"fn (mut self) -> T","parent":null,"children":[],"decl_id":null,"docs":" Extracts the value inside.\n","sig":null,"attributes":[{"value":"/ Extracts the value inside.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":32463,"byte_end":32493,"line_start":761,"line_end":761,"column_start":5,"column_end":35}}]},{"kind":"Method","id":{"krate":0,"index":400},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":33044,"byte_end":33053,"line_start":777,"line_end":777,"column_start":12,"column_end":21},"name":"load_full","qualname":">::load_full","value":"fn (&self) -> T","parent":null,"children":[],"decl_id":null,"docs":" Loads the value.","sig":null,"attributes":[{"value":"/ Loads the value.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":32714,"byte_end":32734,"line_start":770,"line_end":770,"column_start":5,"column_end":25}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":32739,"byte_end":32742,"line_start":771,"line_end":771,"column_start":5,"column_end":8}},{"value":"/ This makes another copy of the held pointer and returns it, atomically (it is","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":32747,"byte_end":32828,"line_start":772,"line_end":772,"column_start":5,"column_end":86}},{"value":"/ safe even when other thread stores into the same instance at the same time).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":32833,"byte_end":32913,"line_start":773,"line_end":773,"column_start":5,"column_end":85}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":32918,"byte_end":32921,"line_start":774,"line_end":774,"column_start":5,"column_end":8}},{"value":"/ The method is lock-free and wait-free, but usually more expensive than","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":32926,"byte_end":33000,"line_start":775,"line_end":775,"column_start":5,"column_end":79}},{"value":"/ [`load`](#method.load).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":33005,"byte_end":33032,"line_start":776,"line_end":776,"column_start":5,"column_end":32}}]},{"kind":"Method","id":{"krate":0,"index":402},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":34503,"byte_end":34519,"line_start":807,"line_end":807,"column_start":12,"column_end":28},"name":"load_signal_safe","qualname":">::load_signal_safe","value":"fn (&self) -> Guard<'_, T>","parent":null,"children":[],"decl_id":null,"docs":" An async-signal-safe version of [`load`](#method.load)","sig":null,"attributes":[{"value":"/ An async-signal-safe version of [`load`](#method.load)","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":33377,"byte_end":33435,"line_start":789,"line_end":789,"column_start":5,"column_end":63}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":33440,"byte_end":33443,"line_start":790,"line_end":790,"column_start":5,"column_end":8}},{"value":"/ This method uses only restricted set of primitives to be async-signal-safe, so it can be","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":33448,"byte_end":33540,"line_start":791,"line_end":791,"column_start":5,"column_end":97}},{"value":"/ used inside unix signal handlers. It has no advantages outside of them and it has its own","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":33545,"byte_end":33638,"line_start":792,"line_end":792,"column_start":5,"column_end":98}},{"value":"/ downsides, so there's no reason to use it outside of them.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":33643,"byte_end":33705,"line_start":793,"line_end":793,"column_start":5,"column_end":67}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":33710,"byte_end":33713,"line_start":794,"line_end":794,"column_start":5,"column_end":8}},{"value":"/ # Warning","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":33718,"byte_end":33731,"line_start":795,"line_end":795,"column_start":5,"column_end":18}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":33736,"byte_end":33739,"line_start":796,"line_end":796,"column_start":5,"column_end":8}},{"value":"/ While the method itself is lock-free (it will not be blocked by anything other threads do),","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":33744,"byte_end":33839,"line_start":797,"line_end":797,"column_start":5,"column_end":100}},{"value":"/ methods that write are blocked from completion until the returned","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":33844,"byte_end":33913,"line_start":798,"line_end":798,"column_start":5,"column_end":74}},{"value":"/ [`Guard`](struct.Guard.html) is dropped. This includes [`store`](#method.store),","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":33918,"byte_end":34002,"line_start":799,"line_end":799,"column_start":5,"column_end":89}},{"value":"/ [`compare_and_swap`](#method.compare_and_swap) and [`rcu`](#method.rcu) and destruction of","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":34007,"byte_end":34101,"line_start":800,"line_end":800,"column_start":5,"column_end":99}},{"value":"/ the `ArcSwapAny` instance.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":34106,"byte_end":34136,"line_start":801,"line_end":801,"column_start":5,"column_end":35}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":34141,"byte_end":34144,"line_start":802,"line_end":802,"column_start":5,"column_end":8}},{"value":"/ By default, the locks are *shared* across all the instances in the program, therefore it","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":34149,"byte_end":34241,"line_start":803,"line_end":803,"column_start":5,"column_end":97}},{"value":"/ blocks writes even to *other* `ArcSwapAny` instances. It is possible to use a private lock","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":34246,"byte_end":34340,"line_start":804,"line_end":804,"column_start":5,"column_end":99}},{"value":"/ (which is recommended if you want to do use this method) by using the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":34345,"byte_end":34418,"line_start":805,"line_end":805,"column_start":5,"column_end":78}},{"value":"/ [`IndependentArcSwap`](type.IndependentArcSwap.html) type alias.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":34423,"byte_end":34491,"line_start":806,"line_end":806,"column_start":5,"column_end":73}}]},{"kind":"Method","id":{"krate":0,"index":404},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":37660,"byte_end":37664,"line_start":879,"line_end":879,"column_start":12,"column_end":16},"name":"load","qualname":">::load","value":"fn (&self) -> Guard<'static, T>","parent":null,"children":[],"decl_id":null,"docs":" Provides a temporary borrow of the object inside.","sig":null,"attributes":[{"value":"/ Provides a temporary borrow of the object inside.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":35524,"byte_end":35577,"line_start":833,"line_end":833,"column_start":5,"column_end":58}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":35582,"byte_end":35585,"line_start":834,"line_end":834,"column_start":5,"column_end":8}},{"value":"/ This returns a proxy object allowing access to the thing held inside. However, there's","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":35590,"byte_end":35681,"line_start":835,"line_end":835,"column_start":5,"column_end":96}},{"value":"/ only limited amount of possible cheap proxies in existence for each thread ‒ if more are","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":35686,"byte_end":35780,"line_start":836,"line_end":836,"column_start":5,"column_end":97}},{"value":"/ created, it falls back to equivalent of [`load_full`](#method.load_full) internally.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":35785,"byte_end":35873,"line_start":837,"line_end":837,"column_start":5,"column_end":93}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":35878,"byte_end":35881,"line_start":838,"line_end":838,"column_start":5,"column_end":8}},{"value":"/ This is therefore a good choice to use for eg. searching a data structure or juggling the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":35886,"byte_end":35979,"line_start":839,"line_end":839,"column_start":5,"column_end":98}},{"value":"/ pointers around a bit, but not as something to store in larger amounts. The rule of thumb","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":35984,"byte_end":36077,"line_start":840,"line_end":840,"column_start":5,"column_end":98}},{"value":"/ is this is suited for local variables on stack, but not in long-living data structures.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":36082,"byte_end":36173,"line_start":841,"line_end":841,"column_start":5,"column_end":96}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":36178,"byte_end":36181,"line_start":842,"line_end":842,"column_start":5,"column_end":8}},{"value":"/ # Consistency","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":36186,"byte_end":36203,"line_start":843,"line_end":843,"column_start":5,"column_end":22}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":36208,"byte_end":36211,"line_start":844,"line_end":844,"column_start":5,"column_end":8}},{"value":"/ In case multiple related operations are to be done on the loaded value, it is generally","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":36216,"byte_end":36307,"line_start":845,"line_end":845,"column_start":5,"column_end":96}},{"value":"/ recommended to call `load` just once and keep the result over calling it multiple times.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":36312,"byte_end":36404,"line_start":846,"line_end":846,"column_start":5,"column_end":97}},{"value":"/ First, keeping it is usually faster. But more importantly, the value can change between the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":36409,"byte_end":36504,"line_start":847,"line_end":847,"column_start":5,"column_end":100}},{"value":"/ calls to load, returning different objects, which could lead to logical inconsistency.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":36509,"byte_end":36599,"line_start":848,"line_end":848,"column_start":5,"column_end":95}},{"value":"/ Keeping the result makes sure the same object is used.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":36604,"byte_end":36662,"line_start":849,"line_end":849,"column_start":5,"column_end":63}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":36667,"byte_end":36670,"line_start":850,"line_end":850,"column_start":5,"column_end":8}},{"value":"/ ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":36675,"byte_end":36686,"line_start":851,"line_end":851,"column_start":5,"column_end":16}},{"value":"/ # use arc_swap::ArcSwap;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":36691,"byte_end":36719,"line_start":852,"line_end":852,"column_start":5,"column_end":33}},{"value":"/ struct Point {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":36724,"byte_end":36742,"line_start":853,"line_end":853,"column_start":5,"column_end":23}},{"value":"/ x: usize,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":36747,"byte_end":36764,"line_start":854,"line_end":854,"column_start":5,"column_end":22}},{"value":"/ y: usize,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":36769,"byte_end":36786,"line_start":855,"line_end":855,"column_start":5,"column_end":22}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":36791,"byte_end":36796,"line_start":856,"line_end":856,"column_start":5,"column_end":10}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":36801,"byte_end":36804,"line_start":857,"line_end":857,"column_start":5,"column_end":8}},{"value":"/ fn print_broken(p: &ArcSwap) {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":36809,"byte_end":36850,"line_start":858,"line_end":858,"column_start":5,"column_end":46}},{"value":"/ // This is broken, because the x and y may come from different points,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":36855,"byte_end":36933,"line_start":859,"line_end":859,"column_start":5,"column_end":83}},{"value":"/ // combining into an invalid point that never existed.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":36938,"byte_end":37000,"line_start":860,"line_end":860,"column_start":5,"column_end":67}},{"value":"/ println!(\"X: {}\", p.load().x);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":37005,"byte_end":37043,"line_start":861,"line_end":861,"column_start":5,"column_end":43}},{"value":"/ // If someone changes the content now, between these two loads, we","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":37048,"byte_end":37122,"line_start":862,"line_end":862,"column_start":5,"column_end":79}},{"value":"/ // have a problem","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":37127,"byte_end":37152,"line_start":863,"line_end":863,"column_start":5,"column_end":30}},{"value":"/ println!(\"Y: {}\", p.load().y);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":37157,"byte_end":37195,"line_start":864,"line_end":864,"column_start":5,"column_end":43}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":37200,"byte_end":37205,"line_start":865,"line_end":865,"column_start":5,"column_end":10}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":37210,"byte_end":37213,"line_start":866,"line_end":866,"column_start":5,"column_end":8}},{"value":"/ fn print_correct(p: &ArcSwap) {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":37218,"byte_end":37260,"line_start":867,"line_end":867,"column_start":5,"column_end":47}},{"value":"/ // Here we take a snapshot of one specific point so both x and y come","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":37265,"byte_end":37342,"line_start":868,"line_end":868,"column_start":5,"column_end":82}},{"value":"/ // from the same one.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":37347,"byte_end":37376,"line_start":869,"line_end":869,"column_start":5,"column_end":34}},{"value":"/ let point = p.load();","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":37381,"byte_end":37410,"line_start":870,"line_end":870,"column_start":5,"column_end":34}},{"value":"/ println!(\"X: {}\", point.x);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":37415,"byte_end":37450,"line_start":871,"line_end":871,"column_start":5,"column_end":40}},{"value":"/ println!(\"Y: {}\", point.y);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":37455,"byte_end":37490,"line_start":872,"line_end":872,"column_start":5,"column_end":40}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":37495,"byte_end":37500,"line_start":873,"line_end":873,"column_start":5,"column_end":10}},{"value":"/ # let p = ArcSwap::from_pointee(Point { x: 10, y: 20 });","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":37505,"byte_end":37565,"line_start":874,"line_end":874,"column_start":5,"column_end":65}},{"value":"/ # print_correct(&p);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":37570,"byte_end":37594,"line_start":875,"line_end":875,"column_start":5,"column_end":29}},{"value":"/ # print_broken(&p);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":37599,"byte_end":37622,"line_start":876,"line_end":876,"column_start":5,"column_end":28}},{"value":"/ ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":37627,"byte_end":37634,"line_start":877,"line_end":877,"column_start":5,"column_end":12}},{"value":"inline","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":37639,"byte_end":37648,"line_start":878,"line_end":878,"column_start":5,"column_end":14}}]},{"kind":"Method","id":{"krate":0,"index":406},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":38163,"byte_end":38168,"line_start":891,"line_end":891,"column_start":12,"column_end":17},"name":"store","qualname":">::store","value":"fn (&self, val: T) -> ()","parent":null,"children":[],"decl_id":null,"docs":" Replaces the value inside this instance.","sig":null,"attributes":[{"value":"/ Replaces the value inside this instance.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":38011,"byte_end":38055,"line_start":888,"line_end":888,"column_start":5,"column_end":49}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":38060,"byte_end":38063,"line_start":889,"line_end":889,"column_start":5,"column_end":8}},{"value":"/ Further loads will yield the new value. Uses [`swap`](#method.swap) internally.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":38068,"byte_end":38151,"line_start":890,"line_end":890,"column_start":5,"column_end":88}}]},{"kind":"Method","id":{"krate":0,"index":407},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":39118,"byte_end":39122,"line_start":914,"line_end":914,"column_start":12,"column_end":16},"name":"swap","qualname":">::swap","value":"fn (&self, new: T) -> T","parent":null,"children":[],"decl_id":null,"docs":" Exchanges the value inside this instance.","sig":null,"attributes":[{"value":"/ Exchanges the value inside this instance.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":38227,"byte_end":38272,"line_start":895,"line_end":895,"column_start":5,"column_end":50}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":38277,"byte_end":38280,"line_start":896,"line_end":896,"column_start":5,"column_end":8}},{"value":"/ Note that this method is *not* lock-free. In particular, it is possible to block this","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":38285,"byte_end":38374,"line_start":897,"line_end":897,"column_start":5,"column_end":94}},{"value":"/ method by using the [`load_signal_safe`](#method.load_signal_safe), but","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":38379,"byte_end":38454,"line_start":898,"line_end":898,"column_start":5,"column_end":80}},{"value":"/ [`load`](#method.load) may also block it for very short time (several CPU instructions). If","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":38459,"byte_end":38554,"line_start":899,"line_end":899,"column_start":5,"column_end":100}},{"value":"/ this happens, `swap` will busy-wait in the meantime.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":38559,"byte_end":38615,"line_start":900,"line_end":900,"column_start":5,"column_end":61}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":38620,"byte_end":38623,"line_start":901,"line_end":901,"column_start":5,"column_end":8}},{"value":"/ It is also possible to cause a deadlock (eg. this is an example of *broken* code):","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":38628,"byte_end":38714,"line_start":902,"line_end":902,"column_start":5,"column_end":91}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":38719,"byte_end":38722,"line_start":903,"line_end":903,"column_start":5,"column_end":8}},{"value":"/ ```rust,no_run","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":38727,"byte_end":38745,"line_start":904,"line_end":904,"column_start":5,"column_end":23}},{"value":"/ # use std::sync::Arc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":38750,"byte_end":38775,"line_start":905,"line_end":905,"column_start":5,"column_end":30}},{"value":"/ # use arc_swap::ArcSwap;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":38780,"byte_end":38808,"line_start":906,"line_end":906,"column_start":5,"column_end":33}},{"value":"/ let shared = ArcSwap::from(Arc::new(42));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":38813,"byte_end":38858,"line_start":907,"line_end":907,"column_start":5,"column_end":50}},{"value":"/ let guard = shared.load_signal_safe();","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":38863,"byte_end":38905,"line_start":908,"line_end":908,"column_start":5,"column_end":47}},{"value":"/ // This will deadlock, because the guard is still active here and swap","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":38910,"byte_end":38984,"line_start":909,"line_end":909,"column_start":5,"column_end":79}},{"value":"/ // can't pull the value from under its feet.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":38989,"byte_end":39037,"line_start":910,"line_end":910,"column_start":5,"column_end":53}},{"value":"/ shared.swap(Arc::new(0));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":39042,"byte_end":39071,"line_start":911,"line_end":911,"column_start":5,"column_end":34}},{"value":"/ # drop(guard);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":39076,"byte_end":39094,"line_start":912,"line_end":912,"column_start":5,"column_end":23}},{"value":"/ ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":39099,"byte_end":39106,"line_start":913,"line_end":913,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":408},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":40335,"byte_end":40351,"line_start":940,"line_end":940,"column_start":12,"column_end":28},"name":"compare_and_swap","qualname":">::compare_and_swap","value":"fn (&self, current: C, new: T) -> Guard","parent":null,"children":[],"decl_id":null,"docs":" Swaps the stored Arc if it equals to `current`.","sig":null,"attributes":[{"value":"/ Swaps the stored Arc if it equals to `current`.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":39516,"byte_end":39567,"line_start":925,"line_end":925,"column_start":5,"column_end":56}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":39572,"byte_end":39575,"line_start":926,"line_end":926,"column_start":5,"column_end":8}},{"value":"/ If the current value of the `ArcSwapAny` equals to `current`, the `new` is stored inside.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":39580,"byte_end":39673,"line_start":927,"line_end":927,"column_start":5,"column_end":98}},{"value":"/ If not, nothing happens.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":39678,"byte_end":39706,"line_start":928,"line_end":928,"column_start":5,"column_end":33}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":39711,"byte_end":39714,"line_start":929,"line_end":929,"column_start":5,"column_end":8}},{"value":"/ The previous value (no matter if the swap happened or not) is returned. Therefore, if the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":39719,"byte_end":39812,"line_start":930,"line_end":930,"column_start":5,"column_end":98}},{"value":"/ returned value is equal to `current`, the swap happened. You want to do a pointer-based","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":39817,"byte_end":39908,"line_start":931,"line_end":931,"column_start":5,"column_end":96}},{"value":"/ comparison to determine it.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":39913,"byte_end":39944,"line_start":932,"line_end":932,"column_start":5,"column_end":36}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":39949,"byte_end":39952,"line_start":933,"line_end":933,"column_start":5,"column_end":8}},{"value":"/ In other words, if the caller „guesses“ the value of current correctly, it acts like","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":39957,"byte_end":40049,"line_start":934,"line_end":934,"column_start":5,"column_end":93}},{"value":"/ [`swap`](#method.swap), otherwise it acts like [`load_full`](#method.load_full) (including","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":40054,"byte_end":40148,"line_start":935,"line_end":935,"column_start":5,"column_end":99}},{"value":"/ the limitations).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":40153,"byte_end":40174,"line_start":936,"line_end":936,"column_start":5,"column_end":26}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":40179,"byte_end":40182,"line_start":937,"line_end":937,"column_start":5,"column_end":8}},{"value":"/ The `current` can be specified as `&Arc`, [`Guard`](struct.Guard.html),","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":40187,"byte_end":40262,"line_start":938,"line_end":938,"column_start":5,"column_end":80}},{"value":"/ [`&Guards`](struct.Guards.html) or as a raw pointer.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":40267,"byte_end":40323,"line_start":939,"line_end":939,"column_start":5,"column_end":61}}]},{"kind":"Method","id":{"krate":0,"index":414},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":48533,"byte_end":48536,"line_start":1148,"line_end":1148,"column_start":12,"column_end":15},"name":"rcu","qualname":">::rcu","value":"fn (&self, mut f: F) -> T","parent":null,"children":[],"decl_id":null,"docs":" Read-Copy-Update of the pointer inside.","sig":null,"attributes":[{"value":"/ Read-Copy-Update of the pointer inside.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":44280,"byte_end":44323,"line_start":1039,"line_end":1039,"column_start":5,"column_end":48}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":44328,"byte_end":44331,"line_start":1040,"line_end":1040,"column_start":5,"column_end":8}},{"value":"/ This is useful in read-heavy situations with several threads that sometimes update the data","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":44336,"byte_end":44431,"line_start":1041,"line_end":1041,"column_start":5,"column_end":100}},{"value":"/ pointed to. The readers can just repeatedly use [`load`](#method.load) without any locking.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":44436,"byte_end":44531,"line_start":1042,"line_end":1042,"column_start":5,"column_end":100}},{"value":"/ The writer uses this method to perform the update.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":44536,"byte_end":44590,"line_start":1043,"line_end":1043,"column_start":5,"column_end":59}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":44595,"byte_end":44598,"line_start":1044,"line_end":1044,"column_start":5,"column_end":8}},{"value":"/ In case there's only one thread that does updates or in case the next version is","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":44603,"byte_end":44687,"line_start":1045,"line_end":1045,"column_start":5,"column_end":89}},{"value":"/ independent of the previous one, simple [`swap`](#method.swap) or [`store`](#method.store)","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":44692,"byte_end":44786,"line_start":1046,"line_end":1046,"column_start":5,"column_end":99}},{"value":"/ is enough. Otherwise, it may be needed to retry the update operation if some other thread","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":44791,"byte_end":44884,"line_start":1047,"line_end":1047,"column_start":5,"column_end":98}},{"value":"/ made an update in between. This is what this method does.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":44889,"byte_end":44950,"line_start":1048,"line_end":1048,"column_start":5,"column_end":66}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":44955,"byte_end":44958,"line_start":1049,"line_end":1049,"column_start":5,"column_end":8}},{"value":"/ # Examples","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":44963,"byte_end":44977,"line_start":1050,"line_end":1050,"column_start":5,"column_end":19}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":44982,"byte_end":44985,"line_start":1051,"line_end":1051,"column_start":5,"column_end":8}},{"value":"/ This will *not* work as expected, because between loading and storing, some other thread","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":44990,"byte_end":45082,"line_start":1052,"line_end":1052,"column_start":5,"column_end":97}},{"value":"/ might have updated the value.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45087,"byte_end":45120,"line_start":1053,"line_end":1053,"column_start":5,"column_end":38}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45125,"byte_end":45128,"line_start":1054,"line_end":1054,"column_start":5,"column_end":8}},{"value":"/ ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45133,"byte_end":45144,"line_start":1055,"line_end":1055,"column_start":5,"column_end":16}},{"value":"/ # extern crate arc_swap;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45149,"byte_end":45177,"line_start":1056,"line_end":1056,"column_start":5,"column_end":33}},{"value":"/ # extern crate crossbeam_utils;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45182,"byte_end":45217,"line_start":1057,"line_end":1057,"column_start":5,"column_end":40}},{"value":"/ #","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45222,"byte_end":45227,"line_start":1058,"line_end":1058,"column_start":5,"column_end":10}},{"value":"/ # use std::sync::Arc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45232,"byte_end":45257,"line_start":1059,"line_end":1059,"column_start":5,"column_end":30}},{"value":"/ #","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45262,"byte_end":45267,"line_start":1060,"line_end":1060,"column_start":5,"column_end":10}},{"value":"/ # use arc_swap::ArcSwap;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45272,"byte_end":45300,"line_start":1061,"line_end":1061,"column_start":5,"column_end":33}},{"value":"/ # use crossbeam_utils::thread;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45305,"byte_end":45339,"line_start":1062,"line_end":1062,"column_start":5,"column_end":39}},{"value":"/ #","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45344,"byte_end":45349,"line_start":1063,"line_end":1063,"column_start":5,"column_end":10}},{"value":"/ let cnt = ArcSwap::from_pointee(0);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45354,"byte_end":45393,"line_start":1064,"line_end":1064,"column_start":5,"column_end":44}},{"value":"/ thread::scope(|scope| {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45398,"byte_end":45425,"line_start":1065,"line_end":1065,"column_start":5,"column_end":32}},{"value":"/ for _ in 0..10 {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45430,"byte_end":45454,"line_start":1066,"line_end":1066,"column_start":5,"column_end":29}},{"value":"/ scope.spawn(|_| {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45459,"byte_end":45488,"line_start":1067,"line_end":1067,"column_start":5,"column_end":34}},{"value":"/ let inner = cnt.load_full();","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45493,"byte_end":45536,"line_start":1068,"line_end":1068,"column_start":5,"column_end":48}},{"value":"/ // Another thread might have stored some other number than what we have","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45541,"byte_end":45628,"line_start":1069,"line_end":1069,"column_start":5,"column_end":92}},{"value":"/ // between the load and store.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45633,"byte_end":45679,"line_start":1070,"line_end":1070,"column_start":5,"column_end":51}},{"value":"/ cnt.store(Arc::new(*inner + 1));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45684,"byte_end":45732,"line_start":1071,"line_end":1071,"column_start":5,"column_end":53}},{"value":"/ });","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45737,"byte_end":45752,"line_start":1072,"line_end":1072,"column_start":5,"column_end":20}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45757,"byte_end":45766,"line_start":1073,"line_end":1073,"column_start":5,"column_end":14}},{"value":"/ }).unwrap();","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45771,"byte_end":45787,"line_start":1074,"line_end":1074,"column_start":5,"column_end":21}},{"value":"/ // This will likely fail:","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45792,"byte_end":45821,"line_start":1075,"line_end":1075,"column_start":5,"column_end":34}},{"value":"/ // assert_eq!(10, *cnt.load_full());","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45826,"byte_end":45866,"line_start":1076,"line_end":1076,"column_start":5,"column_end":45}},{"value":"/ ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45871,"byte_end":45878,"line_start":1077,"line_end":1077,"column_start":5,"column_end":12}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45883,"byte_end":45886,"line_start":1078,"line_end":1078,"column_start":5,"column_end":8}},{"value":"/ This will, but it can call the closure multiple times to retry:","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45891,"byte_end":45958,"line_start":1079,"line_end":1079,"column_start":5,"column_end":72}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45963,"byte_end":45966,"line_start":1080,"line_end":1080,"column_start":5,"column_end":8}},{"value":"/ ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45971,"byte_end":45982,"line_start":1081,"line_end":1081,"column_start":5,"column_end":16}},{"value":"/ # extern crate arc_swap;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":45987,"byte_end":46015,"line_start":1082,"line_end":1082,"column_start":5,"column_end":33}},{"value":"/ # extern crate crossbeam_utils;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46020,"byte_end":46055,"line_start":1083,"line_end":1083,"column_start":5,"column_end":40}},{"value":"/ #","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46060,"byte_end":46065,"line_start":1084,"line_end":1084,"column_start":5,"column_end":10}},{"value":"/ # use arc_swap::ArcSwap;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46070,"byte_end":46098,"line_start":1085,"line_end":1085,"column_start":5,"column_end":33}},{"value":"/ # use crossbeam_utils::thread;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46103,"byte_end":46137,"line_start":1086,"line_end":1086,"column_start":5,"column_end":39}},{"value":"/ #","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46142,"byte_end":46147,"line_start":1087,"line_end":1087,"column_start":5,"column_end":10}},{"value":"/ let cnt = ArcSwap::from_pointee(0);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46152,"byte_end":46191,"line_start":1088,"line_end":1088,"column_start":5,"column_end":44}},{"value":"/ thread::scope(|scope| {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46196,"byte_end":46223,"line_start":1089,"line_end":1089,"column_start":5,"column_end":32}},{"value":"/ for _ in 0..10 {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46228,"byte_end":46252,"line_start":1090,"line_end":1090,"column_start":5,"column_end":29}},{"value":"/ scope.spawn(|_| cnt.rcu(|inner| **inner + 1));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46257,"byte_end":46315,"line_start":1091,"line_end":1091,"column_start":5,"column_end":63}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46320,"byte_end":46329,"line_start":1092,"line_end":1092,"column_start":5,"column_end":14}},{"value":"/ }).unwrap();","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46334,"byte_end":46350,"line_start":1093,"line_end":1093,"column_start":5,"column_end":21}},{"value":"/ assert_eq!(10, *cnt.load_full());","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46355,"byte_end":46392,"line_start":1094,"line_end":1094,"column_start":5,"column_end":42}},{"value":"/ ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46397,"byte_end":46404,"line_start":1095,"line_end":1095,"column_start":5,"column_end":12}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46409,"byte_end":46412,"line_start":1096,"line_end":1096,"column_start":5,"column_end":8}},{"value":"/ Due to the retries, you might want to perform all the expensive operations *before* the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46417,"byte_end":46508,"line_start":1097,"line_end":1097,"column_start":5,"column_end":96}},{"value":"/ rcu. As an example, if there's a cache of some computations as a map, and the map is cheap","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46513,"byte_end":46607,"line_start":1098,"line_end":1098,"column_start":5,"column_end":99}},{"value":"/ to clone but the computations are not, you could do something like this:","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46612,"byte_end":46688,"line_start":1099,"line_end":1099,"column_start":5,"column_end":81}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46693,"byte_end":46696,"line_start":1100,"line_end":1100,"column_start":5,"column_end":8}},{"value":"/ ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46701,"byte_end":46712,"line_start":1101,"line_end":1101,"column_start":5,"column_end":16}},{"value":"/ # extern crate arc_swap;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46717,"byte_end":46745,"line_start":1102,"line_end":1102,"column_start":5,"column_end":33}},{"value":"/ # extern crate crossbeam_utils;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46750,"byte_end":46785,"line_start":1103,"line_end":1103,"column_start":5,"column_end":40}},{"value":"/ # extern crate once_cell;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46790,"byte_end":46819,"line_start":1104,"line_end":1104,"column_start":5,"column_end":34}},{"value":"/ #","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46824,"byte_end":46829,"line_start":1105,"line_end":1105,"column_start":5,"column_end":10}},{"value":"/ # use std::collections::HashMap;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46834,"byte_end":46870,"line_start":1106,"line_end":1106,"column_start":5,"column_end":41}},{"value":"/ #","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46875,"byte_end":46880,"line_start":1107,"line_end":1107,"column_start":5,"column_end":10}},{"value":"/ # use arc_swap::ArcSwap;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46885,"byte_end":46913,"line_start":1108,"line_end":1108,"column_start":5,"column_end":33}},{"value":"/ # use once_cell::sync::Lazy;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46918,"byte_end":46950,"line_start":1109,"line_end":1109,"column_start":5,"column_end":37}},{"value":"/ #","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46955,"byte_end":46960,"line_start":1110,"line_end":1110,"column_start":5,"column_end":10}},{"value":"/ fn expensive_computation(x: usize) -> usize {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":46965,"byte_end":47014,"line_start":1111,"line_end":1111,"column_start":5,"column_end":54}},{"value":"/ x * 2 // Let's pretend multiplication is *really expensive expensive*","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47019,"byte_end":47096,"line_start":1112,"line_end":1112,"column_start":5,"column_end":82}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47101,"byte_end":47106,"line_start":1113,"line_end":1113,"column_start":5,"column_end":10}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47111,"byte_end":47114,"line_start":1114,"line_end":1114,"column_start":5,"column_end":8}},{"value":"/ type Cache = HashMap;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47119,"byte_end":47158,"line_start":1115,"line_end":1115,"column_start":5,"column_end":44}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47163,"byte_end":47166,"line_start":1116,"line_end":1116,"column_start":5,"column_end":8}},{"value":"/ static CACHE: Lazy> = Lazy::new(|| ArcSwap::default());","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47171,"byte_end":47245,"line_start":1117,"line_end":1117,"column_start":5,"column_end":79}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47250,"byte_end":47253,"line_start":1118,"line_end":1118,"column_start":5,"column_end":8}},{"value":"/ fn cached_computation(x: usize) -> usize {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47258,"byte_end":47304,"line_start":1119,"line_end":1119,"column_start":5,"column_end":51}},{"value":"/ let cache = CACHE.load();","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47309,"byte_end":47342,"line_start":1120,"line_end":1120,"column_start":5,"column_end":38}},{"value":"/ if let Some(result) = cache.get(&x) {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47347,"byte_end":47392,"line_start":1121,"line_end":1121,"column_start":5,"column_end":50}},{"value":"/ return *result;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47397,"byte_end":47424,"line_start":1122,"line_end":1122,"column_start":5,"column_end":32}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47429,"byte_end":47438,"line_start":1123,"line_end":1123,"column_start":5,"column_end":14}},{"value":"/ // Not in cache. Compute and store.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47443,"byte_end":47486,"line_start":1124,"line_end":1124,"column_start":5,"column_end":48}},{"value":"/ // The expensive computation goes outside, so it is not retried.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47491,"byte_end":47563,"line_start":1125,"line_end":1125,"column_start":5,"column_end":77}},{"value":"/ let result = expensive_computation(x);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47568,"byte_end":47614,"line_start":1126,"line_end":1126,"column_start":5,"column_end":51}},{"value":"/ CACHE.rcu(|cache| {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47619,"byte_end":47646,"line_start":1127,"line_end":1127,"column_start":5,"column_end":32}},{"value":"/ // The cheaper clone of the cache can be retried if need be.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47651,"byte_end":47723,"line_start":1128,"line_end":1128,"column_start":5,"column_end":77}},{"value":"/ let mut cache = HashMap::clone(&cache);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47728,"byte_end":47779,"line_start":1129,"line_end":1129,"column_start":5,"column_end":56}},{"value":"/ cache.insert(x, result);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47784,"byte_end":47820,"line_start":1130,"line_end":1130,"column_start":5,"column_end":41}},{"value":"/ cache","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47825,"byte_end":47842,"line_start":1131,"line_end":1131,"column_start":5,"column_end":22}},{"value":"/ });","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47847,"byte_end":47858,"line_start":1132,"line_end":1132,"column_start":5,"column_end":16}},{"value":"/ result","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47863,"byte_end":47877,"line_start":1133,"line_end":1133,"column_start":5,"column_end":19}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47882,"byte_end":47887,"line_start":1134,"line_end":1134,"column_start":5,"column_end":10}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47892,"byte_end":47895,"line_start":1135,"line_end":1135,"column_start":5,"column_end":8}},{"value":"/ assert_eq!(42, cached_computation(21));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47900,"byte_end":47943,"line_start":1136,"line_end":1136,"column_start":5,"column_end":48}},{"value":"/ assert_eq!(42, cached_computation(21));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47948,"byte_end":47991,"line_start":1137,"line_end":1137,"column_start":5,"column_end":48}},{"value":"/ ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":47996,"byte_end":48003,"line_start":1138,"line_end":1138,"column_start":5,"column_end":12}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":48008,"byte_end":48011,"line_start":1139,"line_end":1139,"column_start":5,"column_end":8}},{"value":"/ # The cost of cloning","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":48016,"byte_end":48041,"line_start":1140,"line_end":1140,"column_start":5,"column_end":30}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":48046,"byte_end":48049,"line_start":1141,"line_end":1141,"column_start":5,"column_end":8}},{"value":"/ Depending on the size of cache above, the cloning might not be as cheap. You can however","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":48054,"byte_end":48146,"line_start":1142,"line_end":1142,"column_start":5,"column_end":97}},{"value":"/ use persistent data structures ‒ each modification creates a new data structure, but it","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":48151,"byte_end":48244,"line_start":1143,"line_end":1143,"column_start":5,"column_end":96}},{"value":"/ shares most of the data with the old one (which is usually accomplished by using `Arc`s","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":48249,"byte_end":48340,"line_start":1144,"line_end":1144,"column_start":5,"column_end":96}},{"value":"/ inside to share the unchanged values). Something like","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":48345,"byte_end":48402,"line_start":1145,"line_end":1145,"column_start":5,"column_end":62}},{"value":"/ [`rpds`](https://crates.io/crates/rpds) or [`im`](https://crates.io/crates/im) might do","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":48407,"byte_end":48498,"line_start":1146,"line_end":1146,"column_start":5,"column_end":96}},{"value":"/ what you need.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":48503,"byte_end":48521,"line_start":1147,"line_end":1147,"column_start":5,"column_end":23}}]},{"kind":"Method","id":{"krate":0,"index":417},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50894,"byte_end":50897,"line_start":1218,"line_end":1218,"column_start":12,"column_end":15},"name":"map","qualname":">::map","value":"fn (&self, f: F) -> Map<&Self, I, F>","parent":null,"children":[],"decl_id":null,"docs":" Provides an access to an up to date projection of the carried data.","sig":null,"attributes":[{"value":"/ Provides an access to an up to date projection of the carried data.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":48977,"byte_end":49048,"line_start":1166,"line_end":1166,"column_start":5,"column_end":76}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":49053,"byte_end":49056,"line_start":1167,"line_end":1167,"column_start":5,"column_end":8}},{"value":"/ # Motivation","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":49061,"byte_end":49077,"line_start":1168,"line_end":1168,"column_start":5,"column_end":21}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":49082,"byte_end":49085,"line_start":1169,"line_end":1169,"column_start":5,"column_end":8}},{"value":"/ Sometimes, an application consists of components. Each component has its own configuration","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":49090,"byte_end":49184,"line_start":1170,"line_end":1170,"column_start":5,"column_end":99}},{"value":"/ structure. The whole configuration contains all the smaller config parts.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":49189,"byte_end":49266,"line_start":1171,"line_end":1171,"column_start":5,"column_end":82}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":49271,"byte_end":49274,"line_start":1172,"line_end":1172,"column_start":5,"column_end":8}},{"value":"/ For the sake of separation and abstraction, it is not desirable to pass the whole","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":49279,"byte_end":49364,"line_start":1173,"line_end":1173,"column_start":5,"column_end":90}},{"value":"/ configuration to each of the components. This allows the component to take only access to","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":49369,"byte_end":49462,"line_start":1174,"line_end":1174,"column_start":5,"column_end":98}},{"value":"/ its own part.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":49467,"byte_end":49484,"line_start":1175,"line_end":1175,"column_start":5,"column_end":22}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":49489,"byte_end":49492,"line_start":1176,"line_end":1176,"column_start":5,"column_end":8}},{"value":"/ # Lifetimes & flexibility","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":49497,"byte_end":49526,"line_start":1177,"line_end":1177,"column_start":5,"column_end":34}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":49531,"byte_end":49534,"line_start":1178,"line_end":1178,"column_start":5,"column_end":8}},{"value":"/ This method is not the most flexible way, as the returned type borrows into the `ArcSwap`.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":49539,"byte_end":49633,"line_start":1179,"line_end":1179,"column_start":5,"column_end":99}},{"value":"/ To provide access into eg. `Arc>`, you can create the [`Map`] type directly.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":49638,"byte_end":49729,"line_start":1180,"line_end":1180,"column_start":5,"column_end":96}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":49734,"byte_end":49737,"line_start":1181,"line_end":1181,"column_start":5,"column_end":8}},{"value":"/ # Performance","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":49742,"byte_end":49759,"line_start":1182,"line_end":1182,"column_start":5,"column_end":22}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":49764,"byte_end":49767,"line_start":1183,"line_end":1183,"column_start":5,"column_end":8}},{"value":"/ As the provided function is called on each load from the shared storage, it should","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":49772,"byte_end":49858,"line_start":1184,"line_end":1184,"column_start":5,"column_end":91}},{"value":"/ generally be cheap. It is expected this will usually be just referencing of a field inside","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":49863,"byte_end":49957,"line_start":1185,"line_end":1185,"column_start":5,"column_end":99}},{"value":"/ the structure.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":49962,"byte_end":49980,"line_start":1186,"line_end":1186,"column_start":5,"column_end":23}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":49985,"byte_end":49988,"line_start":1187,"line_end":1187,"column_start":5,"column_end":8}},{"value":"/ # Examples","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":49993,"byte_end":50007,"line_start":1188,"line_end":1188,"column_start":5,"column_end":19}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50012,"byte_end":50015,"line_start":1189,"line_end":1189,"column_start":5,"column_end":8}},{"value":"/ ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50020,"byte_end":50031,"line_start":1190,"line_end":1190,"column_start":5,"column_end":16}},{"value":"/ extern crate arc_swap;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50036,"byte_end":50062,"line_start":1191,"line_end":1191,"column_start":5,"column_end":31}},{"value":"/ extern crate crossbeam_utils;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50067,"byte_end":50100,"line_start":1192,"line_end":1192,"column_start":5,"column_end":38}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50105,"byte_end":50108,"line_start":1193,"line_end":1193,"column_start":5,"column_end":8}},{"value":"/ use std::sync::Arc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50113,"byte_end":50136,"line_start":1194,"line_end":1194,"column_start":5,"column_end":28}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50141,"byte_end":50144,"line_start":1195,"line_end":1195,"column_start":5,"column_end":8}},{"value":"/ use arc_swap::ArcSwap;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50149,"byte_end":50175,"line_start":1196,"line_end":1196,"column_start":5,"column_end":31}},{"value":"/ use arc_swap::access::Access;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50180,"byte_end":50213,"line_start":1197,"line_end":1197,"column_start":5,"column_end":38}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50218,"byte_end":50221,"line_start":1198,"line_end":1198,"column_start":5,"column_end":8}},{"value":"/ struct Cfg {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50226,"byte_end":50242,"line_start":1199,"line_end":1199,"column_start":5,"column_end":21}},{"value":"/ value: usize,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50247,"byte_end":50268,"line_start":1200,"line_end":1200,"column_start":5,"column_end":26}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50273,"byte_end":50278,"line_start":1201,"line_end":1201,"column_start":5,"column_end":10}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50283,"byte_end":50286,"line_start":1202,"line_end":1202,"column_start":5,"column_end":8}},{"value":"/ fn print_many_times>(value: V) {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50291,"byte_end":50344,"line_start":1203,"line_end":1203,"column_start":5,"column_end":58}},{"value":"/ for _ in 0..25 {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50349,"byte_end":50373,"line_start":1204,"line_end":1204,"column_start":5,"column_end":29}},{"value":"/ let value = value.load();","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50378,"byte_end":50415,"line_start":1205,"line_end":1205,"column_start":5,"column_end":42}},{"value":"/ println!(\"{}\", *value);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50420,"byte_end":50455,"line_start":1206,"line_end":1206,"column_start":5,"column_end":40}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50460,"byte_end":50469,"line_start":1207,"line_end":1207,"column_start":5,"column_end":14}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50474,"byte_end":50479,"line_start":1208,"line_end":1208,"column_start":5,"column_end":10}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50484,"byte_end":50487,"line_start":1209,"line_end":1209,"column_start":5,"column_end":8}},{"value":"/ let shared = ArcSwap::from_pointee(Cfg { value: 0 });","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50492,"byte_end":50549,"line_start":1210,"line_end":1210,"column_start":5,"column_end":62}},{"value":"/ let mapped = shared.map(|c: &Cfg| &c.value);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50554,"byte_end":50602,"line_start":1211,"line_end":1211,"column_start":5,"column_end":53}},{"value":"/ crossbeam_utils::thread::scope(|s| {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50607,"byte_end":50647,"line_start":1212,"line_end":1212,"column_start":5,"column_end":45}},{"value":"/ // Will print some zeroes and some twos","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50652,"byte_end":50699,"line_start":1213,"line_end":1213,"column_start":5,"column_end":52}},{"value":"/ s.spawn(|_| print_many_times(mapped));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50704,"byte_end":50750,"line_start":1214,"line_end":1214,"column_start":5,"column_end":51}},{"value":"/ s.spawn(|_| shared.store(Arc::new(Cfg { value: 2 })));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50755,"byte_end":50817,"line_start":1215,"line_end":1215,"column_start":5,"column_end":67}},{"value":"/ }).expect(\"Something panicked in a thread\");","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50822,"byte_end":50870,"line_start":1216,"line_end":1216,"column_start":5,"column_end":53}},{"value":"/ ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":50875,"byte_end":50882,"line_start":1217,"line_end":1217,"column_start":5,"column_end":12}}]},{"kind":"Type","id":{"krate":0,"index":421},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":51199,"byte_end":51206,"line_start":1231,"line_end":1231,"column_start":10,"column_end":17},"name":"ArcSwap","qualname":"::ArcSwap","value":"ArcSwapAny>","parent":null,"children":[],"decl_id":null,"docs":" An atomic storage for `Arc`.","sig":null,"attributes":[{"value":"/ An atomic storage for `Arc`.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":51041,"byte_end":51073,"line_start":1227,"line_end":1227,"column_start":1,"column_end":33}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":51074,"byte_end":51077,"line_start":1228,"line_end":1228,"column_start":1,"column_end":4}},{"value":"/ This is a type alias only. Most of its methods are described on","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":51078,"byte_end":51145,"line_start":1229,"line_end":1229,"column_start":1,"column_end":68}},{"value":"/ [`ArcSwapAny`](struct.ArcSwapAny.html).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":51146,"byte_end":51189,"line_start":1230,"line_end":1230,"column_start":1,"column_end":44}}]},{"kind":"Method","id":{"krate":0,"index":426},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":51431,"byte_end":51443,"line_start":1237,"line_end":1237,"column_start":12,"column_end":24},"name":"from_pointee","qualname":", S>>::from_pointee","value":"fn (val: T) -> Self","parent":null,"children":[],"decl_id":null,"docs":" A convenience constructor directly from the pointed-to value.","sig":null,"attributes":[{"value":"/ A convenience constructor directly from the pointed-to value.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":51285,"byte_end":51350,"line_start":1234,"line_end":1234,"column_start":5,"column_end":70}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":51355,"byte_end":51358,"line_start":1235,"line_end":1235,"column_start":5,"column_end":8}},{"value":"/ Direct equivalent for `ArcSwap::new(Arc::new(val))`.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":51363,"byte_end":51419,"line_start":1236,"line_end":1236,"column_start":5,"column_end":61}}]},{"kind":"Method","id":{"krate":0,"index":427},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":52542,"byte_end":52552,"line_start":1258,"line_end":1258,"column_start":12,"column_end":22},"name":"rcu_unwrap","qualname":", S>>::rcu_unwrap","value":"fn (&self, mut f: F) -> T","parent":null,"children":[],"decl_id":null,"docs":" An [`rcu`](struct.ArcSwapAny.html#method.rcu) which waits to be the sole owner of the\n original value and unwraps it.","sig":null,"attributes":[{"value":"/ An [`rcu`](struct.ArcSwapAny.html#method.rcu) which waits to be the sole owner of the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":51507,"byte_end":51596,"line_start":1241,"line_end":1241,"column_start":5,"column_end":94}},{"value":"/ original value and unwraps it.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":51601,"byte_end":51635,"line_start":1242,"line_end":1242,"column_start":5,"column_end":39}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":51640,"byte_end":51643,"line_start":1243,"line_end":1243,"column_start":5,"column_end":8}},{"value":"/ This one works the same way as the [`rcu`](struct.ArcSwapAny.html#method.rcu) method, but","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":51648,"byte_end":51741,"line_start":1244,"line_end":1244,"column_start":5,"column_end":98}},{"value":"/ works on the inner type instead of `Arc`. After replacing the original, it waits until","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":51746,"byte_end":51836,"line_start":1245,"line_end":1245,"column_start":5,"column_end":95}},{"value":"/ there are no other owners of the arc and unwraps it.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":51841,"byte_end":51897,"line_start":1246,"line_end":1246,"column_start":5,"column_end":61}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":51902,"byte_end":51905,"line_start":1247,"line_end":1247,"column_start":5,"column_end":8}},{"value":"/ Possible use case might be an RCU with a structure that is rather slow to drop ‒ if it was","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":51910,"byte_end":52006,"line_start":1248,"line_end":1248,"column_start":5,"column_end":99}},{"value":"/ left to random reader (the last one to hold the old value), it could cause a timeout or","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":52011,"byte_end":52102,"line_start":1249,"line_end":1249,"column_start":5,"column_end":96}},{"value":"/ jitter in a query time. With this, the deallocation is done in the updater thread,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":52107,"byte_end":52193,"line_start":1250,"line_end":1250,"column_start":5,"column_end":91}},{"value":"/ therefore outside of the hot path.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":52198,"byte_end":52236,"line_start":1251,"line_end":1251,"column_start":5,"column_end":43}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":52241,"byte_end":52244,"line_start":1252,"line_end":1252,"column_start":5,"column_end":8}},{"value":"/ # Warning","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":52249,"byte_end":52262,"line_start":1253,"line_end":1253,"column_start":5,"column_end":18}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":52267,"byte_end":52270,"line_start":1254,"line_end":1254,"column_start":5,"column_end":8}},{"value":"/ Note that if you store a copy of the `Arc` somewhere except the `ArcSwap` itself for","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":52275,"byte_end":52363,"line_start":1255,"line_end":1255,"column_start":5,"column_end":93}},{"value":"/ extended period of time, this'll busy-wait the whole time. Unless you need the assurance","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":52368,"byte_end":52460,"line_start":1256,"line_end":1256,"column_start":5,"column_end":97}},{"value":"/ the `Arc` is deconstructed here, prefer [`rcu`](#method.rcu).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":52465,"byte_end":52530,"line_start":1257,"line_end":1257,"column_start":5,"column_end":70}}]},{"kind":"Type","id":{"krate":0,"index":431},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53681,"byte_end":53694,"line_start":1296,"line_end":1296,"column_start":10,"column_end":23},"name":"ArcSwapOption","qualname":"::ArcSwapOption","value":"ArcSwapAny>>","parent":null,"children":[],"decl_id":null,"docs":" An atomic storage for `Option`.","sig":null,"attributes":[{"value":"/ An atomic storage for `Option`.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":52955,"byte_end":52995,"line_start":1276,"line_end":1276,"column_start":1,"column_end":41}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":52996,"byte_end":52999,"line_start":1277,"line_end":1277,"column_start":1,"column_end":4}},{"value":"/ This is very similar to [`ArcSwap`](type.ArcSwap.html), but allows storing NULL values, which","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53000,"byte_end":53097,"line_start":1278,"line_end":1278,"column_start":1,"column_end":98}},{"value":"/ is useful in some situations.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53098,"byte_end":53131,"line_start":1279,"line_end":1279,"column_start":1,"column_end":34}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53132,"byte_end":53135,"line_start":1280,"line_end":1280,"column_start":1,"column_end":4}},{"value":"/ This is a type alias only. Most of the methods are described on","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53136,"byte_end":53203,"line_start":1281,"line_end":1281,"column_start":1,"column_end":68}},{"value":"/ [`ArcSwapAny`](struct.ArcSwapAny.html). Even though the examples there often use `ArcSwap`,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53204,"byte_end":53299,"line_start":1282,"line_end":1282,"column_start":1,"column_end":96}},{"value":"/ they are applicable to `ArcSwapOption` with appropriate changes.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53300,"byte_end":53368,"line_start":1283,"line_end":1283,"column_start":1,"column_end":69}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53369,"byte_end":53372,"line_start":1284,"line_end":1284,"column_start":1,"column_end":4}},{"value":"/ # Examples","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53373,"byte_end":53387,"line_start":1285,"line_end":1285,"column_start":1,"column_end":15}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53388,"byte_end":53391,"line_start":1286,"line_end":1286,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53392,"byte_end":53399,"line_start":1287,"line_end":1287,"column_start":1,"column_end":8}},{"value":"/ use std::sync::Arc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53400,"byte_end":53423,"line_start":1288,"line_end":1288,"column_start":1,"column_end":24}},{"value":"/ use arc_swap::ArcSwapOption;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53424,"byte_end":53456,"line_start":1289,"line_end":1289,"column_start":1,"column_end":33}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53457,"byte_end":53460,"line_start":1290,"line_end":1290,"column_start":1,"column_end":4}},{"value":"/ let shared = ArcSwapOption::from(None);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53461,"byte_end":53504,"line_start":1291,"line_end":1291,"column_start":1,"column_end":44}},{"value":"/ assert!(shared.load_full().is_none());","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53505,"byte_end":53547,"line_start":1292,"line_end":1292,"column_start":1,"column_end":43}},{"value":"/ assert!(shared.swap(Some(Arc::new(42))).is_none());","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53548,"byte_end":53603,"line_start":1293,"line_end":1293,"column_start":1,"column_end":56}},{"value":"/ assert_eq!(42, **shared.load_full().as_ref().unwrap());","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53604,"byte_end":53663,"line_start":1294,"line_end":1294,"column_start":1,"column_end":60}},{"value":"/ ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53664,"byte_end":53671,"line_start":1295,"line_end":1295,"column_start":1,"column_end":8}}]},{"kind":"Method","id":{"krate":0,"index":436},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":54293,"byte_end":54305,"line_start":1313,"line_end":1313,"column_start":12,"column_end":24},"name":"from_pointee","qualname":">, S>>::from_pointee","value":"fn (val: V) -> Self","parent":null,"children":[],"decl_id":null,"docs":" A convenience constructor directly from a pointed-to value.","sig":null,"attributes":[{"value":"/ A convenience constructor directly from a pointed-to value.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53789,"byte_end":53852,"line_start":1299,"line_end":1299,"column_start":5,"column_end":68}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53857,"byte_end":53860,"line_start":1300,"line_end":1300,"column_start":5,"column_end":8}},{"value":"/ This just allocates the `Arc` under the hood.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53865,"byte_end":53914,"line_start":1301,"line_end":1301,"column_start":5,"column_end":54}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53919,"byte_end":53922,"line_start":1302,"line_end":1302,"column_start":5,"column_end":8}},{"value":"/ # Examples","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53927,"byte_end":53941,"line_start":1303,"line_end":1303,"column_start":5,"column_end":19}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53946,"byte_end":53949,"line_start":1304,"line_end":1304,"column_start":5,"column_end":8}},{"value":"/ ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53954,"byte_end":53965,"line_start":1305,"line_end":1305,"column_start":5,"column_end":16}},{"value":"/ use arc_swap::ArcSwapOption;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53970,"byte_end":54002,"line_start":1306,"line_end":1306,"column_start":5,"column_end":37}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":54007,"byte_end":54010,"line_start":1307,"line_end":1307,"column_start":5,"column_end":8}},{"value":"/ let empty: ArcSwapOption = ArcSwapOption::from_pointee(None);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":54015,"byte_end":54087,"line_start":1308,"line_end":1308,"column_start":5,"column_end":77}},{"value":"/ assert!(empty.load().is_none());","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":54092,"byte_end":54128,"line_start":1309,"line_end":1309,"column_start":5,"column_end":41}},{"value":"/ let non_empty: ArcSwapOption = ArcSwapOption::from_pointee(42);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":54133,"byte_end":54207,"line_start":1310,"line_end":1310,"column_start":5,"column_end":79}},{"value":"/ assert_eq!(42, **non_empty.load().as_ref().unwrap());","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":54212,"byte_end":54269,"line_start":1311,"line_end":1311,"column_start":5,"column_end":62}},{"value":"/ ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":54274,"byte_end":54281,"line_start":1312,"line_end":1312,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":438},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":54526,"byte_end":54531,"line_start":1320,"line_end":1320,"column_start":12,"column_end":17},"name":"empty","qualname":">, S>>::empty","value":"fn () -> Self","parent":null,"children":[],"decl_id":null,"docs":" A convenience constructor for an empty value.","sig":null,"attributes":[{"value":"/ A convenience constructor for an empty value.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":54399,"byte_end":54448,"line_start":1317,"line_end":1317,"column_start":5,"column_end":54}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":54453,"byte_end":54456,"line_start":1318,"line_end":1318,"column_start":5,"column_end":8}},{"value":"/ This is equivalent to `ArcSwapOption::new(None)`.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":54461,"byte_end":54514,"line_start":1319,"line_end":1319,"column_start":5,"column_end":58}}]},{"kind":"Type","id":{"krate":0,"index":439},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":55469,"byte_end":55487,"line_start":1346,"line_end":1346,"column_start":10,"column_end":28},"name":"IndependentArcSwap","qualname":"::IndependentArcSwap","value":"ArcSwapAny, PrivateUnsharded>","parent":null,"children":[],"decl_id":null,"docs":" An atomic storage that doesn't share the internal generation locks with others.","sig":null,"attributes":[{"value":"/ An atomic storage that doesn't share the internal generation locks with others.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":54577,"byte_end":54660,"line_start":1325,"line_end":1325,"column_start":1,"column_end":84}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":54661,"byte_end":54664,"line_start":1326,"line_end":1326,"column_start":1,"column_end":4}},{"value":"/ This makes it bigger and it also might suffer contention (on the HW level) if used from many","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":54665,"byte_end":54761,"line_start":1327,"line_end":1327,"column_start":1,"column_end":97}},{"value":"/ threads at once. But using [`load_signal_safe`](struct.ArcSwapAny.html#method.load_signal_safe)","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":54762,"byte_end":54861,"line_start":1328,"line_end":1328,"column_start":1,"column_end":100}},{"value":"/ will not block writes on other instances.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":54862,"byte_end":54907,"line_start":1329,"line_end":1329,"column_start":1,"column_end":46}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":54908,"byte_end":54911,"line_start":1330,"line_end":1330,"column_start":1,"column_end":4}},{"value":"/ ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":54912,"byte_end":54923,"line_start":1331,"line_end":1331,"column_start":1,"column_end":12}},{"value":"/ # use std::sync::Arc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":54924,"byte_end":54949,"line_start":1332,"line_end":1332,"column_start":1,"column_end":26}},{"value":"/ # use arc_swap::{ArcSwap, IndependentArcSwap};","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":54950,"byte_end":55000,"line_start":1333,"line_end":1333,"column_start":1,"column_end":51}},{"value":"/ // This one shares locks with others.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":55001,"byte_end":55042,"line_start":1334,"line_end":1334,"column_start":1,"column_end":42}},{"value":"/ let shared = ArcSwap::from_pointee(42);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":55043,"byte_end":55086,"line_start":1335,"line_end":1335,"column_start":1,"column_end":44}},{"value":"/ // But this one has an independent lock.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":55087,"byte_end":55131,"line_start":1336,"line_end":1336,"column_start":1,"column_end":45}},{"value":"/ let independent = IndependentArcSwap::from_pointee(42);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":55132,"byte_end":55191,"line_start":1337,"line_end":1337,"column_start":1,"column_end":60}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":55192,"byte_end":55195,"line_start":1338,"line_end":1338,"column_start":1,"column_end":4}},{"value":"/ // This'll hold a lock so any writers there wouldn't complete","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":55196,"byte_end":55261,"line_start":1339,"line_end":1339,"column_start":1,"column_end":66}},{"value":"/ let l = independent.load_signal_safe();","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":55262,"byte_end":55305,"line_start":1340,"line_end":1340,"column_start":1,"column_end":44}},{"value":"/ // But the lock doesn't influence the shared one, so this goes through just fine","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":55306,"byte_end":55390,"line_start":1341,"line_end":1341,"column_start":1,"column_end":85}},{"value":"/ shared.store(Arc::new(43));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":55391,"byte_end":55422,"line_start":1342,"line_end":1342,"column_start":1,"column_end":32}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":55423,"byte_end":55426,"line_start":1343,"line_end":1343,"column_start":1,"column_end":4}},{"value":"/ assert_eq!(42, **l);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":55427,"byte_end":55451,"line_start":1344,"line_end":1344,"column_start":1,"column_end":25}},{"value":"/ ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":55452,"byte_end":55459,"line_start":1345,"line_end":1345,"column_start":1,"column_end":8}}]}],"impls":[{"id":0,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":78529,"byte_end":78530,"line_start":112,"line_end":112,"column_start":59,"column_end":60},"value":"","parent":null,"children":[{"krate":0,"index":21},{"krate":0,"index":22}],"docs":"","sig":null,"attributes":[]},{"id":1,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":78679,"byte_end":78689,"line_start":119,"line_end":119,"column_start":47,"column_end":57},"value":"","parent":null,"children":[{"krate":0,"index":26},{"krate":0,"index":27}],"docs":"","sig":null,"attributes":[]},{"id":2,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":78978,"byte_end":78989,"line_start":133,"line_end":133,"column_start":19,"column_end":30},"value":"","parent":null,"children":[{"krate":0,"index":30},{"krate":0,"index":31}],"docs":"","sig":null,"attributes":[]},{"id":3,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":79127,"byte_end":79137,"line_start":140,"line_end":140,"column_start":39,"column_end":49},"value":"","parent":null,"children":[{"krate":0,"index":35},{"krate":0,"index":36}],"docs":"","sig":null,"attributes":[]},{"id":4,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":79285,"byte_end":79296,"line_start":147,"line_end":147,"column_start":19,"column_end":30},"value":"","parent":null,"children":[{"krate":0,"index":39},{"krate":0,"index":40}],"docs":"","sig":null,"attributes":[]},{"id":5,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":79433,"byte_end":79443,"line_start":154,"line_end":154,"column_start":39,"column_end":49},"value":"","parent":null,"children":[{"krate":0,"index":44},{"krate":0,"index":45}],"docs":"","sig":null,"attributes":[]},{"id":6,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":79767,"byte_end":79775,"line_start":166,"line_end":166,"column_start":27,"column_end":35},"value":"","parent":null,"children":[{"krate":0,"index":52},{"krate":0,"index":53}],"docs":"","sig":null,"attributes":[]},{"id":7,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80776,"byte_end":80777,"line_start":204,"line_end":204,"column_start":29,"column_end":30},"value":"","parent":null,"children":[{"krate":0,"index":60}],"docs":"","sig":null,"attributes":[]},{"id":8,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":81384,"byte_end":81392,"line_start":227,"line_end":227,"column_start":28,"column_end":36},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":9,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":81475,"byte_end":81483,"line_start":234,"line_end":234,"column_start":28,"column_end":36},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":10,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":81560,"byte_end":81568,"line_start":241,"line_end":241,"column_start":22,"column_end":30},"value":"","parent":null,"children":[{"krate":0,"index":72},{"krate":0,"index":73}],"docs":"","sig":null,"attributes":[]},{"id":11,"kind":"Inherent","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":82499,"byte_end":82502,"line_start":266,"line_end":266,"column_start":15,"column_end":18},"value":"","parent":null,"children":[{"krate":0,"index":78}],"docs":"","sig":null,"attributes":[]},{"id":12,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":83360,"byte_end":83363,"line_start":290,"line_end":290,"column_start":32,"column_end":35},"value":"","parent":null,"children":[{"krate":0,"index":85},{"krate":0,"index":86}],"docs":"","sig":null,"attributes":[]},{"id":13,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":83939,"byte_end":83952,"line_start":313,"line_end":313,"column_start":19,"column_end":32},"value":"","parent":null,"children":[{"krate":0,"index":89},{"krate":0,"index":90}],"docs":"","sig":null,"attributes":[]},{"id":14,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":84548,"byte_end":84556,"line_start":331,"line_end":331,"column_start":30,"column_end":38},"value":"","parent":null,"children":[{"krate":0,"index":93},{"krate":0,"index":94}],"docs":"","sig":null,"attributes":[]},{"id":15,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":88725,"byte_end":88730,"line_start":42,"line_end":42,"column_start":40,"column_end":45},"value":"","parent":null,"children":[{"krate":0,"index":113}],"docs":"","sig":null,"attributes":[]},{"id":16,"kind":"Inherent","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91624,"byte_end":91629,"line_start":79,"line_end":79,"column_start":15,"column_end":20},"value":"","parent":null,"children":[{"krate":0,"index":133},{"krate":0,"index":134},{"krate":0,"index":135},{"krate":0,"index":136},{"krate":0,"index":137},{"krate":0,"index":138}],"docs":"","sig":null,"attributes":[]},{"id":17,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":95748,"byte_end":95753,"line_start":195,"line_end":195,"column_start":37,"column_end":42},"value":"","parent":null,"children":[{"krate":0,"index":145}],"docs":"","sig":null,"attributes":[]},{"id":18,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":95984,"byte_end":95989,"line_start":206,"line_end":206,"column_start":27,"column_end":32},"value":"","parent":null,"children":[{"krate":0,"index":150}],"docs":"","sig":null,"attributes":[]},{"id":19,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":96513,"byte_end":96521,"line_start":227,"line_end":227,"column_start":35,"column_end":43},"value":"","parent":null,"children":[{"krate":0,"index":157}],"docs":"","sig":null,"attributes":[]},{"id":20,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/debt.rs","byte_start":102666,"byte_end":102670,"line_start":12,"line_end":12,"column_start":18,"column_end":22},"value":"","parent":null,"children":[{"krate":0,"index":173}],"docs":"","sig":null,"attributes":[]},{"id":21,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/debt.rs","byte_start":102982,"byte_end":102986,"line_start":30,"line_end":30,"column_start":18,"column_end":22},"value":"","parent":null,"children":[{"krate":0,"index":179}],"docs":"","sig":null,"attributes":[]},{"id":22,"kind":"Inherent","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/debt.rs","byte_start":103161,"byte_end":103165,"line_start":40,"line_end":40,"column_start":6,"column_end":10},"value":"","parent":null,"children":[{"krate":0,"index":181}],"docs":"","sig":null,"attributes":[]},{"id":23,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/debt.rs","byte_start":105723,"byte_end":105731,"line_start":102,"line_end":102,"column_start":15,"column_end":23},"value":"","parent":null,"children":[{"krate":0,"index":190}],"docs":"","sig":null,"attributes":[]},{"id":24,"kind":"Inherent","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/debt.rs","byte_start":106990,"byte_end":106994,"line_start":140,"line_end":140,"column_start":6,"column_end":10},"value":"","parent":null,"children":[{"krate":0,"index":195},{"krate":0,"index":198},{"krate":0,"index":200}],"docs":"","sig":null,"attributes":[]},{"id":25,"kind":"Inherent","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":114263,"byte_end":114268,"line_start":50,"line_end":50,"column_start":6,"column_end":11},"value":"","parent":null,"children":[{"krate":0,"index":211}],"docs":"","sig":null,"attributes":[]},{"id":26,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":117101,"byte_end":117107,"line_start":137,"line_end":137,"column_start":29,"column_end":35},"value":"","parent":null,"children":[{"krate":0,"index":226},{"krate":0,"index":227},{"krate":0,"index":228},{"krate":0,"index":229}],"docs":"","sig":null,"attributes":[]},{"id":27,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":118842,"byte_end":118858,"line_start":194,"line_end":194,"column_start":29,"column_end":45},"value":"","parent":null,"children":[{"krate":0,"index":232},{"krate":0,"index":234},{"krate":0,"index":235},{"krate":0,"index":237}],"docs":"","sig":null,"attributes":[]},{"id":28,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":120276,"byte_end":120290,"line_start":242,"line_end":242,"column_start":58,"column_end":72},"value":"","parent":null,"children":[{"krate":0,"index":241},{"krate":0,"index":242},{"krate":0,"index":243},{"krate":0,"index":244}],"docs":"","sig":null,"attributes":[]},{"id":29,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":125863,"byte_end":125866,"line_start":87,"line_end":87,"column_start":27,"column_end":30},"value":"","parent":null,"children":[{"krate":0,"index":259},{"krate":0,"index":260},{"krate":0,"index":261},{"krate":0,"index":262}],"docs":"","sig":null,"attributes":[]},{"id":30,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":126169,"byte_end":126171,"line_start":100,"line_end":100,"column_start":27,"column_end":29},"value":"","parent":null,"children":[{"krate":0,"index":265},{"krate":0,"index":266},{"krate":0,"index":267},{"krate":0,"index":268}],"docs":"","sig":null,"attributes":[]},{"id":31,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":126477,"byte_end":126483,"line_start":113,"line_end":113,"column_start":35,"column_end":41},"value":"","parent":null,"children":[{"krate":0,"index":271},{"krate":0,"index":272},{"krate":0,"index":273},{"krate":0,"index":274}],"docs":"","sig":null,"attributes":[]},{"id":32,"kind":"Inherent","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":21228,"byte_end":21235,"line_start":431,"line_end":431,"column_start":10,"column_end":17},"value":"","parent":null,"children":[{"krate":0,"index":313},{"krate":0,"index":315}],"docs":"","sig":null,"attributes":[]},{"id":33,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":22438,"byte_end":22445,"line_start":461,"line_end":461,"column_start":19,"column_end":26},"value":"","parent":null,"children":[{"krate":0,"index":318}],"docs":"","sig":null,"attributes":[]},{"id":34,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":22967,"byte_end":22977,"line_start":479,"line_end":479,"column_start":42,"column_end":52},"value":"","parent":null,"children":[{"krate":0,"index":331}],"docs":"","sig":null,"attributes":[]},{"id":35,"kind":"Inherent","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":23572,"byte_end":23577,"line_start":498,"line_end":498,"column_start":21,"column_end":26},"value":"","parent":null,"children":[{"krate":0,"index":340},{"krate":0,"index":341},{"krate":0,"index":342}],"docs":"","sig":null,"attributes":[]},{"id":36,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":26172,"byte_end":26177,"line_start":567,"line_end":567,"column_start":31,"column_end":36},"value":"","parent":null,"children":[{"krate":0,"index":346},{"krate":0,"index":347}],"docs":"","sig":null,"attributes":[]},{"id":37,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":26324,"byte_end":26329,"line_start":575,"line_end":575,"column_start":39,"column_end":44},"value":"","parent":null,"children":[{"krate":0,"index":351}],"docs":"","sig":null,"attributes":[]},{"id":38,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":26486,"byte_end":26491,"line_start":581,"line_end":581,"column_start":43,"column_end":48},"value":"","parent":null,"children":[{"krate":0,"index":355}],"docs":"","sig":null,"attributes":[]},{"id":39,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":26635,"byte_end":26640,"line_start":587,"line_end":587,"column_start":30,"column_end":35},"value":"","parent":null,"children":[{"krate":0,"index":359}],"docs":"","sig":null,"attributes":[]},{"id":40,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":30817,"byte_end":30827,"line_start":698,"line_end":698,"column_start":45,"column_end":55},"value":"","parent":null,"children":[{"krate":0,"index":374}],"docs":"","sig":null,"attributes":[]},{"id":41,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":31326,"byte_end":31336,"line_start":712,"line_end":712,"column_start":42,"column_end":52},"value":"","parent":null,"children":[{"krate":0,"index":378}],"docs":"","sig":null,"attributes":[]},{"id":42,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":31623,"byte_end":31633,"line_start":722,"line_end":722,"column_start":43,"column_end":53},"value":"","parent":null,"children":[{"krate":0,"index":382}],"docs":"","sig":null,"attributes":[]},{"id":43,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":31752,"byte_end":31762,"line_start":728,"line_end":728,"column_start":35,"column_end":45},"value":"","parent":null,"children":[{"krate":0,"index":386}],"docs":"","sig":null,"attributes":[]},{"id":44,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":32017,"byte_end":32027,"line_start":740,"line_end":740,"column_start":37,"column_end":47},"value":"","parent":null,"children":[{"krate":0,"index":390}],"docs":"","sig":null,"attributes":[]},{"id":45,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":32225,"byte_end":32235,"line_start":749,"line_end":749,"column_start":55,"column_end":65},"value":"","parent":null,"children":[{"krate":0,"index":394}],"docs":"","sig":null,"attributes":[]},{"id":46,"kind":"Inherent","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":32344,"byte_end":32354,"line_start":755,"line_end":755,"column_start":33,"column_end":43},"value":"","parent":null,"children":[{"krate":0,"index":398},{"krate":0,"index":399},{"krate":0,"index":400},{"krate":0,"index":401},{"krate":0,"index":402},{"krate":0,"index":403},{"krate":0,"index":404},{"krate":0,"index":406},{"krate":0,"index":407},{"krate":0,"index":408},{"krate":0,"index":410},{"krate":0,"index":414},{"krate":0,"index":417}],"docs":"","sig":null,"attributes":[]},{"id":47,"kind":"Inherent","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":51257,"byte_end":51267,"line_start":1233,"line_end":1233,"column_start":25,"column_end":35},"value":"","parent":null,"children":[{"krate":0,"index":426},{"krate":0,"index":427}],"docs":"","sig":null,"attributes":[]},{"id":48,"kind":"Inherent","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53753,"byte_end":53763,"line_start":1298,"line_end":1298,"column_start":25,"column_end":35},"value":"","parent":null,"children":[{"krate":0,"index":436},{"krate":0,"index":438}],"docs":"","sig":null,"attributes":[]}],"refs":[{"kind":"Mod","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":12720,"byte_end":12726,"line_start":269,"line_end":269,"column_start":9,"column_end":15},"ref_id":{"krate":0,"index":3}},{"kind":"Mod","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":12748,"byte_end":12753,"line_start":271,"line_end":271,"column_start":9,"column_end":14},"ref_id":{"krate":0,"index":120}},{"kind":"Mod","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":12797,"byte_end":12805,"line_start":274,"line_end":274,"column_start":9,"column_end":17},"ref_id":{"krate":0,"index":203}}],"macro_refs":[],"relations":[{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":78529,"byte_end":78530,"line_start":112,"line_end":112,"column_start":59,"column_end":60},"kind":{"Impl":{"id":0}},"from":{"krate":0,"index":20},"to":{"krate":0,"index":13}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":78679,"byte_end":78689,"line_start":119,"line_end":119,"column_start":47,"column_end":57},"kind":{"Impl":{"id":1}},"from":{"krate":0,"index":365},"to":{"krate":0,"index":13}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":78978,"byte_end":78989,"line_start":133,"line_end":133,"column_start":19,"column_end":30},"kind":{"Impl":{"id":2}},"from":{"krate":0,"index":441},"to":{"krate":2,"index":2053}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":79127,"byte_end":79137,"line_start":140,"line_end":140,"column_start":39,"column_end":49},"kind":{"Impl":{"id":3}},"from":{"krate":0,"index":365},"to":{"krate":0,"index":13}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":79285,"byte_end":79296,"line_start":147,"line_end":147,"column_start":19,"column_end":30},"kind":{"Impl":{"id":4}},"from":{"krate":0,"index":441},"to":{"krate":2,"index":2053}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":79433,"byte_end":79443,"line_start":154,"line_end":154,"column_start":39,"column_end":49},"kind":{"Impl":{"id":5}},"from":{"krate":0,"index":365},"to":{"krate":0,"index":13}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":79767,"byte_end":79775,"line_start":166,"line_end":166,"column_start":27,"column_end":35},"kind":{"Impl":{"id":6}},"from":{"krate":0,"index":46},"to":{"krate":2,"index":2053}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":80776,"byte_end":80777,"line_start":204,"line_end":204,"column_start":29,"column_end":30},"kind":{"Impl":{"id":7}},"from":{"krate":0,"index":59},"to":{"krate":0,"index":54}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":81384,"byte_end":81392,"line_start":227,"line_end":227,"column_start":28,"column_end":36},"kind":{"Impl":{"id":8}},"from":{"krate":0,"index":448},"to":{"krate":2,"index":1882}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":81475,"byte_end":81483,"line_start":234,"line_end":234,"column_start":28,"column_end":36},"kind":{"Impl":{"id":9}},"from":{"krate":0,"index":448},"to":{"krate":2,"index":1894}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":81560,"byte_end":81568,"line_start":241,"line_end":241,"column_start":22,"column_end":30},"kind":{"Impl":{"id":10}},"from":{"krate":0,"index":448},"to":{"krate":2,"index":2053}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":82499,"byte_end":82502,"line_start":266,"line_end":266,"column_start":15,"column_end":18},"kind":{"Impl":{"id":11}},"from":{"krate":0,"index":464},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":83360,"byte_end":83363,"line_start":290,"line_end":290,"column_start":32,"column_end":35},"kind":{"Impl":{"id":12}},"from":{"krate":0,"index":464},"to":{"krate":0,"index":13}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":83939,"byte_end":83952,"line_start":313,"line_end":313,"column_start":19,"column_end":32},"kind":{"Impl":{"id":13}},"from":{"krate":0,"index":485},"to":{"krate":2,"index":2053}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/access.rs","byte_start":84548,"byte_end":84556,"line_start":331,"line_end":331,"column_start":30,"column_end":38},"kind":{"Impl":{"id":14}},"from":{"krate":0,"index":522},"to":{"krate":0,"index":13}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/as_raw.rs","byte_start":88725,"byte_end":88730,"line_start":42,"line_end":42,"column_start":40,"column_end":45},"kind":{"Impl":{"id":15}},"from":{"krate":0,"index":332},"to":{"krate":0,"index":99}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":91624,"byte_end":91629,"line_start":79,"line_end":79,"column_start":15,"column_end":20},"kind":{"Impl":{"id":16}},"from":{"krate":0,"index":559},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":95748,"byte_end":95753,"line_start":195,"line_end":195,"column_start":37,"column_end":42},"kind":{"Impl":{"id":17}},"from":{"krate":0,"index":559},"to":{"krate":0,"index":126}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":95984,"byte_end":95989,"line_start":206,"line_end":206,"column_start":27,"column_end":32},"kind":{"Impl":{"id":18}},"from":{"krate":0,"index":559},"to":{"krate":2,"index":1806}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/cache.rs","byte_start":96513,"byte_end":96521,"line_start":227,"line_end":227,"column_start":35,"column_end":43},"kind":{"Impl":{"id":19}},"from":{"krate":0,"index":572},"to":{"krate":0,"index":126}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/debt.rs","byte_start":102666,"byte_end":102670,"line_start":12,"line_end":12,"column_start":18,"column_end":22},"kind":{"Impl":{"id":20}},"from":{"krate":0,"index":169},"to":{"krate":2,"index":1873}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/debt.rs","byte_start":102982,"byte_end":102986,"line_start":30,"line_end":30,"column_start":18,"column_end":22},"kind":{"Impl":{"id":21}},"from":{"krate":0,"index":174},"to":{"krate":2,"index":1873}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/debt.rs","byte_start":103161,"byte_end":103165,"line_start":40,"line_end":40,"column_start":6,"column_end":10},"kind":{"Impl":{"id":22}},"from":{"krate":0,"index":174},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/debt.rs","byte_start":105723,"byte_end":105731,"line_start":102,"line_end":102,"column_start":15,"column_end":23},"kind":{"Impl":{"id":23}},"from":{"krate":0,"index":186},"to":{"krate":2,"index":2075}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/debt.rs","byte_start":106990,"byte_end":106994,"line_start":140,"line_end":140,"column_start":6,"column_end":10},"kind":{"Impl":{"id":24}},"from":{"krate":0,"index":169},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":114263,"byte_end":114268,"line_start":50,"line_end":50,"column_start":6,"column_end":11},"kind":{"Impl":{"id":25}},"from":{"krate":0,"index":598},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":115023,"byte_end":115030,"line_start":67,"line_end":67,"column_start":31,"column_end":38},"kind":"SuperTrait","from":{"krate":2,"index":1873},"to":{"krate":0,"index":213}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":117101,"byte_end":117107,"line_start":137,"line_end":137,"column_start":29,"column_end":35},"kind":{"Impl":{"id":26}},"from":{"krate":0,"index":608},"to":{"krate":0,"index":213}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":118842,"byte_end":118858,"line_start":194,"line_end":194,"column_start":29,"column_end":45},"kind":{"Impl":{"id":27}},"from":{"krate":0,"index":612},"to":{"krate":0,"index":213}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/gen_lock.rs","byte_start":120276,"byte_end":120290,"line_start":242,"line_end":242,"column_start":58,"column_end":72},"kind":{"Impl":{"id":28}},"from":{"krate":0,"index":618},"to":{"krate":0,"index":213}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":123861,"byte_end":123866,"line_start":37,"line_end":37,"column_start":26,"column_end":31},"kind":"SuperTrait","from":{"krate":2,"index":1592},"to":{"krate":0,"index":250}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":125863,"byte_end":125866,"line_start":87,"line_end":87,"column_start":27,"column_end":30},"kind":{"Impl":{"id":29}},"from":{"krate":5,"index":3769},"to":{"krate":0,"index":250}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":126169,"byte_end":126171,"line_start":100,"line_end":100,"column_start":27,"column_end":29},"kind":{"Impl":{"id":30}},"from":{"krate":5,"index":2923},"to":{"krate":0,"index":250}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/ref_cnt.rs","byte_start":126477,"byte_end":126483,"line_start":113,"line_end":113,"column_start":35,"column_end":41},"kind":{"Impl":{"id":31}},"from":{"krate":2,"index":29308},"to":{"krate":0,"index":250}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":21228,"byte_end":21235,"line_start":431,"line_end":431,"column_start":10,"column_end":17},"kind":{"Impl":{"id":32}},"from":{"krate":0,"index":308},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":22438,"byte_end":22445,"line_start":461,"line_end":461,"column_start":19,"column_end":26},"kind":{"Impl":{"id":33}},"from":{"krate":0,"index":308},"to":{"krate":2,"index":2075}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":22967,"byte_end":22977,"line_start":479,"line_end":479,"column_start":42,"column_end":52},"kind":{"Impl":{"id":34}},"from":{"krate":0,"index":319},"to":{"krate":2,"index":1806}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":23572,"byte_end":23577,"line_start":498,"line_end":498,"column_start":21,"column_end":26},"kind":{"Impl":{"id":35}},"from":{"krate":0,"index":332},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":26172,"byte_end":26177,"line_start":567,"line_end":567,"column_start":31,"column_end":36},"kind":{"Impl":{"id":36}},"from":{"krate":0,"index":332},"to":{"krate":2,"index":2053}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":26324,"byte_end":26329,"line_start":575,"line_end":575,"column_start":39,"column_end":44},"kind":{"Impl":{"id":37}},"from":{"krate":0,"index":332},"to":{"krate":2,"index":5977}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":26486,"byte_end":26491,"line_start":581,"line_end":581,"column_start":43,"column_end":48},"kind":{"Impl":{"id":38}},"from":{"krate":0,"index":332},"to":{"krate":2,"index":5982}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":26635,"byte_end":26640,"line_start":587,"line_end":587,"column_start":30,"column_end":35},"kind":{"Impl":{"id":39}},"from":{"krate":0,"index":332},"to":{"krate":2,"index":2075}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":30817,"byte_end":30827,"line_start":698,"line_end":698,"column_start":45,"column_end":55},"kind":{"Impl":{"id":40}},"from":{"krate":0,"index":365},"to":{"krate":2,"index":1806}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":31326,"byte_end":31336,"line_start":712,"line_end":712,"column_start":42,"column_end":52},"kind":{"Impl":{"id":41}},"from":{"krate":0,"index":365},"to":{"krate":2,"index":2075}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":31623,"byte_end":31633,"line_start":722,"line_end":722,"column_start":43,"column_end":53},"kind":{"Impl":{"id":42}},"from":{"krate":0,"index":365},"to":{"krate":2,"index":1592}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":31752,"byte_end":31762,"line_start":728,"line_end":728,"column_start":35,"column_end":45},"kind":{"Impl":{"id":43}},"from":{"krate":0,"index":365},"to":{"krate":2,"index":5977}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":32017,"byte_end":32027,"line_start":740,"line_end":740,"column_start":37,"column_end":47},"kind":{"Impl":{"id":44}},"from":{"krate":0,"index":365},"to":{"krate":2,"index":5982}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":32225,"byte_end":32235,"line_start":749,"line_end":749,"column_start":55,"column_end":65},"kind":{"Impl":{"id":45}},"from":{"krate":0,"index":365},"to":{"krate":2,"index":1873}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":32344,"byte_end":32354,"line_start":755,"line_end":755,"column_start":33,"column_end":43},"kind":{"Impl":{"id":46}},"from":{"krate":0,"index":365},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":51257,"byte_end":51267,"line_start":1233,"line_end":1233,"column_start":25,"column_end":35},"kind":{"Impl":{"id":47}},"from":{"krate":0,"index":365},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/arc-swap-0.4.7/src/lib.rs","byte_start":53753,"byte_end":53763,"line_start":1298,"line_end":1298,"column_start":25,"column_end":35},"kind":{"Impl":{"id":48}},"from":{"krate":0,"index":365},"to":{"krate":4294967295,"index":4294967295}}]} \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/deps/save-analysis/libsignal_hook-e0628f0be09b0325.json b/chapter8/myshell/target/rls/debug/deps/save-analysis/libsignal_hook-e0628f0be09b0325.json new file mode 100644 index 0000000..4bf8dae --- /dev/null +++ b/chapter8/myshell/target/rls/debug/deps/save-analysis/libsignal_hook-e0628f0be09b0325.json @@ -0,0 +1 @@ +{"config":{"output_file":null,"full_docs":false,"pub_only":true,"reachable_only":true,"distro_crate":false,"signatures":false,"borrow_data":false},"version":"0.19.0","compilation":{"directory":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16","program":"/Users/prabhueshwarla/.rustup/toolchains/stable-x86_64-apple-darwin/bin/rls","arguments":["--crate-name","signal_hook","--edition=2018","/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","--json=diagnostic-rendered-ansi","--crate-type","lib","--emit=dep-info,metadata","-C","debuginfo=2","-C","metadata=e0628f0be09b0325","-C","extra-filename=-e0628f0be09b0325","--out-dir","/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps","-L","dependency=/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps","--extern","libc=/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/liblibc-c6c7e72937a09c21.rmeta","--extern","signal_hook_registry=/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/libsignal_hook_registry-e474ff654680bd11.rmeta","--cap-lints","allow","--error-format=json","--sysroot","/Users/prabhueshwarla/.rustup/toolchains/stable-x86_64-apple-darwin"],"output":"/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/libsignal_hook-e0628f0be09b0325.rmeta"},"prelude":{"crate_id":{"name":"signal_hook","disambiguator":[12303876821733317447,5135724871097974139]},"crate_root":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src","external_crates":[{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","num":1,"id":{"name":"std","disambiguator":[9054049529852543209,5756799355281213394]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","num":2,"id":{"name":"core","disambiguator":[649336883146201894,3308516238322163950]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","num":3,"id":{"name":"compiler_builtins","disambiguator":[1154582834482060450,16344204990542480537]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","num":4,"id":{"name":"rustc_std_workspace_core","disambiguator":[9212379515936652129,17808485286264063370]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","num":5,"id":{"name":"alloc","disambiguator":[13327579764654116281,14306064291630426625]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","num":6,"id":{"name":"libc","disambiguator":[17773251733480933597,18239998491734583498]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","num":7,"id":{"name":"unwind","disambiguator":[8567743581675804787,15655200220621371766]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","num":8,"id":{"name":"cfg_if","disambiguator":[15115520782807859583,9813785573872252500]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","num":9,"id":{"name":"backtrace","disambiguator":[1572943810868196833,3902827232285166711]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","num":10,"id":{"name":"rustc_demangle","disambiguator":[6290371580101917419,15395902185345451181]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","num":11,"id":{"name":"backtrace_sys","disambiguator":[2934540361684350378,924291485644145262]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","num":12,"id":{"name":"hashbrown","disambiguator":[9277678418438935259,15657907931940784437]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","num":13,"id":{"name":"rustc_std_workspace_alloc","disambiguator":[5423566938548125357,18340948646597872466]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","num":14,"id":{"name":"panic_unwind","disambiguator":[489208416821938960,3305070343783546974]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","num":15,"id":{"name":"libc","disambiguator":[18326867955375269224,5324247810815223257]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","num":16,"id":{"name":"signal_hook_registry","disambiguator":[6370673610970023658,5854536714153180651]}},{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","num":17,"id":{"name":"arc_swap","disambiguator":[17779198299154035100,6875815130371589823]}}],"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":0,"byte_end":8756,"line_start":1,"line_end":188,"column_start":1,"column_end":72}},"imports":[{"kind":"Use","ref_id":{"krate":16,"index":74},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":10247,"byte_end":10264,"line_start":34,"line_end":34,"column_start":31,"column_end":48},"alias_span":null,"name":"unregister_signal","value":"","parent":{"krate":0,"index":5}},{"kind":"Use","ref_id":{"krate":15,"index":1286},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8107,"byte_end":8114,"line_start":172,"line_end":172,"column_start":5,"column_end":12},"alias_span":null,"name":"SIGABRT","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":15,"index":1292},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8116,"byte_end":8123,"line_start":172,"line_end":172,"column_start":14,"column_end":21},"alias_span":null,"name":"SIGALRM","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":15,"index":652},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8125,"byte_end":8131,"line_start":172,"line_end":172,"column_start":23,"column_end":29},"alias_span":null,"name":"SIGBUS","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":15,"index":651},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8133,"byte_end":8140,"line_start":172,"line_end":172,"column_start":31,"column_end":38},"alias_span":null,"name":"SIGCHLD","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":15,"index":655},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8142,"byte_end":8149,"line_start":172,"line_end":172,"column_start":40,"column_end":47},"alias_span":null,"name":"SIGCONT","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":15,"index":1288},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8151,"byte_end":8157,"line_start":172,"line_end":172,"column_start":49,"column_end":55},"alias_span":null,"name":"SIGFPE","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":15,"index":1282},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8159,"byte_end":8165,"line_start":172,"line_end":172,"column_start":57,"column_end":63},"alias_span":null,"name":"SIGHUP","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":15,"index":1285},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8167,"byte_end":8173,"line_start":172,"line_end":172,"column_start":65,"column_end":71},"alias_span":null,"name":"SIGILL","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":15,"index":1283},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8175,"byte_end":8181,"line_start":172,"line_end":172,"column_start":73,"column_end":79},"alias_span":null,"name":"SIGINT","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":15,"index":659},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8183,"byte_end":8188,"line_start":172,"line_end":172,"column_start":81,"column_end":86},"alias_span":null,"name":"SIGIO","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":15,"index":1289},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8190,"byte_end":8197,"line_start":172,"line_end":172,"column_start":88,"column_end":95},"alias_span":null,"name":"SIGKILL","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":15,"index":1291},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8203,"byte_end":8210,"line_start":173,"line_end":173,"column_start":5,"column_end":12},"alias_span":null,"name":"SIGPIPE","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":15,"index":666},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8212,"byte_end":8219,"line_start":173,"line_end":173,"column_start":14,"column_end":21},"alias_span":null,"name":"SIGPROF","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":15,"index":1284},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8221,"byte_end":8228,"line_start":173,"line_end":173,"column_start":23,"column_end":30},"alias_span":null,"name":"SIGQUIT","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":15,"index":1290},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8230,"byte_end":8237,"line_start":173,"line_end":173,"column_start":32,"column_end":39},"alias_span":null,"name":"SIGSEGV","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":15,"index":656},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8239,"byte_end":8246,"line_start":173,"line_end":173,"column_start":41,"column_end":48},"alias_span":null,"name":"SIGSTOP","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":15,"index":660},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8248,"byte_end":8254,"line_start":173,"line_end":173,"column_start":50,"column_end":56},"alias_span":null,"name":"SIGSYS","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":15,"index":1293},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8256,"byte_end":8263,"line_start":173,"line_end":173,"column_start":58,"column_end":65},"alias_span":null,"name":"SIGTERM","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":15,"index":1567},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8265,"byte_end":8272,"line_start":173,"line_end":173,"column_start":67,"column_end":74},"alias_span":null,"name":"SIGTRAP","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":15,"index":653},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8274,"byte_end":8281,"line_start":173,"line_end":173,"column_start":76,"column_end":83},"alias_span":null,"name":"SIGUSR1","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":15,"index":654},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8283,"byte_end":8290,"line_start":173,"line_end":173,"column_start":85,"column_end":92},"alias_span":null,"name":"SIGUSR2","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":15,"index":667},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8296,"byte_end":8304,"line_start":174,"line_end":174,"column_start":5,"column_end":13},"alias_span":null,"name":"SIGWINCH","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":16,"index":58},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8716,"byte_end":8724,"line_start":188,"line_end":188,"column_start":32,"column_end":40},"alias_span":null,"name":"register","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":16,"index":73},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8726,"byte_end":8736,"line_start":188,"line_end":188,"column_start":42,"column_end":52},"alias_span":null,"name":"unregister","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":16,"index":101},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8738,"byte_end":8743,"line_start":188,"line_end":188,"column_start":54,"column_end":59},"alias_span":null,"name":"SigId","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":16,"index":56},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8745,"byte_end":8754,"line_start":188,"line_end":188,"column_start":61,"column_end":70},"alias_span":null,"name":"FORBIDDEN","value":"","parent":{"krate":0,"index":0}}],"defs":[{"kind":"Mod","id":{"krate":0,"index":0},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":0,"byte_end":8756,"line_start":1,"line_end":188,"column_start":1,"column_end":72},"name":"","qualname":"::","value":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","parent":null,"children":[{"krate":0,"index":1},{"krate":0,"index":2},{"krate":0,"index":3},{"krate":0,"index":4},{"krate":0,"index":5},{"krate":0,"index":21},{"krate":0,"index":34},{"krate":0,"index":94},{"krate":0,"index":117},{"krate":0,"index":140}],"decl_id":null,"docs":" Library for easier and safe Unix signal handling","sig":null,"attributes":[{"value":"deny(missing_docs, warnings)","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":171,"byte_end":203,"line_start":6,"line_end":6,"column_start":1,"column_end":33}},{"value":"allow(unknown_lints, intra_doc_link_resolution_failure)","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":261,"byte_end":320,"line_start":8,"line_end":8,"column_start":1,"column_end":60}},{"value":"! Library for easier and safe Unix signal handling","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":321,"byte_end":373,"line_start":9,"line_end":9,"column_start":1,"column_end":53}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":374,"byte_end":377,"line_start":10,"line_end":10,"column_start":1,"column_end":4}},{"value":"! Unix signals are inherently hard to handle correctly, for several reasons:","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":378,"byte_end":456,"line_start":11,"line_end":11,"column_start":1,"column_end":79}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":457,"byte_end":460,"line_start":12,"line_end":12,"column_start":1,"column_end":4}},{"value":"! * They are a global resource. If a library wants to set its own signal handlers, it risks","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":461,"byte_end":554,"line_start":13,"line_end":13,"column_start":1,"column_end":94}},{"value":"! disturbing some other library. It is possible to chain the previous signal handler, but then","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":555,"byte_end":653,"line_start":14,"line_end":14,"column_start":1,"column_end":99}},{"value":"! it is impossible to remove the old signal handlers from the chains in any practical manner.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":654,"byte_end":751,"line_start":15,"line_end":15,"column_start":1,"column_end":98}},{"value":"! * They can be called from whatever thread, requiring synchronization. Also, as they can","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":752,"byte_end":843,"line_start":16,"line_end":16,"column_start":1,"column_end":92}},{"value":"! interrupt a thread at any time, making most handling race-prone.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":844,"byte_end":914,"line_start":17,"line_end":17,"column_start":1,"column_end":71}},{"value":"! * According to the POSIX standard, the set of functions one may call inside a signal handler is","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":915,"byte_end":1014,"line_start":18,"line_end":18,"column_start":1,"column_end":100}},{"value":"! limited to very few of them. To highlight, mutexes (or other locking mechanisms) and memory","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":1015,"byte_end":1112,"line_start":19,"line_end":19,"column_start":1,"column_end":98}},{"value":"! allocation and deallocation is *not* allowed.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":1113,"byte_end":1164,"line_start":20,"line_end":20,"column_start":1,"column_end":52}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":1165,"byte_end":1168,"line_start":21,"line_end":21,"column_start":1,"column_end":4}},{"value":"! This library aims to solve some of the problems. It provides a global registry of actions","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":1169,"byte_end":1262,"line_start":22,"line_end":22,"column_start":1,"column_end":94}},{"value":"! performed on arrival of signals. It is possible to register multiple actions for the same","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":1263,"byte_end":1356,"line_start":23,"line_end":23,"column_start":1,"column_end":94}},{"value":"! signal and it is possible to remove the actions later on. If there was a previous signal","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":1357,"byte_end":1449,"line_start":24,"line_end":24,"column_start":1,"column_end":93}},{"value":"! handler when the first action for a signal is registered, it is chained (but the original one","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":1450,"byte_end":1547,"line_start":25,"line_end":25,"column_start":1,"column_end":98}},{"value":"! can't be removed).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":1548,"byte_end":1570,"line_start":26,"line_end":26,"column_start":1,"column_end":23}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":1571,"byte_end":1574,"line_start":27,"line_end":27,"column_start":1,"column_end":4}},{"value":"! The main function of the library is [`register`](fn.register.html).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":1575,"byte_end":1646,"line_start":28,"line_end":28,"column_start":1,"column_end":72}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":1647,"byte_end":1650,"line_start":29,"line_end":29,"column_start":1,"column_end":4}},{"value":"! It also offers several common actions one might want to register, implemented in the correct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":1651,"byte_end":1747,"line_start":30,"line_end":30,"column_start":1,"column_end":97}},{"value":"! way. They are scattered through submodules and have the same limitations and characteristics as","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":1748,"byte_end":1847,"line_start":31,"line_end":31,"column_start":1,"column_end":100}},{"value":"! the [`register`](fn.register.html) function. Generally, they work to postpone the action taken","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":1848,"byte_end":1946,"line_start":32,"line_end":32,"column_start":1,"column_end":99}},{"value":"! outside of the signal handler, where the full freedom and power of rust is available.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":1947,"byte_end":2036,"line_start":33,"line_end":33,"column_start":1,"column_end":90}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":2037,"byte_end":2040,"line_start":34,"line_end":34,"column_start":1,"column_end":4}},{"value":"! Unlike other Rust libraries for signal handling, this should be flexible enough to handle all","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":2041,"byte_end":2138,"line_start":35,"line_end":35,"column_start":1,"column_end":98}},{"value":"! the common and useful patterns.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":2139,"byte_end":2174,"line_start":36,"line_end":36,"column_start":1,"column_end":36}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":2175,"byte_end":2178,"line_start":37,"line_end":37,"column_start":1,"column_end":4}},{"value":"! The library avoids all the newer fancy signal-handling routines. These generally have two","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":2179,"byte_end":2272,"line_start":38,"line_end":38,"column_start":1,"column_end":94}},{"value":"! downsides:","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":2273,"byte_end":2287,"line_start":39,"line_end":39,"column_start":1,"column_end":15}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":2288,"byte_end":2291,"line_start":40,"line_end":40,"column_start":1,"column_end":4}},{"value":"! * They are not fully portable, therefore the library would have to contain *both* the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":2292,"byte_end":2381,"line_start":41,"line_end":41,"column_start":1,"column_end":90}},{"value":"! implementation using the basic routines and the fancy ones. As signal handling is not on the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":2382,"byte_end":2480,"line_start":42,"line_end":42,"column_start":1,"column_end":99}},{"value":"! hot path of most programs, this would not bring any actual benefit.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":2481,"byte_end":2554,"line_start":43,"line_end":43,"column_start":1,"column_end":74}},{"value":"! * The other routines require that the given signal is masked in all application's threads. As","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":2555,"byte_end":2652,"line_start":44,"line_end":44,"column_start":1,"column_end":98}},{"value":"! the signals are not masked by default and a new thread inherits the signal mask of its","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":2653,"byte_end":2745,"line_start":45,"line_end":45,"column_start":1,"column_end":93}},{"value":"! parent, it is possible to guarantee such global mask by masking them before any threads","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":2746,"byte_end":2839,"line_start":46,"line_end":46,"column_start":1,"column_end":94}},{"value":"! start. While this is possible for an application developer to do, it is not possible for a","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":2840,"byte_end":2936,"line_start":47,"line_end":47,"column_start":1,"column_end":97}},{"value":"! a library.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":2937,"byte_end":2953,"line_start":48,"line_end":48,"column_start":1,"column_end":17}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":2954,"byte_end":2957,"line_start":49,"line_end":49,"column_start":1,"column_end":4}},{"value":"! # Warning","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":2958,"byte_end":2971,"line_start":50,"line_end":50,"column_start":1,"column_end":14}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":2972,"byte_end":2975,"line_start":51,"line_end":51,"column_start":1,"column_end":4}},{"value":"! Even with this library, you should thread with care. It does not eliminate all the problems","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":2976,"byte_end":3071,"line_start":52,"line_end":52,"column_start":1,"column_end":96}},{"value":"! mentioned above.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":3072,"byte_end":3092,"line_start":53,"line_end":53,"column_start":1,"column_end":21}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":3093,"byte_end":3096,"line_start":54,"line_end":54,"column_start":1,"column_end":4}},{"value":"! Also, note that the OS may collate multiple instances of the same signal into just one call of","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":3097,"byte_end":3195,"line_start":55,"line_end":55,"column_start":1,"column_end":99}},{"value":"! the signal handler. Furthermore, some abstractions implemented here also naturally collate","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":3196,"byte_end":3290,"line_start":56,"line_end":56,"column_start":1,"column_end":95}},{"value":"! multiple instances of the same signal. The general guarantee is, if there was at least one","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":3291,"byte_end":3385,"line_start":57,"line_end":57,"column_start":1,"column_end":95}},{"value":"! signal of the given number delivered, an action will be taken, but it is not specified how many","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":3386,"byte_end":3485,"line_start":58,"line_end":58,"column_start":1,"column_end":100}},{"value":"! times ‒ signals work mostly as kind of „wake up now“ nudge, if the application is slow to wake","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":3486,"byte_end":3590,"line_start":59,"line_end":59,"column_start":1,"column_end":99}},{"value":"! up, it may be nudged multiple times before it does so.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":3591,"byte_end":3649,"line_start":60,"line_end":60,"column_start":1,"column_end":59}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":3650,"byte_end":3653,"line_start":61,"line_end":61,"column_start":1,"column_end":4}},{"value":"! # Signal limitations","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":3654,"byte_end":3678,"line_start":62,"line_end":62,"column_start":1,"column_end":25}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":3679,"byte_end":3682,"line_start":63,"line_end":63,"column_start":1,"column_end":4}},{"value":"! OS limits still apply ‒ it is not possible to redefine certain signals (eg. `SIGKILL` or","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":3683,"byte_end":3777,"line_start":64,"line_end":64,"column_start":1,"column_end":93}},{"value":"! `SIGSTOP`) and it is probably a *very* stupid idea to touch certain other ones (`SIGSEGV`,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":3778,"byte_end":3872,"line_start":65,"line_end":65,"column_start":1,"column_end":95}},{"value":"! `SIGFPE`, `SIGILL`). Therefore, this library will panic if any attempt at manipulating these is","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":3873,"byte_end":3972,"line_start":66,"line_end":66,"column_start":1,"column_end":100}},{"value":"! made. There are some use cases for redefining the latter ones, but these are not well served by","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":3973,"byte_end":4072,"line_start":67,"line_end":67,"column_start":1,"column_end":100}},{"value":"! this library and you really *really* have to know what you're doing and are generally on your","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":4073,"byte_end":4170,"line_start":68,"line_end":68,"column_start":1,"column_end":98}},{"value":"! own doing that.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":4171,"byte_end":4190,"line_start":69,"line_end":69,"column_start":1,"column_end":20}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":4191,"byte_end":4194,"line_start":70,"line_end":70,"column_start":1,"column_end":4}},{"value":"! # Signal masks","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":4195,"byte_end":4213,"line_start":71,"line_end":71,"column_start":1,"column_end":19}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":4214,"byte_end":4217,"line_start":72,"line_end":72,"column_start":1,"column_end":4}},{"value":"! As the library uses `sigaction` under the hood, signal masking works as expected (eg. with","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":4218,"byte_end":4312,"line_start":73,"line_end":73,"column_start":1,"column_end":95}},{"value":"! `pthread_sigmask`). This means, signals will *not* be delivered if the signal is masked in all","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":4313,"byte_end":4411,"line_start":74,"line_end":74,"column_start":1,"column_end":99}},{"value":"! program's threads.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":4412,"byte_end":4434,"line_start":75,"line_end":75,"column_start":1,"column_end":23}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":4435,"byte_end":4438,"line_start":76,"line_end":76,"column_start":1,"column_end":4}},{"value":"! By the way, if you do want to modify the signal mask (or do other Unix-specific magic), the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":4439,"byte_end":4534,"line_start":77,"line_end":77,"column_start":1,"column_end":96}},{"value":"! [nix](https://crates.io/crates/nix) crate offers safe interface to many low-level functions,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":4535,"byte_end":4631,"line_start":78,"line_end":78,"column_start":1,"column_end":97}},{"value":"! including","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":4632,"byte_end":4645,"line_start":79,"line_end":79,"column_start":1,"column_end":14}},{"value":"! [`pthread_sigmask`](https://docs.rs/nix/0.11.0/nix/sys/signal/fn.pthread_sigmask.html).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":4646,"byte_end":4737,"line_start":80,"line_end":80,"column_start":1,"column_end":92}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":4738,"byte_end":4741,"line_start":81,"line_end":81,"column_start":1,"column_end":4}},{"value":"! # Portability","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":4742,"byte_end":4759,"line_start":82,"line_end":82,"column_start":1,"column_end":18}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":4760,"byte_end":4763,"line_start":83,"line_end":83,"column_start":1,"column_end":4}},{"value":"! It should work on any POSIX.1-2001 system, which are all the major big OSes with the notable","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":4764,"byte_end":4860,"line_start":84,"line_end":84,"column_start":1,"column_end":97}},{"value":"! exception of Windows.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":4861,"byte_end":4886,"line_start":85,"line_end":85,"column_start":1,"column_end":26}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":4887,"byte_end":4890,"line_start":86,"line_end":86,"column_start":1,"column_end":4}},{"value":"! Non-standard signals are also supported. Pass the signal value directly from `libc` or use","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":4891,"byte_end":4985,"line_start":87,"line_end":87,"column_start":1,"column_end":95}},{"value":"! the numeric value directly.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":4986,"byte_end":5017,"line_start":88,"line_end":88,"column_start":1,"column_end":32}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":5018,"byte_end":5021,"line_start":89,"line_end":89,"column_start":1,"column_end":4}},{"value":"! ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":5022,"byte_end":5033,"line_start":90,"line_end":90,"column_start":1,"column_end":12}},{"value":"! use std::sync::Arc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":5034,"byte_end":5057,"line_start":91,"line_end":91,"column_start":1,"column_end":24}},{"value":"! use std::sync::atomic::{AtomicBool};","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":5058,"byte_end":5098,"line_start":92,"line_end":92,"column_start":1,"column_end":41}},{"value":"! let term = Arc::new(AtomicBool::new(false));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":5099,"byte_end":5147,"line_start":93,"line_end":93,"column_start":1,"column_end":49}},{"value":"! let _ = signal_hook::flag::register(libc::SIGINT, Arc::clone(&term));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":5148,"byte_end":5221,"line_start":94,"line_end":94,"column_start":1,"column_end":74}},{"value":"! ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":5222,"byte_end":5229,"line_start":95,"line_end":95,"column_start":1,"column_end":8}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":5230,"byte_end":5233,"line_start":96,"line_end":96,"column_start":1,"column_end":4}},{"value":"! This crate includes a limited support for Windows, based on `signal`/`raise` in the CRT.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":5234,"byte_end":5326,"line_start":97,"line_end":97,"column_start":1,"column_end":93}},{"value":"! There are differences in both API and behavior:","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":5327,"byte_end":5378,"line_start":98,"line_end":98,"column_start":1,"column_end":52}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":5379,"byte_end":5382,"line_start":99,"line_end":99,"column_start":1,"column_end":4}},{"value":"! - `iterator` and `pipe` are not yet implemented.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":5383,"byte_end":5435,"line_start":100,"line_end":100,"column_start":1,"column_end":53}},{"value":"! - We have only a few signals: `SIGABRT`, `SIGABRT_COMPAT`, `SIGBREAK`,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":5436,"byte_end":5510,"line_start":101,"line_end":101,"column_start":1,"column_end":75}},{"value":"! `SIGFPE`, `SIGILL`, `SIGINT`, `SIGSEGV` and `SIGTERM`.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":5511,"byte_end":5571,"line_start":102,"line_end":102,"column_start":1,"column_end":61}},{"value":"! - Due to lack of signal blocking, there's a race condition.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":5572,"byte_end":5635,"line_start":103,"line_end":103,"column_start":1,"column_end":64}},{"value":"! After the call to `signal`, there's a moment where we miss a signal.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":5636,"byte_end":5710,"line_start":104,"line_end":104,"column_start":1,"column_end":75}},{"value":"! That means when you register a handler, there may be a signal which invokes","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":5711,"byte_end":5792,"line_start":105,"line_end":105,"column_start":1,"column_end":82}},{"value":"! neither the default handler or the handler you register.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":5793,"byte_end":5855,"line_start":106,"line_end":106,"column_start":1,"column_end":63}},{"value":"! - Handlers registered by `signal` in Windows are cleared on first signal.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":5856,"byte_end":5933,"line_start":107,"line_end":107,"column_start":1,"column_end":78}},{"value":"! To match behavior in other platforms, we re-register the handler each time the handler is","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":5934,"byte_end":6029,"line_start":108,"line_end":108,"column_start":1,"column_end":96}},{"value":"! called, but there's a moment where we miss a handler.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6030,"byte_end":6089,"line_start":109,"line_end":109,"column_start":1,"column_end":60}},{"value":"! That means when you receive two signals in a row, there may be a signal which invokes","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6090,"byte_end":6181,"line_start":110,"line_end":110,"column_start":1,"column_end":92}},{"value":"! the default handler, nevertheless you certainly have registered the handler.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6182,"byte_end":6264,"line_start":111,"line_end":111,"column_start":1,"column_end":83}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6265,"byte_end":6268,"line_start":112,"line_end":112,"column_start":1,"column_end":4}},{"value":"! Moreover, signals won't work as you expected. `SIGTERM` isn't actually used and","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6269,"byte_end":6352,"line_start":113,"line_end":113,"column_start":1,"column_end":84}},{"value":"! not all `Ctrl-C`s are turned into `SIGINT`.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6353,"byte_end":6400,"line_start":114,"line_end":114,"column_start":1,"column_end":48}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6401,"byte_end":6404,"line_start":115,"line_end":115,"column_start":1,"column_end":4}},{"value":"! Patches to improve Windows support in this library are welcome.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6405,"byte_end":6472,"line_start":116,"line_end":116,"column_start":1,"column_end":68}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6473,"byte_end":6476,"line_start":117,"line_end":117,"column_start":1,"column_end":4}},{"value":"! # Examples","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6477,"byte_end":6491,"line_start":118,"line_end":118,"column_start":1,"column_end":15}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6492,"byte_end":6495,"line_start":119,"line_end":119,"column_start":1,"column_end":4}},{"value":"! ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6496,"byte_end":6507,"line_start":120,"line_end":120,"column_start":1,"column_end":12}},{"value":"! extern crate signal_hook;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6508,"byte_end":6537,"line_start":121,"line_end":121,"column_start":1,"column_end":30}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6538,"byte_end":6541,"line_start":122,"line_end":122,"column_start":1,"column_end":4}},{"value":"! use std::io::Error;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6542,"byte_end":6565,"line_start":123,"line_end":123,"column_start":1,"column_end":24}},{"value":"! use std::sync::Arc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6566,"byte_end":6589,"line_start":124,"line_end":124,"column_start":1,"column_end":24}},{"value":"! use std::sync::atomic::{AtomicBool, Ordering};","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6590,"byte_end":6640,"line_start":125,"line_end":125,"column_start":1,"column_end":51}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6641,"byte_end":6644,"line_start":126,"line_end":126,"column_start":1,"column_end":4}},{"value":"! fn main() -> Result<(), Error> {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6645,"byte_end":6681,"line_start":127,"line_end":127,"column_start":1,"column_end":37}},{"value":"! let term = Arc::new(AtomicBool::new(false));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6682,"byte_end":6734,"line_start":128,"line_end":128,"column_start":1,"column_end":53}},{"value":"! signal_hook::flag::register(signal_hook::SIGTERM, Arc::clone(&term))?;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6735,"byte_end":6813,"line_start":129,"line_end":129,"column_start":1,"column_end":79}},{"value":"! while !term.load(Ordering::Relaxed) {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6814,"byte_end":6859,"line_start":130,"line_end":130,"column_start":1,"column_end":46}},{"value":"! // Do some time-limited stuff here","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6860,"byte_end":6906,"line_start":131,"line_end":131,"column_start":1,"column_end":47}},{"value":"! // (if this could block forever, then there's no guarantee the signal will have any","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":6907,"byte_end":7002,"line_start":132,"line_end":132,"column_start":1,"column_end":96}},{"value":"! // effect).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":7003,"byte_end":7026,"line_start":133,"line_end":133,"column_start":1,"column_end":24}},{"value":"! #","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":7027,"byte_end":7032,"line_start":134,"line_end":134,"column_start":1,"column_end":6}},{"value":"! # // Hack to terminate the example, not part of the real code.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":7033,"byte_end":7105,"line_start":135,"line_end":135,"column_start":1,"column_end":73}},{"value":"! # term.store(true, Ordering::Relaxed);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":7106,"byte_end":7154,"line_start":136,"line_end":136,"column_start":1,"column_end":49}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":7155,"byte_end":7164,"line_start":137,"line_end":137,"column_start":1,"column_end":10}},{"value":"! Ok(())","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":7165,"byte_end":7179,"line_start":138,"line_end":138,"column_start":1,"column_end":15}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":7180,"byte_end":7185,"line_start":139,"line_end":139,"column_start":1,"column_end":6}},{"value":"! ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":7186,"byte_end":7193,"line_start":140,"line_end":140,"column_start":1,"column_end":8}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":7194,"byte_end":7197,"line_start":141,"line_end":141,"column_start":1,"column_end":4}},{"value":"! # Features","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":7198,"byte_end":7212,"line_start":142,"line_end":142,"column_start":1,"column_end":15}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":7213,"byte_end":7216,"line_start":143,"line_end":143,"column_start":1,"column_end":4}},{"value":"! * `mio-support`: The [`Signals` iterator](iterator/struct.Signals.html) becomes pluggable into","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":7217,"byte_end":7315,"line_start":144,"line_end":144,"column_start":1,"column_end":99}},{"value":"! mio 0.6.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":7316,"byte_end":7330,"line_start":145,"line_end":145,"column_start":1,"column_end":15}},{"value":"! * `mio-0_7-support`: The [`Signals` iterator](iterator/struct.Signals.html) becomes pluggable into","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":7331,"byte_end":7433,"line_start":146,"line_end":146,"column_start":1,"column_end":103}},{"value":"! mio 0.7.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":7434,"byte_end":7448,"line_start":147,"line_end":147,"column_start":1,"column_end":15}},{"value":"! * `tokio-support`: The [`Signals`](iterator/struct.Signals.html) can be turned into","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":7449,"byte_end":7536,"line_start":148,"line_end":148,"column_start":1,"column_end":88}},{"value":"! [`Async`](iterator/struct.Async.html), which provides a `Stream` interface for integration in","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":7537,"byte_end":7636,"line_start":149,"line_end":149,"column_start":1,"column_end":100}},{"value":"! the asynchronous world.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":7637,"byte_end":7666,"line_start":150,"line_end":150,"column_start":1,"column_end":30}}]},{"kind":"Mod","id":{"krate":0,"index":5},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"name":"cleanup","qualname":"::cleanup","value":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","parent":null,"children":[{"krate":0,"index":6},{"krate":0,"index":7},{"krate":0,"index":8},{"krate":0,"index":12},{"krate":0,"index":13},{"krate":0,"index":14},{"krate":0,"index":15},{"krate":0,"index":16},{"krate":0,"index":17},{"krate":0,"index":19}],"decl_id":null,"docs":" Cleaning up signals.","sig":null,"attributes":[{"value":"! Cleaning up signals.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":8758,"byte_end":8782,"line_start":1,"line_end":1,"column_start":1,"column_end":25}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":8783,"byte_end":8786,"line_start":2,"line_end":2,"column_start":1,"column_end":4}},{"value":"! The routines in this module allow resetting the signals of an application back to defaults.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":8787,"byte_end":8882,"line_start":3,"line_end":3,"column_start":1,"column_end":96}},{"value":"! This is intended for the following situation:","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":8883,"byte_end":8932,"line_start":4,"line_end":4,"column_start":1,"column_end":50}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":8933,"byte_end":8936,"line_start":5,"line_end":5,"column_start":1,"column_end":4}},{"value":"! * A terminal signal (eg. a `SIGTERM`, `SIGINT` or something similar) is received.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":8937,"byte_end":9022,"line_start":6,"line_end":6,"column_start":1,"column_end":86}},{"value":"! * The application resets the signal handlers to defaults.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":9023,"byte_end":9084,"line_start":7,"line_end":7,"column_start":1,"column_end":62}},{"value":"! * The application proceeds to perform some kind of shutdown (saving data, cleaning up, ...).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":9085,"byte_end":9181,"line_start":8,"line_end":8,"column_start":1,"column_end":97}},{"value":"! * If another such signal is received, the application is terminated right away the hard way,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":9182,"byte_end":9278,"line_start":9,"line_end":9,"column_start":1,"column_end":97}},{"value":"! without finishing the shutdown.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":9279,"byte_end":9316,"line_start":10,"line_end":10,"column_start":1,"column_end":38}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":9317,"byte_end":9320,"line_start":11,"line_end":11,"column_start":1,"column_end":4}},{"value":"! The alternative of leaving the original signals in place might be problematic in case the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":9321,"byte_end":9414,"line_start":12,"line_end":12,"column_start":1,"column_end":94}},{"value":"! shutdown takes a long time or when it gets stuck. In such case the application would appear to","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":9415,"byte_end":9513,"line_start":13,"line_end":13,"column_start":1,"column_end":99}},{"value":"! ignore the signal and just refuse to die.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":9514,"byte_end":9559,"line_start":14,"line_end":14,"column_start":1,"column_end":46}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":9560,"byte_end":9563,"line_start":15,"line_end":15,"column_start":1,"column_end":4}},{"value":"! There are two ways to perform the reset:","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":9564,"byte_end":9608,"line_start":16,"line_end":16,"column_start":1,"column_end":45}},{"value":"! * Registering the reset as part of the signal handlers. This is more reliable (even in case the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":9609,"byte_end":9708,"line_start":17,"line_end":17,"column_start":1,"column_end":100}},{"value":"! application is already stuck in some kind of infinite loop, it would still work). This is","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":9709,"byte_end":9804,"line_start":18,"line_end":18,"column_start":1,"column_end":96}},{"value":"! done by [register].","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":9805,"byte_end":9830,"line_start":19,"line_end":19,"column_start":1,"column_end":26}},{"value":"! * Manually resetting the handlers just before the shutdown. This is done with [cleanup_signal].","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":9831,"byte_end":9930,"line_start":20,"line_end":20,"column_start":1,"column_end":100}}]},{"kind":"Function","id":{"krate":0,"index":15},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":11336,"byte_end":11347,"line_start":58,"line_end":58,"column_start":8,"column_end":19},"name":"cleanup_raw","qualname":"::cleanup::cleanup_raw","value":"fn (signal: c_int) -> sighandler_t","parent":null,"children":[],"decl_id":null,"docs":" Resets the signal handler to the default one.","sig":null,"attributes":[{"value":"/ Resets the signal handler to the default one.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":10286,"byte_end":10335,"line_start":38,"line_end":38,"column_start":1,"column_end":50}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":10336,"byte_end":10339,"line_start":39,"line_end":39,"column_start":1,"column_end":4}},{"value":"/ This is the lowest level wrapper around resetting the signal handler to the OS default. It","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":10340,"byte_end":10434,"line_start":40,"line_end":40,"column_start":1,"column_end":95}},{"value":"/ doesn't remove the hooks (though they will not get called), it doesn't handle errors and it","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":10435,"byte_end":10530,"line_start":41,"line_end":41,"column_start":1,"column_end":96}},{"value":"/ doesn't return any previous chained signals. The hooks will simply stay registered but dormant.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":10531,"byte_end":10630,"line_start":42,"line_end":42,"column_start":1,"column_end":100}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":10631,"byte_end":10634,"line_start":43,"line_end":43,"column_start":1,"column_end":4}},{"value":"/ This function is async-signal-safe. However, you might prefer to use either [cleanup_signal] or","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":10635,"byte_end":10734,"line_start":44,"line_end":44,"column_start":1,"column_end":100}},{"value":"/ [register].","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":10735,"byte_end":10750,"line_start":45,"line_end":45,"column_start":1,"column_end":16}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":10751,"byte_end":10754,"line_start":46,"line_end":46,"column_start":1,"column_end":4}},{"value":"/ # Warning","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":10755,"byte_end":10768,"line_start":47,"line_end":47,"column_start":1,"column_end":14}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":10769,"byte_end":10772,"line_start":48,"line_end":48,"column_start":1,"column_end":4}},{"value":"/ This action is irreversible, once called, registering more hooks for the same signal will have","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":10773,"byte_end":10871,"line_start":49,"line_end":49,"column_start":1,"column_end":99}},{"value":"/ no effect (neither the old nor the new ones will be active but the registration will appear to","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":10872,"byte_end":10970,"line_start":50,"line_end":50,"column_start":1,"column_end":99}},{"value":"/ have succeeded).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":10971,"byte_end":10991,"line_start":51,"line_end":51,"column_start":1,"column_end":21}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":10992,"byte_end":10995,"line_start":52,"line_end":52,"column_start":1,"column_end":4}},{"value":"/ This behaviour **can change** in future versions without considering it a breaking change.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":10996,"byte_end":11090,"line_start":53,"line_end":53,"column_start":1,"column_end":95}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":11091,"byte_end":11094,"line_start":54,"line_end":54,"column_start":1,"column_end":4}},{"value":"/ In other words, this is expected to be called only before terminating the application and no","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":11095,"byte_end":11191,"line_start":55,"line_end":55,"column_start":1,"column_end":97}},{"value":"/ further manipulation of the given signal is supported in any way. While it won't cause UB, it","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":11192,"byte_end":11289,"line_start":56,"line_end":56,"column_start":1,"column_end":98}},{"value":"/ *will* produce unexpected results.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":11290,"byte_end":11328,"line_start":57,"line_end":57,"column_start":1,"column_end":39}}]},{"kind":"Function","id":{"krate":0,"index":16},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":13586,"byte_end":13600,"line_start":114,"line_end":114,"column_start":8,"column_end":22},"name":"cleanup_signal","qualname":"::cleanup::cleanup_signal","value":"fn (signal: c_int) -> Result<(), Error>","parent":null,"children":[],"decl_id":null,"docs":" Resets the signal handler to the default one and removes all its hooks.","sig":null,"attributes":[{"value":"/ Resets the signal handler to the default one and removes all its hooks.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":11431,"byte_end":11506,"line_start":62,"line_end":62,"column_start":1,"column_end":76}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":11507,"byte_end":11510,"line_start":63,"line_end":63,"column_start":1,"column_end":4}},{"value":"/ This resets the signal to the OS default. It doesn't revert to calling any previous signal","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":11511,"byte_end":11605,"line_start":64,"line_end":64,"column_start":1,"column_end":95}},{"value":"/ handlers (the ones not handled by `signal-hook`). All the hooks registered for this signal are","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":11606,"byte_end":11704,"line_start":65,"line_end":65,"column_start":1,"column_end":99}},{"value":"/ removed.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":11705,"byte_end":11717,"line_start":66,"line_end":66,"column_start":1,"column_end":13}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":11718,"byte_end":11721,"line_start":67,"line_end":67,"column_start":1,"column_end":4}},{"value":"/ The intended use case is making sure further instances of a terminal signal have immediate","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":11722,"byte_end":11816,"line_start":68,"line_end":68,"column_start":1,"column_end":95}},{"value":"/ effect. If eg. a CTRL+C is pressed, the application removes all signal handling and proceeds to","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":11817,"byte_end":11916,"line_start":69,"line_end":69,"column_start":1,"column_end":100}},{"value":"/ its own shutdown phase. If the shutdown phase takes too long or gets stuck, the user may press","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":11917,"byte_end":12015,"line_start":70,"line_end":70,"column_start":1,"column_end":99}},{"value":"/ CTRL+C again which will then kill the application immediately, by a default signal action.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12016,"byte_end":12110,"line_start":71,"line_end":71,"column_start":1,"column_end":95}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12111,"byte_end":12114,"line_start":72,"line_end":72,"column_start":1,"column_end":4}},{"value":"/ # Warning","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12115,"byte_end":12128,"line_start":73,"line_end":73,"column_start":1,"column_end":14}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12129,"byte_end":12132,"line_start":74,"line_end":74,"column_start":1,"column_end":4}},{"value":"/ This action is *global* (affecting hooks some other library or unrelated part of program","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12133,"byte_end":12225,"line_start":75,"line_end":75,"column_start":1,"column_end":93}},{"value":"/ registered) and *irreversible*. Once called, registering new hooks for this signal has no","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12226,"byte_end":12319,"line_start":76,"line_end":76,"column_start":1,"column_end":94}},{"value":"/ further effect (they'll appear to be registered, but they won't be called by the signal). The","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12320,"byte_end":12417,"line_start":77,"line_end":77,"column_start":1,"column_end":98}},{"value":"/ latter may change in the future and it won't be considered a breaking change.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12418,"byte_end":12499,"line_start":78,"line_end":78,"column_start":1,"column_end":82}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12500,"byte_end":12503,"line_start":79,"line_end":79,"column_start":1,"column_end":4}},{"value":"/ In other words, this is expected to be called only once the application enters its terminal","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12504,"byte_end":12599,"line_start":80,"line_end":80,"column_start":1,"column_end":96}},{"value":"/ state and is not supported otherwise.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12600,"byte_end":12641,"line_start":81,"line_end":81,"column_start":1,"column_end":42}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12642,"byte_end":12645,"line_start":82,"line_end":82,"column_start":1,"column_end":4}},{"value":"/ The function is **not** async-signal-safe. See [register] and [cleanup_raw] if you intend to","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12646,"byte_end":12742,"line_start":83,"line_end":83,"column_start":1,"column_end":97}},{"value":"/ reset the signal directly from inside the signal handler itself.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12743,"byte_end":12811,"line_start":84,"line_end":84,"column_start":1,"column_end":69}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12812,"byte_end":12815,"line_start":85,"line_end":85,"column_start":1,"column_end":4}},{"value":"/ # Examples","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12816,"byte_end":12830,"line_start":86,"line_end":86,"column_start":1,"column_end":15}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12831,"byte_end":12834,"line_start":87,"line_end":87,"column_start":1,"column_end":4}},{"value":"/ ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12835,"byte_end":12846,"line_start":88,"line_end":88,"column_start":1,"column_end":12}},{"value":"/ # extern crate libc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12847,"byte_end":12871,"line_start":89,"line_end":89,"column_start":1,"column_end":25}},{"value":"/ # extern crate signal_hook;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12872,"byte_end":12903,"line_start":90,"line_end":90,"column_start":1,"column_end":32}},{"value":"/ #","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12904,"byte_end":12909,"line_start":91,"line_end":91,"column_start":1,"column_end":6}},{"value":"/ # use std::io::Error;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12910,"byte_end":12935,"line_start":92,"line_end":92,"column_start":1,"column_end":26}},{"value":"/ # use std::sync::atomic::{AtomicBool, Ordering};","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12936,"byte_end":12988,"line_start":93,"line_end":93,"column_start":1,"column_end":53}},{"value":"/ # use std::sync::Arc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":12989,"byte_end":13014,"line_start":94,"line_end":94,"column_start":1,"column_end":26}},{"value":"/ #","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":13015,"byte_end":13020,"line_start":95,"line_end":95,"column_start":1,"column_end":6}},{"value":"/ # fn keep_processing() { std::thread::sleep(std::time::Duration::from_millis(50)); }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":13021,"byte_end":13109,"line_start":96,"line_end":96,"column_start":1,"column_end":89}},{"value":"/ # fn app_cleanup() {}","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":13110,"byte_end":13135,"line_start":97,"line_end":97,"column_start":1,"column_end":26}},{"value":"/ use signal_hook::{cleanup, flag, SIGTERM};","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":13136,"byte_end":13182,"line_start":98,"line_end":98,"column_start":1,"column_end":47}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":13183,"byte_end":13186,"line_start":99,"line_end":99,"column_start":1,"column_end":4}},{"value":"/ fn main() -> Result<(), Error> {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":13187,"byte_end":13223,"line_start":100,"line_end":100,"column_start":1,"column_end":37}},{"value":"/ let terminated = Arc::new(AtomicBool::new(false));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":13224,"byte_end":13282,"line_start":101,"line_end":101,"column_start":1,"column_end":59}},{"value":"/ flag::register(SIGTERM, Arc::clone(&terminated))?;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":13283,"byte_end":13341,"line_start":102,"line_end":102,"column_start":1,"column_end":59}},{"value":"/ # unsafe { libc::raise(SIGTERM) };","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":13342,"byte_end":13382,"line_start":103,"line_end":103,"column_start":1,"column_end":41}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":13383,"byte_end":13386,"line_start":104,"line_end":104,"column_start":1,"column_end":4}},{"value":"/ while !terminated.load(Ordering::Relaxed) {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":13387,"byte_end":13438,"line_start":105,"line_end":105,"column_start":1,"column_end":52}},{"value":"/ keep_processing();","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":13439,"byte_end":13469,"line_start":106,"line_end":106,"column_start":1,"column_end":31}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":13470,"byte_end":13479,"line_start":107,"line_end":107,"column_start":1,"column_end":10}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":13480,"byte_end":13483,"line_start":108,"line_end":108,"column_start":1,"column_end":4}},{"value":"/ cleanup::cleanup_signal(SIGTERM)?;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":13484,"byte_end":13526,"line_start":109,"line_end":109,"column_start":1,"column_end":43}},{"value":"/ app_cleanup();","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":13527,"byte_end":13549,"line_start":110,"line_end":110,"column_start":1,"column_end":23}},{"value":"/ Ok(())","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":13550,"byte_end":13564,"line_start":111,"line_end":111,"column_start":1,"column_end":15}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":13565,"byte_end":13570,"line_start":112,"line_end":112,"column_start":1,"column_end":6}},{"value":"/ ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":13571,"byte_end":13578,"line_start":113,"line_end":113,"column_start":1,"column_end":8}}]},{"kind":"Function","id":{"krate":0,"index":19},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":16472,"byte_end":16480,"line_start":195,"line_end":195,"column_start":8,"column_end":16},"name":"register","qualname":"::cleanup::register","value":"fn (signal: c_int, cleanup: Vec) -> Result","parent":null,"children":[],"decl_id":null,"docs":" Register a cleanup after receiving a signal.","sig":null,"attributes":[{"value":"/ Register a cleanup after receiving a signal.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":14546,"byte_end":14594,"line_start":146,"line_end":146,"column_start":1,"column_end":49}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":14595,"byte_end":14598,"line_start":147,"line_end":147,"column_start":1,"column_end":4}},{"value":"/ Registers an action that, after receiving `signal`, will reset all signals specified in","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":14599,"byte_end":14690,"line_start":148,"line_end":148,"column_start":1,"column_end":92}},{"value":"/ `cleanup` to their OS defaults. The reset is done as part of the signal handler.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":14691,"byte_end":14775,"line_start":149,"line_end":149,"column_start":1,"column_end":85}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":14776,"byte_end":14779,"line_start":150,"line_end":150,"column_start":1,"column_end":4}},{"value":"/ The intended use case is that at CTRL+C (or something similar), the application starts shutting","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":14780,"byte_end":14879,"line_start":151,"line_end":151,"column_start":1,"column_end":100}},{"value":"/ down. This might take some time so by resetting all terminal signals to the defaults at that","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":14880,"byte_end":14976,"line_start":152,"line_end":152,"column_start":1,"column_end":97}},{"value":"/ time makes sure a second CTRL+C results in immediate (hard) termination of the application.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":14977,"byte_end":15072,"line_start":153,"line_end":153,"column_start":1,"column_end":96}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15073,"byte_end":15076,"line_start":154,"line_end":154,"column_start":1,"column_end":4}},{"value":"/ The hooks are still left inside and any following hooks after the reset are still run. Only the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15077,"byte_end":15176,"line_start":155,"line_end":155,"column_start":1,"column_end":100}},{"value":"/ next signal will be affected (and the hooks will be inert).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15177,"byte_end":15240,"line_start":156,"line_end":156,"column_start":1,"column_end":64}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15241,"byte_end":15244,"line_start":157,"line_end":157,"column_start":1,"column_end":4}},{"value":"/ # Warning","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15245,"byte_end":15258,"line_start":158,"line_end":158,"column_start":1,"column_end":14}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15259,"byte_end":15262,"line_start":159,"line_end":159,"column_start":1,"column_end":4}},{"value":"/ The reset as part of the action is *global* and *irreversible*. All signal hooks and all","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15263,"byte_end":15355,"line_start":160,"line_end":160,"column_start":1,"column_end":93}},{"value":"/ signals registered outside of `signal-hook` are affected and won't be run any more. Registering","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15356,"byte_end":15455,"line_start":161,"line_end":161,"column_start":1,"column_end":100}},{"value":"/ more hooks for the same signals as cleaned will have no effect.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15456,"byte_end":15523,"line_start":162,"line_end":162,"column_start":1,"column_end":68}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15524,"byte_end":15527,"line_start":163,"line_end":163,"column_start":1,"column_end":4}},{"value":"/ The latter part of having no effect may be changed in the future, do not rely on it.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15528,"byte_end":15616,"line_start":164,"line_end":164,"column_start":1,"column_end":89}},{"value":"/ Preferably, don't manipulate the signal any longer.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15617,"byte_end":15672,"line_start":165,"line_end":165,"column_start":1,"column_end":56}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15673,"byte_end":15676,"line_start":166,"line_end":166,"column_start":1,"column_end":4}},{"value":"/ # Examples","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15677,"byte_end":15691,"line_start":167,"line_end":167,"column_start":1,"column_end":15}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15692,"byte_end":15695,"line_start":168,"line_end":168,"column_start":1,"column_end":4}},{"value":"/ ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15696,"byte_end":15707,"line_start":169,"line_end":169,"column_start":1,"column_end":12}},{"value":"/ # extern crate libc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15708,"byte_end":15732,"line_start":170,"line_end":170,"column_start":1,"column_end":25}},{"value":"/ # extern crate signal_hook;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15733,"byte_end":15764,"line_start":171,"line_end":171,"column_start":1,"column_end":32}},{"value":"/ #","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15765,"byte_end":15770,"line_start":172,"line_end":172,"column_start":1,"column_end":6}},{"value":"/ # use std::io::Error;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15771,"byte_end":15796,"line_start":173,"line_end":173,"column_start":1,"column_end":26}},{"value":"/ # use std::sync::atomic::{AtomicBool, Ordering};","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15797,"byte_end":15849,"line_start":174,"line_end":174,"column_start":1,"column_end":53}},{"value":"/ # use std::sync::Arc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15850,"byte_end":15875,"line_start":175,"line_end":175,"column_start":1,"column_end":26}},{"value":"/ #","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15876,"byte_end":15881,"line_start":176,"line_end":176,"column_start":1,"column_end":6}},{"value":"/ # fn keep_processing() { std::thread::sleep(std::time::Duration::from_millis(50)); }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15882,"byte_end":15970,"line_start":177,"line_end":177,"column_start":1,"column_end":89}},{"value":"/ # fn app_cleanup() {}","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15971,"byte_end":15996,"line_start":178,"line_end":178,"column_start":1,"column_end":26}},{"value":"/ use signal_hook::{cleanup, flag, SIGINT, SIGTERM};","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":15997,"byte_end":16051,"line_start":179,"line_end":179,"column_start":1,"column_end":55}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":16052,"byte_end":16055,"line_start":180,"line_end":180,"column_start":1,"column_end":4}},{"value":"/ fn main() -> Result<(), Error> {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":16056,"byte_end":16092,"line_start":181,"line_end":181,"column_start":1,"column_end":37}},{"value":"/ let terminated = Arc::new(AtomicBool::new(false));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":16093,"byte_end":16151,"line_start":182,"line_end":182,"column_start":1,"column_end":59}},{"value":"/ flag::register(SIGTERM, Arc::clone(&terminated))?;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":16152,"byte_end":16210,"line_start":183,"line_end":183,"column_start":1,"column_end":59}},{"value":"/ cleanup::register(SIGTERM, vec![SIGTERM, SIGINT])?;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":16211,"byte_end":16270,"line_start":184,"line_end":184,"column_start":1,"column_end":60}},{"value":"/ # unsafe { libc::raise(SIGTERM) };","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":16271,"byte_end":16311,"line_start":185,"line_end":185,"column_start":1,"column_end":41}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":16312,"byte_end":16315,"line_start":186,"line_end":186,"column_start":1,"column_end":4}},{"value":"/ while !terminated.load(Ordering::Relaxed) {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":16316,"byte_end":16367,"line_start":187,"line_end":187,"column_start":1,"column_end":52}},{"value":"/ keep_processing();","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":16368,"byte_end":16398,"line_start":188,"line_end":188,"column_start":1,"column_end":31}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":16399,"byte_end":16408,"line_start":189,"line_end":189,"column_start":1,"column_end":10}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":16409,"byte_end":16412,"line_start":190,"line_end":190,"column_start":1,"column_end":4}},{"value":"/ app_cleanup();","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":16413,"byte_end":16435,"line_start":191,"line_end":191,"column_start":1,"column_end":23}},{"value":"/ Ok(())","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":16436,"byte_end":16450,"line_start":192,"line_end":192,"column_start":1,"column_end":15}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":16451,"byte_end":16456,"line_start":193,"line_end":193,"column_start":1,"column_end":6}},{"value":"/ ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs","byte_start":16457,"byte_end":16464,"line_start":194,"line_end":194,"column_start":1,"column_end":8}}]},{"kind":"Mod","id":{"krate":0,"index":21},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"name":"flag","qualname":"::flag","value":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","parent":null,"children":[{"krate":0,"index":22},{"krate":0,"index":23},{"krate":0,"index":27},{"krate":0,"index":28},{"krate":0,"index":29},{"krate":0,"index":30},{"krate":0,"index":32}],"decl_id":null,"docs":" Module for actions setting flags.","sig":null,"attributes":[{"value":"! Module for actions setting flags.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":16956,"byte_end":16993,"line_start":1,"line_end":1,"column_start":1,"column_end":38}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":16994,"byte_end":16997,"line_start":2,"line_end":2,"column_start":1,"column_end":4}},{"value":"! This contains helper functions to set flags whenever a signal happens. The flags are atomic","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":16998,"byte_end":17093,"line_start":3,"line_end":3,"column_start":1,"column_end":96}},{"value":"! bools or numbers and the library manipulates them with the `SeqCst` ordering, in case someone","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":17094,"byte_end":17191,"line_start":4,"line_end":4,"column_start":1,"column_end":98}},{"value":"! cares about relative order to some *other* atomic variables. If you don't care about the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":17192,"byte_end":17284,"line_start":5,"line_end":5,"column_start":1,"column_end":93}},{"value":"! relative order, you are free to use `Ordering::Relaxed` when reading and resetting the flags.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":17285,"byte_end":17382,"line_start":6,"line_end":6,"column_start":1,"column_end":98}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":17383,"byte_end":17386,"line_start":7,"line_end":7,"column_start":1,"column_end":4}},{"value":"! # When to use","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":17387,"byte_end":17404,"line_start":8,"line_end":8,"column_start":1,"column_end":18}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":17405,"byte_end":17408,"line_start":9,"line_end":9,"column_start":1,"column_end":4}},{"value":"! The flags in this module allow for polling if a signal arrived since the previous poll. The do","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":17409,"byte_end":17507,"line_start":10,"line_end":10,"column_start":1,"column_end":99}},{"value":"! not allow blocking until something arrives.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":17508,"byte_end":17555,"line_start":11,"line_end":11,"column_start":1,"column_end":48}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":17556,"byte_end":17559,"line_start":12,"line_end":12,"column_start":1,"column_end":4}},{"value":"! Therefore, the natural way to use them is in applications that have some kind of iterative work","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":17560,"byte_end":17659,"line_start":13,"line_end":13,"column_start":1,"column_end":100}},{"value":"! with both some upper and lower time limit on one iteration. If one iteration could block for","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":17660,"byte_end":17756,"line_start":14,"line_end":14,"column_start":1,"column_end":97}},{"value":"! arbitrary time, the handling of the signal would be postponed for a long time. If the iteration","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":17757,"byte_end":17856,"line_start":15,"line_end":15,"column_start":1,"column_end":100}},{"value":"! didn't block at all, the checking for the signal would turn into a busy-loop.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":17857,"byte_end":17938,"line_start":16,"line_end":16,"column_start":1,"column_end":82}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":17939,"byte_end":17942,"line_start":17,"line_end":17,"column_start":1,"column_end":4}},{"value":"! If what you need is blocking until a signal comes, you might find better tools in the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":17943,"byte_end":18032,"line_start":18,"line_end":18,"column_start":1,"column_end":90}},{"value":"! [`pipe`](../pipe/) and [`iterator`](../iterator/) modules.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18033,"byte_end":18095,"line_start":19,"line_end":19,"column_start":1,"column_end":63}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18096,"byte_end":18099,"line_start":20,"line_end":20,"column_start":1,"column_end":4}},{"value":"! # Examples","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18100,"byte_end":18114,"line_start":21,"line_end":21,"column_start":1,"column_end":15}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18115,"byte_end":18118,"line_start":22,"line_end":22,"column_start":1,"column_end":4}},{"value":"! Doing something until terminated. This also knows by which signal it was terminated. In case","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18119,"byte_end":18215,"line_start":23,"line_end":23,"column_start":1,"column_end":97}},{"value":"! multiple termination signals arrive before it is handled, it recognizes the last one.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18216,"byte_end":18305,"line_start":24,"line_end":24,"column_start":1,"column_end":90}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18306,"byte_end":18309,"line_start":25,"line_end":25,"column_start":1,"column_end":4}},{"value":"! ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18310,"byte_end":18321,"line_start":26,"line_end":26,"column_start":1,"column_end":12}},{"value":"! extern crate signal_hook;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18322,"byte_end":18351,"line_start":27,"line_end":27,"column_start":1,"column_end":30}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18352,"byte_end":18355,"line_start":28,"line_end":28,"column_start":1,"column_end":4}},{"value":"! use std::io::Error;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18356,"byte_end":18379,"line_start":29,"line_end":29,"column_start":1,"column_end":24}},{"value":"! use std::sync::Arc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18380,"byte_end":18403,"line_start":30,"line_end":30,"column_start":1,"column_end":24}},{"value":"! use std::sync::atomic::{AtomicUsize, Ordering};","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18404,"byte_end":18455,"line_start":31,"line_end":31,"column_start":1,"column_end":52}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18456,"byte_end":18459,"line_start":32,"line_end":32,"column_start":1,"column_end":4}},{"value":"! use signal_hook::flag as signal_flag;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18460,"byte_end":18501,"line_start":33,"line_end":33,"column_start":1,"column_end":42}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18502,"byte_end":18505,"line_start":34,"line_end":34,"column_start":1,"column_end":4}},{"value":"! fn main() -> Result<(), Error> {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18506,"byte_end":18542,"line_start":35,"line_end":35,"column_start":1,"column_end":37}},{"value":"! let term = Arc::new(AtomicUsize::new(0));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18543,"byte_end":18592,"line_start":36,"line_end":36,"column_start":1,"column_end":50}},{"value":"! const SIGTERM: usize = signal_hook::SIGTERM as usize;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18593,"byte_end":18654,"line_start":37,"line_end":37,"column_start":1,"column_end":62}},{"value":"! const SIGINT: usize = signal_hook::SIGINT as usize;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18655,"byte_end":18714,"line_start":38,"line_end":38,"column_start":1,"column_end":60}},{"value":"! # #[cfg(not(windows))]","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18715,"byte_end":18743,"line_start":39,"line_end":39,"column_start":1,"column_end":29}},{"value":"! const SIGQUIT: usize = signal_hook::SIGQUIT as usize;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18744,"byte_end":18805,"line_start":40,"line_end":40,"column_start":1,"column_end":62}},{"value":"! signal_flag::register_usize(signal_hook::SIGTERM, Arc::clone(&term), SIGTERM)?;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18806,"byte_end":18893,"line_start":41,"line_end":41,"column_start":1,"column_end":88}},{"value":"! signal_flag::register_usize(signal_hook::SIGINT, Arc::clone(&term), SIGINT)?;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18894,"byte_end":18979,"line_start":42,"line_end":42,"column_start":1,"column_end":86}},{"value":"! # #[cfg(not(windows))]","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":18980,"byte_end":19008,"line_start":43,"line_end":43,"column_start":1,"column_end":29}},{"value":"! signal_flag::register_usize(signal_hook::SIGQUIT, Arc::clone(&term), SIGQUIT)?;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19009,"byte_end":19096,"line_start":44,"line_end":44,"column_start":1,"column_end":88}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19097,"byte_end":19100,"line_start":45,"line_end":45,"column_start":1,"column_end":4}},{"value":"! # // Hack to terminate the example when run as a doc-test.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19101,"byte_end":19165,"line_start":46,"line_end":46,"column_start":1,"column_end":65}},{"value":"! # term.store(SIGTERM, Ordering::Relaxed);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19166,"byte_end":19213,"line_start":47,"line_end":47,"column_start":1,"column_end":48}},{"value":"! loop {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19214,"byte_end":19228,"line_start":48,"line_end":48,"column_start":1,"column_end":15}},{"value":"! match term.load(Ordering::Relaxed) {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19229,"byte_end":19277,"line_start":49,"line_end":49,"column_start":1,"column_end":49}},{"value":"! 0 => {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19278,"byte_end":19300,"line_start":50,"line_end":50,"column_start":1,"column_end":23}},{"value":"! // Do some useful stuff here","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19301,"byte_end":19349,"line_start":51,"line_end":51,"column_start":1,"column_end":49}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19350,"byte_end":19367,"line_start":52,"line_end":52,"column_start":1,"column_end":18}},{"value":"! SIGTERM => {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19368,"byte_end":19396,"line_start":53,"line_end":53,"column_start":1,"column_end":29}},{"value":"! eprintln!(\"Terminating on the TERM signal\");","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19397,"byte_end":19461,"line_start":54,"line_end":54,"column_start":1,"column_end":65}},{"value":"! break;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19462,"byte_end":19488,"line_start":55,"line_end":55,"column_start":1,"column_end":27}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19489,"byte_end":19506,"line_start":56,"line_end":56,"column_start":1,"column_end":18}},{"value":"! SIGINT => {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19507,"byte_end":19534,"line_start":57,"line_end":57,"column_start":1,"column_end":28}},{"value":"! eprintln!(\"Terminating on the INT signal\");","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19535,"byte_end":19598,"line_start":58,"line_end":58,"column_start":1,"column_end":64}},{"value":"! break;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19599,"byte_end":19625,"line_start":59,"line_end":59,"column_start":1,"column_end":27}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19626,"byte_end":19643,"line_start":60,"line_end":60,"column_start":1,"column_end":18}},{"value":"! # #[cfg(not(windows))]","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19644,"byte_end":19680,"line_start":61,"line_end":61,"column_start":1,"column_end":37}},{"value":"! SIGQUIT => {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19681,"byte_end":19709,"line_start":62,"line_end":62,"column_start":1,"column_end":29}},{"value":"! eprintln!(\"Terminating on the QUIT signal\");","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19710,"byte_end":19774,"line_start":63,"line_end":63,"column_start":1,"column_end":65}},{"value":"! break;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19775,"byte_end":19801,"line_start":64,"line_end":64,"column_start":1,"column_end":27}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19802,"byte_end":19819,"line_start":65,"line_end":65,"column_start":1,"column_end":18}},{"value":"! _ => unreachable!(),","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19820,"byte_end":19856,"line_start":66,"line_end":66,"column_start":1,"column_end":37}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19857,"byte_end":19870,"line_start":67,"line_end":67,"column_start":1,"column_end":14}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19871,"byte_end":19880,"line_start":68,"line_end":68,"column_start":1,"column_end":10}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19881,"byte_end":19884,"line_start":69,"line_end":69,"column_start":1,"column_end":4}},{"value":"! Ok(())","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19885,"byte_end":19899,"line_start":70,"line_end":70,"column_start":1,"column_end":15}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19900,"byte_end":19905,"line_start":71,"line_end":71,"column_start":1,"column_end":6}},{"value":"! ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19906,"byte_end":19913,"line_start":72,"line_end":72,"column_start":1,"column_end":8}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19914,"byte_end":19917,"line_start":73,"line_end":73,"column_start":1,"column_end":4}},{"value":"! Sending a signal to self and seeing it arrived (not of a practical usage on itself):","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":19918,"byte_end":20006,"line_start":74,"line_end":74,"column_start":1,"column_end":89}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20007,"byte_end":20010,"line_start":75,"line_end":75,"column_start":1,"column_end":4}},{"value":"! ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20011,"byte_end":20022,"line_start":76,"line_end":76,"column_start":1,"column_end":12}},{"value":"! extern crate libc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20023,"byte_end":20045,"line_start":77,"line_end":77,"column_start":1,"column_end":23}},{"value":"! extern crate signal_hook;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20046,"byte_end":20075,"line_start":78,"line_end":78,"column_start":1,"column_end":30}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20076,"byte_end":20079,"line_start":79,"line_end":79,"column_start":1,"column_end":4}},{"value":"! use std::io::Error;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20080,"byte_end":20103,"line_start":80,"line_end":80,"column_start":1,"column_end":24}},{"value":"! use std::sync::Arc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20104,"byte_end":20127,"line_start":81,"line_end":81,"column_start":1,"column_end":24}},{"value":"! use std::sync::atomic::{AtomicBool, Ordering};","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20128,"byte_end":20178,"line_start":82,"line_end":82,"column_start":1,"column_end":51}},{"value":"! use std::thread;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20179,"byte_end":20199,"line_start":83,"line_end":83,"column_start":1,"column_end":21}},{"value":"! use std::time::Duration;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20200,"byte_end":20228,"line_start":84,"line_end":84,"column_start":1,"column_end":29}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20229,"byte_end":20232,"line_start":85,"line_end":85,"column_start":1,"column_end":4}},{"value":"! fn main() -> Result<(), Error> {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20233,"byte_end":20269,"line_start":86,"line_end":86,"column_start":1,"column_end":37}},{"value":"! let got = Arc::new(AtomicBool::new(false));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20270,"byte_end":20321,"line_start":87,"line_end":87,"column_start":1,"column_end":52}},{"value":"! # #[cfg(not(windows))]","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20322,"byte_end":20350,"line_start":88,"line_end":88,"column_start":1,"column_end":29}},{"value":"! signal_hook::flag::register(signal_hook::SIGUSR1, Arc::clone(&got))?;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20351,"byte_end":20428,"line_start":89,"line_end":89,"column_start":1,"column_end":78}},{"value":"! # #[cfg(windows)]","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20429,"byte_end":20452,"line_start":90,"line_end":90,"column_start":1,"column_end":24}},{"value":"! # signal_hook::flag::register(signal_hook::SIGTERM, Arc::clone(&got))?;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20453,"byte_end":20530,"line_start":91,"line_end":91,"column_start":1,"column_end":78}},{"value":"! unsafe {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20531,"byte_end":20547,"line_start":92,"line_end":92,"column_start":1,"column_end":17}},{"value":"! # #[cfg(not(windows))]","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20548,"byte_end":20580,"line_start":93,"line_end":93,"column_start":1,"column_end":33}},{"value":"! libc::raise(signal_hook::SIGUSR1);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20581,"byte_end":20627,"line_start":94,"line_end":94,"column_start":1,"column_end":47}},{"value":"! # #[cfg(windows)]","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20628,"byte_end":20655,"line_start":95,"line_end":95,"column_start":1,"column_end":28}},{"value":"! # libc::raise(signal_hook::SIGTERM);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20656,"byte_end":20702,"line_start":96,"line_end":96,"column_start":1,"column_end":47}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20703,"byte_end":20712,"line_start":97,"line_end":97,"column_start":1,"column_end":10}},{"value":"! // A sleep here, because it could run the signal handler in another thread and we may not","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20713,"byte_end":20810,"line_start":98,"line_end":98,"column_start":1,"column_end":98}},{"value":"! // see the flag right away. This is still a hack and not guaranteed to work, it is just an","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20811,"byte_end":20909,"line_start":99,"line_end":99,"column_start":1,"column_end":99}},{"value":"! // example!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20910,"byte_end":20929,"line_start":100,"line_end":100,"column_start":1,"column_end":20}},{"value":"! thread::sleep(Duration::from_secs(1));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20930,"byte_end":20976,"line_start":101,"line_end":101,"column_start":1,"column_end":47}},{"value":"! assert!(got.load(Ordering::Relaxed));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":20977,"byte_end":21022,"line_start":102,"line_end":102,"column_start":1,"column_end":46}},{"value":"! Ok(())","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21023,"byte_end":21037,"line_start":103,"line_end":103,"column_start":1,"column_end":15}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21038,"byte_end":21043,"line_start":104,"line_end":104,"column_start":1,"column_end":6}},{"value":"! ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21044,"byte_end":21051,"line_start":105,"line_end":105,"column_start":1,"column_end":8}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21052,"byte_end":21055,"line_start":106,"line_end":106,"column_start":1,"column_end":4}},{"value":"! Reloading a configuration on `SIGHUP` (which is a common behaviour of many UNIX daemons,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21056,"byte_end":21148,"line_start":107,"line_end":107,"column_start":1,"column_end":93}},{"value":"! together with reopening the log file).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21149,"byte_end":21191,"line_start":108,"line_end":108,"column_start":1,"column_end":43}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21192,"byte_end":21195,"line_start":109,"line_end":109,"column_start":1,"column_end":4}},{"value":"! ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21196,"byte_end":21207,"line_start":110,"line_end":110,"column_start":1,"column_end":12}},{"value":"! extern crate signal_hook;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21208,"byte_end":21237,"line_start":111,"line_end":111,"column_start":1,"column_end":30}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21238,"byte_end":21241,"line_start":112,"line_end":112,"column_start":1,"column_end":4}},{"value":"! use std::io::Error;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21242,"byte_end":21265,"line_start":113,"line_end":113,"column_start":1,"column_end":24}},{"value":"! use std::sync::Arc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21266,"byte_end":21289,"line_start":114,"line_end":114,"column_start":1,"column_end":24}},{"value":"! use std::sync::atomic::{AtomicBool, Ordering};","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21290,"byte_end":21340,"line_start":115,"line_end":115,"column_start":1,"column_end":51}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21341,"byte_end":21344,"line_start":116,"line_end":116,"column_start":1,"column_end":4}},{"value":"! use signal_hook::flag as signal_flag;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21345,"byte_end":21386,"line_start":117,"line_end":117,"column_start":1,"column_end":42}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21387,"byte_end":21390,"line_start":118,"line_end":118,"column_start":1,"column_end":4}},{"value":"! fn main() -> Result<(), Error> {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21391,"byte_end":21427,"line_start":119,"line_end":119,"column_start":1,"column_end":37}},{"value":"! // We start with true, to load the configuration in the very first iteration too.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21428,"byte_end":21517,"line_start":120,"line_end":120,"column_start":1,"column_end":90}},{"value":"! let reload = Arc::new(AtomicBool::new(true));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21518,"byte_end":21571,"line_start":121,"line_end":121,"column_start":1,"column_end":54}},{"value":"! let term = Arc::new(AtomicBool::new(false));","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21572,"byte_end":21624,"line_start":122,"line_end":122,"column_start":1,"column_end":53}},{"value":"! # #[cfg(not(windows))]","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21625,"byte_end":21653,"line_start":123,"line_end":123,"column_start":1,"column_end":29}},{"value":"! signal_flag::register(signal_hook::SIGHUP, Arc::clone(&reload))?;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21654,"byte_end":21727,"line_start":124,"line_end":124,"column_start":1,"column_end":74}},{"value":"! signal_flag::register(signal_hook::SIGINT, Arc::clone(&term))?;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21728,"byte_end":21799,"line_start":125,"line_end":125,"column_start":1,"column_end":72}},{"value":"! signal_flag::register(signal_hook::SIGTERM, Arc::clone(&term))?;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21800,"byte_end":21872,"line_start":126,"line_end":126,"column_start":1,"column_end":73}},{"value":"! # #[cfg(not(windows))]","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21873,"byte_end":21901,"line_start":127,"line_end":127,"column_start":1,"column_end":29}},{"value":"! signal_flag::register(signal_hook::SIGQUIT, Arc::clone(&term))?;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21902,"byte_end":21974,"line_start":128,"line_end":128,"column_start":1,"column_end":73}},{"value":"! while !term.load(Ordering::Relaxed) {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":21975,"byte_end":22020,"line_start":129,"line_end":129,"column_start":1,"column_end":46}},{"value":"! // Using swap here, not load, to reset it back to false once it is reloaded.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":22021,"byte_end":22109,"line_start":130,"line_end":130,"column_start":1,"column_end":89}},{"value":"! if reload.swap(false, Ordering::Relaxed) {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":22110,"byte_end":22164,"line_start":131,"line_end":131,"column_start":1,"column_end":55}},{"value":"! // Reload the config here","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":22165,"byte_end":22206,"line_start":132,"line_end":132,"column_start":1,"column_end":42}},{"value":"! #","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":22207,"byte_end":22212,"line_start":133,"line_end":133,"column_start":1,"column_end":6}},{"value":"! # // Hiden hack to make the example terminate when run as doc-test. Not part of the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":22213,"byte_end":22310,"line_start":134,"line_end":134,"column_start":1,"column_end":98}},{"value":"! # // real code.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":22311,"byte_end":22340,"line_start":135,"line_end":135,"column_start":1,"column_end":30}},{"value":"! # term.store(true, Ordering::Relaxed);","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":22341,"byte_end":22393,"line_start":136,"line_end":136,"column_start":1,"column_end":53}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":22394,"byte_end":22407,"line_start":137,"line_end":137,"column_start":1,"column_end":14}},{"value":"! // Serve one request","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":22408,"byte_end":22440,"line_start":138,"line_end":138,"column_start":1,"column_end":33}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":22441,"byte_end":22450,"line_start":139,"line_end":139,"column_start":1,"column_end":10}},{"value":"! Ok(())","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":22451,"byte_end":22465,"line_start":140,"line_end":140,"column_start":1,"column_end":15}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":22466,"byte_end":22471,"line_start":141,"line_end":141,"column_start":1,"column_end":6}},{"value":"! ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":22472,"byte_end":22479,"line_start":142,"line_end":142,"column_start":1,"column_end":8}}]},{"kind":"Function","id":{"krate":0,"index":30},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":22711,"byte_end":22719,"line_start":153,"line_end":153,"column_start":8,"column_end":16},"name":"register","qualname":"::flag::register","value":"fn (signal: c_int, flag: Arc) -> Result","parent":null,"children":[],"decl_id":null,"docs":" Registers an action to set the flag to `true` whenever the given signal arrives.\n","sig":null,"attributes":[{"value":"/ Registers an action to set the flag to `true` whenever the given signal arrives.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":22619,"byte_end":22703,"line_start":152,"line_end":152,"column_start":1,"column_end":85}}]},{"kind":"Function","id":{"krate":0,"index":32},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":23237,"byte_end":23251,"line_start":162,"line_end":162,"column_start":8,"column_end":22},"name":"register_usize","qualname":"::flag::register_usize","value":"fn (signal: c_int, flag: Arc, value: usize) -> Result","parent":null,"children":[],"decl_id":null,"docs":" Registers an action to set the flag to the given value whenever the signal arrives.\n","sig":null,"attributes":[{"value":"/ Registers an action to set the flag to the given value whenever the signal arrives.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs","byte_start":23142,"byte_end":23229,"line_start":161,"line_end":161,"column_start":1,"column_end":88}}]},{"kind":"Mod","id":{"krate":0,"index":34},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"name":"iterator","qualname":"::iterator","value":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","parent":null,"children":[{"krate":0,"index":35},{"krate":0,"index":36},{"krate":0,"index":37},{"krate":0,"index":38},{"krate":0,"index":39},{"krate":0,"index":40},{"krate":0,"index":41},{"krate":0,"index":44},{"krate":0,"index":47},{"krate":0,"index":50},{"krate":0,"index":51},{"krate":0,"index":145},{"krate":0,"index":150},{"krate":0,"index":52},{"krate":0,"index":152},{"krate":0,"index":155},{"krate":0,"index":54},{"krate":0,"index":157},{"krate":0,"index":162},{"krate":0,"index":160},{"krate":0,"index":57},{"krate":0,"index":73},{"krate":0,"index":78},{"krate":0,"index":82},{"krate":0,"index":86},{"krate":0,"index":90}],"decl_id":null,"docs":" An iterator over incoming signals.","sig":null,"attributes":[{"value":"cfg(not (windows))","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":7991,"byte_end":8011,"line_start":165,"line_end":165,"column_start":1,"column_end":21}},{"value":"! An iterator over incoming signals.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":24995,"byte_end":25033,"line_start":1,"line_end":1,"column_start":1,"column_end":39}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25034,"byte_end":25037,"line_start":2,"line_end":2,"column_start":1,"column_end":4}},{"value":"! This provides a higher abstraction over the signals, providing a structure","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25038,"byte_end":25116,"line_start":3,"line_end":3,"column_start":1,"column_end":79}},{"value":"! ([`Signals`](struct.Signals.html)) able to iterate over the incoming signals.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25117,"byte_end":25198,"line_start":4,"line_end":4,"column_start":1,"column_end":82}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25199,"byte_end":25202,"line_start":5,"line_end":5,"column_start":1,"column_end":4}},{"value":"! In case the `tokio-support` feature is turned on, the [`Async`](struct.Async.html) is also","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25203,"byte_end":25297,"line_start":6,"line_end":6,"column_start":1,"column_end":95}},{"value":"! available, making it possible to integrate with the tokio runtime.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25298,"byte_end":25368,"line_start":7,"line_end":7,"column_start":1,"column_end":71}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25369,"byte_end":25372,"line_start":8,"line_end":8,"column_start":1,"column_end":4}},{"value":"! # Examples","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25373,"byte_end":25387,"line_start":9,"line_end":9,"column_start":1,"column_end":15}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25388,"byte_end":25391,"line_start":10,"line_end":10,"column_start":1,"column_end":4}},{"value":"! ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25392,"byte_end":25403,"line_start":11,"line_end":11,"column_start":1,"column_end":12}},{"value":"! extern crate libc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25404,"byte_end":25426,"line_start":12,"line_end":12,"column_start":1,"column_end":23}},{"value":"! extern crate signal_hook;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25427,"byte_end":25456,"line_start":13,"line_end":13,"column_start":1,"column_end":30}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25457,"byte_end":25460,"line_start":14,"line_end":14,"column_start":1,"column_end":4}},{"value":"! use std::io::Error;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25461,"byte_end":25484,"line_start":15,"line_end":15,"column_start":1,"column_end":24}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25485,"byte_end":25488,"line_start":16,"line_end":16,"column_start":1,"column_end":4}},{"value":"! use signal_hook::iterator::Signals;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25489,"byte_end":25528,"line_start":17,"line_end":17,"column_start":1,"column_end":40}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25529,"byte_end":25532,"line_start":18,"line_end":18,"column_start":1,"column_end":4}},{"value":"! fn main() -> Result<(), Error> {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25533,"byte_end":25569,"line_start":19,"line_end":19,"column_start":1,"column_end":37}},{"value":"! let signals = Signals::new(&[","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25570,"byte_end":25607,"line_start":20,"line_end":20,"column_start":1,"column_end":38}},{"value":"! signal_hook::SIGHUP,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25608,"byte_end":25640,"line_start":21,"line_end":21,"column_start":1,"column_end":33}},{"value":"! signal_hook::SIGTERM,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25641,"byte_end":25674,"line_start":22,"line_end":22,"column_start":1,"column_end":34}},{"value":"! signal_hook::SIGINT,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25675,"byte_end":25707,"line_start":23,"line_end":23,"column_start":1,"column_end":33}},{"value":"! signal_hook::SIGQUIT,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25708,"byte_end":25741,"line_start":24,"line_end":24,"column_start":1,"column_end":34}},{"value":"! # signal_hook::SIGUSR1,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25742,"byte_end":25775,"line_start":25,"line_end":25,"column_start":1,"column_end":34}},{"value":"! ])?;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25776,"byte_end":25788,"line_start":26,"line_end":26,"column_start":1,"column_end":13}},{"value":"! # // A trick to terminate the example when run as doc-test. Not part of the real code.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25789,"byte_end":25881,"line_start":27,"line_end":27,"column_start":1,"column_end":93}},{"value":"! # unsafe { libc::raise(signal_hook::SIGUSR1) };","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25882,"byte_end":25935,"line_start":28,"line_end":28,"column_start":1,"column_end":54}},{"value":"! 'outer: loop {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25936,"byte_end":25958,"line_start":29,"line_end":29,"column_start":1,"column_end":23}},{"value":"! // Pick up signals that arrived since last time","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":25959,"byte_end":26018,"line_start":30,"line_end":30,"column_start":1,"column_end":60}},{"value":"! for signal in signals.pending() {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":26019,"byte_end":26064,"line_start":31,"line_end":31,"column_start":1,"column_end":46}},{"value":"! match signal as libc::c_int {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":26065,"byte_end":26110,"line_start":32,"line_end":32,"column_start":1,"column_end":46}},{"value":"! signal_hook::SIGHUP => {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":26111,"byte_end":26155,"line_start":33,"line_end":33,"column_start":1,"column_end":45}},{"value":"! // Reload configuration","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":26156,"byte_end":26203,"line_start":34,"line_end":34,"column_start":1,"column_end":48}},{"value":"! // Reopen the log file","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":26204,"byte_end":26250,"line_start":35,"line_end":35,"column_start":1,"column_end":47}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":26251,"byte_end":26272,"line_start":36,"line_end":36,"column_start":1,"column_end":22}},{"value":"! signal_hook::SIGTERM | signal_hook::SIGINT | signal_hook::SIGQUIT => {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":26273,"byte_end":26363,"line_start":37,"line_end":37,"column_start":1,"column_end":91}},{"value":"! break 'outer;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":26364,"byte_end":26401,"line_start":38,"line_end":38,"column_start":1,"column_end":38}},{"value":"! },","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":26402,"byte_end":26424,"line_start":39,"line_end":39,"column_start":1,"column_end":23}},{"value":"! # signal_hook::SIGUSR1 => return Ok(()),","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":26425,"byte_end":26483,"line_start":40,"line_end":40,"column_start":1,"column_end":59}},{"value":"! _ => unreachable!(),","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":26484,"byte_end":26524,"line_start":41,"line_end":41,"column_start":1,"column_end":41}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":26525,"byte_end":26542,"line_start":42,"line_end":42,"column_start":1,"column_end":18}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":26543,"byte_end":26556,"line_start":43,"line_end":43,"column_start":1,"column_end":14}},{"value":"! // Do some bit of work ‒ something with upper limit on waiting, so we don't block","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":26557,"byte_end":26652,"line_start":44,"line_end":44,"column_start":1,"column_end":94}},{"value":"! // forever with a SIGTERM already waiting.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":26653,"byte_end":26707,"line_start":45,"line_end":45,"column_start":1,"column_end":55}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":26708,"byte_end":26717,"line_start":46,"line_end":46,"column_start":1,"column_end":10}},{"value":"! println!(\"Terminating. Bye bye\");","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":26718,"byte_end":26759,"line_start":47,"line_end":47,"column_start":1,"column_end":42}},{"value":"! Ok(())","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":26760,"byte_end":26774,"line_start":48,"line_end":48,"column_start":1,"column_end":15}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":26775,"byte_end":26780,"line_start":49,"line_end":49,"column_start":1,"column_end":6}},{"value":"! ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":26781,"byte_end":26788,"line_start":50,"line_end":50,"column_start":1,"column_end":8}}]},{"kind":"Struct","id":{"krate":0,"index":157},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":30156,"byte_end":30163,"line_start":162,"line_end":162,"column_start":12,"column_end":19},"name":"Signals","qualname":"::iterator::Signals","value":"Signals { }","parent":null,"children":[{"krate":0,"index":158},{"krate":0,"index":159}],"decl_id":null,"docs":" The main structure of the module, representing interest in some signals.","sig":null,"attributes":[{"value":"/ The main structure of the module, representing interest in some signals.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":28150,"byte_end":28226,"line_start":107,"line_end":107,"column_start":1,"column_end":77}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":28227,"byte_end":28230,"line_start":108,"line_end":108,"column_start":1,"column_end":4}},{"value":"/ Unlike the helpers in other modules, this registers the signals when created and unregisters","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":28231,"byte_end":28327,"line_start":109,"line_end":109,"column_start":1,"column_end":97}},{"value":"/ them on drop. It provides the pending signals during its lifetime, either in batches or as an","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":28328,"byte_end":28425,"line_start":110,"line_end":110,"column_start":1,"column_end":98}},{"value":"/ infinite iterator.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":28426,"byte_end":28448,"line_start":111,"line_end":111,"column_start":1,"column_end":23}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":28449,"byte_end":28452,"line_start":112,"line_end":112,"column_start":1,"column_end":4}},{"value":"/ # Multiple consumers","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":28453,"byte_end":28477,"line_start":113,"line_end":113,"column_start":1,"column_end":25}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":28478,"byte_end":28481,"line_start":114,"line_end":114,"column_start":1,"column_end":4}},{"value":"/ You may have noticed this structure can be used simultaneously by multiple threads. If it is","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":28482,"byte_end":28578,"line_start":115,"line_end":115,"column_start":1,"column_end":97}},{"value":"/ done, a signal arrives to one of the threads (on the first come, first serve basis). The signal","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":28579,"byte_end":28678,"line_start":116,"line_end":116,"column_start":1,"column_end":100}},{"value":"/ is *not* broadcasted to all currently active threads.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":28679,"byte_end":28736,"line_start":117,"line_end":117,"column_start":1,"column_end":58}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":28737,"byte_end":28740,"line_start":118,"line_end":118,"column_start":1,"column_end":4}},{"value":"/ A similar thing applies to cloning the structure ‒ at least one of the copies gets the signal,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":28741,"byte_end":28841,"line_start":119,"line_end":119,"column_start":1,"column_end":99}},{"value":"/ but it is not broadcasted to all of them.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":28842,"byte_end":28887,"line_start":120,"line_end":120,"column_start":1,"column_end":46}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":28888,"byte_end":28891,"line_start":121,"line_end":121,"column_start":1,"column_end":4}},{"value":"/ If you need multiple recipients, you can create multiple independent instances (not by cloning,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":28892,"byte_end":28991,"line_start":122,"line_end":122,"column_start":1,"column_end":100}},{"value":"/ but by the constructor).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":28992,"byte_end":29020,"line_start":123,"line_end":123,"column_start":1,"column_end":29}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29021,"byte_end":29024,"line_start":124,"line_end":124,"column_start":1,"column_end":4}},{"value":"/ # Examples","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29025,"byte_end":29039,"line_start":125,"line_end":125,"column_start":1,"column_end":15}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29040,"byte_end":29043,"line_start":126,"line_end":126,"column_start":1,"column_end":4}},{"value":"/ ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29044,"byte_end":29055,"line_start":127,"line_end":127,"column_start":1,"column_end":12}},{"value":"/ # extern crate signal_hook;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29056,"byte_end":29087,"line_start":128,"line_end":128,"column_start":1,"column_end":32}},{"value":"/ #","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29088,"byte_end":29093,"line_start":129,"line_end":129,"column_start":1,"column_end":6}},{"value":"/ # use std::io::Error;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29094,"byte_end":29119,"line_start":130,"line_end":130,"column_start":1,"column_end":26}},{"value":"/ # use std::thread;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29120,"byte_end":29142,"line_start":131,"line_end":131,"column_start":1,"column_end":23}},{"value":"/ use signal_hook::iterator::Signals;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29143,"byte_end":29182,"line_start":132,"line_end":132,"column_start":1,"column_end":40}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29183,"byte_end":29186,"line_start":133,"line_end":133,"column_start":1,"column_end":4}},{"value":"/ #","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29187,"byte_end":29192,"line_start":134,"line_end":134,"column_start":1,"column_end":6}},{"value":"/ # fn main() -> Result<(), Error> {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29193,"byte_end":29231,"line_start":135,"line_end":135,"column_start":1,"column_end":39}},{"value":"/ let signals = Signals::new(&[signal_hook::SIGUSR1, signal_hook::SIGUSR2])?;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29232,"byte_end":29311,"line_start":136,"line_end":136,"column_start":1,"column_end":80}},{"value":"/ thread::spawn(move || {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29312,"byte_end":29339,"line_start":137,"line_end":137,"column_start":1,"column_end":28}},{"value":"/ for signal in &signals {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29340,"byte_end":29372,"line_start":138,"line_end":138,"column_start":1,"column_end":33}},{"value":"/ match signal {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29373,"byte_end":29399,"line_start":139,"line_end":139,"column_start":1,"column_end":27}},{"value":"/ signal_hook::SIGUSR1 => {},","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29400,"byte_end":29443,"line_start":140,"line_end":140,"column_start":1,"column_end":44}},{"value":"/ signal_hook::SIGUSR2 => {},","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29444,"byte_end":29487,"line_start":141,"line_end":141,"column_start":1,"column_end":44}},{"value":"/ _ => unreachable!(),","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29488,"byte_end":29524,"line_start":142,"line_end":142,"column_start":1,"column_end":37}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29525,"byte_end":29538,"line_start":143,"line_end":143,"column_start":1,"column_end":14}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29539,"byte_end":29548,"line_start":144,"line_end":144,"column_start":1,"column_end":10}},{"value":"/ });","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29549,"byte_end":29556,"line_start":145,"line_end":145,"column_start":1,"column_end":8}},{"value":"/ # Ok(())","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29557,"byte_end":29569,"line_start":146,"line_end":146,"column_start":1,"column_end":13}},{"value":"/ # }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29570,"byte_end":29577,"line_start":147,"line_end":147,"column_start":1,"column_end":8}},{"value":"/ ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29578,"byte_end":29585,"line_start":148,"line_end":148,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29586,"byte_end":29589,"line_start":149,"line_end":149,"column_start":1,"column_end":4}},{"value":"/ # `mio` support","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29590,"byte_end":29609,"line_start":150,"line_end":150,"column_start":1,"column_end":20}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29610,"byte_end":29613,"line_start":151,"line_end":151,"column_start":1,"column_end":4}},{"value":"/ If the crate is compiled with the `mio-support` or `mio-0_7-support` flags, the `Signals`","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29614,"byte_end":29707,"line_start":152,"line_end":152,"column_start":1,"column_end":94}},{"value":"/ becomes pluggable into `mio` version `0.6` or `0.7` respectively (it implements the `Source`","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29708,"byte_end":29804,"line_start":153,"line_end":153,"column_start":1,"column_end":97}},{"value":"/ trait). If it becomes readable, there may be new signals to pick up.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29805,"byte_end":29877,"line_start":154,"line_end":154,"column_start":1,"column_end":73}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29878,"byte_end":29881,"line_start":155,"line_end":155,"column_start":1,"column_end":4}},{"value":"/ # `tokio` support","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29882,"byte_end":29903,"line_start":156,"line_end":156,"column_start":1,"column_end":22}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29904,"byte_end":29907,"line_start":157,"line_end":157,"column_start":1,"column_end":4}},{"value":"/ If the crate is compiled with the `tokio-support` flag, the [`into_async`](#method.into_async)","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":29908,"byte_end":30006,"line_start":158,"line_end":158,"column_start":1,"column_end":99}},{"value":"/ method becomes available. This method turns the iterator into an asynchronous stream of","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":30007,"byte_end":30098,"line_start":159,"line_end":159,"column_start":1,"column_end":92}},{"value":"/ received signals.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":30099,"byte_end":30120,"line_start":160,"line_end":160,"column_start":1,"column_end":22}}]},{"kind":"Method","id":{"krate":0,"index":58},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":30443,"byte_end":30446,"line_start":172,"line_end":172,"column_start":12,"column_end":15},"name":"new","qualname":"::new","value":"fn (signals: I) -> Result","parent":null,"children":[],"decl_id":null,"docs":" Creates the `Signals` structure.","sig":null,"attributes":[{"value":"/ Creates the `Signals` structure.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":30244,"byte_end":30280,"line_start":168,"line_end":168,"column_start":5,"column_end":41}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":30285,"byte_end":30288,"line_start":169,"line_end":169,"column_start":5,"column_end":8}},{"value":"/ This registers all the signals listed. The same restrictions (panics, errors) apply as with","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":30293,"byte_end":30388,"line_start":170,"line_end":170,"column_start":5,"column_end":100}},{"value":"/ [`register`](../fn.register.html).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":30393,"byte_end":30431,"line_start":171,"line_end":171,"column_start":5,"column_end":43}}]},{"kind":"Method","id":{"krate":0,"index":63},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":31948,"byte_end":31958,"line_start":212,"line_end":212,"column_start":12,"column_end":22},"name":"add_signal","qualname":"::add_signal","value":"fn (&self, signal: c_int) -> Result<(), Error>","parent":null,"children":[],"decl_id":null,"docs":" Registers another signal to the set watched by this [`Signals`] instance.","sig":null,"attributes":[{"value":"/ Registers another signal to the set watched by this [`Signals`] instance.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":31130,"byte_end":31207,"line_start":196,"line_end":196,"column_start":5,"column_end":82}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":31212,"byte_end":31215,"line_start":197,"line_end":197,"column_start":5,"column_end":8}},{"value":"/ # Notes","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":31220,"byte_end":31231,"line_start":198,"line_end":198,"column_start":5,"column_end":16}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":31236,"byte_end":31239,"line_start":199,"line_end":199,"column_start":5,"column_end":8}},{"value":"/ * This is safe to call concurrently from whatever thread.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":31244,"byte_end":31305,"line_start":200,"line_end":200,"column_start":5,"column_end":66}},{"value":"/ * This is *not* safe to call from within a signal handler.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":31310,"byte_end":31372,"line_start":201,"line_end":201,"column_start":5,"column_end":67}},{"value":"/ * If the signal number was already registered previously, this is a no-op.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":31377,"byte_end":31455,"line_start":202,"line_end":202,"column_start":5,"column_end":83}},{"value":"/ * If this errors, the original set of signals is left intact.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":31460,"byte_end":31525,"line_start":203,"line_end":203,"column_start":5,"column_end":70}},{"value":"/ * This actually registers the signal into the whole group of [`Signals`] cloned from each","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":31530,"byte_end":31623,"line_start":204,"line_end":204,"column_start":5,"column_end":98}},{"value":"/ other, so any of them might start receiving the signals.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":31628,"byte_end":31690,"line_start":205,"line_end":205,"column_start":5,"column_end":67}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":31695,"byte_end":31698,"line_start":206,"line_end":206,"column_start":5,"column_end":8}},{"value":"/ # Panics","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":31703,"byte_end":31715,"line_start":207,"line_end":207,"column_start":5,"column_end":17}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":31720,"byte_end":31723,"line_start":208,"line_end":208,"column_start":5,"column_end":8}},{"value":"/ * If the given signal is [forbidden][::FORBIDDEN].","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":31728,"byte_end":31782,"line_start":209,"line_end":209,"column_start":5,"column_end":59}},{"value":"/ * If the signal number is negative or larger than internal limit. The limit should be","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":31787,"byte_end":31876,"line_start":210,"line_end":210,"column_start":5,"column_end":94}},{"value":"/ larger than any supported signal the OS supports.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":31881,"byte_end":31936,"line_start":211,"line_end":211,"column_start":5,"column_end":60}}]},{"kind":"Method","id":{"krate":0,"index":68},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":34913,"byte_end":34920,"line_start":290,"line_end":290,"column_start":12,"column_end":19},"name":"pending","qualname":"::pending","value":"fn (&self) -> Pending","parent":null,"children":[],"decl_id":null,"docs":" Returns an iterator of already received signals.","sig":null,"attributes":[{"value":"/ Returns an iterator of already received signals.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":34378,"byte_end":34430,"line_start":281,"line_end":281,"column_start":5,"column_end":57}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":34435,"byte_end":34438,"line_start":282,"line_end":282,"column_start":5,"column_end":8}},{"value":"/ This returns an iterator over all the signal numbers of the signals received since last","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":34443,"byte_end":34534,"line_start":283,"line_end":283,"column_start":5,"column_end":96}},{"value":"/ time they were read (out of the set registered by this `Signals` instance). Note that they","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":34539,"byte_end":34633,"line_start":284,"line_end":284,"column_start":5,"column_end":99}},{"value":"/ are returned in arbitrary order and a signal number is returned only once even if it was","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":34638,"byte_end":34730,"line_start":285,"line_end":285,"column_start":5,"column_end":97}},{"value":"/ received multiple times.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":34735,"byte_end":34763,"line_start":286,"line_end":286,"column_start":5,"column_end":33}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":34768,"byte_end":34771,"line_start":287,"line_end":287,"column_start":5,"column_end":8}},{"value":"/ This method returns immediately (does not block) and may produce an empty iterator if there","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":34776,"byte_end":34871,"line_start":288,"line_end":288,"column_start":5,"column_end":100}},{"value":"/ are no signals ready.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":34876,"byte_end":34901,"line_start":289,"line_end":289,"column_start":5,"column_end":30}}]},{"kind":"Method","id":{"krate":0,"index":69},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":35489,"byte_end":35493,"line_start":305,"line_end":305,"column_start":12,"column_end":16},"name":"wait","qualname":"::wait","value":"fn (&self) -> Pending","parent":null,"children":[],"decl_id":null,"docs":" Waits for some signals to be available and returns an iterator.","sig":null,"attributes":[{"value":"/ Waits for some signals to be available and returns an iterator.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":35035,"byte_end":35102,"line_start":296,"line_end":296,"column_start":5,"column_end":72}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":35107,"byte_end":35110,"line_start":297,"line_end":297,"column_start":5,"column_end":8}},{"value":"/ This is similar to [`pending`](#method.pending). If there are no signals available, it","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":35115,"byte_end":35205,"line_start":298,"line_end":298,"column_start":5,"column_end":95}},{"value":"/ tries to wait for some to arrive. However, due to implementation details, this still can","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":35210,"byte_end":35302,"line_start":299,"line_end":299,"column_start":5,"column_end":97}},{"value":"/ produce an empty iterator.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":35307,"byte_end":35337,"line_start":300,"line_end":300,"column_start":5,"column_end":35}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":35342,"byte_end":35345,"line_start":301,"line_end":301,"column_start":5,"column_end":8}},{"value":"/ This can block for arbitrary long time.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":35350,"byte_end":35393,"line_start":302,"line_end":302,"column_start":5,"column_end":48}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":35398,"byte_end":35401,"line_start":303,"line_end":303,"column_start":5,"column_end":8}},{"value":"/ Note that the blocking is done in this method, not in the iterator.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":35406,"byte_end":35477,"line_start":304,"line_end":304,"column_start":5,"column_end":76}}]},{"kind":"Method","id":{"krate":0,"index":70},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36961,"byte_end":36968,"line_start":347,"line_end":347,"column_start":12,"column_end":19},"name":"forever","qualname":"::forever","value":"fn (&self) -> Forever","parent":null,"children":[],"decl_id":null,"docs":" Returns an infinite iterator over arriving signals.","sig":null,"attributes":[{"value":"/ Returns an infinite iterator over arriving signals.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":35607,"byte_end":35662,"line_start":311,"line_end":311,"column_start":5,"column_end":60}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":35667,"byte_end":35670,"line_start":312,"line_end":312,"column_start":5,"column_end":8}},{"value":"/ The iterator's `next()` blocks as necessary to wait for signals to arrive. This is adequate","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":35675,"byte_end":35770,"line_start":313,"line_end":313,"column_start":5,"column_end":100}},{"value":"/ if you want to designate a thread solely to handling signals. If multiple signals come at","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":35775,"byte_end":35868,"line_start":314,"line_end":314,"column_start":5,"column_end":98}},{"value":"/ the same time (between two values produced by the iterator), they will be returned in","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":35873,"byte_end":35962,"line_start":315,"line_end":315,"column_start":5,"column_end":94}},{"value":"/ arbitrary order. Multiple instances of the same signal may be collated.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":35967,"byte_end":36042,"line_start":316,"line_end":316,"column_start":5,"column_end":80}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36047,"byte_end":36050,"line_start":317,"line_end":317,"column_start":5,"column_end":8}},{"value":"/ This is also the iterator returned by `IntoIterator` implementation on `&Signals`.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36055,"byte_end":36141,"line_start":318,"line_end":318,"column_start":5,"column_end":91}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36146,"byte_end":36149,"line_start":319,"line_end":319,"column_start":5,"column_end":8}},{"value":"/ This iterator terminates only if the [`Signals`] is explicitly [closed][Signals::close].","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36154,"byte_end":36246,"line_start":320,"line_end":320,"column_start":5,"column_end":97}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36251,"byte_end":36254,"line_start":321,"line_end":321,"column_start":5,"column_end":8}},{"value":"/ # Examples","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36259,"byte_end":36273,"line_start":322,"line_end":322,"column_start":5,"column_end":19}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36278,"byte_end":36281,"line_start":323,"line_end":323,"column_start":5,"column_end":8}},{"value":"/ ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36286,"byte_end":36297,"line_start":324,"line_end":324,"column_start":5,"column_end":16}},{"value":"/ # extern crate libc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36302,"byte_end":36326,"line_start":325,"line_end":325,"column_start":5,"column_end":29}},{"value":"/ # extern crate signal_hook;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36331,"byte_end":36362,"line_start":326,"line_end":326,"column_start":5,"column_end":36}},{"value":"/ #","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36367,"byte_end":36372,"line_start":327,"line_end":327,"column_start":5,"column_end":10}},{"value":"/ # use std::io::Error;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36377,"byte_end":36402,"line_start":328,"line_end":328,"column_start":5,"column_end":30}},{"value":"/ # use std::thread;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36407,"byte_end":36429,"line_start":329,"line_end":329,"column_start":5,"column_end":27}},{"value":"/ #","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36434,"byte_end":36439,"line_start":330,"line_end":330,"column_start":5,"column_end":10}},{"value":"/ use signal_hook::iterator::Signals;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36444,"byte_end":36483,"line_start":331,"line_end":331,"column_start":5,"column_end":44}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36488,"byte_end":36491,"line_start":332,"line_end":332,"column_start":5,"column_end":8}},{"value":"/ # fn main() -> Result<(), Error> {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36496,"byte_end":36534,"line_start":333,"line_end":333,"column_start":5,"column_end":43}},{"value":"/ let signals = Signals::new(&[signal_hook::SIGUSR1, signal_hook::SIGUSR2])?;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36539,"byte_end":36618,"line_start":334,"line_end":334,"column_start":5,"column_end":84}},{"value":"/ thread::spawn(move || {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36623,"byte_end":36650,"line_start":335,"line_end":335,"column_start":5,"column_end":32}},{"value":"/ for signal in signals.forever() {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36655,"byte_end":36696,"line_start":336,"line_end":336,"column_start":5,"column_end":46}},{"value":"/ match signal {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36701,"byte_end":36727,"line_start":337,"line_end":337,"column_start":5,"column_end":31}},{"value":"/ signal_hook::SIGUSR1 => {},","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36732,"byte_end":36775,"line_start":338,"line_end":338,"column_start":5,"column_end":48}},{"value":"/ signal_hook::SIGUSR2 => {},","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36780,"byte_end":36823,"line_start":339,"line_end":339,"column_start":5,"column_end":48}},{"value":"/ _ => unreachable!(),","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36828,"byte_end":36864,"line_start":340,"line_end":340,"column_start":5,"column_end":41}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36869,"byte_end":36882,"line_start":341,"line_end":341,"column_start":5,"column_end":18}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36887,"byte_end":36896,"line_start":342,"line_end":342,"column_start":5,"column_end":14}},{"value":"/ });","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36901,"byte_end":36908,"line_start":343,"line_end":343,"column_start":5,"column_end":12}},{"value":"/ # Ok(())","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36913,"byte_end":36925,"line_start":344,"line_end":344,"column_start":5,"column_end":17}},{"value":"/ # }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36930,"byte_end":36937,"line_start":345,"line_end":345,"column_start":5,"column_end":12}},{"value":"/ ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":36942,"byte_end":36949,"line_start":346,"line_end":346,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":71},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":37165,"byte_end":37174,"line_start":357,"line_end":357,"column_start":12,"column_end":21},"name":"is_closed","qualname":"::is_closed","value":"fn (&self) -> bool","parent":null,"children":[],"decl_id":null,"docs":" Is it closed?","sig":null,"attributes":[{"value":"/ Is it closed?","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":37089,"byte_end":37106,"line_start":354,"line_end":354,"column_start":5,"column_end":22}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":37111,"byte_end":37114,"line_start":355,"line_end":355,"column_start":5,"column_end":8}},{"value":"/ See [`close`][Signals::close].","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":37119,"byte_end":37153,"line_start":356,"line_end":356,"column_start":5,"column_end":39}}]},{"kind":"Method","id":{"krate":0,"index":72},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":38780,"byte_end":38785,"line_start":396,"line_end":396,"column_start":12,"column_end":17},"name":"close","qualname":"::close","value":"fn (&self) -> ()","parent":null,"children":[],"decl_id":null,"docs":" Closes the instance.","sig":null,"attributes":[{"value":"/ Closes the instance.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":37252,"byte_end":37276,"line_start":361,"line_end":361,"column_start":5,"column_end":29}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":37281,"byte_end":37284,"line_start":362,"line_end":362,"column_start":5,"column_end":8}},{"value":"/ This is meant to signalize termination through all the interrelated instances ‒ the ones","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":37289,"byte_end":37383,"line_start":363,"line_end":363,"column_start":5,"column_end":97}},{"value":"/ created by cloning the same original [`Signals`] instance (and all the [`Async`] ones","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":37388,"byte_end":37477,"line_start":364,"line_end":364,"column_start":5,"column_end":94}},{"value":"/ created from them). After calling close:","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":37482,"byte_end":37526,"line_start":365,"line_end":365,"column_start":5,"column_end":49}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":37531,"byte_end":37534,"line_start":366,"line_end":366,"column_start":5,"column_end":8}},{"value":"/ * [`is_closed`][Signals::is_closed] will return true.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":37539,"byte_end":37596,"line_start":367,"line_end":367,"column_start":5,"column_end":62}},{"value":"/ * All currently blocking operations on all threads and all the instances are interrupted","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":37601,"byte_end":37693,"line_start":368,"line_end":368,"column_start":5,"column_end":97}},{"value":"/ and terminate.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":37698,"byte_end":37718,"line_start":369,"line_end":369,"column_start":5,"column_end":25}},{"value":"/ * Any further operations will never block.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":37723,"byte_end":37769,"line_start":370,"line_end":370,"column_start":5,"column_end":51}},{"value":"/ * Further signals may or may not be returned from the iterators. However, if any are","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":37774,"byte_end":37862,"line_start":371,"line_end":371,"column_start":5,"column_end":93}},{"value":"/ returned, these are real signals that happened.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":37867,"byte_end":37920,"line_start":372,"line_end":372,"column_start":5,"column_end":58}},{"value":"/ * The [`forever`][Signals::forever] terminates (follows from the above).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":37925,"byte_end":38001,"line_start":373,"line_end":373,"column_start":5,"column_end":81}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":38006,"byte_end":38009,"line_start":374,"line_end":374,"column_start":5,"column_end":8}},{"value":"/ The goal is to be able to shut down any background thread that handles only the signals.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":38014,"byte_end":38106,"line_start":375,"line_end":375,"column_start":5,"column_end":97}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":38111,"byte_end":38114,"line_start":376,"line_end":376,"column_start":5,"column_end":8}},{"value":"/ ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":38119,"byte_end":38130,"line_start":377,"line_end":377,"column_start":5,"column_end":16}},{"value":"/ # use signal_hook::iterator::Signals;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":38135,"byte_end":38176,"line_start":378,"line_end":378,"column_start":5,"column_end":46}},{"value":"/ # use signal_hook::SIGUSR1;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":38181,"byte_end":38212,"line_start":379,"line_end":379,"column_start":5,"column_end":36}},{"value":"/ # fn main() -> Result<(), std::io::Error> {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":38217,"byte_end":38264,"line_start":380,"line_end":380,"column_start":5,"column_end":52}},{"value":"/ let signals = Signals::new(&[SIGUSR1])?;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":38269,"byte_end":38313,"line_start":381,"line_end":381,"column_start":5,"column_end":49}},{"value":"/ let signals_bg = signals.clone();","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":38318,"byte_end":38355,"line_start":382,"line_end":382,"column_start":5,"column_end":42}},{"value":"/ let thread = std::thread::spawn(move || {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":38360,"byte_end":38405,"line_start":383,"line_end":383,"column_start":5,"column_end":50}},{"value":"/ for signal in &signals_bg {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":38410,"byte_end":38445,"line_start":384,"line_end":384,"column_start":5,"column_end":40}},{"value":"/ // Whatever with the signal","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":38450,"byte_end":38489,"line_start":385,"line_end":385,"column_start":5,"column_end":44}},{"value":"/ # let _ = signal;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":38494,"byte_end":38521,"line_start":386,"line_end":386,"column_start":5,"column_end":32}},{"value":"/ }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":38526,"byte_end":38535,"line_start":387,"line_end":387,"column_start":5,"column_end":14}},{"value":"/ });","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":38540,"byte_end":38547,"line_start":388,"line_end":388,"column_start":5,"column_end":12}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":38552,"byte_end":38555,"line_start":389,"line_end":389,"column_start":5,"column_end":8}},{"value":"/ signals.close();","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":38560,"byte_end":38580,"line_start":390,"line_end":390,"column_start":5,"column_end":25}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":38585,"byte_end":38588,"line_start":391,"line_end":391,"column_start":5,"column_end":8}},{"value":"/ // The thread will terminate on its own now (the for cycle runs out of signals).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":38593,"byte_end":38677,"line_start":392,"line_end":392,"column_start":5,"column_end":89}},{"value":"/ thread.join().expect(\"background thread panicked\");","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":38682,"byte_end":38737,"line_start":393,"line_end":393,"column_start":5,"column_end":60}},{"value":"/ # Ok(()) }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":38742,"byte_end":38756,"line_start":394,"line_end":394,"column_start":5,"column_end":19}},{"value":"/ ```","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":38761,"byte_end":38768,"line_start":395,"line_end":395,"column_start":5,"column_end":12}}]},{"kind":"Struct","id":{"krate":0,"index":78},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":39248,"byte_end":39255,"line_start":414,"line_end":414,"column_start":12,"column_end":19},"name":"Pending","qualname":"::iterator::Pending","value":"","parent":null,"children":[],"decl_id":null,"docs":" The iterator of one batch of signals.","sig":null,"attributes":[{"value":"/ The iterator of one batch of signals.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":39056,"byte_end":39097,"line_start":410,"line_end":410,"column_start":1,"column_end":42}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":39098,"byte_end":39101,"line_start":411,"line_end":411,"column_start":1,"column_end":4}},{"value":"/ This is returned by the [`pending`](struct.Signals.html#method.pending) and","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":39102,"byte_end":39181,"line_start":412,"line_end":412,"column_start":1,"column_end":80}},{"value":"/ [`wait`](struct.Signals.html#method.wait) methods.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":39182,"byte_end":39236,"line_start":413,"line_end":413,"column_start":1,"column_end":55}}]},{"kind":"Struct","id":{"krate":0,"index":86},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":39894,"byte_end":39901,"line_start":437,"line_end":437,"column_start":12,"column_end":19},"name":"Forever","qualname":"::iterator::Forever","value":"Forever { }","parent":null,"children":[{"krate":0,"index":88},{"krate":0,"index":89}],"decl_id":null,"docs":" The infinite iterator of signals.","sig":null,"attributes":[{"value":"/ The infinite iterator of signals.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":39684,"byte_end":39721,"line_start":433,"line_end":433,"column_start":1,"column_end":38}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":39722,"byte_end":39725,"line_start":434,"line_end":434,"column_start":1,"column_end":4}},{"value":"/ It is returned by the [`forever`](struct.Signals.html#method.forever) and by the `IntoIterator`","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":39726,"byte_end":39825,"line_start":435,"line_end":435,"column_start":1,"column_end":100}},{"value":"/ implementation of [`&Signals`](struct.Signals.html).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":39826,"byte_end":39882,"line_start":436,"line_end":436,"column_start":1,"column_end":57}}]},{"kind":"Mod","id":{"krate":0,"index":94},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"name":"pipe","qualname":"::pipe","value":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","parent":null,"children":[{"krate":0,"index":95},{"krate":0,"index":96},{"krate":0,"index":99},{"krate":0,"index":102},{"krate":0,"index":103},{"krate":0,"index":106},{"krate":0,"index":108},{"krate":0,"index":110},{"krate":0,"index":112},{"krate":0,"index":113},{"krate":0,"index":115}],"decl_id":null,"docs":" Module with the self-pipe pattern.","sig":null,"attributes":[{"value":"cfg(not (windows))","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8030,"byte_end":8050,"line_start":167,"line_end":167,"column_start":1,"column_end":21}},{"value":"! Module with the self-pipe pattern.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":48639,"byte_end":48677,"line_start":1,"line_end":1,"column_start":1,"column_end":39}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":48678,"byte_end":48681,"line_start":2,"line_end":2,"column_start":1,"column_end":4}},{"value":"! One of the common patterns around signals is to have a pipe with both ends in the same program.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":48682,"byte_end":48781,"line_start":3,"line_end":3,"column_start":1,"column_end":100}},{"value":"! Whenever there's a signal, the signal handler writes one byte of garbage data to the write end,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":48782,"byte_end":48881,"line_start":4,"line_end":4,"column_start":1,"column_end":100}},{"value":"! unless the pipe's already full. The application then can handle the read end.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":48882,"byte_end":48963,"line_start":5,"line_end":5,"column_start":1,"column_end":82}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":48964,"byte_end":48967,"line_start":6,"line_end":6,"column_start":1,"column_end":4}},{"value":"! This has two advantages. First, the real signal action moves outside of the signal handler","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":48968,"byte_end":49062,"line_start":7,"line_end":7,"column_start":1,"column_end":95}},{"value":"! where there are a lot less restrictions. Second, it fits nicely in all kinds of asynchronous","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":49063,"byte_end":49159,"line_start":8,"line_end":8,"column_start":1,"column_end":97}},{"value":"! loops and has less chance of race conditions.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":49160,"byte_end":49209,"line_start":9,"line_end":9,"column_start":1,"column_end":50}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":49210,"byte_end":49213,"line_start":10,"line_end":10,"column_start":1,"column_end":4}},{"value":"! This module offers premade functions for the write end (and doesn't insist that it must be a","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":49214,"byte_end":49310,"line_start":11,"line_end":11,"column_start":1,"column_end":97}},{"value":"! pipe ‒ anything that can be written to is fine ‒ sockets too, therefore `UnixStream::pair` is a","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":49311,"byte_end":49414,"line_start":12,"line_end":12,"column_start":1,"column_end":100}},{"value":"! good candidate).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":49415,"byte_end":49435,"line_start":13,"line_end":13,"column_start":1,"column_end":21}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":49436,"byte_end":49439,"line_start":14,"line_end":14,"column_start":1,"column_end":4}},{"value":"! If you want to integrate with some asynchronous library, plugging streams from `mio-uds` or","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":49440,"byte_end":49535,"line_start":15,"line_end":15,"column_start":1,"column_end":96}},{"value":"! `tokio-uds` libraries should work.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":49536,"byte_end":49574,"line_start":16,"line_end":16,"column_start":1,"column_end":39}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":49575,"byte_end":49578,"line_start":17,"line_end":17,"column_start":1,"column_end":4}},{"value":"! If it looks too low-level for your needs, the [`iterator`](../iterator/) module contains some","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":49579,"byte_end":49676,"line_start":18,"line_end":18,"column_start":1,"column_end":98}},{"value":"! higher-lever interface that also uses a self-pipe pattern under the hood.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":49677,"byte_end":49754,"line_start":19,"line_end":19,"column_start":1,"column_end":78}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":49755,"byte_end":49758,"line_start":20,"line_end":20,"column_start":1,"column_end":4}},{"value":"! # Correct order of handling","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":49759,"byte_end":49790,"line_start":21,"line_end":21,"column_start":1,"column_end":32}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":49791,"byte_end":49794,"line_start":22,"line_end":22,"column_start":1,"column_end":4}},{"value":"! A care needs to be taken to avoid race conditions, especially when handling the same signal in","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":49795,"byte_end":49893,"line_start":23,"line_end":23,"column_start":1,"column_end":99}},{"value":"! a loop. Specifically, another signal might come when the action for the previous signal is","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":49894,"byte_end":49988,"line_start":24,"line_end":24,"column_start":1,"column_end":95}},{"value":"! being taken. The correct order is first to clear the content of the pipe (read some/all data","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":49989,"byte_end":50085,"line_start":25,"line_end":25,"column_start":1,"column_end":97}},{"value":"! from it) and then take the action. This way a spurious wakeup can happen (the pipe could wake","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":50086,"byte_end":50183,"line_start":26,"line_end":26,"column_start":1,"column_end":98}},{"value":"! up even when no signal came after the signal was taken, because ‒ it arrived between cleaning","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":50184,"byte_end":50283,"line_start":27,"line_end":27,"column_start":1,"column_end":98}},{"value":"! the pipe and taking the action). Note that some OS primitives (eg. `select`) suffer from","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":50284,"byte_end":50376,"line_start":28,"line_end":28,"column_start":1,"column_end":93}},{"value":"! spurious wakeups themselves (they can claim a FD is readable when it is not true) and blocking","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":50377,"byte_end":50475,"line_start":29,"line_end":29,"column_start":1,"column_end":99}},{"value":"! `read` might return prematurely (with eg. `EINTR`).","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":50476,"byte_end":50531,"line_start":30,"line_end":30,"column_start":1,"column_end":56}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":50532,"byte_end":50535,"line_start":31,"line_end":31,"column_start":1,"column_end":4}},{"value":"! The reverse order of first taking the action and then clearing the pipe might lose signals,","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":50536,"byte_end":50631,"line_start":32,"line_end":32,"column_start":1,"column_end":96}},{"value":"! which is usually worse.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":50632,"byte_end":50659,"line_start":33,"line_end":33,"column_start":1,"column_end":28}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":50660,"byte_end":50663,"line_start":34,"line_end":34,"column_start":1,"column_end":4}},{"value":"! This is not a problem with blocking on reading from the pipe (because both the blocking and","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":50664,"byte_end":50759,"line_start":35,"line_end":35,"column_start":1,"column_end":96}},{"value":"! cleaning is the same action), but in case of asynchronous handling it matters.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":50760,"byte_end":50842,"line_start":36,"line_end":36,"column_start":1,"column_end":83}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":50843,"byte_end":50846,"line_start":37,"line_end":37,"column_start":1,"column_end":4}},{"value":"! If you want to combine setting some flags with a self-pipe pattern, the flag needs to be set","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":50847,"byte_end":50943,"line_start":38,"line_end":38,"column_start":1,"column_end":97}},{"value":"! first, then the pipe written. On the read end, first the pipe needs to be cleaned, then the","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":50944,"byte_end":51039,"line_start":39,"line_end":39,"column_start":1,"column_end":96}},{"value":"! flag and then the action taken. This is what the [`Signals`](../iterator/struct.Signals.html)","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":51040,"byte_end":51137,"line_start":40,"line_end":40,"column_start":1,"column_end":98}},{"value":"! structure does internally.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":51138,"byte_end":51168,"line_start":41,"line_end":41,"column_start":1,"column_end":31}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":51169,"byte_end":51172,"line_start":42,"line_end":42,"column_start":1,"column_end":4}},{"value":"! # Write collating","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":51173,"byte_end":51194,"line_start":43,"line_end":43,"column_start":1,"column_end":22}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":51195,"byte_end":51198,"line_start":44,"line_end":44,"column_start":1,"column_end":4}},{"value":"! While unlikely if handled correctly, it is possible the write end is full when a signal comes.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":51199,"byte_end":51297,"line_start":45,"line_end":45,"column_start":1,"column_end":99}},{"value":"! In such case the signal handler simply does nothing. If the write end is full, the read end is","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":51298,"byte_end":51396,"line_start":46,"line_end":46,"column_start":1,"column_end":99}},{"value":"! readable and therefore will wake up. On the other hand, blocking in the signal handler would","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":51397,"byte_end":51493,"line_start":47,"line_end":47,"column_start":1,"column_end":97}},{"value":"! definitely be a bad idea.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":51494,"byte_end":51523,"line_start":48,"line_end":48,"column_start":1,"column_end":30}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":51524,"byte_end":51527,"line_start":49,"line_end":49,"column_start":1,"column_end":4}},{"value":"! However, this also means the number of bytes read from the end might be lower than the number","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":51528,"byte_end":51625,"line_start":50,"line_end":50,"column_start":1,"column_end":98}},{"value":"! of signals that arrived. This should not generally be a problem, since the OS already collates","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":51626,"byte_end":51724,"line_start":51,"line_end":51,"column_start":1,"column_end":99}},{"value":"! signals of the same kind together.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":51725,"byte_end":51763,"line_start":52,"line_end":52,"column_start":1,"column_end":39}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":51764,"byte_end":51767,"line_start":53,"line_end":53,"column_start":1,"column_end":4}},{"value":"! # Examples","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":51768,"byte_end":51782,"line_start":54,"line_end":54,"column_start":1,"column_end":15}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":51783,"byte_end":51786,"line_start":55,"line_end":55,"column_start":1,"column_end":4}},{"value":"! This example waits for at last one `SIGUSR1` signal to come before continuing (and","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":51787,"byte_end":51873,"line_start":56,"line_end":56,"column_start":1,"column_end":87}},{"value":"! terminating). It sends the signal to itself, so it correctly terminates.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":51874,"byte_end":51950,"line_start":57,"line_end":57,"column_start":1,"column_end":77}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":51951,"byte_end":51954,"line_start":58,"line_end":58,"column_start":1,"column_end":4}},{"value":"! ```rust","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":51955,"byte_end":51966,"line_start":59,"line_end":59,"column_start":1,"column_end":12}},{"value":"! extern crate libc;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":51967,"byte_end":51989,"line_start":60,"line_end":60,"column_start":1,"column_end":23}},{"value":"! extern crate signal_hook;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":51990,"byte_end":52019,"line_start":61,"line_end":61,"column_start":1,"column_end":30}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":52020,"byte_end":52023,"line_start":62,"line_end":62,"column_start":1,"column_end":4}},{"value":"! use std::io::{Error, Read};","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":52024,"byte_end":52055,"line_start":63,"line_end":63,"column_start":1,"column_end":32}},{"value":"! use std::os::unix::net::UnixStream;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":52056,"byte_end":52095,"line_start":64,"line_end":64,"column_start":1,"column_end":40}},{"value":"!","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":52096,"byte_end":52099,"line_start":65,"line_end":65,"column_start":1,"column_end":4}},{"value":"! fn main() -> Result<(), Error> {","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":52100,"byte_end":52136,"line_start":66,"line_end":66,"column_start":1,"column_end":37}},{"value":"! let (mut read, write) = UnixStream::pair()?;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":52137,"byte_end":52189,"line_start":67,"line_end":67,"column_start":1,"column_end":53}},{"value":"! signal_hook::pipe::register(signal_hook::SIGUSR1, write)?;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":52190,"byte_end":52256,"line_start":68,"line_end":68,"column_start":1,"column_end":67}},{"value":"! // This will write into the pipe write end through the signal handler","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":52257,"byte_end":52334,"line_start":69,"line_end":69,"column_start":1,"column_end":78}},{"value":"! unsafe { libc::raise(signal_hook::SIGUSR1) };","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":52335,"byte_end":52388,"line_start":70,"line_end":70,"column_start":1,"column_end":54}},{"value":"! let mut buff = [0];","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":52389,"byte_end":52416,"line_start":71,"line_end":71,"column_start":1,"column_end":28}},{"value":"! read.read_exact(&mut buff)?;","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":52417,"byte_end":52453,"line_start":72,"line_end":72,"column_start":1,"column_end":37}},{"value":"! println!(\"Happily terminating\");","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":52454,"byte_end":52494,"line_start":73,"line_end":73,"column_start":1,"column_end":41}},{"value":"! Ok(())","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":52495,"byte_end":52509,"line_start":74,"line_end":74,"column_start":1,"column_end":15}},{"value":"! }","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":52510,"byte_end":52515,"line_start":75,"line_end":75,"column_start":1,"column_end":6}}]},{"kind":"Function","id":{"krate":0,"index":113},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":54592,"byte_end":54604,"line_start":140,"line_end":140,"column_start":8,"column_end":20},"name":"register_raw","qualname":"::pipe::register_raw","value":"fn (signal: c_int, pipe: RawFd) -> Result","parent":null,"children":[],"decl_id":null,"docs":" Registers a write to a self-pipe whenever there's the signal.","sig":null,"attributes":[{"value":"/ Registers a write to a self-pipe whenever there's the signal.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":54264,"byte_end":54329,"line_start":133,"line_end":133,"column_start":1,"column_end":66}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":54330,"byte_end":54333,"line_start":134,"line_end":134,"column_start":1,"column_end":4}},{"value":"/ In this case, the pipe is taken as the `RawFd`. It is still the caller's responsibility to","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":54334,"byte_end":54428,"line_start":135,"line_end":135,"column_start":1,"column_end":95}},{"value":"/ close it.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":54429,"byte_end":54442,"line_start":136,"line_end":136,"column_start":1,"column_end":14}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":54443,"byte_end":54446,"line_start":137,"line_end":137,"column_start":1,"column_end":4}},{"value":"/ Note that passing the wrong file descriptor won't cause UB, but can still lead to severe bugs ‒","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":54447,"byte_end":54548,"line_start":138,"line_end":138,"column_start":1,"column_end":100}},{"value":"/ like data corruptions in files.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":54549,"byte_end":54584,"line_start":139,"line_end":139,"column_start":1,"column_end":36}}]},{"kind":"Function","id":{"krate":0,"index":115},"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":55411,"byte_end":55419,"line_start":160,"line_end":160,"column_start":8,"column_end":16},"name":"register","qualname":"::pipe::register","value":"fn

(signal: c_int, pipe: P) -> Result","parent":null,"children":[],"decl_id":null,"docs":" Registers a write to a self-pipe whenever there's the signal.","sig":null,"attributes":[{"value":"/ Registers a write to a self-pipe whenever there's the signal.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":55094,"byte_end":55159,"line_start":154,"line_end":154,"column_start":1,"column_end":66}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":55160,"byte_end":55163,"line_start":155,"line_end":155,"column_start":1,"column_end":4}},{"value":"/ The ownership of pipe is taken and will be closed whenever the created action is unregistered.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":55164,"byte_end":55262,"line_start":156,"line_end":156,"column_start":1,"column_end":99}},{"value":"/","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":55263,"byte_end":55266,"line_start":157,"line_end":157,"column_start":1,"column_end":4}},{"value":"/ Note that if you want to register the same pipe for multiple signals, there's `try_clone`","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":55267,"byte_end":55360,"line_start":158,"line_end":158,"column_start":1,"column_end":94}},{"value":"/ method on many unix socket primitives.","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":55361,"byte_end":55403,"line_start":159,"line_end":159,"column_start":1,"column_end":43}}]}],"impls":[{"id":0,"kind":"Inherent","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":27282,"byte_end":27287,"line_start":76,"line_end":76,"column_start":6,"column_end":11},"value":"","parent":null,"children":[{"krate":0,"index":53}],"docs":"","sig":null,"attributes":[]},{"id":1,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":27957,"byte_end":27974,"line_start":98,"line_end":98,"column_start":15,"column_end":32},"value":"","parent":null,"children":[{"krate":0,"index":55}],"docs":"","sig":null,"attributes":[]},{"id":2,"kind":"Inherent","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":30230,"byte_end":30237,"line_start":167,"line_end":167,"column_start":6,"column_end":13},"value":"","parent":null,"children":[{"krate":0,"index":58},{"krate":0,"index":63},{"krate":0,"index":65},{"krate":0,"index":68},{"krate":0,"index":69},{"krate":0,"index":70},{"krate":0,"index":71},{"krate":0,"index":72}],"docs":"","sig":null,"attributes":[]},{"id":3,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":39317,"byte_end":39324,"line_start":416,"line_end":416,"column_start":23,"column_end":30},"value":"","parent":null,"children":[{"krate":0,"index":84},{"krate":0,"index":85}],"docs":"","sig":null,"attributes":[]},{"id":4,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":39982,"byte_end":39989,"line_start":442,"line_end":442,"column_start":23,"column_end":30},"value":"","parent":null,"children":[{"krate":0,"index":92},{"krate":0,"index":93}],"docs":"","sig":null,"attributes":[]},{"id":5,"kind":"Inherent","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":52653,"byte_end":52660,"line_start":86,"line_end":86,"column_start":6,"column_end":13},"value":"","parent":null,"children":[{"krate":0,"index":107}],"docs":"","sig":null,"attributes":[]},{"id":6,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":53225,"byte_end":53232,"line_start":103,"line_end":103,"column_start":18,"column_end":25},"value":"","parent":null,"children":[{"krate":0,"index":109}],"docs":"","sig":null,"attributes":[]},{"id":7,"kind":"Direct","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":53308,"byte_end":53315,"line_start":109,"line_end":109,"column_start":15,"column_end":22},"value":"","parent":null,"children":[{"krate":0,"index":111}],"docs":"","sig":null,"attributes":[]}],"refs":[{"kind":"Mod","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":7968,"byte_end":7975,"line_start":163,"line_end":163,"column_start":9,"column_end":16},"ref_id":{"krate":0,"index":5}},{"kind":"Mod","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":7985,"byte_end":7989,"line_start":164,"line_end":164,"column_start":9,"column_end":13},"ref_id":{"krate":0,"index":21}},{"kind":"Mod","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8020,"byte_end":8028,"line_start":166,"line_end":166,"column_start":9,"column_end":17},"ref_id":{"krate":0,"index":34}},{"kind":"Mod","span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs","byte_start":8059,"byte_end":8063,"line_start":168,"line_end":168,"column_start":9,"column_end":13},"ref_id":{"krate":0,"index":94}}],"macro_refs":[],"relations":[{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":27282,"byte_end":27287,"line_start":76,"line_end":76,"column_start":6,"column_end":11},"kind":{"Impl":{"id":0}},"from":{"krate":0,"index":145},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":27957,"byte_end":27974,"line_start":98,"line_end":98,"column_start":15,"column_end":32},"kind":{"Impl":{"id":1}},"from":{"krate":0,"index":152},"to":{"krate":2,"index":2075}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":30230,"byte_end":30237,"line_start":167,"line_end":167,"column_start":6,"column_end":13},"kind":{"Impl":{"id":2}},"from":{"krate":0,"index":157},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":39317,"byte_end":39324,"line_start":416,"line_end":416,"column_start":23,"column_end":30},"kind":{"Impl":{"id":3}},"from":{"krate":0,"index":78},"to":{"krate":2,"index":4772}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs","byte_start":39982,"byte_end":39989,"line_start":442,"line_end":442,"column_start":23,"column_end":30},"kind":{"Impl":{"id":4}},"from":{"krate":0,"index":86},"to":{"krate":2,"index":4772}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":52653,"byte_end":52660,"line_start":86,"line_end":86,"column_start":6,"column_end":13},"kind":{"Impl":{"id":5}},"from":{"krate":0,"index":103},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":53225,"byte_end":53232,"line_start":103,"line_end":103,"column_start":18,"column_end":25},"kind":{"Impl":{"id":6}},"from":{"krate":0,"index":103},"to":{"krate":1,"index":8218}},{"span":{"file_name":"/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs","byte_start":53308,"byte_end":53315,"line_start":109,"line_end":109,"column_start":15,"column_end":22},"kind":{"Impl":{"id":7}},"from":{"krate":0,"index":103},"to":{"krate":2,"index":2075}}]} \ No newline at end of file diff --git a/chapter8/myshell/target/rls/debug/deps/signal_hook-e0628f0be09b0325.d b/chapter8/myshell/target/rls/debug/deps/signal_hook-e0628f0be09b0325.d new file mode 100644 index 0000000..9fce5be --- /dev/null +++ b/chapter8/myshell/target/rls/debug/deps/signal_hook-e0628f0be09b0325.d @@ -0,0 +1,9 @@ +/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/signal_hook-e0628f0be09b0325.rmeta: /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs + +/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/signal_hook-e0628f0be09b0325.d: /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs + +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/lib.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/cleanup.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/flag.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/iterator.rs: +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-0.1.16/src/pipe.rs: diff --git a/chapter8/myshell/target/rls/debug/deps/signal_hook_registry-e474ff654680bd11.d b/chapter8/myshell/target/rls/debug/deps/signal_hook_registry-e474ff654680bd11.d new file mode 100644 index 0000000..cc1240c --- /dev/null +++ b/chapter8/myshell/target/rls/debug/deps/signal_hook_registry-e474ff654680bd11.d @@ -0,0 +1,5 @@ +/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/signal_hook_registry-e474ff654680bd11.rmeta: /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-registry-1.2.1/src/lib.rs + +/Users/prabhueshwarla/rust/author/packt/prod/chapter8/myshell/target/rls/debug/deps/signal_hook_registry-e474ff654680bd11.d: /Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-registry-1.2.1/src/lib.rs + +/Users/prabhueshwarla/.cargo/registry/src/github.com-1ecc6299db9ec823/signal-hook-registry-1.2.1/src/lib.rs: diff --git a/chapter8/myshell/target/rls/debug/incremental/iter1-1xouz3agepo92/s-fssr4zo5ht-1roq1bi-331z4swlkbyuc/dep-graph.bin b/chapter8/myshell/target/rls/debug/incremental/iter1-1xouz3agepo92/s-fssr4zo5ht-1roq1bi-331z4swlkbyuc/dep-graph.bin new file mode 100644 index 0000000..f1dd924 Binary files /dev/null and b/chapter8/myshell/target/rls/debug/incremental/iter1-1xouz3agepo92/s-fssr4zo5ht-1roq1bi-331z4swlkbyuc/dep-graph.bin differ diff --git a/chapter8/myshell/target/rls/debug/incremental/iter1-1xouz3agepo92/s-fssr4zo5ht-1roq1bi-331z4swlkbyuc/query-cache.bin b/chapter8/myshell/target/rls/debug/incremental/iter1-1xouz3agepo92/s-fssr4zo5ht-1roq1bi-331z4swlkbyuc/query-cache.bin new file mode 100644 index 0000000..650b165 Binary files /dev/null and b/chapter8/myshell/target/rls/debug/incremental/iter1-1xouz3agepo92/s-fssr4zo5ht-1roq1bi-331z4swlkbyuc/query-cache.bin differ diff --git a/chapter8/myshell/target/rls/debug/incremental/iter1-1xouz3agepo92/s-fssr4zo5ht-1roq1bi-331z4swlkbyuc/work-products.bin b/chapter8/myshell/target/rls/debug/incremental/iter1-1xouz3agepo92/s-fssr4zo5ht-1roq1bi-331z4swlkbyuc/work-products.bin new file mode 100644 index 0000000..dbafc7a Binary files /dev/null and b/chapter8/myshell/target/rls/debug/incremental/iter1-1xouz3agepo92/s-fssr4zo5ht-1roq1bi-331z4swlkbyuc/work-products.bin differ diff --git a/chapter8/myshell/target/rls/debug/incremental/iter1-1xouz3agepo92/s-fssr4zo5ht-1roq1bi.lock b/chapter8/myshell/target/rls/debug/incremental/iter1-1xouz3agepo92/s-fssr4zo5ht-1roq1bi.lock new file mode 100755 index 0000000..e69de29 diff --git a/chapter8/myshell/target/rls/debug/incremental/iter1-3rc5p43nakpri/s-fssr4zi60m-14i9ffk-kznmnw0tuei/dep-graph.bin b/chapter8/myshell/target/rls/debug/incremental/iter1-3rc5p43nakpri/s-fssr4zi60m-14i9ffk-kznmnw0tuei/dep-graph.bin new file mode 100644 index 0000000..1defc1b Binary files /dev/null and b/chapter8/myshell/target/rls/debug/incremental/iter1-3rc5p43nakpri/s-fssr4zi60m-14i9ffk-kznmnw0tuei/dep-graph.bin differ diff --git a/chapter8/myshell/target/rls/debug/incremental/iter1-3rc5p43nakpri/s-fssr4zi60m-14i9ffk-kznmnw0tuei/query-cache.bin b/chapter8/myshell/target/rls/debug/incremental/iter1-3rc5p43nakpri/s-fssr4zi60m-14i9ffk-kznmnw0tuei/query-cache.bin new file mode 100644 index 0000000..40ca886 Binary files /dev/null and b/chapter8/myshell/target/rls/debug/incremental/iter1-3rc5p43nakpri/s-fssr4zi60m-14i9ffk-kznmnw0tuei/query-cache.bin differ diff --git a/chapter8/myshell/target/rls/debug/incremental/iter1-3rc5p43nakpri/s-fssr4zi60m-14i9ffk-kznmnw0tuei/work-products.bin b/chapter8/myshell/target/rls/debug/incremental/iter1-3rc5p43nakpri/s-fssr4zi60m-14i9ffk-kznmnw0tuei/work-products.bin new file mode 100644 index 0000000..dbafc7a Binary files /dev/null and b/chapter8/myshell/target/rls/debug/incremental/iter1-3rc5p43nakpri/s-fssr4zi60m-14i9ffk-kznmnw0tuei/work-products.bin differ diff --git a/chapter8/myshell/target/rls/debug/incremental/iter1-3rc5p43nakpri/s-fssr4zi60m-14i9ffk.lock b/chapter8/myshell/target/rls/debug/incremental/iter1-3rc5p43nakpri/s-fssr4zi60m-14i9ffk.lock new file mode 100755 index 0000000..e69de29 diff --git a/chapter8/myshell/target/rls/debug/incremental/iter2-1rszgq9mit2u6/s-fssr4ztux0-gxj89s-33m7bxwtuahst/dep-graph.bin b/chapter8/myshell/target/rls/debug/incremental/iter2-1rszgq9mit2u6/s-fssr4ztux0-gxj89s-33m7bxwtuahst/dep-graph.bin new file mode 100644 index 0000000..132b957 Binary files /dev/null and b/chapter8/myshell/target/rls/debug/incremental/iter2-1rszgq9mit2u6/s-fssr4ztux0-gxj89s-33m7bxwtuahst/dep-graph.bin differ diff --git a/chapter8/myshell/target/rls/debug/incremental/iter2-1rszgq9mit2u6/s-fssr4ztux0-gxj89s-33m7bxwtuahst/query-cache.bin b/chapter8/myshell/target/rls/debug/incremental/iter2-1rszgq9mit2u6/s-fssr4ztux0-gxj89s-33m7bxwtuahst/query-cache.bin new file mode 100644 index 0000000..fd4e6f1 Binary files /dev/null and b/chapter8/myshell/target/rls/debug/incremental/iter2-1rszgq9mit2u6/s-fssr4ztux0-gxj89s-33m7bxwtuahst/query-cache.bin differ diff --git a/chapter8/myshell/target/rls/debug/incremental/iter2-1rszgq9mit2u6/s-fssr4ztux0-gxj89s-33m7bxwtuahst/work-products.bin b/chapter8/myshell/target/rls/debug/incremental/iter2-1rszgq9mit2u6/s-fssr4ztux0-gxj89s-33m7bxwtuahst/work-products.bin new file mode 100644 index 0000000..dbafc7a Binary files /dev/null and b/chapter8/myshell/target/rls/debug/incremental/iter2-1rszgq9mit2u6/s-fssr4ztux0-gxj89s-33m7bxwtuahst/work-products.bin differ diff --git a/chapter8/myshell/target/rls/debug/incremental/iter2-1rszgq9mit2u6/s-fssr4ztux0-gxj89s.lock b/chapter8/myshell/target/rls/debug/incremental/iter2-1rszgq9mit2u6/s-fssr4ztux0-gxj89s.lock new file mode 100755 index 0000000..e69de29 diff --git a/chapter8/myshell/target/rls/debug/incremental/iter2-1zs6f256ua68w/s-fssr4zr49q-1jqtk1q-377dowjbe6wqk/dep-graph.bin b/chapter8/myshell/target/rls/debug/incremental/iter2-1zs6f256ua68w/s-fssr4zr49q-1jqtk1q-377dowjbe6wqk/dep-graph.bin new file mode 100644 index 0000000..9a1b2a3 Binary files /dev/null and b/chapter8/myshell/target/rls/debug/incremental/iter2-1zs6f256ua68w/s-fssr4zr49q-1jqtk1q-377dowjbe6wqk/dep-graph.bin differ diff --git a/chapter8/myshell/target/rls/debug/incremental/iter2-1zs6f256ua68w/s-fssr4zr49q-1jqtk1q-377dowjbe6wqk/query-cache.bin b/chapter8/myshell/target/rls/debug/incremental/iter2-1zs6f256ua68w/s-fssr4zr49q-1jqtk1q-377dowjbe6wqk/query-cache.bin new file mode 100644 index 0000000..2dab2a4 Binary files /dev/null and b/chapter8/myshell/target/rls/debug/incremental/iter2-1zs6f256ua68w/s-fssr4zr49q-1jqtk1q-377dowjbe6wqk/query-cache.bin differ diff --git a/chapter8/myshell/target/rls/debug/incremental/iter2-1zs6f256ua68w/s-fssr4zr49q-1jqtk1q-377dowjbe6wqk/work-products.bin b/chapter8/myshell/target/rls/debug/incremental/iter2-1zs6f256ua68w/s-fssr4zr49q-1jqtk1q-377dowjbe6wqk/work-products.bin new file mode 100644 index 0000000..dbafc7a Binary files /dev/null and b/chapter8/myshell/target/rls/debug/incremental/iter2-1zs6f256ua68w/s-fssr4zr49q-1jqtk1q-377dowjbe6wqk/work-products.bin differ diff --git a/chapter8/myshell/target/rls/debug/incremental/iter2-1zs6f256ua68w/s-fssr4zr49q-1jqtk1q.lock b/chapter8/myshell/target/rls/debug/incremental/iter2-1zs6f256ua68w/s-fssr4zr49q-1jqtk1q.lock new file mode 100755 index 0000000..e69de29 diff --git a/chapter8/myshell/target/rls/debug/incremental/iter3-16u6jegy5ekit/s-fssr4zkcmk-3ihs9z-1lqggpeemmf6j/dep-graph.bin b/chapter8/myshell/target/rls/debug/incremental/iter3-16u6jegy5ekit/s-fssr4zkcmk-3ihs9z-1lqggpeemmf6j/dep-graph.bin new file mode 100644 index 0000000..bf820c9 Binary files /dev/null and b/chapter8/myshell/target/rls/debug/incremental/iter3-16u6jegy5ekit/s-fssr4zkcmk-3ihs9z-1lqggpeemmf6j/dep-graph.bin differ diff --git a/chapter8/myshell/target/rls/debug/incremental/iter3-16u6jegy5ekit/s-fssr4zkcmk-3ihs9z-1lqggpeemmf6j/query-cache.bin b/chapter8/myshell/target/rls/debug/incremental/iter3-16u6jegy5ekit/s-fssr4zkcmk-3ihs9z-1lqggpeemmf6j/query-cache.bin new file mode 100644 index 0000000..e36f72d Binary files /dev/null and b/chapter8/myshell/target/rls/debug/incremental/iter3-16u6jegy5ekit/s-fssr4zkcmk-3ihs9z-1lqggpeemmf6j/query-cache.bin differ diff --git a/chapter8/myshell/target/rls/debug/incremental/iter3-16u6jegy5ekit/s-fssr4zkcmk-3ihs9z-1lqggpeemmf6j/work-products.bin b/chapter8/myshell/target/rls/debug/incremental/iter3-16u6jegy5ekit/s-fssr4zkcmk-3ihs9z-1lqggpeemmf6j/work-products.bin new file mode 100644 index 0000000..dbafc7a Binary files /dev/null and b/chapter8/myshell/target/rls/debug/incremental/iter3-16u6jegy5ekit/s-fssr4zkcmk-3ihs9z-1lqggpeemmf6j/work-products.bin differ diff --git a/chapter8/myshell/target/rls/debug/incremental/iter3-16u6jegy5ekit/s-fssr4zkcmk-3ihs9z.lock b/chapter8/myshell/target/rls/debug/incremental/iter3-16u6jegy5ekit/s-fssr4zkcmk-3ihs9z.lock new file mode 100755 index 0000000..e69de29 diff --git a/chapter8/myshell/target/rls/debug/incremental/iter3-cut0ixolyra5/s-fssr4zfjbz-rve89e-flbyshkuuabj/dep-graph.bin b/chapter8/myshell/target/rls/debug/incremental/iter3-cut0ixolyra5/s-fssr4zfjbz-rve89e-flbyshkuuabj/dep-graph.bin new file mode 100644 index 0000000..05f5a5d Binary files /dev/null and b/chapter8/myshell/target/rls/debug/incremental/iter3-cut0ixolyra5/s-fssr4zfjbz-rve89e-flbyshkuuabj/dep-graph.bin differ diff --git a/chapter8/myshell/target/rls/debug/incremental/iter3-cut0ixolyra5/s-fssr4zfjbz-rve89e-flbyshkuuabj/query-cache.bin b/chapter8/myshell/target/rls/debug/incremental/iter3-cut0ixolyra5/s-fssr4zfjbz-rve89e-flbyshkuuabj/query-cache.bin new file mode 100644 index 0000000..96d1e73 Binary files /dev/null and b/chapter8/myshell/target/rls/debug/incremental/iter3-cut0ixolyra5/s-fssr4zfjbz-rve89e-flbyshkuuabj/query-cache.bin differ diff --git a/chapter8/myshell/target/rls/debug/incremental/iter3-cut0ixolyra5/s-fssr4zfjbz-rve89e-flbyshkuuabj/work-products.bin b/chapter8/myshell/target/rls/debug/incremental/iter3-cut0ixolyra5/s-fssr4zfjbz-rve89e-flbyshkuuabj/work-products.bin new file mode 100644 index 0000000..dbafc7a Binary files /dev/null and b/chapter8/myshell/target/rls/debug/incremental/iter3-cut0ixolyra5/s-fssr4zfjbz-rve89e-flbyshkuuabj/work-products.bin differ diff --git a/chapter8/myshell/target/rls/debug/incremental/iter3-cut0ixolyra5/s-fssr4zfjbz-rve89e.lock b/chapter8/myshell/target/rls/debug/incremental/iter3-cut0ixolyra5/s-fssr4zfjbz-rve89e.lock new file mode 100755 index 0000000..e69de29 diff --git a/chapter6/rstat/src/.DS_Store b/chapter9/.DS_Store similarity index 100% rename from chapter6/rstat/src/.DS_Store rename to chapter9/.DS_Store