commit 67be0fe1ba6a5f14ad179fba937f2e50c3134eb7 Author: VincentKnightTesting Date: Thu May 5 08:12:56 2022 -0500 initial commit diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..52d2b4a --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,127 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "cat-box" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24bda0d6fb9dc5a286c9afe6286b1de1f3fe7175310b4b0c2c34174fccafbd19" +dependencies = [ + "sdl2", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "game_test" +version = "0.1.0" +dependencies = [ + "cat-box", + "rand", + "sdl2", +] + +[[package]] +name = "getrandom" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.125" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5916d2ae698f6de9bfb891ad7a8d65c09d232dc58cc4ac433c7da3b2fd84bc2b" + +[[package]] +name = "ppv-lite86" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +dependencies = [ + "getrandom", +] + +[[package]] +name = "sdl2" +version = "0.35.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7959277b623f1fb9e04aea73686c3ca52f01b2145f8ea16f4ff30d8b7623b1a" +dependencies = [ + "bitflags", + "lazy_static", + "libc", + "sdl2-sys", +] + +[[package]] +name = "sdl2-sys" +version = "0.35.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3586be2cf6c0a8099a79a12b4084357aa9b3e0b0d7980e3b67aaf7a9d55f9f0" +dependencies = [ + "cfg-if", + "libc", + "version-compare", +] + +[[package]] +name = "version-compare" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe88247b92c1df6b6de80ddc290f3976dbdf2f5f5d3fd049a9fb598c6dd5ca73" + +[[package]] +name = "wasi" +version = "0.10.2+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..7104a85 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "game_test" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +cat-box = "0.1.6" +sdl2 = "0.35.2" +rand = "0.8.5" \ No newline at end of file diff --git a/nosmile.png b/nosmile.png new file mode 100644 index 0000000..7ef0253 Binary files /dev/null and b/nosmile.png differ diff --git a/sans.ttf b/sans.ttf new file mode 100644 index 0000000..b266871 Binary files /dev/null and b/sans.ttf differ diff --git a/smile.png b/smile.png new file mode 100644 index 0000000..4721cc3 Binary files /dev/null and b/smile.png differ diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..fd985cf --- /dev/null +++ b/src/main.rs @@ -0,0 +1,49 @@ +use cat_box::{draw_text, Game, Sprite}; +use std::{thread, time}; + +fn main() { + let game = Game::new("catbox testing", 500, 500); + + let mut i = 0u8; + let mut sprite1 = "smile.png"; + let mut i2 = 0u8; + + + + game.run(|ctx| { + + let mut s = Sprite::new(sprite1, 250, 150).unwrap(); + let mut s1 = Sprite::new(sprite1, 100, 150).unwrap(); + let mut s2 = Sprite::new(sprite1, 400, 150).unwrap(); + let sleep = thread::sleep; + + sleep(time::Duration::from_millis(500)); + if i == 0 { + i = 255; + i2 = 255u8; + sprite1 = "smile.png"; + + }else { + i = 0; + i2 = 0u8; + sprite1 = "nosmile.png"; + } + + ctx.set_background_colour(i as u8,i as u8,i as u8); + + draw_text( + ctx, + format!("you are an idiot"), + "times new roman.ttf", + 50, + (250, 350), + cat_box::TextMode::Transparent { + colour: (i2,i2,i2), + } + ).unwrap(); + + s.draw(ctx).unwrap(); + s1.draw(ctx).unwrap(); + s2.draw(ctx).unwrap(); + }).unwrap(); +} \ No newline at end of file diff --git a/target/.rustc_info.json b/target/.rustc_info.json new file mode 100644 index 0000000..c74fc3d --- /dev/null +++ b/target/.rustc_info.json @@ -0,0 +1 @@ +{"rustc_fingerprint":1991518005844657253,"outputs":{"2797684049618456168":{"success":false,"status":"exit status: 1","code":1,"stdout":"","stderr":"error: `-Csplit-debuginfo` is unstable on this platform\n\n"},"931469667778813386":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu\ndebug_assertions\nproc_macro\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n","stderr":""},"17598535894874457435":{"success":true,"status":"","code":0,"stdout":"rustc 1.59.0 (9d1b2106e 2022-02-23)\nbinary: rustc\ncommit-hash: 9d1b2106e23b1abd32fce1f17267604a5102f57a\ncommit-date: 2022-02-23\nhost: x86_64-unknown-linux-gnu\nrelease: 1.59.0\nLLVM version: 13.0.0\n","stderr":""},"5309432699494263626":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n","stderr":""}},"successes":{}} \ No newline at end of file diff --git a/target/CACHEDIR.TAG b/target/CACHEDIR.TAG new file mode 100644 index 0000000..20d7c31 --- /dev/null +++ b/target/CACHEDIR.TAG @@ -0,0 +1,3 @@ +Signature: 8a477f597d28d172789f06886806bc55 +# This file is a cache directory tag created by cargo. +# For information about cache directory tags see https://bford.info/cachedir/ diff --git a/target/debug/.cargo-lock b/target/debug/.cargo-lock new file mode 100644 index 0000000..e69de29 diff --git a/target/debug/.fingerprint/bitflags-1693f043aa7c36ab/dep-lib-bitflags b/target/debug/.fingerprint/bitflags-1693f043aa7c36ab/dep-lib-bitflags new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/debug/.fingerprint/bitflags-1693f043aa7c36ab/dep-lib-bitflags differ diff --git a/target/debug/.fingerprint/bitflags-1693f043aa7c36ab/invoked.timestamp b/target/debug/.fingerprint/bitflags-1693f043aa7c36ab/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/debug/.fingerprint/bitflags-1693f043aa7c36ab/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/debug/.fingerprint/bitflags-1693f043aa7c36ab/lib-bitflags b/target/debug/.fingerprint/bitflags-1693f043aa7c36ab/lib-bitflags new file mode 100644 index 0000000..ee59820 --- /dev/null +++ b/target/debug/.fingerprint/bitflags-1693f043aa7c36ab/lib-bitflags @@ -0,0 +1 @@ +32dc165d83632b72 \ No newline at end of file diff --git a/target/debug/.fingerprint/bitflags-1693f043aa7c36ab/lib-bitflags.json b/target/debug/.fingerprint/bitflags-1693f043aa7c36ab/lib-bitflags.json new file mode 100644 index 0000000..a3e2f61 --- /dev/null +++ b/target/debug/.fingerprint/bitflags-1693f043aa7c36ab/lib-bitflags.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"default\"]","target":7112745982619283648,"profile":12637318739757120569,"path":12170547054006938311,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/bitflags-1693f043aa7c36ab/dep-lib-bitflags"}}],"rustflags":[],"metadata":14564035643000669268,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/debug/.fingerprint/cat-box-6026c94c85a011b6/dep-lib-cat-box b/target/debug/.fingerprint/cat-box-6026c94c85a011b6/dep-lib-cat-box new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/debug/.fingerprint/cat-box-6026c94c85a011b6/dep-lib-cat-box differ diff --git a/target/debug/.fingerprint/cat-box-6026c94c85a011b6/invoked.timestamp b/target/debug/.fingerprint/cat-box-6026c94c85a011b6/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/debug/.fingerprint/cat-box-6026c94c85a011b6/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/debug/.fingerprint/cat-box-6026c94c85a011b6/lib-cat-box b/target/debug/.fingerprint/cat-box-6026c94c85a011b6/lib-cat-box new file mode 100644 index 0000000..7f87add --- /dev/null +++ b/target/debug/.fingerprint/cat-box-6026c94c85a011b6/lib-cat-box @@ -0,0 +1 @@ +9129bba37aae0c83 \ No newline at end of file diff --git a/target/debug/.fingerprint/cat-box-6026c94c85a011b6/lib-cat-box.json b/target/debug/.fingerprint/cat-box-6026c94c85a011b6/lib-cat-box.json new file mode 100644 index 0000000..cef77f0 --- /dev/null +++ b/target/debug/.fingerprint/cat-box-6026c94c85a011b6/lib-cat-box.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"default\"]","target":11441813575244509603,"profile":12637318739757120569,"path":8479361788269503490,"deps":[[2027952989180942924,"sdl2",false,14098326906367777931]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/cat-box-6026c94c85a011b6/dep-lib-cat-box"}}],"rustflags":[],"metadata":6740228479860339055,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/dep-lib-cfg-if b/target/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/dep-lib-cfg-if new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/dep-lib-cfg-if differ diff --git a/target/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/invoked.timestamp b/target/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/lib-cfg-if b/target/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/lib-cfg-if new file mode 100644 index 0000000..0a549c7 --- /dev/null +++ b/target/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/lib-cfg-if @@ -0,0 +1 @@ +ef85970c27b8458f \ No newline at end of file diff --git a/target/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/lib-cfg-if.json b/target/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/lib-cfg-if.json new file mode 100644 index 0000000..3b753b9 --- /dev/null +++ b/target/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/lib-cfg-if.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[]","target":10094334937643343087,"profile":12637318739757120569,"path":16394855403311724421,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/cfg-if-0a04e74fc4f21d18/dep-lib-cfg-if"}}],"rustflags":[],"metadata":8462187951337715540,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/debug/.fingerprint/game_test-e94e74a96f0400aa/bin-game_test b/target/debug/.fingerprint/game_test-e94e74a96f0400aa/bin-game_test new file mode 100644 index 0000000..8876f20 --- /dev/null +++ b/target/debug/.fingerprint/game_test-e94e74a96f0400aa/bin-game_test @@ -0,0 +1 @@ +fa4170f7ab7c2bdc \ No newline at end of file diff --git a/target/debug/.fingerprint/game_test-e94e74a96f0400aa/bin-game_test.json b/target/debug/.fingerprint/game_test-e94e74a96f0400aa/bin-game_test.json new file mode 100644 index 0000000..d3f667a --- /dev/null +++ b/target/debug/.fingerprint/game_test-e94e74a96f0400aa/bin-game_test.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[]","target":8454979698568635467,"profile":9251013656241001069,"path":1684066648322511884,"deps":[[2027952989180942924,"sdl2",false,14098326906367777931],[5910892534286594076,"rand",false,14523161439081665212],[14756909549871627071,"cat_box",false,9443114360445282705]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/game_test-e94e74a96f0400aa/dep-bin-game_test"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/debug/.fingerprint/game_test-e94e74a96f0400aa/dep-bin-game_test b/target/debug/.fingerprint/game_test-e94e74a96f0400aa/dep-bin-game_test new file mode 100644 index 0000000..5fdf103 Binary files /dev/null and b/target/debug/.fingerprint/game_test-e94e74a96f0400aa/dep-bin-game_test differ diff --git a/target/debug/.fingerprint/game_test-e94e74a96f0400aa/invoked.timestamp b/target/debug/.fingerprint/game_test-e94e74a96f0400aa/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/debug/.fingerprint/game_test-e94e74a96f0400aa/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/debug/.fingerprint/game_test-e94e74a96f0400aa/output-bin-game_test b/target/debug/.fingerprint/game_test-e94e74a96f0400aa/output-bin-game_test new file mode 100644 index 0000000..031fb6f --- /dev/null +++ b/target/debug/.fingerprint/game_test-e94e74a96f0400aa/output-bin-game_test @@ -0,0 +1,3 @@ +{"message":"unused imports: `SpriteCollection`, `get_keyboard_state`, `get_mouse_state`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":39,"byte_end":55,"line_start":1,"line_end":1,"column_start":40,"column_end":56,"is_primary":true,"text":[{"text":"use cat_box::{draw_text, Game, Sprite, SpriteCollection, get_mouse_state, get_keyboard_state};","highlight_start":40,"highlight_end":56}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/main.rs","byte_start":57,"byte_end":72,"line_start":1,"line_end":1,"column_start":58,"column_end":73,"is_primary":true,"text":[{"text":"use cat_box::{draw_text, Game, Sprite, SpriteCollection, get_mouse_state, get_keyboard_state};","highlight_start":58,"highlight_end":73}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/main.rs","byte_start":74,"byte_end":92,"line_start":1,"line_end":1,"column_start":75,"column_end":93,"is_primary":true,"text":[{"text":"use cat_box::{draw_text, Game, Sprite, SpriteCollection, get_mouse_state, get_keyboard_state};","highlight_start":75,"highlight_end":93}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the unused imports","code":null,"level":"help","spans":[{"file_name":"src/main.rs","byte_start":37,"byte_end":92,"line_start":1,"line_end":1,"column_start":38,"column_end":93,"is_primary":true,"text":[{"text":"use cat_box::{draw_text, Game, Sprite, SpriteCollection, get_mouse_state, get_keyboard_state};","highlight_start":38,"highlight_end":93}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused imports: `SpriteCollection`, `get_keyboard_state`, `get_mouse_state`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:1:40\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m1\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0muse cat_box::{draw_text, Game, Sprite, SpriteCollection, get_mouse_state, get_keyboard_state};\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_imports)]` on by default\u001b[0m\n\n"} +{"message":"unused import: `sdl2::keyboard::Scancode`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":99,"byte_end":123,"line_start":2,"line_end":2,"column_start":5,"column_end":29,"is_primary":true,"text":[{"text":"use sdl2::keyboard::Scancode;","highlight_start":5,"highlight_end":29}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the whole `use` item","code":null,"level":"help","spans":[{"file_name":"src/main.rs","byte_start":95,"byte_end":124,"line_start":2,"line_end":2,"column_start":1,"column_end":30,"is_primary":true,"text":[{"text":"use sdl2::keyboard::Scancode;","highlight_start":1,"highlight_end":30}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `sdl2::keyboard::Scancode`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:2:5\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m2\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0muse sdl2::keyboard::Scancode;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n\n"} +{"message":"2 warnings emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: 2 warnings emitted\u001b[0m\n\n"} diff --git a/target/debug/.fingerprint/getrandom-92edb74c54255a85/dep-lib-getrandom b/target/debug/.fingerprint/getrandom-92edb74c54255a85/dep-lib-getrandom new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/debug/.fingerprint/getrandom-92edb74c54255a85/dep-lib-getrandom differ diff --git a/target/debug/.fingerprint/getrandom-92edb74c54255a85/invoked.timestamp b/target/debug/.fingerprint/getrandom-92edb74c54255a85/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/debug/.fingerprint/getrandom-92edb74c54255a85/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/debug/.fingerprint/getrandom-92edb74c54255a85/lib-getrandom b/target/debug/.fingerprint/getrandom-92edb74c54255a85/lib-getrandom new file mode 100644 index 0000000..6df8810 --- /dev/null +++ b/target/debug/.fingerprint/getrandom-92edb74c54255a85/lib-getrandom @@ -0,0 +1 @@ +749cb9601243e178 \ No newline at end of file diff --git a/target/debug/.fingerprint/getrandom-92edb74c54255a85/lib-getrandom.json b/target/debug/.fingerprint/getrandom-92edb74c54255a85/lib-getrandom.json new file mode 100644 index 0000000..492e27c --- /dev/null +++ b/target/debug/.fingerprint/getrandom-92edb74c54255a85/lib-getrandom.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"std\"]","target":13546511942750895132,"profile":12637318739757120569,"path":2848868357737848961,"deps":[[2452538001284770427,"cfg_if",false,10323860198671222255],[5071438224780403860,"libc",false,16464547433209305390]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/getrandom-92edb74c54255a85/dep-lib-getrandom"}}],"rustflags":[],"metadata":12606519392706294666,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/debug/.fingerprint/lazy_static-02ff0d0fbc57b9b4/dep-lib-lazy_static b/target/debug/.fingerprint/lazy_static-02ff0d0fbc57b9b4/dep-lib-lazy_static new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/debug/.fingerprint/lazy_static-02ff0d0fbc57b9b4/dep-lib-lazy_static differ diff --git a/target/debug/.fingerprint/lazy_static-02ff0d0fbc57b9b4/invoked.timestamp b/target/debug/.fingerprint/lazy_static-02ff0d0fbc57b9b4/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/debug/.fingerprint/lazy_static-02ff0d0fbc57b9b4/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/debug/.fingerprint/lazy_static-02ff0d0fbc57b9b4/lib-lazy_static b/target/debug/.fingerprint/lazy_static-02ff0d0fbc57b9b4/lib-lazy_static new file mode 100644 index 0000000..a6656fe --- /dev/null +++ b/target/debug/.fingerprint/lazy_static-02ff0d0fbc57b9b4/lib-lazy_static @@ -0,0 +1 @@ +eec32948dc3b88c4 \ No newline at end of file diff --git a/target/debug/.fingerprint/lazy_static-02ff0d0fbc57b9b4/lib-lazy_static.json b/target/debug/.fingerprint/lazy_static-02ff0d0fbc57b9b4/lib-lazy_static.json new file mode 100644 index 0000000..8767015 --- /dev/null +++ b/target/debug/.fingerprint/lazy_static-02ff0d0fbc57b9b4/lib-lazy_static.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[]","target":6139664849541123785,"profile":12637318739757120569,"path":2069028011875263433,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/lazy_static-02ff0d0fbc57b9b4/dep-lib-lazy_static"}}],"rustflags":[],"metadata":111743654650316589,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/debug/.fingerprint/libc-ddc543d44ec3dd51/run-build-script-build-script-build b/target/debug/.fingerprint/libc-ddc543d44ec3dd51/run-build-script-build-script-build new file mode 100644 index 0000000..0f923a6 --- /dev/null +++ b/target/debug/.fingerprint/libc-ddc543d44ec3dd51/run-build-script-build-script-build @@ -0,0 +1 @@ +c358ab08bfa86d57 \ No newline at end of file diff --git a/target/debug/.fingerprint/libc-ddc543d44ec3dd51/run-build-script-build-script-build.json b/target/debug/.fingerprint/libc-ddc543d44ec3dd51/run-build-script-build-script-build.json new file mode 100644 index 0000000..b62a04f --- /dev/null +++ b/target/debug/.fingerprint/libc-ddc543d44ec3dd51/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"","target":0,"profile":0,"path":0,"deps":[[5071438224780403860,"build_script_build",false,14819899531044765641]],"local":[{"RerunIfChanged":{"output":"debug/build/libc-ddc543d44ec3dd51/output","paths":["build.rs"]}}],"rustflags":[],"metadata":0,"config":0,"compile_kind":0} \ No newline at end of file diff --git a/target/debug/.fingerprint/libc-de47093471b727ab/dep-lib-libc b/target/debug/.fingerprint/libc-de47093471b727ab/dep-lib-libc new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/debug/.fingerprint/libc-de47093471b727ab/dep-lib-libc differ diff --git a/target/debug/.fingerprint/libc-de47093471b727ab/invoked.timestamp b/target/debug/.fingerprint/libc-de47093471b727ab/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/debug/.fingerprint/libc-de47093471b727ab/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/debug/.fingerprint/libc-de47093471b727ab/lib-libc b/target/debug/.fingerprint/libc-de47093471b727ab/lib-libc new file mode 100644 index 0000000..7924880 --- /dev/null +++ b/target/debug/.fingerprint/libc-de47093471b727ab/lib-libc @@ -0,0 +1 @@ +2e990258a8d27de4 \ No newline at end of file diff --git a/target/debug/.fingerprint/libc-de47093471b727ab/lib-libc.json b/target/debug/.fingerprint/libc-de47093471b727ab/lib-libc.json new file mode 100644 index 0000000..9ff7dd4 --- /dev/null +++ b/target/debug/.fingerprint/libc-de47093471b727ab/lib-libc.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"default\", \"std\"]","target":15721753382687865320,"profile":12637318739757120569,"path":12601931214422439203,"deps":[[5071438224780403860,"build_script_build",false,6299876992198858947]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/libc-de47093471b727ab/dep-lib-libc"}}],"rustflags":[],"metadata":14998826085014762512,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/debug/.fingerprint/libc-de576f3ef118e37b/build-script-build-script-build b/target/debug/.fingerprint/libc-de576f3ef118e37b/build-script-build-script-build new file mode 100644 index 0000000..d4a471b --- /dev/null +++ b/target/debug/.fingerprint/libc-de576f3ef118e37b/build-script-build-script-build @@ -0,0 +1 @@ +c9bfe6b21adcaacd \ No newline at end of file diff --git a/target/debug/.fingerprint/libc-de576f3ef118e37b/build-script-build-script-build.json b/target/debug/.fingerprint/libc-de576f3ef118e37b/build-script-build-script-build.json new file mode 100644 index 0000000..f020c6c --- /dev/null +++ b/target/debug/.fingerprint/libc-de576f3ef118e37b/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"default\", \"std\"]","target":2709041430195671023,"profile":12637318739757120569,"path":9868279468468103737,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/libc-de576f3ef118e37b/dep-build-script-build-script-build"}}],"rustflags":[],"metadata":14998826085014762512,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/debug/.fingerprint/libc-de576f3ef118e37b/dep-build-script-build-script-build b/target/debug/.fingerprint/libc-de576f3ef118e37b/dep-build-script-build-script-build new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/debug/.fingerprint/libc-de576f3ef118e37b/dep-build-script-build-script-build differ diff --git a/target/debug/.fingerprint/libc-de576f3ef118e37b/invoked.timestamp b/target/debug/.fingerprint/libc-de576f3ef118e37b/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/debug/.fingerprint/libc-de576f3ef118e37b/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/debug/.fingerprint/ppv-lite86-f422879e062f51ad/dep-lib-ppv-lite86 b/target/debug/.fingerprint/ppv-lite86-f422879e062f51ad/dep-lib-ppv-lite86 new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/debug/.fingerprint/ppv-lite86-f422879e062f51ad/dep-lib-ppv-lite86 differ diff --git a/target/debug/.fingerprint/ppv-lite86-f422879e062f51ad/invoked.timestamp b/target/debug/.fingerprint/ppv-lite86-f422879e062f51ad/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/debug/.fingerprint/ppv-lite86-f422879e062f51ad/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/debug/.fingerprint/ppv-lite86-f422879e062f51ad/lib-ppv-lite86 b/target/debug/.fingerprint/ppv-lite86-f422879e062f51ad/lib-ppv-lite86 new file mode 100644 index 0000000..24c344f --- /dev/null +++ b/target/debug/.fingerprint/ppv-lite86-f422879e062f51ad/lib-ppv-lite86 @@ -0,0 +1 @@ +c22285ea46e1fc2e \ No newline at end of file diff --git a/target/debug/.fingerprint/ppv-lite86-f422879e062f51ad/lib-ppv-lite86.json b/target/debug/.fingerprint/ppv-lite86-f422879e062f51ad/lib-ppv-lite86.json new file mode 100644 index 0000000..4b64fa2 --- /dev/null +++ b/target/debug/.fingerprint/ppv-lite86-f422879e062f51ad/lib-ppv-lite86.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"simd\", \"std\"]","target":731041848731596649,"profile":12637318739757120569,"path":18285836364833475881,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/ppv-lite86-f422879e062f51ad/dep-lib-ppv-lite86"}}],"rustflags":[],"metadata":14155036307809790115,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/debug/.fingerprint/rand-a5824744e5338355/dep-lib-rand b/target/debug/.fingerprint/rand-a5824744e5338355/dep-lib-rand new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/debug/.fingerprint/rand-a5824744e5338355/dep-lib-rand differ diff --git a/target/debug/.fingerprint/rand-a5824744e5338355/invoked.timestamp b/target/debug/.fingerprint/rand-a5824744e5338355/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/debug/.fingerprint/rand-a5824744e5338355/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/debug/.fingerprint/rand-a5824744e5338355/lib-rand b/target/debug/.fingerprint/rand-a5824744e5338355/lib-rand new file mode 100644 index 0000000..40cce7d --- /dev/null +++ b/target/debug/.fingerprint/rand-a5824744e5338355/lib-rand @@ -0,0 +1 @@ +bc121dc061a28cc9 \ No newline at end of file diff --git a/target/debug/.fingerprint/rand-a5824744e5338355/lib-rand.json b/target/debug/.fingerprint/rand-a5824744e5338355/lib-rand.json new file mode 100644 index 0000000..8b0e5af --- /dev/null +++ b/target/debug/.fingerprint/rand-a5824744e5338355/lib-rand.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"alloc\", \"default\", \"getrandom\", \"libc\", \"rand_chacha\", \"std\", \"std_rng\"]","target":8770996785908029621,"profile":12637318739757120569,"path":9239835490074310541,"deps":[[1974880700686797828,"rand_core",false,12513742845592238829],[5071438224780403860,"libc",false,16464547433209305390],[12017018019769837221,"rand_chacha",false,17164531046581280702]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/rand-a5824744e5338355/dep-lib-rand"}}],"rustflags":[],"metadata":16964019146302480911,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/debug/.fingerprint/rand_chacha-9f5c362d18cbfdd5/dep-lib-rand_chacha b/target/debug/.fingerprint/rand_chacha-9f5c362d18cbfdd5/dep-lib-rand_chacha new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/debug/.fingerprint/rand_chacha-9f5c362d18cbfdd5/dep-lib-rand_chacha differ diff --git a/target/debug/.fingerprint/rand_chacha-9f5c362d18cbfdd5/invoked.timestamp b/target/debug/.fingerprint/rand_chacha-9f5c362d18cbfdd5/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/debug/.fingerprint/rand_chacha-9f5c362d18cbfdd5/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/debug/.fingerprint/rand_chacha-9f5c362d18cbfdd5/lib-rand_chacha b/target/debug/.fingerprint/rand_chacha-9f5c362d18cbfdd5/lib-rand_chacha new file mode 100644 index 0000000..fefb7d7 --- /dev/null +++ b/target/debug/.fingerprint/rand_chacha-9f5c362d18cbfdd5/lib-rand_chacha @@ -0,0 +1 @@ +be1fa4970baa34ee \ No newline at end of file diff --git a/target/debug/.fingerprint/rand_chacha-9f5c362d18cbfdd5/lib-rand_chacha.json b/target/debug/.fingerprint/rand_chacha-9f5c362d18cbfdd5/lib-rand_chacha.json new file mode 100644 index 0000000..7cdeea1 --- /dev/null +++ b/target/debug/.fingerprint/rand_chacha-9f5c362d18cbfdd5/lib-rand_chacha.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"std\"]","target":10091652985973831551,"profile":12637318739757120569,"path":5728894798552985481,"deps":[[1974880700686797828,"rand_core",false,12513742845592238829],[6749292461404294239,"ppv_lite86",false,3385828714574324418]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/rand_chacha-9f5c362d18cbfdd5/dep-lib-rand_chacha"}}],"rustflags":[],"metadata":2235018391756195449,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/debug/.fingerprint/rand_core-b3b0f8f40cacdd69/dep-lib-rand_core b/target/debug/.fingerprint/rand_core-b3b0f8f40cacdd69/dep-lib-rand_core new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/debug/.fingerprint/rand_core-b3b0f8f40cacdd69/dep-lib-rand_core differ diff --git a/target/debug/.fingerprint/rand_core-b3b0f8f40cacdd69/invoked.timestamp b/target/debug/.fingerprint/rand_core-b3b0f8f40cacdd69/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/debug/.fingerprint/rand_core-b3b0f8f40cacdd69/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/debug/.fingerprint/rand_core-b3b0f8f40cacdd69/lib-rand_core b/target/debug/.fingerprint/rand_core-b3b0f8f40cacdd69/lib-rand_core new file mode 100644 index 0000000..4b45676 --- /dev/null +++ b/target/debug/.fingerprint/rand_core-b3b0f8f40cacdd69/lib-rand_core @@ -0,0 +1 @@ +ed7a1c42d1bea9ad \ No newline at end of file diff --git a/target/debug/.fingerprint/rand_core-b3b0f8f40cacdd69/lib-rand_core.json b/target/debug/.fingerprint/rand_core-b3b0f8f40cacdd69/lib-rand_core.json new file mode 100644 index 0000000..b4d3887 --- /dev/null +++ b/target/debug/.fingerprint/rand_core-b3b0f8f40cacdd69/lib-rand_core.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"alloc\", \"getrandom\", \"std\"]","target":14554634924080965175,"profile":12637318739757120569,"path":6409972178359997063,"deps":[[9767896882406009942,"getrandom",false,8710316900522499188]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/rand_core-b3b0f8f40cacdd69/dep-lib-rand_core"}}],"rustflags":[],"metadata":3275543247315060703,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/debug/.fingerprint/sdl2-1561407daacea9e2/build-script-build-script-build b/target/debug/.fingerprint/sdl2-1561407daacea9e2/build-script-build-script-build new file mode 100644 index 0000000..d4f8f02 --- /dev/null +++ b/target/debug/.fingerprint/sdl2-1561407daacea9e2/build-script-build-script-build @@ -0,0 +1 @@ +693b212dbed841f6 \ No newline at end of file diff --git a/target/debug/.fingerprint/sdl2-1561407daacea9e2/build-script-build-script-build.json b/target/debug/.fingerprint/sdl2-1561407daacea9e2/build-script-build-script-build.json new file mode 100644 index 0000000..88d891b --- /dev/null +++ b/target/debug/.fingerprint/sdl2-1561407daacea9e2/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"default\", \"image\", \"ttf\"]","target":2709041430195671023,"profile":12637318739757120569,"path":1834896383086156348,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/sdl2-1561407daacea9e2/dep-build-script-build-script-build"}}],"rustflags":[],"metadata":3204612833656974723,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/debug/.fingerprint/sdl2-1561407daacea9e2/dep-build-script-build-script-build b/target/debug/.fingerprint/sdl2-1561407daacea9e2/dep-build-script-build-script-build new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/debug/.fingerprint/sdl2-1561407daacea9e2/dep-build-script-build-script-build differ diff --git a/target/debug/.fingerprint/sdl2-1561407daacea9e2/invoked.timestamp b/target/debug/.fingerprint/sdl2-1561407daacea9e2/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/debug/.fingerprint/sdl2-1561407daacea9e2/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/debug/.fingerprint/sdl2-252d6b93eaa2e96a/run-build-script-build-script-build b/target/debug/.fingerprint/sdl2-252d6b93eaa2e96a/run-build-script-build-script-build new file mode 100644 index 0000000..8eae4a9 --- /dev/null +++ b/target/debug/.fingerprint/sdl2-252d6b93eaa2e96a/run-build-script-build-script-build @@ -0,0 +1 @@ +9001f311ac167d0f \ No newline at end of file diff --git a/target/debug/.fingerprint/sdl2-252d6b93eaa2e96a/run-build-script-build-script-build.json b/target/debug/.fingerprint/sdl2-252d6b93eaa2e96a/run-build-script-build-script-build.json new file mode 100644 index 0000000..00a2284 --- /dev/null +++ b/target/debug/.fingerprint/sdl2-252d6b93eaa2e96a/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"","target":0,"profile":0,"path":0,"deps":[[2027952989180942924,"build_script_build",false,17744702318129003369],[17382268157316343340,"build_script_build",false,1595607969756947245]],"local":[{"Precalculated":"0.35.2"}],"rustflags":[],"metadata":0,"config":0,"compile_kind":0} \ No newline at end of file diff --git a/target/debug/.fingerprint/sdl2-774185ff44ff8d40/dep-lib-sdl2 b/target/debug/.fingerprint/sdl2-774185ff44ff8d40/dep-lib-sdl2 new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/debug/.fingerprint/sdl2-774185ff44ff8d40/dep-lib-sdl2 differ diff --git a/target/debug/.fingerprint/sdl2-774185ff44ff8d40/invoked.timestamp b/target/debug/.fingerprint/sdl2-774185ff44ff8d40/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/debug/.fingerprint/sdl2-774185ff44ff8d40/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/debug/.fingerprint/sdl2-774185ff44ff8d40/lib-sdl2 b/target/debug/.fingerprint/sdl2-774185ff44ff8d40/lib-sdl2 new file mode 100644 index 0000000..3f95115 --- /dev/null +++ b/target/debug/.fingerprint/sdl2-774185ff44ff8d40/lib-sdl2 @@ -0,0 +1 @@ +8b1c620da051a7c3 \ No newline at end of file diff --git a/target/debug/.fingerprint/sdl2-774185ff44ff8d40/lib-sdl2.json b/target/debug/.fingerprint/sdl2-774185ff44ff8d40/lib-sdl2.json new file mode 100644 index 0000000..2508958 --- /dev/null +++ b/target/debug/.fingerprint/sdl2-774185ff44ff8d40/lib-sdl2.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"default\", \"image\", \"ttf\"]","target":11537901402046197358,"profile":12637318739757120569,"path":1258407295479766387,"deps":[[2027952989180942924,"build_script_build",false,1116073210949075344],[5071438224780403860,"libc",false,16464547433209305390],[6685014296130524576,"lazy_static",false,14161634845556065262],[14051957667571541382,"bitflags",false,8226778560175987762],[17382268157316343340,"sdl2_sys",false,17963007224652852306]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/sdl2-774185ff44ff8d40/dep-lib-sdl2"}}],"rustflags":[],"metadata":3204612833656974723,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/debug/.fingerprint/sdl2-sys-95684d10a9311044/run-build-script-build-script-build b/target/debug/.fingerprint/sdl2-sys-95684d10a9311044/run-build-script-build-script-build new file mode 100644 index 0000000..ef967cb --- /dev/null +++ b/target/debug/.fingerprint/sdl2-sys-95684d10a9311044/run-build-script-build-script-build @@ -0,0 +1 @@ +2d23259efebc2416 \ No newline at end of file diff --git a/target/debug/.fingerprint/sdl2-sys-95684d10a9311044/run-build-script-build-script-build.json b/target/debug/.fingerprint/sdl2-sys-95684d10a9311044/run-build-script-build-script-build.json new file mode 100644 index 0000000..07867cb --- /dev/null +++ b/target/debug/.fingerprint/sdl2-sys-95684d10a9311044/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"","target":0,"profile":0,"path":0,"deps":[[17382268157316343340,"build_script_build",false,12854095600731032120]],"local":[{"Precalculated":"0.35.2"}],"rustflags":[],"metadata":0,"config":0,"compile_kind":0} \ No newline at end of file diff --git a/target/debug/.fingerprint/sdl2-sys-da2a9db1fae2b433/dep-lib-sdl2_sys b/target/debug/.fingerprint/sdl2-sys-da2a9db1fae2b433/dep-lib-sdl2_sys new file mode 100644 index 0000000..6544cf8 Binary files /dev/null and b/target/debug/.fingerprint/sdl2-sys-da2a9db1fae2b433/dep-lib-sdl2_sys differ diff --git a/target/debug/.fingerprint/sdl2-sys-da2a9db1fae2b433/invoked.timestamp b/target/debug/.fingerprint/sdl2-sys-da2a9db1fae2b433/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/debug/.fingerprint/sdl2-sys-da2a9db1fae2b433/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/debug/.fingerprint/sdl2-sys-da2a9db1fae2b433/lib-sdl2_sys b/target/debug/.fingerprint/sdl2-sys-da2a9db1fae2b433/lib-sdl2_sys new file mode 100644 index 0000000..05fcc92 --- /dev/null +++ b/target/debug/.fingerprint/sdl2-sys-da2a9db1fae2b433/lib-sdl2_sys @@ -0,0 +1 @@ +526c3513e66b49f9 \ No newline at end of file diff --git a/target/debug/.fingerprint/sdl2-sys-da2a9db1fae2b433/lib-sdl2_sys.json b/target/debug/.fingerprint/sdl2-sys-da2a9db1fae2b433/lib-sdl2_sys.json new file mode 100644 index 0000000..ce69f8b --- /dev/null +++ b/target/debug/.fingerprint/sdl2-sys-da2a9db1fae2b433/lib-sdl2_sys.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"default\", \"image\", \"ttf\"]","target":4163049214512897365,"profile":12637318739757120569,"path":10998664449434206481,"deps":[[5071438224780403860,"libc",false,16464547433209305390],[17382268157316343340,"build_script_build",false,1595607969756947245]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/sdl2-sys-da2a9db1fae2b433/dep-lib-sdl2_sys"}}],"rustflags":[],"metadata":12671436704077421273,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/build-script-build-script-build b/target/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/build-script-build-script-build new file mode 100644 index 0000000..1d88a14 --- /dev/null +++ b/target/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/build-script-build-script-build @@ -0,0 +1 @@ +380a7c4ed8eb62b2 \ No newline at end of file diff --git a/target/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/build-script-build-script-build.json b/target/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/build-script-build-script-build.json new file mode 100644 index 0000000..c8618f8 --- /dev/null +++ b/target/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"default\", \"image\", \"ttf\"]","target":13294766831966498538,"profile":12637318739757120569,"path":16104113558099043900,"deps":[[720735588919859894,"version_compare",false,4785973664892435636],[2452538001284770427,"cfg_if",false,10323860198671222255]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/dep-build-script-build-script-build"}}],"rustflags":[],"metadata":12671436704077421273,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/dep-build-script-build-script-build b/target/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/dep-build-script-build-script-build new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/dep-build-script-build-script-build differ diff --git a/target/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/invoked.timestamp b/target/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/debug/.fingerprint/version-compare-00af566e309f576b/dep-lib-version-compare b/target/debug/.fingerprint/version-compare-00af566e309f576b/dep-lib-version-compare new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/debug/.fingerprint/version-compare-00af566e309f576b/dep-lib-version-compare differ diff --git a/target/debug/.fingerprint/version-compare-00af566e309f576b/invoked.timestamp b/target/debug/.fingerprint/version-compare-00af566e309f576b/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/debug/.fingerprint/version-compare-00af566e309f576b/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/debug/.fingerprint/version-compare-00af566e309f576b/lib-version-compare b/target/debug/.fingerprint/version-compare-00af566e309f576b/lib-version-compare new file mode 100644 index 0000000..b240129 --- /dev/null +++ b/target/debug/.fingerprint/version-compare-00af566e309f576b/lib-version-compare @@ -0,0 +1 @@ +b4bc49e8b0316b42 \ No newline at end of file diff --git a/target/debug/.fingerprint/version-compare-00af566e309f576b/lib-version-compare.json b/target/debug/.fingerprint/version-compare-00af566e309f576b/lib-version-compare.json new file mode 100644 index 0000000..513aab5 --- /dev/null +++ b/target/debug/.fingerprint/version-compare-00af566e309f576b/lib-version-compare.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[]","target":17443050515150725052,"profile":12637318739757120569,"path":7915317770023699388,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/version-compare-00af566e309f576b/dep-lib-version-compare"}}],"rustflags":[],"metadata":1144377052308559650,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/debug/build/libc-ddc543d44ec3dd51/invoked.timestamp b/target/debug/build/libc-ddc543d44ec3dd51/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/debug/build/libc-ddc543d44ec3dd51/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/debug/build/libc-ddc543d44ec3dd51/output b/target/debug/build/libc-ddc543d44ec3dd51/output new file mode 100644 index 0000000..4bee63a --- /dev/null +++ b/target/debug/build/libc-ddc543d44ec3dd51/output @@ -0,0 +1,13 @@ +cargo:rerun-if-changed=build.rs +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_int128 +cargo:rustc-cfg=libc_core_cvoid +cargo:rustc-cfg=libc_packedN +cargo:rustc-cfg=libc_cfg_target_vendor +cargo:rustc-cfg=libc_non_exhaustive +cargo:rustc-cfg=libc_ptr_addr_of +cargo:rustc-cfg=libc_underscore_const_names diff --git a/target/debug/build/libc-ddc543d44ec3dd51/root-output b/target/debug/build/libc-ddc543d44ec3dd51/root-output new file mode 100644 index 0000000..76f8dcc --- /dev/null +++ b/target/debug/build/libc-ddc543d44ec3dd51/root-output @@ -0,0 +1 @@ +/home/gallant/Documents/RustProjects/game_test/target/debug/build/libc-ddc543d44ec3dd51/out \ No newline at end of file diff --git a/target/debug/build/libc-ddc543d44ec3dd51/stderr b/target/debug/build/libc-ddc543d44ec3dd51/stderr new file mode 100644 index 0000000..e69de29 diff --git a/target/debug/build/libc-de576f3ef118e37b/build-script-build b/target/debug/build/libc-de576f3ef118e37b/build-script-build new file mode 100755 index 0000000..1cb5333 Binary files /dev/null and b/target/debug/build/libc-de576f3ef118e37b/build-script-build differ diff --git a/target/debug/build/libc-de576f3ef118e37b/build_script_build-de576f3ef118e37b b/target/debug/build/libc-de576f3ef118e37b/build_script_build-de576f3ef118e37b new file mode 100755 index 0000000..1cb5333 Binary files /dev/null and b/target/debug/build/libc-de576f3ef118e37b/build_script_build-de576f3ef118e37b differ diff --git a/target/debug/build/libc-de576f3ef118e37b/build_script_build-de576f3ef118e37b.d b/target/debug/build/libc-de576f3ef118e37b/build_script_build-de576f3ef118e37b.d new file mode 100644 index 0000000..9de56f5 --- /dev/null +++ b/target/debug/build/libc-de576f3ef118e37b/build_script_build-de576f3ef118e37b.d @@ -0,0 +1,5 @@ +/home/gallant/Documents/RustProjects/game_test/target/debug/build/libc-de576f3ef118e37b/build_script_build-de576f3ef118e37b: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/build/libc-de576f3ef118e37b/build_script_build-de576f3ef118e37b.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs: diff --git a/target/debug/build/sdl2-1561407daacea9e2/build-script-build b/target/debug/build/sdl2-1561407daacea9e2/build-script-build new file mode 100755 index 0000000..70a4746 Binary files /dev/null and b/target/debug/build/sdl2-1561407daacea9e2/build-script-build differ diff --git a/target/debug/build/sdl2-1561407daacea9e2/build_script_build-1561407daacea9e2 b/target/debug/build/sdl2-1561407daacea9e2/build_script_build-1561407daacea9e2 new file mode 100755 index 0000000..70a4746 Binary files /dev/null and b/target/debug/build/sdl2-1561407daacea9e2/build_script_build-1561407daacea9e2 differ diff --git a/target/debug/build/sdl2-1561407daacea9e2/build_script_build-1561407daacea9e2.d b/target/debug/build/sdl2-1561407daacea9e2/build_script_build-1561407daacea9e2.d new file mode 100644 index 0000000..5e0e0aa --- /dev/null +++ b/target/debug/build/sdl2-1561407daacea9e2/build_script_build-1561407daacea9e2.d @@ -0,0 +1,5 @@ +/home/gallant/Documents/RustProjects/game_test/target/debug/build/sdl2-1561407daacea9e2/build_script_build-1561407daacea9e2: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/build/sdl2-1561407daacea9e2/build_script_build-1561407daacea9e2.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs: diff --git a/target/debug/build/sdl2-252d6b93eaa2e96a/invoked.timestamp b/target/debug/build/sdl2-252d6b93eaa2e96a/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/debug/build/sdl2-252d6b93eaa2e96a/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/debug/build/sdl2-252d6b93eaa2e96a/output b/target/debug/build/sdl2-252d6b93eaa2e96a/output new file mode 100644 index 0000000..e69de29 diff --git a/target/debug/build/sdl2-252d6b93eaa2e96a/root-output b/target/debug/build/sdl2-252d6b93eaa2e96a/root-output new file mode 100644 index 0000000..b8f73f1 --- /dev/null +++ b/target/debug/build/sdl2-252d6b93eaa2e96a/root-output @@ -0,0 +1 @@ +/home/gallant/Documents/RustProjects/game_test/target/debug/build/sdl2-252d6b93eaa2e96a/out \ No newline at end of file diff --git a/target/debug/build/sdl2-252d6b93eaa2e96a/stderr b/target/debug/build/sdl2-252d6b93eaa2e96a/stderr new file mode 100644 index 0000000..e69de29 diff --git a/target/debug/build/sdl2-sys-95684d10a9311044/invoked.timestamp b/target/debug/build/sdl2-sys-95684d10a9311044/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/debug/build/sdl2-sys-95684d10a9311044/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/debug/build/sdl2-sys-95684d10a9311044/out/sdl_bindings.rs b/target/debug/build/sdl2-sys-95684d10a9311044/out/sdl_bindings.rs new file mode 100644 index 0000000..b98fc8e --- /dev/null +++ b/target/debug/build/sdl2-sys-95684d10a9311044/out/sdl_bindings.rs @@ -0,0 +1,30918 @@ +/* automatically generated by rust-bindgen */ + +pub const __LINUX__: u32 = 1; +pub const HAVE_STDARG_H: u32 = 1; +pub const HAVE_STDDEF_H: u32 = 1; +pub const HAVE_STDINT_H: u32 = 1; +pub const HAVE_GCC_SYNC_LOCK_TEST_AND_SET: u32 = 1; +pub const SDL_AUDIO_DRIVER_DUMMY: u32 = 1; +pub const SDL_JOYSTICK_DISABLED: u32 = 1; +pub const SDL_HAPTIC_DISABLED: u32 = 1; +pub const SDL_SENSOR_DISABLED: u32 = 1; +pub const SDL_LOADSO_DISABLED: u32 = 1; +pub const SDL_THREADS_DISABLED: u32 = 1; +pub const SDL_TIMERS_DISABLED: u32 = 1; +pub const SDL_VIDEO_DRIVER_DUMMY: u32 = 1; +pub const SDL_FILESYSTEM_DUMMY: u32 = 1; +pub const __GNUC_VA_LIST: u32 = 1; +pub const _STDINT_H: u32 = 1; +pub const _FEATURES_H: u32 = 1; +pub const _DEFAULT_SOURCE: u32 = 1; +pub const __GLIBC_USE_ISOC2X: u32 = 0; +pub const __USE_ISOC11: u32 = 1; +pub const __USE_ISOC99: u32 = 1; +pub const __USE_ISOC95: u32 = 1; +pub const __USE_POSIX_IMPLICITLY: u32 = 1; +pub const _POSIX_SOURCE: u32 = 1; +pub const _POSIX_C_SOURCE: u32 = 200809; +pub const __USE_POSIX: u32 = 1; +pub const __USE_POSIX2: u32 = 1; +pub const __USE_POSIX199309: u32 = 1; +pub const __USE_POSIX199506: u32 = 1; +pub const __USE_XOPEN2K: u32 = 1; +pub const __USE_XOPEN2K8: u32 = 1; +pub const _ATFILE_SOURCE: u32 = 1; +pub const __USE_MISC: u32 = 1; +pub const __USE_ATFILE: u32 = 1; +pub const __USE_FORTIFY_LEVEL: u32 = 0; +pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0; +pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0; +pub const _STDC_PREDEF_H: u32 = 1; +pub const __STDC_IEC_559__: u32 = 1; +pub const __STDC_IEC_559_COMPLEX__: u32 = 1; +pub const __STDC_ISO_10646__: u32 = 201706; +pub const __GNU_LIBRARY__: u32 = 6; +pub const __GLIBC__: u32 = 2; +pub const __GLIBC_MINOR__: u32 = 33; +pub const _SYS_CDEFS_H: u32 = 1; +pub const __glibc_c99_flexarr_available: u32 = 1; +pub const __WORDSIZE: u32 = 64; +pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1; +pub const __SYSCALL_WORDSIZE: u32 = 64; +pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0; +pub const __HAVE_GENERIC_SELECTION: u32 = 1; +pub const __GLIBC_USE_LIB_EXT2: u32 = 0; +pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0; +pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0; +pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0; +pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0; +pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0; +pub const _BITS_TYPES_H: u32 = 1; +pub const __TIMESIZE: u32 = 64; +pub const _BITS_TYPESIZES_H: u32 = 1; +pub const __OFF_T_MATCHES_OFF64_T: u32 = 1; +pub const __INO_T_MATCHES_INO64_T: u32 = 1; +pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1; +pub const __STATFS_MATCHES_STATFS64: u32 = 1; +pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1; +pub const __FD_SETSIZE: u32 = 1024; +pub const _BITS_TIME64_H: u32 = 1; +pub const _BITS_WCHAR_H: u32 = 1; +pub const _BITS_STDINT_INTN_H: u32 = 1; +pub const _BITS_STDINT_UINTN_H: u32 = 1; +pub const INT8_MIN: i32 = -128; +pub const INT16_MIN: i32 = -32768; +pub const INT32_MIN: i32 = -2147483648; +pub const INT8_MAX: u32 = 127; +pub const INT16_MAX: u32 = 32767; +pub const INT32_MAX: u32 = 2147483647; +pub const UINT8_MAX: u32 = 255; +pub const UINT16_MAX: u32 = 65535; +pub const UINT32_MAX: u32 = 4294967295; +pub const INT_LEAST8_MIN: i32 = -128; +pub const INT_LEAST16_MIN: i32 = -32768; +pub const INT_LEAST32_MIN: i32 = -2147483648; +pub const INT_LEAST8_MAX: u32 = 127; +pub const INT_LEAST16_MAX: u32 = 32767; +pub const INT_LEAST32_MAX: u32 = 2147483647; +pub const UINT_LEAST8_MAX: u32 = 255; +pub const UINT_LEAST16_MAX: u32 = 65535; +pub const UINT_LEAST32_MAX: u32 = 4294967295; +pub const INT_FAST8_MIN: i32 = -128; +pub const INT_FAST16_MIN: i64 = -9223372036854775808; +pub const INT_FAST32_MIN: i64 = -9223372036854775808; +pub const INT_FAST8_MAX: u32 = 127; +pub const INT_FAST16_MAX: u64 = 9223372036854775807; +pub const INT_FAST32_MAX: u64 = 9223372036854775807; +pub const UINT_FAST8_MAX: u32 = 255; +pub const UINT_FAST16_MAX: i32 = -1; +pub const UINT_FAST32_MAX: i32 = -1; +pub const INTPTR_MIN: i64 = -9223372036854775808; +pub const INTPTR_MAX: u64 = 9223372036854775807; +pub const UINTPTR_MAX: i32 = -1; +pub const PTRDIFF_MIN: i64 = -9223372036854775808; +pub const PTRDIFF_MAX: u64 = 9223372036854775807; +pub const SIG_ATOMIC_MIN: i32 = -2147483648; +pub const SIG_ATOMIC_MAX: u32 = 2147483647; +pub const SIZE_MAX: i32 = -1; +pub const WINT_MIN: u32 = 0; +pub const WINT_MAX: u32 = 4294967295; +pub const SDL_PRIs64: &'static [u8; 3usize] = b"ld\0"; +pub const SDL_PRIu64: &'static [u8; 3usize] = b"lu\0"; +pub const SDL_PRIx64: &'static [u8; 3usize] = b"lx\0"; +pub const SDL_PRIX64: &'static [u8; 3usize] = b"lX\0"; +pub const M_PI: f64 = 3.141592653589793; +pub const SDL_ASSERT_LEVEL: u32 = 2; +pub const SDL_NULL_WHILE_LOOP_CONDITION: u32 = 0; +pub const SDL_LIL_ENDIAN: u32 = 1234; +pub const SDL_BIG_ENDIAN: u32 = 4321; +pub const _ENDIAN_H: u32 = 1; +pub const _BITS_ENDIAN_H: u32 = 1; +pub const __LITTLE_ENDIAN: u32 = 1234; +pub const __BIG_ENDIAN: u32 = 4321; +pub const __PDP_ENDIAN: u32 = 3412; +pub const _BITS_ENDIANNESS_H: u32 = 1; +pub const __BYTE_ORDER: u32 = 1234; +pub const __FLOAT_WORD_ORDER: u32 = 1234; +pub const LITTLE_ENDIAN: u32 = 1234; +pub const BIG_ENDIAN: u32 = 4321; +pub const PDP_ENDIAN: u32 = 3412; +pub const BYTE_ORDER: u32 = 1234; +pub const _BITS_BYTESWAP_H: u32 = 1; +pub const _BITS_UINTN_IDENTITY_H: u32 = 1; +pub const SDL_BYTEORDER: u32 = 1234; +pub const SDL_MUTEX_TIMEDOUT: u32 = 1; +pub const SDL_RWOPS_UNKNOWN: u32 = 0; +pub const SDL_RWOPS_WINFILE: u32 = 1; +pub const SDL_RWOPS_STDFILE: u32 = 2; +pub const SDL_RWOPS_JNIFILE: u32 = 3; +pub const SDL_RWOPS_MEMORY: u32 = 4; +pub const SDL_RWOPS_MEMORY_RO: u32 = 5; +pub const RW_SEEK_SET: u32 = 0; +pub const RW_SEEK_CUR: u32 = 1; +pub const RW_SEEK_END: u32 = 2; +pub const SDL_AUDIO_MASK_BITSIZE: u32 = 255; +pub const SDL_AUDIO_MASK_DATATYPE: u32 = 256; +pub const SDL_AUDIO_MASK_ENDIAN: u32 = 4096; +pub const SDL_AUDIO_MASK_SIGNED: u32 = 32768; +pub const AUDIO_U8: u32 = 8; +pub const AUDIO_S8: u32 = 32776; +pub const AUDIO_U16LSB: u32 = 16; +pub const AUDIO_S16LSB: u32 = 32784; +pub const AUDIO_U16MSB: u32 = 4112; +pub const AUDIO_S16MSB: u32 = 36880; +pub const AUDIO_U16: u32 = 16; +pub const AUDIO_S16: u32 = 32784; +pub const AUDIO_S32LSB: u32 = 32800; +pub const AUDIO_S32MSB: u32 = 36896; +pub const AUDIO_S32: u32 = 32800; +pub const AUDIO_F32LSB: u32 = 33056; +pub const AUDIO_F32MSB: u32 = 37152; +pub const AUDIO_F32: u32 = 33056; +pub const AUDIO_U16SYS: u32 = 16; +pub const AUDIO_S16SYS: u32 = 32784; +pub const AUDIO_S32SYS: u32 = 32800; +pub const AUDIO_F32SYS: u32 = 33056; +pub const SDL_AUDIO_ALLOW_FREQUENCY_CHANGE: u32 = 1; +pub const SDL_AUDIO_ALLOW_FORMAT_CHANGE: u32 = 2; +pub const SDL_AUDIO_ALLOW_CHANNELS_CHANGE: u32 = 4; +pub const SDL_AUDIO_ALLOW_SAMPLES_CHANGE: u32 = 8; +pub const SDL_AUDIO_ALLOW_ANY_CHANGE: u32 = 15; +pub const SDL_AUDIOCVT_MAX_FILTERS: u32 = 9; +pub const SDL_MIX_MAXVOLUME: u32 = 128; +pub const _STDLIB_H: u32 = 1; +pub const WNOHANG: u32 = 1; +pub const WUNTRACED: u32 = 2; +pub const WSTOPPED: u32 = 2; +pub const WEXITED: u32 = 4; +pub const WCONTINUED: u32 = 8; +pub const WNOWAIT: u32 = 16777216; +pub const __WNOTHREAD: u32 = 536870912; +pub const __WALL: u32 = 1073741824; +pub const __WCLONE: u32 = 2147483648; +pub const __W_CONTINUED: u32 = 65535; +pub const __WCOREFLAG: u32 = 128; +pub const __HAVE_FLOAT128: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT128: u32 = 0; +pub const __HAVE_FLOAT64X: u32 = 1; +pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1; +pub const __HAVE_FLOAT16: u32 = 0; +pub const __HAVE_FLOAT32: u32 = 1; +pub const __HAVE_FLOAT64: u32 = 1; +pub const __HAVE_FLOAT32X: u32 = 1; +pub const __HAVE_FLOAT128X: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT16: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT32: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT64: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0; +pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0; +pub const __ldiv_t_defined: u32 = 1; +pub const __lldiv_t_defined: u32 = 1; +pub const RAND_MAX: u32 = 2147483647; +pub const EXIT_FAILURE: u32 = 1; +pub const EXIT_SUCCESS: u32 = 0; +pub const _SYS_TYPES_H: u32 = 1; +pub const __clock_t_defined: u32 = 1; +pub const __clockid_t_defined: u32 = 1; +pub const __time_t_defined: u32 = 1; +pub const __timer_t_defined: u32 = 1; +pub const __BIT_TYPES_DEFINED__: u32 = 1; +pub const _SYS_SELECT_H: u32 = 1; +pub const __sigset_t_defined: u32 = 1; +pub const __timeval_defined: u32 = 1; +pub const _STRUCT_TIMESPEC: u32 = 1; +pub const FD_SETSIZE: u32 = 1024; +pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1; +pub const _THREAD_SHARED_TYPES_H: u32 = 1; +pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1; +pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40; +pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56; +pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56; +pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4; +pub const __SIZEOF_PTHREAD_COND_T: u32 = 48; +pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4; +pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4; +pub const _THREAD_MUTEX_INTERNAL_H: u32 = 1; +pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1; +pub const __have_pthread_attr_t: u32 = 1; +pub const _ALLOCA_H: u32 = 1; +pub const _MM_HINT_ET0: u32 = 7; +pub const _MM_HINT_ET1: u32 = 6; +pub const _MM_HINT_T0: u32 = 3; +pub const _MM_HINT_T1: u32 = 2; +pub const _MM_HINT_T2: u32 = 1; +pub const _MM_HINT_NTA: u32 = 0; +pub const _MM_EXCEPT_INVALID: u32 = 1; +pub const _MM_EXCEPT_DENORM: u32 = 2; +pub const _MM_EXCEPT_DIV_ZERO: u32 = 4; +pub const _MM_EXCEPT_OVERFLOW: u32 = 8; +pub const _MM_EXCEPT_UNDERFLOW: u32 = 16; +pub const _MM_EXCEPT_INEXACT: u32 = 32; +pub const _MM_EXCEPT_MASK: u32 = 63; +pub const _MM_MASK_INVALID: u32 = 128; +pub const _MM_MASK_DENORM: u32 = 256; +pub const _MM_MASK_DIV_ZERO: u32 = 512; +pub const _MM_MASK_OVERFLOW: u32 = 1024; +pub const _MM_MASK_UNDERFLOW: u32 = 2048; +pub const _MM_MASK_INEXACT: u32 = 4096; +pub const _MM_MASK_MASK: u32 = 8064; +pub const _MM_ROUND_NEAREST: u32 = 0; +pub const _MM_ROUND_DOWN: u32 = 8192; +pub const _MM_ROUND_UP: u32 = 16384; +pub const _MM_ROUND_TOWARD_ZERO: u32 = 24576; +pub const _MM_ROUND_MASK: u32 = 24576; +pub const _MM_FLUSH_ZERO_MASK: u32 = 32768; +pub const _MM_FLUSH_ZERO_ON: u32 = 32768; +pub const _MM_FLUSH_ZERO_OFF: u32 = 0; +pub const _MM_DENORMALS_ZERO_ON: u32 = 64; +pub const _MM_DENORMALS_ZERO_OFF: u32 = 0; +pub const _MM_DENORMALS_ZERO_MASK: u32 = 64; +pub const SDL_CACHELINE_SIZE: u32 = 128; +pub const SDL_ALPHA_OPAQUE: u32 = 255; +pub const SDL_ALPHA_TRANSPARENT: u32 = 0; +pub const SDL_SWSURFACE: u32 = 0; +pub const SDL_PREALLOC: u32 = 1; +pub const SDL_RLEACCEL: u32 = 2; +pub const SDL_DONTFREE: u32 = 4; +pub const SDL_SIMD_ALIGNED: u32 = 8; +pub const SDL_WINDOWPOS_UNDEFINED_MASK: u32 = 536805376; +pub const SDL_WINDOWPOS_CENTERED_MASK: u32 = 805240832; +pub const SDLK_SCANCODE_MASK: u32 = 1073741824; +pub const SDL_BUTTON_LEFT: u32 = 1; +pub const SDL_BUTTON_MIDDLE: u32 = 2; +pub const SDL_BUTTON_RIGHT: u32 = 3; +pub const SDL_BUTTON_X1: u32 = 4; +pub const SDL_BUTTON_X2: u32 = 5; +pub const SDL_IPHONE_MAX_GFORCE: f64 = 5.0; +pub const SDL_JOYSTICK_AXIS_MAX: u32 = 32767; +pub const SDL_JOYSTICK_AXIS_MIN: i32 = -32768; +pub const SDL_HAT_CENTERED: u32 = 0; +pub const SDL_HAT_UP: u32 = 1; +pub const SDL_HAT_RIGHT: u32 = 2; +pub const SDL_HAT_DOWN: u32 = 4; +pub const SDL_HAT_LEFT: u32 = 8; +pub const SDL_HAT_RIGHTUP: u32 = 3; +pub const SDL_HAT_RIGHTDOWN: u32 = 6; +pub const SDL_HAT_LEFTUP: u32 = 9; +pub const SDL_HAT_LEFTDOWN: u32 = 12; +pub const SDL_STANDARD_GRAVITY: f64 = 9.80665; +pub const SDL_RELEASED: u32 = 0; +pub const SDL_PRESSED: u32 = 1; +pub const SDL_TEXTEDITINGEVENT_TEXT_SIZE: u32 = 32; +pub const SDL_TEXTINPUTEVENT_TEXT_SIZE: u32 = 32; +pub const SDL_QUERY: i32 = -1; +pub const SDL_IGNORE: u32 = 0; +pub const SDL_DISABLE: u32 = 0; +pub const SDL_ENABLE: u32 = 1; +pub const SDL_HAPTIC_CONSTANT: u32 = 1; +pub const SDL_HAPTIC_SINE: u32 = 2; +pub const SDL_HAPTIC_LEFTRIGHT: u32 = 4; +pub const SDL_HAPTIC_TRIANGLE: u32 = 8; +pub const SDL_HAPTIC_SAWTOOTHUP: u32 = 16; +pub const SDL_HAPTIC_SAWTOOTHDOWN: u32 = 32; +pub const SDL_HAPTIC_RAMP: u32 = 64; +pub const SDL_HAPTIC_SPRING: u32 = 128; +pub const SDL_HAPTIC_DAMPER: u32 = 256; +pub const SDL_HAPTIC_INERTIA: u32 = 512; +pub const SDL_HAPTIC_FRICTION: u32 = 1024; +pub const SDL_HAPTIC_CUSTOM: u32 = 2048; +pub const SDL_HAPTIC_GAIN: u32 = 4096; +pub const SDL_HAPTIC_AUTOCENTER: u32 = 8192; +pub const SDL_HAPTIC_STATUS: u32 = 16384; +pub const SDL_HAPTIC_PAUSE: u32 = 32768; +pub const SDL_HAPTIC_POLAR: u32 = 0; +pub const SDL_HAPTIC_CARTESIAN: u32 = 1; +pub const SDL_HAPTIC_SPHERICAL: u32 = 2; +pub const SDL_HAPTIC_STEERING_AXIS: u32 = 3; +pub const SDL_HAPTIC_INFINITY: u32 = 4294967295; +pub const SDL_HINT_FRAMEBUFFER_ACCELERATION: &'static [u8; 29usize] = + b"SDL_FRAMEBUFFER_ACCELERATION\0"; +pub const SDL_HINT_RENDER_DRIVER: &'static [u8; 18usize] = b"SDL_RENDER_DRIVER\0"; +pub const SDL_HINT_RENDER_OPENGL_SHADERS: &'static [u8; 26usize] = b"SDL_RENDER_OPENGL_SHADERS\0"; +pub const SDL_HINT_RENDER_DIRECT3D_THREADSAFE: &'static [u8; 31usize] = + b"SDL_RENDER_DIRECT3D_THREADSAFE\0"; +pub const SDL_HINT_RENDER_DIRECT3D11_DEBUG: &'static [u8; 28usize] = + b"SDL_RENDER_DIRECT3D11_DEBUG\0"; +pub const SDL_HINT_RENDER_LOGICAL_SIZE_MODE: &'static [u8; 29usize] = + b"SDL_RENDER_LOGICAL_SIZE_MODE\0"; +pub const SDL_HINT_RENDER_SCALE_QUALITY: &'static [u8; 25usize] = b"SDL_RENDER_SCALE_QUALITY\0"; +pub const SDL_HINT_RENDER_VSYNC: &'static [u8; 17usize] = b"SDL_RENDER_VSYNC\0"; +pub const SDL_HINT_VIDEO_ALLOW_SCREENSAVER: &'static [u8; 28usize] = + b"SDL_VIDEO_ALLOW_SCREENSAVER\0"; +pub const SDL_HINT_VIDEO_EXTERNAL_CONTEXT: &'static [u8; 27usize] = b"SDL_VIDEO_EXTERNAL_CONTEXT\0"; +pub const SDL_HINT_VIDEO_X11_XVIDMODE: &'static [u8; 23usize] = b"SDL_VIDEO_X11_XVIDMODE\0"; +pub const SDL_HINT_VIDEO_X11_XINERAMA: &'static [u8; 23usize] = b"SDL_VIDEO_X11_XINERAMA\0"; +pub const SDL_HINT_VIDEO_X11_XRANDR: &'static [u8; 21usize] = b"SDL_VIDEO_X11_XRANDR\0"; +pub const SDL_HINT_VIDEO_X11_WINDOW_VISUALID: &'static [u8; 30usize] = + b"SDL_VIDEO_X11_WINDOW_VISUALID\0"; +pub const SDL_HINT_VIDEO_X11_NET_WM_PING: &'static [u8; 26usize] = b"SDL_VIDEO_X11_NET_WM_PING\0"; +pub const SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR: &'static [u8; 39usize] = + b"SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR\0"; +pub const SDL_HINT_VIDEO_X11_FORCE_EGL: &'static [u8; 24usize] = b"SDL_VIDEO_X11_FORCE_EGL\0"; +pub const SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN: &'static [u8; 44usize] = + b"SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN\0"; +pub const SDL_HINT_WINDOWS_INTRESOURCE_ICON: &'static [u8; 29usize] = + b"SDL_WINDOWS_INTRESOURCE_ICON\0"; +pub const SDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALL: &'static [u8; 35usize] = + b"SDL_WINDOWS_INTRESOURCE_ICON_SMALL\0"; +pub const SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP: &'static [u8; 31usize] = + b"SDL_WINDOWS_ENABLE_MESSAGELOOP\0"; +pub const SDL_HINT_GRAB_KEYBOARD: &'static [u8; 18usize] = b"SDL_GRAB_KEYBOARD\0"; +pub const SDL_HINT_MOUSE_DOUBLE_CLICK_TIME: &'static [u8; 28usize] = + b"SDL_MOUSE_DOUBLE_CLICK_TIME\0"; +pub const SDL_HINT_MOUSE_DOUBLE_CLICK_RADIUS: &'static [u8; 30usize] = + b"SDL_MOUSE_DOUBLE_CLICK_RADIUS\0"; +pub const SDL_HINT_MOUSE_NORMAL_SPEED_SCALE: &'static [u8; 29usize] = + b"SDL_MOUSE_NORMAL_SPEED_SCALE\0"; +pub const SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE: &'static [u8; 31usize] = + b"SDL_MOUSE_RELATIVE_SPEED_SCALE\0"; +pub const SDL_HINT_MOUSE_RELATIVE_SCALING: &'static [u8; 27usize] = b"SDL_MOUSE_RELATIVE_SCALING\0"; +pub const SDL_HINT_MOUSE_RELATIVE_MODE_WARP: &'static [u8; 29usize] = + b"SDL_MOUSE_RELATIVE_MODE_WARP\0"; +pub const SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH: &'static [u8; 29usize] = + b"SDL_MOUSE_FOCUS_CLICKTHROUGH\0"; +pub const SDL_HINT_TOUCH_MOUSE_EVENTS: &'static [u8; 23usize] = b"SDL_TOUCH_MOUSE_EVENTS\0"; +pub const SDL_HINT_MOUSE_TOUCH_EVENTS: &'static [u8; 23usize] = b"SDL_MOUSE_TOUCH_EVENTS\0"; +pub const SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS: &'static [u8; 33usize] = + b"SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS\0"; +pub const SDL_HINT_IDLE_TIMER_DISABLED: &'static [u8; 28usize] = b"SDL_IOS_IDLE_TIMER_DISABLED\0"; +pub const SDL_HINT_ORIENTATIONS: &'static [u8; 21usize] = b"SDL_IOS_ORIENTATIONS\0"; +pub const SDL_HINT_APPLE_TV_CONTROLLER_UI_EVENTS: &'static [u8; 34usize] = + b"SDL_APPLE_TV_CONTROLLER_UI_EVENTS\0"; +pub const SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION: &'static [u8; 35usize] = + b"SDL_APPLE_TV_REMOTE_ALLOW_ROTATION\0"; +pub const SDL_HINT_IOS_HIDE_HOME_INDICATOR: &'static [u8; 28usize] = + b"SDL_IOS_HIDE_HOME_INDICATOR\0"; +pub const SDL_HINT_ACCELEROMETER_AS_JOYSTICK: &'static [u8; 30usize] = + b"SDL_ACCELEROMETER_AS_JOYSTICK\0"; +pub const SDL_HINT_TV_REMOTE_AS_JOYSTICK: &'static [u8; 26usize] = b"SDL_TV_REMOTE_AS_JOYSTICK\0"; +pub const SDL_HINT_XINPUT_ENABLED: &'static [u8; 19usize] = b"SDL_XINPUT_ENABLED\0"; +pub const SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING: &'static [u8; 36usize] = + b"SDL_XINPUT_USE_OLD_JOYSTICK_MAPPING\0"; +pub const SDL_HINT_GAMECONTROLLERTYPE: &'static [u8; 23usize] = b"SDL_GAMECONTROLLERTYPE\0"; +pub const SDL_HINT_GAMECONTROLLERCONFIG: &'static [u8; 25usize] = b"SDL_GAMECONTROLLERCONFIG\0"; +pub const SDL_HINT_GAMECONTROLLERCONFIG_FILE: &'static [u8; 30usize] = + b"SDL_GAMECONTROLLERCONFIG_FILE\0"; +pub const SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES: &'static [u8; 34usize] = + b"SDL_GAMECONTROLLER_IGNORE_DEVICES\0"; +pub const SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT: &'static [u8; 41usize] = + b"SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT\0"; +pub const SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS: &'static [u8; 37usize] = + b"SDL_GAMECONTROLLER_USE_BUTTON_LABELS\0"; +pub const SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS: &'static [u8; 37usize] = + b"SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS\0"; +pub const SDL_HINT_JOYSTICK_HIDAPI: &'static [u8; 20usize] = b"SDL_JOYSTICK_HIDAPI\0"; +pub const SDL_HINT_JOYSTICK_HIDAPI_PS4: &'static [u8; 24usize] = b"SDL_JOYSTICK_HIDAPI_PS4\0"; +pub const SDL_HINT_JOYSTICK_HIDAPI_PS5: &'static [u8; 24usize] = b"SDL_JOYSTICK_HIDAPI_PS5\0"; +pub const SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE: &'static [u8; 31usize] = + b"SDL_JOYSTICK_HIDAPI_PS4_RUMBLE\0"; +pub const SDL_HINT_JOYSTICK_HIDAPI_STEAM: &'static [u8; 26usize] = b"SDL_JOYSTICK_HIDAPI_STEAM\0"; +pub const SDL_HINT_JOYSTICK_HIDAPI_SWITCH: &'static [u8; 27usize] = b"SDL_JOYSTICK_HIDAPI_SWITCH\0"; +pub const SDL_HINT_JOYSTICK_HIDAPI_XBOX: &'static [u8; 25usize] = b"SDL_JOYSTICK_HIDAPI_XBOX\0"; +pub const SDL_HINT_JOYSTICK_HIDAPI_CORRELATE_XINPUT: &'static [u8; 37usize] = + b"SDL_JOYSTICK_HIDAPI_CORRELATE_XINPUT\0"; +pub const SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE: &'static [u8; 29usize] = + b"SDL_JOYSTICK_HIDAPI_GAMECUBE\0"; +pub const SDL_HINT_ENABLE_STEAM_CONTROLLERS: &'static [u8; 29usize] = + b"SDL_ENABLE_STEAM_CONTROLLERS\0"; +pub const SDL_HINT_JOYSTICK_RAWINPUT: &'static [u8; 22usize] = b"SDL_JOYSTICK_RAWINPUT\0"; +pub const SDL_HINT_JOYSTICK_THREAD: &'static [u8; 20usize] = b"SDL_JOYSTICK_THREAD\0"; +pub const SDL_HINT_LINUX_JOYSTICK_DEADZONES: &'static [u8; 29usize] = + b"SDL_LINUX_JOYSTICK_DEADZONES\0"; +pub const SDL_HINT_ALLOW_TOPMOST: &'static [u8; 18usize] = b"SDL_ALLOW_TOPMOST\0"; +pub const SDL_HINT_TIMER_RESOLUTION: &'static [u8; 21usize] = b"SDL_TIMER_RESOLUTION\0"; +pub const SDL_HINT_QTWAYLAND_CONTENT_ORIENTATION: &'static [u8; 34usize] = + b"SDL_QTWAYLAND_CONTENT_ORIENTATION\0"; +pub const SDL_HINT_QTWAYLAND_WINDOW_FLAGS: &'static [u8; 27usize] = b"SDL_QTWAYLAND_WINDOW_FLAGS\0"; +pub const SDL_HINT_THREAD_STACK_SIZE: &'static [u8; 22usize] = b"SDL_THREAD_STACK_SIZE\0"; +pub const SDL_HINT_THREAD_PRIORITY_POLICY: &'static [u8; 27usize] = b"SDL_THREAD_PRIORITY_POLICY\0"; +pub const SDL_HINT_THREAD_FORCE_REALTIME_TIME_CRITICAL: &'static [u8; 40usize] = + b"SDL_THREAD_FORCE_REALTIME_TIME_CRITICAL\0"; +pub const SDL_HINT_VIDEO_HIGHDPI_DISABLED: &'static [u8; 27usize] = b"SDL_VIDEO_HIGHDPI_DISABLED\0"; +pub const SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK: &'static [u8; 39usize] = + b"SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK\0"; +pub const SDL_HINT_VIDEO_WIN_D3DCOMPILER: &'static [u8; 26usize] = b"SDL_VIDEO_WIN_D3DCOMPILER\0"; +pub const SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT: &'static [u8; 36usize] = + b"SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT\0"; +pub const SDL_HINT_WINRT_PRIVACY_POLICY_URL: &'static [u8; 29usize] = + b"SDL_WINRT_PRIVACY_POLICY_URL\0"; +pub const SDL_HINT_WINRT_PRIVACY_POLICY_LABEL: &'static [u8; 31usize] = + b"SDL_WINRT_PRIVACY_POLICY_LABEL\0"; +pub const SDL_HINT_WINRT_HANDLE_BACK_BUTTON: &'static [u8; 29usize] = + b"SDL_WINRT_HANDLE_BACK_BUTTON\0"; +pub const SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES: &'static [u8; 32usize] = + b"SDL_VIDEO_MAC_FULLSCREEN_SPACES\0"; +pub const SDL_HINT_MAC_BACKGROUND_APP: &'static [u8; 23usize] = b"SDL_MAC_BACKGROUND_APP\0"; +pub const SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION: &'static [u8; 44usize] = + b"SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION\0"; +pub const SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION: &'static [u8; 45usize] = + b"SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION\0"; +pub const SDL_HINT_IME_INTERNAL_EDITING: &'static [u8; 25usize] = b"SDL_IME_INTERNAL_EDITING\0"; +pub const SDL_HINT_ANDROID_TRAP_BACK_BUTTON: &'static [u8; 29usize] = + b"SDL_ANDROID_TRAP_BACK_BUTTON\0"; +pub const SDL_HINT_ANDROID_BLOCK_ON_PAUSE: &'static [u8; 27usize] = b"SDL_ANDROID_BLOCK_ON_PAUSE\0"; +pub const SDL_HINT_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO: &'static [u8; 38usize] = + b"SDL_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO\0"; +pub const SDL_HINT_RETURN_KEY_HIDES_IME: &'static [u8; 25usize] = b"SDL_RETURN_KEY_HIDES_IME\0"; +pub const SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT: &'static [u8; 32usize] = + b"SDL_EMSCRIPTEN_KEYBOARD_ELEMENT\0"; +pub const SDL_HINT_EMSCRIPTEN_ASYNCIFY: &'static [u8; 24usize] = b"SDL_EMSCRIPTEN_ASYNCIFY\0"; +pub const SDL_HINT_NO_SIGNAL_HANDLERS: &'static [u8; 23usize] = b"SDL_NO_SIGNAL_HANDLERS\0"; +pub const SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4: &'static [u8; 31usize] = + b"SDL_WINDOWS_NO_CLOSE_ON_ALT_F4\0"; +pub const SDL_HINT_BMP_SAVE_LEGACY_FORMAT: &'static [u8; 27usize] = b"SDL_BMP_SAVE_LEGACY_FORMAT\0"; +pub const SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING: &'static [u8; 34usize] = + b"SDL_WINDOWS_DISABLE_THREAD_NAMING\0"; +pub const SDL_HINT_RPI_VIDEO_LAYER: &'static [u8; 20usize] = b"SDL_RPI_VIDEO_LAYER\0"; +pub const SDL_HINT_VIDEO_DOUBLE_BUFFER: &'static [u8; 24usize] = b"SDL_VIDEO_DOUBLE_BUFFER\0"; +pub const SDL_HINT_OPENGL_ES_DRIVER: &'static [u8; 21usize] = b"SDL_OPENGL_ES_DRIVER\0"; +pub const SDL_HINT_AUDIO_RESAMPLING_MODE: &'static [u8; 26usize] = b"SDL_AUDIO_RESAMPLING_MODE\0"; +pub const SDL_HINT_AUDIO_CATEGORY: &'static [u8; 19usize] = b"SDL_AUDIO_CATEGORY\0"; +pub const SDL_HINT_RENDER_BATCHING: &'static [u8; 20usize] = b"SDL_RENDER_BATCHING\0"; +pub const SDL_HINT_AUTO_UPDATE_JOYSTICKS: &'static [u8; 26usize] = b"SDL_AUTO_UPDATE_JOYSTICKS\0"; +pub const SDL_HINT_AUTO_UPDATE_SENSORS: &'static [u8; 24usize] = b"SDL_AUTO_UPDATE_SENSORS\0"; +pub const SDL_HINT_EVENT_LOGGING: &'static [u8; 18usize] = b"SDL_EVENT_LOGGING\0"; +pub const SDL_HINT_WAVE_RIFF_CHUNK_SIZE: &'static [u8; 25usize] = b"SDL_WAVE_RIFF_CHUNK_SIZE\0"; +pub const SDL_HINT_WAVE_TRUNCATION: &'static [u8; 20usize] = b"SDL_WAVE_TRUNCATION\0"; +pub const SDL_HINT_WAVE_FACT_CHUNK: &'static [u8; 20usize] = b"SDL_WAVE_FACT_CHUNK\0"; +pub const SDL_HINT_DISPLAY_USABLE_BOUNDS: &'static [u8; 26usize] = b"SDL_DISPLAY_USABLE_BOUNDS\0"; +pub const SDL_HINT_AUDIO_DEVICE_APP_NAME: &'static [u8; 26usize] = b"SDL_AUDIO_DEVICE_APP_NAME\0"; +pub const SDL_HINT_AUDIO_DEVICE_STREAM_NAME: &'static [u8; 29usize] = + b"SDL_AUDIO_DEVICE_STREAM_NAME\0"; +pub const SDL_HINT_PREFERRED_LOCALES: &'static [u8; 22usize] = b"SDL_PREFERRED_LOCALES\0"; +pub const SDL_MAX_LOG_MESSAGE: u32 = 4096; +pub const SDL_NONSHAPEABLE_WINDOW: i32 = -1; +pub const SDL_INVALID_SHAPE_ARGUMENT: i32 = -2; +pub const SDL_WINDOW_LACKS_SHAPE: i32 = -3; +pub const SDL_MAJOR_VERSION: u32 = 2; +pub const SDL_MINOR_VERSION: u32 = 0; +pub const SDL_PATCHLEVEL: u32 = 14; +pub const SDL_INIT_TIMER: u32 = 1; +pub const SDL_INIT_AUDIO: u32 = 16; +pub const SDL_INIT_VIDEO: u32 = 32; +pub const SDL_INIT_JOYSTICK: u32 = 512; +pub const SDL_INIT_HAPTIC: u32 = 4096; +pub const SDL_INIT_GAMECONTROLLER: u32 = 8192; +pub const SDL_INIT_EVENTS: u32 = 16384; +pub const SDL_INIT_SENSOR: u32 = 32768; +pub const SDL_INIT_NOPARACHUTE: u32 = 1048576; +pub const SDL_INIT_EVERYTHING: u32 = 62001; +pub const XlibSpecificationRelease: u32 = 6; +pub const X_PROTOCOL: u32 = 11; +pub const X_PROTOCOL_REVISION: u32 = 0; +pub const None: u32 = 0; +pub const ParentRelative: u32 = 1; +pub const CopyFromParent: u32 = 0; +pub const PointerWindow: u32 = 0; +pub const InputFocus: u32 = 1; +pub const PointerRoot: u32 = 1; +pub const AnyPropertyType: u32 = 0; +pub const AnyKey: u32 = 0; +pub const AnyButton: u32 = 0; +pub const AllTemporary: u32 = 0; +pub const CurrentTime: u32 = 0; +pub const NoSymbol: u32 = 0; +pub const NoEventMask: u32 = 0; +pub const KeyPressMask: u32 = 1; +pub const KeyReleaseMask: u32 = 2; +pub const ButtonPressMask: u32 = 4; +pub const ButtonReleaseMask: u32 = 8; +pub const EnterWindowMask: u32 = 16; +pub const LeaveWindowMask: u32 = 32; +pub const PointerMotionMask: u32 = 64; +pub const PointerMotionHintMask: u32 = 128; +pub const Button1MotionMask: u32 = 256; +pub const Button2MotionMask: u32 = 512; +pub const Button3MotionMask: u32 = 1024; +pub const Button4MotionMask: u32 = 2048; +pub const Button5MotionMask: u32 = 4096; +pub const ButtonMotionMask: u32 = 8192; +pub const KeymapStateMask: u32 = 16384; +pub const ExposureMask: u32 = 32768; +pub const VisibilityChangeMask: u32 = 65536; +pub const StructureNotifyMask: u32 = 131072; +pub const ResizeRedirectMask: u32 = 262144; +pub const SubstructureNotifyMask: u32 = 524288; +pub const SubstructureRedirectMask: u32 = 1048576; +pub const FocusChangeMask: u32 = 2097152; +pub const PropertyChangeMask: u32 = 4194304; +pub const ColormapChangeMask: u32 = 8388608; +pub const OwnerGrabButtonMask: u32 = 16777216; +pub const KeyPress: u32 = 2; +pub const KeyRelease: u32 = 3; +pub const ButtonPress: u32 = 4; +pub const ButtonRelease: u32 = 5; +pub const MotionNotify: u32 = 6; +pub const EnterNotify: u32 = 7; +pub const LeaveNotify: u32 = 8; +pub const FocusIn: u32 = 9; +pub const FocusOut: u32 = 10; +pub const KeymapNotify: u32 = 11; +pub const Expose: u32 = 12; +pub const GraphicsExpose: u32 = 13; +pub const NoExpose: u32 = 14; +pub const VisibilityNotify: u32 = 15; +pub const CreateNotify: u32 = 16; +pub const DestroyNotify: u32 = 17; +pub const UnmapNotify: u32 = 18; +pub const MapNotify: u32 = 19; +pub const MapRequest: u32 = 20; +pub const ReparentNotify: u32 = 21; +pub const ConfigureNotify: u32 = 22; +pub const ConfigureRequest: u32 = 23; +pub const GravityNotify: u32 = 24; +pub const ResizeRequest: u32 = 25; +pub const CirculateNotify: u32 = 26; +pub const CirculateRequest: u32 = 27; +pub const PropertyNotify: u32 = 28; +pub const SelectionClear: u32 = 29; +pub const SelectionRequest: u32 = 30; +pub const SelectionNotify: u32 = 31; +pub const ColormapNotify: u32 = 32; +pub const ClientMessage: u32 = 33; +pub const MappingNotify: u32 = 34; +pub const GenericEvent: u32 = 35; +pub const LASTEvent: u32 = 36; +pub const ShiftMask: u32 = 1; +pub const LockMask: u32 = 2; +pub const ControlMask: u32 = 4; +pub const Mod1Mask: u32 = 8; +pub const Mod2Mask: u32 = 16; +pub const Mod3Mask: u32 = 32; +pub const Mod4Mask: u32 = 64; +pub const Mod5Mask: u32 = 128; +pub const ShiftMapIndex: u32 = 0; +pub const LockMapIndex: u32 = 1; +pub const ControlMapIndex: u32 = 2; +pub const Mod1MapIndex: u32 = 3; +pub const Mod2MapIndex: u32 = 4; +pub const Mod3MapIndex: u32 = 5; +pub const Mod4MapIndex: u32 = 6; +pub const Mod5MapIndex: u32 = 7; +pub const Button1Mask: u32 = 256; +pub const Button2Mask: u32 = 512; +pub const Button3Mask: u32 = 1024; +pub const Button4Mask: u32 = 2048; +pub const Button5Mask: u32 = 4096; +pub const AnyModifier: u32 = 32768; +pub const Button1: u32 = 1; +pub const Button2: u32 = 2; +pub const Button3: u32 = 3; +pub const Button4: u32 = 4; +pub const Button5: u32 = 5; +pub const NotifyNormal: u32 = 0; +pub const NotifyGrab: u32 = 1; +pub const NotifyUngrab: u32 = 2; +pub const NotifyWhileGrabbed: u32 = 3; +pub const NotifyHint: u32 = 1; +pub const NotifyAncestor: u32 = 0; +pub const NotifyVirtual: u32 = 1; +pub const NotifyInferior: u32 = 2; +pub const NotifyNonlinear: u32 = 3; +pub const NotifyNonlinearVirtual: u32 = 4; +pub const NotifyPointer: u32 = 5; +pub const NotifyPointerRoot: u32 = 6; +pub const NotifyDetailNone: u32 = 7; +pub const VisibilityUnobscured: u32 = 0; +pub const VisibilityPartiallyObscured: u32 = 1; +pub const VisibilityFullyObscured: u32 = 2; +pub const PlaceOnTop: u32 = 0; +pub const PlaceOnBottom: u32 = 1; +pub const FamilyInternet: u32 = 0; +pub const FamilyDECnet: u32 = 1; +pub const FamilyChaos: u32 = 2; +pub const FamilyInternet6: u32 = 6; +pub const FamilyServerInterpreted: u32 = 5; +pub const PropertyNewValue: u32 = 0; +pub const PropertyDelete: u32 = 1; +pub const ColormapUninstalled: u32 = 0; +pub const ColormapInstalled: u32 = 1; +pub const GrabModeSync: u32 = 0; +pub const GrabModeAsync: u32 = 1; +pub const GrabSuccess: u32 = 0; +pub const AlreadyGrabbed: u32 = 1; +pub const GrabInvalidTime: u32 = 2; +pub const GrabNotViewable: u32 = 3; +pub const GrabFrozen: u32 = 4; +pub const AsyncPointer: u32 = 0; +pub const SyncPointer: u32 = 1; +pub const ReplayPointer: u32 = 2; +pub const AsyncKeyboard: u32 = 3; +pub const SyncKeyboard: u32 = 4; +pub const ReplayKeyboard: u32 = 5; +pub const AsyncBoth: u32 = 6; +pub const SyncBoth: u32 = 7; +pub const RevertToParent: u32 = 2; +pub const Success: u32 = 0; +pub const BadRequest: u32 = 1; +pub const BadValue: u32 = 2; +pub const BadWindow: u32 = 3; +pub const BadPixmap: u32 = 4; +pub const BadAtom: u32 = 5; +pub const BadCursor: u32 = 6; +pub const BadFont: u32 = 7; +pub const BadMatch: u32 = 8; +pub const BadDrawable: u32 = 9; +pub const BadAccess: u32 = 10; +pub const BadAlloc: u32 = 11; +pub const BadColor: u32 = 12; +pub const BadGC: u32 = 13; +pub const BadIDChoice: u32 = 14; +pub const BadName: u32 = 15; +pub const BadLength: u32 = 16; +pub const BadImplementation: u32 = 17; +pub const FirstExtensionError: u32 = 128; +pub const LastExtensionError: u32 = 255; +pub const InputOutput: u32 = 1; +pub const InputOnly: u32 = 2; +pub const CWBackPixmap: u32 = 1; +pub const CWBackPixel: u32 = 2; +pub const CWBorderPixmap: u32 = 4; +pub const CWBorderPixel: u32 = 8; +pub const CWBitGravity: u32 = 16; +pub const CWWinGravity: u32 = 32; +pub const CWBackingStore: u32 = 64; +pub const CWBackingPlanes: u32 = 128; +pub const CWBackingPixel: u32 = 256; +pub const CWOverrideRedirect: u32 = 512; +pub const CWSaveUnder: u32 = 1024; +pub const CWEventMask: u32 = 2048; +pub const CWDontPropagate: u32 = 4096; +pub const CWColormap: u32 = 8192; +pub const CWCursor: u32 = 16384; +pub const CWX: u32 = 1; +pub const CWY: u32 = 2; +pub const CWWidth: u32 = 4; +pub const CWHeight: u32 = 8; +pub const CWBorderWidth: u32 = 16; +pub const CWSibling: u32 = 32; +pub const CWStackMode: u32 = 64; +pub const ForgetGravity: u32 = 0; +pub const NorthWestGravity: u32 = 1; +pub const NorthGravity: u32 = 2; +pub const NorthEastGravity: u32 = 3; +pub const WestGravity: u32 = 4; +pub const CenterGravity: u32 = 5; +pub const EastGravity: u32 = 6; +pub const SouthWestGravity: u32 = 7; +pub const SouthGravity: u32 = 8; +pub const SouthEastGravity: u32 = 9; +pub const StaticGravity: u32 = 10; +pub const UnmapGravity: u32 = 0; +pub const NotUseful: u32 = 0; +pub const WhenMapped: u32 = 1; +pub const Always: u32 = 2; +pub const IsUnmapped: u32 = 0; +pub const IsUnviewable: u32 = 1; +pub const IsViewable: u32 = 2; +pub const SetModeInsert: u32 = 0; +pub const SetModeDelete: u32 = 1; +pub const DestroyAll: u32 = 0; +pub const RetainPermanent: u32 = 1; +pub const RetainTemporary: u32 = 2; +pub const Above: u32 = 0; +pub const Below: u32 = 1; +pub const TopIf: u32 = 2; +pub const BottomIf: u32 = 3; +pub const Opposite: u32 = 4; +pub const RaiseLowest: u32 = 0; +pub const LowerHighest: u32 = 1; +pub const PropModeReplace: u32 = 0; +pub const PropModePrepend: u32 = 1; +pub const PropModeAppend: u32 = 2; +pub const GXclear: u32 = 0; +pub const GXand: u32 = 1; +pub const GXandReverse: u32 = 2; +pub const GXcopy: u32 = 3; +pub const GXandInverted: u32 = 4; +pub const GXnoop: u32 = 5; +pub const GXxor: u32 = 6; +pub const GXor: u32 = 7; +pub const GXnor: u32 = 8; +pub const GXequiv: u32 = 9; +pub const GXinvert: u32 = 10; +pub const GXorReverse: u32 = 11; +pub const GXcopyInverted: u32 = 12; +pub const GXorInverted: u32 = 13; +pub const GXnand: u32 = 14; +pub const GXset: u32 = 15; +pub const LineSolid: u32 = 0; +pub const LineOnOffDash: u32 = 1; +pub const LineDoubleDash: u32 = 2; +pub const CapNotLast: u32 = 0; +pub const CapButt: u32 = 1; +pub const CapRound: u32 = 2; +pub const CapProjecting: u32 = 3; +pub const JoinMiter: u32 = 0; +pub const JoinRound: u32 = 1; +pub const JoinBevel: u32 = 2; +pub const FillSolid: u32 = 0; +pub const FillTiled: u32 = 1; +pub const FillStippled: u32 = 2; +pub const FillOpaqueStippled: u32 = 3; +pub const EvenOddRule: u32 = 0; +pub const WindingRule: u32 = 1; +pub const ClipByChildren: u32 = 0; +pub const IncludeInferiors: u32 = 1; +pub const Unsorted: u32 = 0; +pub const YSorted: u32 = 1; +pub const YXSorted: u32 = 2; +pub const YXBanded: u32 = 3; +pub const CoordModeOrigin: u32 = 0; +pub const CoordModePrevious: u32 = 1; +pub const Complex: u32 = 0; +pub const Nonconvex: u32 = 1; +pub const Convex: u32 = 2; +pub const ArcChord: u32 = 0; +pub const ArcPieSlice: u32 = 1; +pub const GCFunction: u32 = 1; +pub const GCPlaneMask: u32 = 2; +pub const GCForeground: u32 = 4; +pub const GCBackground: u32 = 8; +pub const GCLineWidth: u32 = 16; +pub const GCLineStyle: u32 = 32; +pub const GCCapStyle: u32 = 64; +pub const GCJoinStyle: u32 = 128; +pub const GCFillStyle: u32 = 256; +pub const GCFillRule: u32 = 512; +pub const GCTile: u32 = 1024; +pub const GCStipple: u32 = 2048; +pub const GCTileStipXOrigin: u32 = 4096; +pub const GCTileStipYOrigin: u32 = 8192; +pub const GCFont: u32 = 16384; +pub const GCSubwindowMode: u32 = 32768; +pub const GCGraphicsExposures: u32 = 65536; +pub const GCClipXOrigin: u32 = 131072; +pub const GCClipYOrigin: u32 = 262144; +pub const GCClipMask: u32 = 524288; +pub const GCDashOffset: u32 = 1048576; +pub const GCDashList: u32 = 2097152; +pub const GCArcMode: u32 = 4194304; +pub const GCLastBit: u32 = 22; +pub const FontLeftToRight: u32 = 0; +pub const FontRightToLeft: u32 = 1; +pub const FontChange: u32 = 255; +pub const XYBitmap: u32 = 0; +pub const XYPixmap: u32 = 1; +pub const ZPixmap: u32 = 2; +pub const AllocNone: u32 = 0; +pub const AllocAll: u32 = 1; +pub const DoRed: u32 = 1; +pub const DoGreen: u32 = 2; +pub const DoBlue: u32 = 4; +pub const CursorShape: u32 = 0; +pub const TileShape: u32 = 1; +pub const StippleShape: u32 = 2; +pub const AutoRepeatModeOff: u32 = 0; +pub const AutoRepeatModeOn: u32 = 1; +pub const AutoRepeatModeDefault: u32 = 2; +pub const LedModeOff: u32 = 0; +pub const LedModeOn: u32 = 1; +pub const KBKeyClickPercent: u32 = 1; +pub const KBBellPercent: u32 = 2; +pub const KBBellPitch: u32 = 4; +pub const KBBellDuration: u32 = 8; +pub const KBLed: u32 = 16; +pub const KBLedMode: u32 = 32; +pub const KBKey: u32 = 64; +pub const KBAutoRepeatMode: u32 = 128; +pub const MappingSuccess: u32 = 0; +pub const MappingBusy: u32 = 1; +pub const MappingFailed: u32 = 2; +pub const MappingModifier: u32 = 0; +pub const MappingKeyboard: u32 = 1; +pub const MappingPointer: u32 = 2; +pub const DontPreferBlanking: u32 = 0; +pub const PreferBlanking: u32 = 1; +pub const DefaultBlanking: u32 = 2; +pub const DisableScreenSaver: u32 = 0; +pub const DisableScreenInterval: u32 = 0; +pub const DontAllowExposures: u32 = 0; +pub const AllowExposures: u32 = 1; +pub const DefaultExposures: u32 = 2; +pub const ScreenSaverReset: u32 = 0; +pub const ScreenSaverActive: u32 = 1; +pub const HostInsert: u32 = 0; +pub const HostDelete: u32 = 1; +pub const EnableAccess: u32 = 1; +pub const DisableAccess: u32 = 0; +pub const StaticGray: u32 = 0; +pub const GrayScale: u32 = 1; +pub const StaticColor: u32 = 2; +pub const PseudoColor: u32 = 3; +pub const TrueColor: u32 = 4; +pub const DirectColor: u32 = 5; +pub const LSBFirst: u32 = 0; +pub const MSBFirst: u32 = 1; +pub const NeedFunctionPrototypes: u32 = 1; +pub const NeedVarargsPrototypes: u32 = 1; +pub const NeedNestedPrototypes: u32 = 1; +pub const FUNCPROTO: u32 = 15; +pub const NeedWidePrototypes: u32 = 0; +pub const X_HAVE_UTF8_STRING: u32 = 1; +pub const True: u32 = 1; +pub const False: u32 = 0; +pub const QueuedAlready: u32 = 0; +pub const QueuedAfterReading: u32 = 1; +pub const QueuedAfterFlush: u32 = 2; +pub const XNRequiredCharSet: &'static [u8; 16usize] = b"requiredCharSet\0"; +pub const XNQueryOrientation: &'static [u8; 17usize] = b"queryOrientation\0"; +pub const XNBaseFontName: &'static [u8; 13usize] = b"baseFontName\0"; +pub const XNOMAutomatic: &'static [u8; 12usize] = b"omAutomatic\0"; +pub const XNMissingCharSet: &'static [u8; 15usize] = b"missingCharSet\0"; +pub const XNDefaultString: &'static [u8; 14usize] = b"defaultString\0"; +pub const XNOrientation: &'static [u8; 12usize] = b"orientation\0"; +pub const XNDirectionalDependentDrawing: &'static [u8; 28usize] = b"directionalDependentDrawing\0"; +pub const XNContextualDrawing: &'static [u8; 18usize] = b"contextualDrawing\0"; +pub const XNFontInfo: &'static [u8; 9usize] = b"fontInfo\0"; +pub const XIMPreeditArea: u32 = 1; +pub const XIMPreeditCallbacks: u32 = 2; +pub const XIMPreeditPosition: u32 = 4; +pub const XIMPreeditNothing: u32 = 8; +pub const XIMPreeditNone: u32 = 16; +pub const XIMStatusArea: u32 = 256; +pub const XIMStatusCallbacks: u32 = 512; +pub const XIMStatusNothing: u32 = 1024; +pub const XIMStatusNone: u32 = 2048; +pub const XNVaNestedList: &'static [u8; 15usize] = b"XNVaNestedList\0"; +pub const XNQueryInputStyle: &'static [u8; 16usize] = b"queryInputStyle\0"; +pub const XNClientWindow: &'static [u8; 13usize] = b"clientWindow\0"; +pub const XNInputStyle: &'static [u8; 11usize] = b"inputStyle\0"; +pub const XNFocusWindow: &'static [u8; 12usize] = b"focusWindow\0"; +pub const XNResourceName: &'static [u8; 13usize] = b"resourceName\0"; +pub const XNResourceClass: &'static [u8; 14usize] = b"resourceClass\0"; +pub const XNGeometryCallback: &'static [u8; 17usize] = b"geometryCallback\0"; +pub const XNDestroyCallback: &'static [u8; 16usize] = b"destroyCallback\0"; +pub const XNFilterEvents: &'static [u8; 13usize] = b"filterEvents\0"; +pub const XNPreeditStartCallback: &'static [u8; 21usize] = b"preeditStartCallback\0"; +pub const XNPreeditDoneCallback: &'static [u8; 20usize] = b"preeditDoneCallback\0"; +pub const XNPreeditDrawCallback: &'static [u8; 20usize] = b"preeditDrawCallback\0"; +pub const XNPreeditCaretCallback: &'static [u8; 21usize] = b"preeditCaretCallback\0"; +pub const XNPreeditStateNotifyCallback: &'static [u8; 27usize] = b"preeditStateNotifyCallback\0"; +pub const XNPreeditAttributes: &'static [u8; 18usize] = b"preeditAttributes\0"; +pub const XNStatusStartCallback: &'static [u8; 20usize] = b"statusStartCallback\0"; +pub const XNStatusDoneCallback: &'static [u8; 19usize] = b"statusDoneCallback\0"; +pub const XNStatusDrawCallback: &'static [u8; 19usize] = b"statusDrawCallback\0"; +pub const XNStatusAttributes: &'static [u8; 17usize] = b"statusAttributes\0"; +pub const XNArea: &'static [u8; 5usize] = b"area\0"; +pub const XNAreaNeeded: &'static [u8; 11usize] = b"areaNeeded\0"; +pub const XNSpotLocation: &'static [u8; 13usize] = b"spotLocation\0"; +pub const XNColormap: &'static [u8; 9usize] = b"colorMap\0"; +pub const XNStdColormap: &'static [u8; 12usize] = b"stdColorMap\0"; +pub const XNForeground: &'static [u8; 11usize] = b"foreground\0"; +pub const XNBackground: &'static [u8; 11usize] = b"background\0"; +pub const XNBackgroundPixmap: &'static [u8; 17usize] = b"backgroundPixmap\0"; +pub const XNFontSet: &'static [u8; 8usize] = b"fontSet\0"; +pub const XNLineSpace: &'static [u8; 10usize] = b"lineSpace\0"; +pub const XNCursor: &'static [u8; 7usize] = b"cursor\0"; +pub const XNQueryIMValuesList: &'static [u8; 18usize] = b"queryIMValuesList\0"; +pub const XNQueryICValuesList: &'static [u8; 18usize] = b"queryICValuesList\0"; +pub const XNVisiblePosition: &'static [u8; 16usize] = b"visiblePosition\0"; +pub const XNR6PreeditCallback: &'static [u8; 18usize] = b"r6PreeditCallback\0"; +pub const XNStringConversionCallback: &'static [u8; 25usize] = b"stringConversionCallback\0"; +pub const XNStringConversion: &'static [u8; 17usize] = b"stringConversion\0"; +pub const XNResetState: &'static [u8; 11usize] = b"resetState\0"; +pub const XNHotKey: &'static [u8; 7usize] = b"hotKey\0"; +pub const XNHotKeyState: &'static [u8; 12usize] = b"hotKeyState\0"; +pub const XNPreeditState: &'static [u8; 13usize] = b"preeditState\0"; +pub const XNSeparatorofNestedList: &'static [u8; 22usize] = b"separatorofNestedList\0"; +pub const XBufferOverflow: i32 = -1; +pub const XLookupNone: u32 = 1; +pub const XLookupChars: u32 = 2; +pub const XLookupKeySym: u32 = 3; +pub const XLookupBoth: u32 = 4; +pub const XIMReverse: u32 = 1; +pub const XIMUnderline: u32 = 2; +pub const XIMHighlight: u32 = 4; +pub const XIMPrimary: u32 = 32; +pub const XIMSecondary: u32 = 64; +pub const XIMTertiary: u32 = 128; +pub const XIMVisibleToForward: u32 = 256; +pub const XIMVisibleToBackword: u32 = 512; +pub const XIMVisibleToCenter: u32 = 1024; +pub const XIMPreeditUnKnown: u32 = 0; +pub const XIMPreeditEnable: u32 = 1; +pub const XIMPreeditDisable: u32 = 2; +pub const XIMInitialState: u32 = 1; +pub const XIMPreserveState: u32 = 2; +pub const XIMStringConversionLeftEdge: u32 = 1; +pub const XIMStringConversionRightEdge: u32 = 2; +pub const XIMStringConversionTopEdge: u32 = 4; +pub const XIMStringConversionBottomEdge: u32 = 8; +pub const XIMStringConversionConcealed: u32 = 16; +pub const XIMStringConversionWrapped: u32 = 32; +pub const XIMStringConversionBuffer: u32 = 1; +pub const XIMStringConversionLine: u32 = 2; +pub const XIMStringConversionWord: u32 = 3; +pub const XIMStringConversionChar: u32 = 4; +pub const XIMStringConversionSubstitution: u32 = 1; +pub const XIMStringConversionRetrieval: u32 = 2; +pub const XIMHotKeyStateON: u32 = 1; +pub const XIMHotKeyStateOFF: u32 = 2; +pub const XATOM_H: u32 = 1; +extern "C" { + #[doc = " \\brief Gets the name of the platform."] + pub fn SDL_GetPlatform() -> *const libc::c_char; +} +pub type size_t = libc::c_ulong; +pub type wchar_t = libc::c_int; +#[repr(C)] +#[repr(align(16))] +#[derive(Copy, Clone)] +pub struct max_align_t { + pub __clang_max_align_nonce1: libc::c_longlong, + pub __bindgen_padding_0: u64, + pub __clang_max_align_nonce2: u128, +} +#[test] +fn bindgen_test_layout_max_align_t() { + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(max_align_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 16usize, + concat!("Alignment of ", stringify!(max_align_t)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).__clang_max_align_nonce1 as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(max_align_t), + "::", + stringify!(__clang_max_align_nonce1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).__clang_max_align_nonce2 as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(max_align_t), + "::", + stringify!(__clang_max_align_nonce2) + ) + ); +} +pub type va_list = __builtin_va_list; +pub type __gnuc_va_list = __builtin_va_list; +pub type __u_char = libc::c_uchar; +pub type __u_short = libc::c_ushort; +pub type __u_int = libc::c_uint; +pub type __u_long = libc::c_ulong; +pub type __int8_t = libc::c_schar; +pub type __uint8_t = libc::c_uchar; +pub type __int16_t = libc::c_short; +pub type __uint16_t = libc::c_ushort; +pub type __int32_t = libc::c_int; +pub type __uint32_t = libc::c_uint; +pub type __int64_t = libc::c_long; +pub type __uint64_t = libc::c_ulong; +pub type __int_least8_t = __int8_t; +pub type __uint_least8_t = __uint8_t; +pub type __int_least16_t = __int16_t; +pub type __uint_least16_t = __uint16_t; +pub type __int_least32_t = __int32_t; +pub type __uint_least32_t = __uint32_t; +pub type __int_least64_t = __int64_t; +pub type __uint_least64_t = __uint64_t; +pub type __quad_t = libc::c_long; +pub type __u_quad_t = libc::c_ulong; +pub type __intmax_t = libc::c_long; +pub type __uintmax_t = libc::c_ulong; +pub type __dev_t = libc::c_ulong; +pub type __uid_t = libc::c_uint; +pub type __gid_t = libc::c_uint; +pub type __ino_t = libc::c_ulong; +pub type __ino64_t = libc::c_ulong; +pub type __mode_t = libc::c_uint; +pub type __nlink_t = libc::c_ulong; +pub type __off_t = libc::c_long; +pub type __off64_t = libc::c_long; +pub type __pid_t = libc::c_int; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __fsid_t { + pub __val: [libc::c_int; 2usize], +} +#[test] +fn bindgen_test_layout___fsid_t() { + assert_eq!( + ::core::mem::size_of::<__fsid_t>(), + 8usize, + concat!("Size of: ", stringify!(__fsid_t)) + ); + assert_eq!( + ::core::mem::align_of::<__fsid_t>(), + 4usize, + concat!("Alignment of ", stringify!(__fsid_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__fsid_t>())).__val as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__fsid_t), + "::", + stringify!(__val) + ) + ); +} +pub type __clock_t = libc::c_long; +pub type __rlim_t = libc::c_ulong; +pub type __rlim64_t = libc::c_ulong; +pub type __id_t = libc::c_uint; +pub type __time_t = libc::c_long; +pub type __useconds_t = libc::c_uint; +pub type __suseconds_t = libc::c_long; +pub type __suseconds64_t = libc::c_long; +pub type __daddr_t = libc::c_int; +pub type __key_t = libc::c_int; +pub type __clockid_t = libc::c_int; +pub type __timer_t = *mut libc::c_void; +pub type __blksize_t = libc::c_long; +pub type __blkcnt_t = libc::c_long; +pub type __blkcnt64_t = libc::c_long; +pub type __fsblkcnt_t = libc::c_ulong; +pub type __fsblkcnt64_t = libc::c_ulong; +pub type __fsfilcnt_t = libc::c_ulong; +pub type __fsfilcnt64_t = libc::c_ulong; +pub type __fsword_t = libc::c_long; +pub type __ssize_t = libc::c_long; +pub type __syscall_slong_t = libc::c_long; +pub type __syscall_ulong_t = libc::c_ulong; +pub type __loff_t = __off64_t; +pub type __caddr_t = *mut libc::c_char; +pub type __intptr_t = libc::c_long; +pub type __socklen_t = libc::c_uint; +pub type __sig_atomic_t = libc::c_int; +pub type int_least8_t = __int_least8_t; +pub type int_least16_t = __int_least16_t; +pub type int_least32_t = __int_least32_t; +pub type int_least64_t = __int_least64_t; +pub type uint_least8_t = __uint_least8_t; +pub type uint_least16_t = __uint_least16_t; +pub type uint_least32_t = __uint_least32_t; +pub type uint_least64_t = __uint_least64_t; +pub type int_fast8_t = libc::c_schar; +pub type int_fast16_t = libc::c_long; +pub type int_fast32_t = libc::c_long; +pub type int_fast64_t = libc::c_long; +pub type uint_fast8_t = libc::c_uchar; +pub type uint_fast16_t = libc::c_ulong; +pub type uint_fast32_t = libc::c_ulong; +pub type uint_fast64_t = libc::c_ulong; +pub type intmax_t = __intmax_t; +pub type uintmax_t = __uintmax_t; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_bool { + SDL_FALSE = 0, + SDL_TRUE = 1, +} +pub type Sint8 = i8; +pub type Uint8 = u8; +pub type Sint16 = i16; +pub type Uint16 = u16; +pub type Sint32 = i32; +pub type Uint32 = u32; +pub type Sint64 = i64; +pub type Uint64 = u64; +pub type SDL_compile_time_assert_uint8 = [libc::c_int; 1usize]; +pub type SDL_compile_time_assert_sint8 = [libc::c_int; 1usize]; +pub type SDL_compile_time_assert_uint16 = [libc::c_int; 1usize]; +pub type SDL_compile_time_assert_sint16 = [libc::c_int; 1usize]; +pub type SDL_compile_time_assert_uint32 = [libc::c_int; 1usize]; +pub type SDL_compile_time_assert_sint32 = [libc::c_int; 1usize]; +pub type SDL_compile_time_assert_uint64 = [libc::c_int; 1usize]; +pub type SDL_compile_time_assert_sint64 = [libc::c_int; 1usize]; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_DUMMY_ENUM { + DUMMY_ENUM_VALUE = 0, +} +pub type SDL_compile_time_assert_enum = [libc::c_int; 1usize]; +extern "C" { + pub fn SDL_malloc(size: size_t) -> *mut libc::c_void; +} +extern "C" { + pub fn SDL_calloc(nmemb: size_t, size: size_t) -> *mut libc::c_void; +} +extern "C" { + pub fn SDL_realloc(mem: *mut libc::c_void, size: size_t) -> *mut libc::c_void; +} +extern "C" { + pub fn SDL_free(mem: *mut libc::c_void); +} +pub type SDL_malloc_func = + ::core::option::Option *mut libc::c_void>; +pub type SDL_calloc_func = + ::core::option::Option *mut libc::c_void>; +pub type SDL_realloc_func = ::core::option::Option< + unsafe extern "C" fn(mem: *mut libc::c_void, size: size_t) -> *mut libc::c_void, +>; +pub type SDL_free_func = ::core::option::Option; +extern "C" { + #[doc = " \\brief Get the current set of SDL memory functions"] + pub fn SDL_GetMemoryFunctions( + malloc_func: *mut SDL_malloc_func, + calloc_func: *mut SDL_calloc_func, + realloc_func: *mut SDL_realloc_func, + free_func: *mut SDL_free_func, + ); +} +extern "C" { + #[doc = " \\brief Replace SDL's memory allocation functions with a custom set"] + #[doc = ""] + #[doc = " \\note If you are replacing SDL's memory functions, you should call"] + #[doc = " SDL_GetNumAllocations() and be very careful if it returns non-zero."] + #[doc = " That means that your free function will be called with memory"] + #[doc = " allocated by the previous memory allocation functions."] + pub fn SDL_SetMemoryFunctions( + malloc_func: SDL_malloc_func, + calloc_func: SDL_calloc_func, + realloc_func: SDL_realloc_func, + free_func: SDL_free_func, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the number of outstanding (unfreed) allocations"] + pub fn SDL_GetNumAllocations() -> libc::c_int; +} +extern "C" { + pub fn SDL_getenv(name: *const libc::c_char) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_setenv( + name: *const libc::c_char, + value: *const libc::c_char, + overwrite: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn SDL_qsort( + base: *mut libc::c_void, + nmemb: size_t, + size: size_t, + compare: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const libc::c_void, + arg2: *const libc::c_void, + ) -> libc::c_int, + >, + ); +} +extern "C" { + pub fn SDL_abs(x: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn SDL_isdigit(x: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn SDL_isspace(x: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn SDL_isupper(x: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn SDL_islower(x: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn SDL_toupper(x: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn SDL_tolower(x: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn SDL_crc32(crc: Uint32, data: *const libc::c_void, len: size_t) -> Uint32; +} +extern "C" { + pub fn SDL_memset(dst: *mut libc::c_void, c: libc::c_int, len: size_t) -> *mut libc::c_void; +} +extern "C" { + pub fn SDL_memcpy( + dst: *mut libc::c_void, + src: *const libc::c_void, + len: size_t, + ) -> *mut libc::c_void; +} +extern "C" { + pub fn SDL_memmove( + dst: *mut libc::c_void, + src: *const libc::c_void, + len: size_t, + ) -> *mut libc::c_void; +} +extern "C" { + pub fn SDL_memcmp(s1: *const libc::c_void, s2: *const libc::c_void, len: size_t) + -> libc::c_int; +} +extern "C" { + pub fn SDL_wcslen(wstr: *const wchar_t) -> size_t; +} +extern "C" { + pub fn SDL_wcslcpy(dst: *mut wchar_t, src: *const wchar_t, maxlen: size_t) -> size_t; +} +extern "C" { + pub fn SDL_wcslcat(dst: *mut wchar_t, src: *const wchar_t, maxlen: size_t) -> size_t; +} +extern "C" { + pub fn SDL_wcsdup(wstr: *const wchar_t) -> *mut wchar_t; +} +extern "C" { + pub fn SDL_wcsstr(haystack: *const wchar_t, needle: *const wchar_t) -> *mut wchar_t; +} +extern "C" { + pub fn SDL_wcscmp(str1: *const wchar_t, str2: *const wchar_t) -> libc::c_int; +} +extern "C" { + pub fn SDL_wcsncmp(str1: *const wchar_t, str2: *const wchar_t, maxlen: size_t) -> libc::c_int; +} +extern "C" { + pub fn SDL_wcscasecmp(str1: *const wchar_t, str2: *const wchar_t) -> libc::c_int; +} +extern "C" { + pub fn SDL_wcsncasecmp(str1: *const wchar_t, str2: *const wchar_t, len: size_t) -> libc::c_int; +} +extern "C" { + pub fn SDL_strlen(str: *const libc::c_char) -> size_t; +} +extern "C" { + pub fn SDL_strlcpy(dst: *mut libc::c_char, src: *const libc::c_char, maxlen: size_t) -> size_t; +} +extern "C" { + pub fn SDL_utf8strlcpy( + dst: *mut libc::c_char, + src: *const libc::c_char, + dst_bytes: size_t, + ) -> size_t; +} +extern "C" { + pub fn SDL_strlcat(dst: *mut libc::c_char, src: *const libc::c_char, maxlen: size_t) -> size_t; +} +extern "C" { + pub fn SDL_strdup(str: *const libc::c_char) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_strrev(str: *mut libc::c_char) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_strupr(str: *mut libc::c_char) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_strlwr(str: *mut libc::c_char) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_strchr(str: *const libc::c_char, c: libc::c_int) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_strrchr(str: *const libc::c_char, c: libc::c_int) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_strstr( + haystack: *const libc::c_char, + needle: *const libc::c_char, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_strtokr( + s1: *mut libc::c_char, + s2: *const libc::c_char, + saveptr: *mut *mut libc::c_char, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_utf8strlen(str: *const libc::c_char) -> size_t; +} +extern "C" { + pub fn SDL_itoa( + value: libc::c_int, + str: *mut libc::c_char, + radix: libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_uitoa( + value: libc::c_uint, + str: *mut libc::c_char, + radix: libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_ltoa( + value: libc::c_long, + str: *mut libc::c_char, + radix: libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_ultoa( + value: libc::c_ulong, + str: *mut libc::c_char, + radix: libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_lltoa( + value: Sint64, + str: *mut libc::c_char, + radix: libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_ulltoa( + value: Uint64, + str: *mut libc::c_char, + radix: libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_atoi(str: *const libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn SDL_atof(str: *const libc::c_char) -> f64; +} +extern "C" { + pub fn SDL_strtol( + str: *const libc::c_char, + endp: *mut *mut libc::c_char, + base: libc::c_int, + ) -> libc::c_long; +} +extern "C" { + pub fn SDL_strtoul( + str: *const libc::c_char, + endp: *mut *mut libc::c_char, + base: libc::c_int, + ) -> libc::c_ulong; +} +extern "C" { + pub fn SDL_strtoll( + str: *const libc::c_char, + endp: *mut *mut libc::c_char, + base: libc::c_int, + ) -> Sint64; +} +extern "C" { + pub fn SDL_strtoull( + str: *const libc::c_char, + endp: *mut *mut libc::c_char, + base: libc::c_int, + ) -> Uint64; +} +extern "C" { + pub fn SDL_strtod(str: *const libc::c_char, endp: *mut *mut libc::c_char) -> f64; +} +extern "C" { + pub fn SDL_strcmp(str1: *const libc::c_char, str2: *const libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn SDL_strncmp( + str1: *const libc::c_char, + str2: *const libc::c_char, + maxlen: size_t, + ) -> libc::c_int; +} +extern "C" { + pub fn SDL_strcasecmp(str1: *const libc::c_char, str2: *const libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn SDL_strncasecmp( + str1: *const libc::c_char, + str2: *const libc::c_char, + len: size_t, + ) -> libc::c_int; +} +extern "C" { + pub fn SDL_sscanf(text: *const libc::c_char, fmt: *const libc::c_char, ...) -> libc::c_int; +} +extern "C" { + pub fn SDL_vsscanf( + text: *const libc::c_char, + fmt: *const libc::c_char, + ap: *mut __va_list_tag, + ) -> libc::c_int; +} +extern "C" { + pub fn SDL_snprintf( + text: *mut libc::c_char, + maxlen: size_t, + fmt: *const libc::c_char, + ... + ) -> libc::c_int; +} +extern "C" { + pub fn SDL_vsnprintf( + text: *mut libc::c_char, + maxlen: size_t, + fmt: *const libc::c_char, + ap: *mut __va_list_tag, + ) -> libc::c_int; +} +extern "C" { + pub fn SDL_acos(x: f64) -> f64; +} +extern "C" { + pub fn SDL_acosf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_asin(x: f64) -> f64; +} +extern "C" { + pub fn SDL_asinf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_atan(x: f64) -> f64; +} +extern "C" { + pub fn SDL_atanf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_atan2(x: f64, y: f64) -> f64; +} +extern "C" { + pub fn SDL_atan2f(x: f32, y: f32) -> f32; +} +extern "C" { + pub fn SDL_ceil(x: f64) -> f64; +} +extern "C" { + pub fn SDL_ceilf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_copysign(x: f64, y: f64) -> f64; +} +extern "C" { + pub fn SDL_copysignf(x: f32, y: f32) -> f32; +} +extern "C" { + pub fn SDL_cos(x: f64) -> f64; +} +extern "C" { + pub fn SDL_cosf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_exp(x: f64) -> f64; +} +extern "C" { + pub fn SDL_expf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_fabs(x: f64) -> f64; +} +extern "C" { + pub fn SDL_fabsf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_floor(x: f64) -> f64; +} +extern "C" { + pub fn SDL_floorf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_trunc(x: f64) -> f64; +} +extern "C" { + pub fn SDL_truncf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_fmod(x: f64, y: f64) -> f64; +} +extern "C" { + pub fn SDL_fmodf(x: f32, y: f32) -> f32; +} +extern "C" { + pub fn SDL_log(x: f64) -> f64; +} +extern "C" { + pub fn SDL_logf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_log10(x: f64) -> f64; +} +extern "C" { + pub fn SDL_log10f(x: f32) -> f32; +} +extern "C" { + pub fn SDL_pow(x: f64, y: f64) -> f64; +} +extern "C" { + pub fn SDL_powf(x: f32, y: f32) -> f32; +} +extern "C" { + pub fn SDL_scalbn(x: f64, n: libc::c_int) -> f64; +} +extern "C" { + pub fn SDL_scalbnf(x: f32, n: libc::c_int) -> f32; +} +extern "C" { + pub fn SDL_sin(x: f64) -> f64; +} +extern "C" { + pub fn SDL_sinf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_sqrt(x: f64) -> f64; +} +extern "C" { + pub fn SDL_sqrtf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_tan(x: f64) -> f64; +} +extern "C" { + pub fn SDL_tanf(x: f32) -> f32; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _SDL_iconv_t { + _unused: [u8; 0], +} +pub type SDL_iconv_t = *mut _SDL_iconv_t; +extern "C" { + pub fn SDL_iconv_open( + tocode: *const libc::c_char, + fromcode: *const libc::c_char, + ) -> SDL_iconv_t; +} +extern "C" { + pub fn SDL_iconv_close(cd: SDL_iconv_t) -> libc::c_int; +} +extern "C" { + pub fn SDL_iconv( + cd: SDL_iconv_t, + inbuf: *mut *const libc::c_char, + inbytesleft: *mut size_t, + outbuf: *mut *mut libc::c_char, + outbytesleft: *mut size_t, + ) -> size_t; +} +extern "C" { + #[doc = " This function converts a string between encodings in one pass, returning a"] + #[doc = " string that must be freed with SDL_free() or NULL on error."] + pub fn SDL_iconv_string( + tocode: *const libc::c_char, + fromcode: *const libc::c_char, + inbuf: *const libc::c_char, + inbytesleft: size_t, + ) -> *mut libc::c_char; +} +#[doc = " The prototype for the application's main() function"] +pub type SDL_main_func = ::core::option::Option< + unsafe extern "C" fn(argc: libc::c_int, argv: *mut *mut libc::c_char) -> libc::c_int, +>; +extern "C" { + pub fn SDL_main(argc: libc::c_int, argv: *mut *mut libc::c_char) -> libc::c_int; +} +extern "C" { + #[doc = " This is called by the real SDL main function to let the rest of the"] + #[doc = " library know that initialization was done properly."] + #[doc = ""] + #[doc = " Calling this yourself without knowing what you're doing can cause"] + #[doc = " crashes and hard to diagnose problems with your application."] + pub fn SDL_SetMainReady(); +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_AssertState { + #[doc = "< Retry the assert immediately."] + SDL_ASSERTION_RETRY = 0, + #[doc = "< Make the debugger trigger a breakpoint."] + SDL_ASSERTION_BREAK = 1, + #[doc = "< Terminate the program."] + SDL_ASSERTION_ABORT = 2, + #[doc = "< Ignore the assert."] + SDL_ASSERTION_IGNORE = 3, + #[doc = "< Ignore the assert from now on."] + SDL_ASSERTION_ALWAYS_IGNORE = 4, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_AssertData { + pub always_ignore: libc::c_int, + pub trigger_count: libc::c_uint, + pub condition: *const libc::c_char, + pub filename: *const libc::c_char, + pub linenum: libc::c_int, + pub function: *const libc::c_char, + pub next: *const SDL_AssertData, +} +#[test] +fn bindgen_test_layout_SDL_AssertData() { + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(SDL_AssertData)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_AssertData)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).always_ignore as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_AssertData), + "::", + stringify!(always_ignore) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).trigger_count as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_AssertData), + "::", + stringify!(trigger_count) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).condition as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_AssertData), + "::", + stringify!(condition) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).filename as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_AssertData), + "::", + stringify!(filename) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).linenum as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_AssertData), + "::", + stringify!(linenum) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).function as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_AssertData), + "::", + stringify!(function) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).next as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(SDL_AssertData), + "::", + stringify!(next) + ) + ); +} +extern "C" { + pub fn SDL_ReportAssertion( + arg1: *mut SDL_AssertData, + arg2: *const libc::c_char, + arg3: *const libc::c_char, + arg4: libc::c_int, + ) -> SDL_AssertState; +} +pub type SDL_AssertionHandler = ::core::option::Option< + unsafe extern "C" fn( + data: *const SDL_AssertData, + userdata: *mut libc::c_void, + ) -> SDL_AssertState, +>; +extern "C" { + #[doc = " \\brief Set an application-defined assertion handler."] + #[doc = ""] + #[doc = " This allows an app to show its own assertion UI and/or force the"] + #[doc = " response to an assertion failure. If the app doesn't provide this, SDL"] + #[doc = " will try to do the right thing, popping up a system-specific GUI dialog,"] + #[doc = " and probably minimizing any fullscreen windows."] + #[doc = ""] + #[doc = " This callback may fire from any thread, but it runs wrapped in a mutex, so"] + #[doc = " it will only fire from one thread at a time."] + #[doc = ""] + #[doc = " Setting the callback to NULL restores SDL's original internal handler."] + #[doc = ""] + #[doc = " This callback is NOT reset to SDL's internal handler upon SDL_Quit()!"] + #[doc = ""] + #[doc = " Return SDL_AssertState value of how to handle the assertion failure."] + #[doc = ""] + #[doc = " \\param handler Callback function, called when an assertion fails."] + #[doc = " \\param userdata A pointer passed to the callback as-is."] + pub fn SDL_SetAssertionHandler(handler: SDL_AssertionHandler, userdata: *mut libc::c_void); +} +extern "C" { + #[doc = " \\brief Get the default assertion handler."] + #[doc = ""] + #[doc = " This returns the function pointer that is called by default when an"] + #[doc = " assertion is triggered. This is an internal function provided by SDL,"] + #[doc = " that is used for assertions when SDL_SetAssertionHandler() hasn't been"] + #[doc = " used to provide a different function."] + #[doc = ""] + #[doc = " \\return The default SDL_AssertionHandler that is called when an assert triggers."] + pub fn SDL_GetDefaultAssertionHandler() -> SDL_AssertionHandler; +} +extern "C" { + #[doc = " \\brief Get the current assertion handler."] + #[doc = ""] + #[doc = " This returns the function pointer that is called when an assertion is"] + #[doc = " triggered. This is either the value last passed to"] + #[doc = " SDL_SetAssertionHandler(), or if no application-specified function is"] + #[doc = " set, is equivalent to calling SDL_GetDefaultAssertionHandler()."] + #[doc = ""] + #[doc = " \\param puserdata Pointer to a void*, which will store the \"userdata\""] + #[doc = " pointer that was passed to SDL_SetAssertionHandler()."] + #[doc = " This value will always be NULL for the default handler."] + #[doc = " If you don't care about this data, it is safe to pass"] + #[doc = " a NULL pointer to this function to ignore it."] + #[doc = " \\return The SDL_AssertionHandler that is called when an assert triggers."] + pub fn SDL_GetAssertionHandler(puserdata: *mut *mut libc::c_void) -> SDL_AssertionHandler; +} +extern "C" { + #[doc = " \\brief Get a list of all assertion failures."] + #[doc = ""] + #[doc = " Get all assertions triggered since last call to SDL_ResetAssertionReport(),"] + #[doc = " or the start of the program."] + #[doc = ""] + #[doc = " The proper way to examine this data looks something like this:"] + #[doc = ""] + #[doc = " "] + #[doc = " const SDL_AssertData *item = SDL_GetAssertionReport();"] + #[doc = " while (item) {"] + #[doc = " printf(\"'%s', %s (%s:%d), triggered %u times, always ignore: %s.\\\\n\","] + #[doc = " item->condition, item->function, item->filename,"] + #[doc = " item->linenum, item->trigger_count,"] + #[doc = " item->always_ignore ? \"yes\" : \"no\");"] + #[doc = " item = item->next;"] + #[doc = " }"] + #[doc = " "] + #[doc = ""] + #[doc = " \\return List of all assertions."] + #[doc = " \\sa SDL_ResetAssertionReport"] + pub fn SDL_GetAssertionReport() -> *const SDL_AssertData; +} +extern "C" { + #[doc = " \\brief Reset the list of all assertion failures."] + #[doc = ""] + #[doc = " Reset list of all assertions triggered."] + #[doc = ""] + #[doc = " \\sa SDL_GetAssertionReport"] + pub fn SDL_ResetAssertionReport(); +} +pub type SDL_SpinLock = libc::c_int; +extern "C" { + #[doc = " \\brief Try to lock a spin lock by setting it to a non-zero value."] + #[doc = ""] + #[doc = " \\param lock Points to the lock."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the lock succeeded, SDL_FALSE if the lock is already held."] + pub fn SDL_AtomicTryLock(lock: *mut SDL_SpinLock) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Lock a spin lock by setting it to a non-zero value."] + #[doc = ""] + #[doc = " \\param lock Points to the lock."] + pub fn SDL_AtomicLock(lock: *mut SDL_SpinLock); +} +extern "C" { + #[doc = " \\brief Unlock a spin lock by setting it to 0. Always returns immediately"] + #[doc = ""] + #[doc = " \\param lock Points to the lock."] + pub fn SDL_AtomicUnlock(lock: *mut SDL_SpinLock); +} +extern "C" { + #[doc = " Memory barriers are designed to prevent reads and writes from being"] + #[doc = " reordered by the compiler and being seen out of order on multi-core CPUs."] + #[doc = ""] + #[doc = " A typical pattern would be for thread A to write some data and a flag,"] + #[doc = " and for thread B to read the flag and get the data. In this case you"] + #[doc = " would insert a release barrier between writing the data and the flag,"] + #[doc = " guaranteeing that the data write completes no later than the flag is"] + #[doc = " written, and you would insert an acquire barrier between reading the"] + #[doc = " flag and reading the data, to ensure that all the reads associated"] + #[doc = " with the flag have completed."] + #[doc = ""] + #[doc = " In this pattern you should always see a release barrier paired with"] + #[doc = " an acquire barrier and you should gate the data reads/writes with a"] + #[doc = " single flag variable."] + #[doc = ""] + #[doc = " For more information on these semantics, take a look at the blog post:"] + #[doc = " http://preshing.com/20120913/acquire-and-release-semantics"] + pub fn SDL_MemoryBarrierReleaseFunction(); +} +extern "C" { + pub fn SDL_MemoryBarrierAcquireFunction(); +} +#[doc = " \\brief A type representing an atomic integer value. It is a struct"] +#[doc = " so people don't accidentally use numeric operations on it."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_atomic_t { + pub value: libc::c_int, +} +#[test] +fn bindgen_test_layout_SDL_atomic_t() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(SDL_atomic_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_atomic_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).value as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_atomic_t), + "::", + stringify!(value) + ) + ); +} +extern "C" { + #[doc = " \\brief Set an atomic variable to a new value if it is currently an old value."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the atomic variable was set, SDL_FALSE otherwise."] + #[doc = ""] + #[doc = " \\note If you don't know what this function is for, you shouldn't use it!"] + pub fn SDL_AtomicCAS( + a: *mut SDL_atomic_t, + oldval: libc::c_int, + newval: libc::c_int, + ) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Set an atomic variable to a value."] + #[doc = ""] + #[doc = " \\return The previous value of the atomic variable."] + pub fn SDL_AtomicSet(a: *mut SDL_atomic_t, v: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the value of an atomic variable"] + pub fn SDL_AtomicGet(a: *mut SDL_atomic_t) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Add to an atomic variable."] + #[doc = ""] + #[doc = " \\return The previous value of the atomic variable."] + #[doc = ""] + #[doc = " \\note This same style can be used for any number operation"] + pub fn SDL_AtomicAdd(a: *mut SDL_atomic_t, v: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set a pointer to a new value if it is currently an old value."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the pointer was set, SDL_FALSE otherwise."] + #[doc = ""] + #[doc = " \\note If you don't know what this function is for, you shouldn't use it!"] + pub fn SDL_AtomicCASPtr( + a: *mut *mut libc::c_void, + oldval: *mut libc::c_void, + newval: *mut libc::c_void, + ) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Set a pointer to a value atomically."] + #[doc = ""] + #[doc = " \\return The previous value of the pointer."] + pub fn SDL_AtomicSetPtr(a: *mut *mut libc::c_void, v: *mut libc::c_void) -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Get the value of a pointer atomically."] + pub fn SDL_AtomicGetPtr(a: *mut *mut libc::c_void) -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Set the error message for the current thread"] + #[doc = ""] + #[doc = " \\return -1, there is no error handling for this function"] + pub fn SDL_SetError(fmt: *const libc::c_char, ...) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the last error message that was set"] + #[doc = ""] + #[doc = " SDL API functions may set error messages and then succeed, so you should"] + #[doc = " only use the error value if a function fails."] + #[doc = ""] + #[doc = " This returns a pointer to a static buffer for convenience and should not"] + #[doc = " be called by multiple threads simultaneously."] + #[doc = ""] + #[doc = " \\return a pointer to the last error message that was set"] + pub fn SDL_GetError() -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Get the last error message that was set for the current thread"] + #[doc = ""] + #[doc = " SDL API functions may set error messages and then succeed, so you should"] + #[doc = " only use the error value if a function fails."] + #[doc = ""] + #[doc = " \\param errstr A buffer to fill with the last error message that was set"] + #[doc = " for the current thread"] + #[doc = " \\param maxlen The size of the buffer pointed to by the errstr parameter"] + #[doc = ""] + #[doc = " \\return errstr"] + pub fn SDL_GetErrorMsg(errstr: *mut libc::c_char, maxlen: libc::c_int) -> *mut libc::c_char; +} +extern "C" { + #[doc = " \\brief Clear the error message for the current thread"] + pub fn SDL_ClearError(); +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_errorcode { + SDL_ENOMEM = 0, + SDL_EFREAD = 1, + SDL_EFWRITE = 2, + SDL_EFSEEK = 3, + SDL_UNSUPPORTED = 4, + SDL_LASTERROR = 5, +} +extern "C" { + pub fn SDL_Error(code: SDL_errorcode) -> libc::c_int; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_mutex { + _unused: [u8; 0], +} +extern "C" { + #[doc = " Create a mutex, initialized unlocked."] + pub fn SDL_CreateMutex() -> *mut SDL_mutex; +} +extern "C" { + pub fn SDL_LockMutex(mutex: *mut SDL_mutex) -> libc::c_int; +} +extern "C" { + #[doc = " Try to lock the mutex"] + #[doc = ""] + #[doc = " \\return 0, SDL_MUTEX_TIMEDOUT, or -1 on error"] + pub fn SDL_TryLockMutex(mutex: *mut SDL_mutex) -> libc::c_int; +} +extern "C" { + pub fn SDL_UnlockMutex(mutex: *mut SDL_mutex) -> libc::c_int; +} +extern "C" { + #[doc = " Destroy a mutex."] + pub fn SDL_DestroyMutex(mutex: *mut SDL_mutex); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_semaphore { + _unused: [u8; 0], +} +pub type SDL_sem = SDL_semaphore; +extern "C" { + #[doc = " Create a semaphore, initialized with value, returns NULL on failure."] + pub fn SDL_CreateSemaphore(initial_value: Uint32) -> *mut SDL_sem; +} +extern "C" { + #[doc = " Destroy a semaphore."] + pub fn SDL_DestroySemaphore(sem: *mut SDL_sem); +} +extern "C" { + #[doc = " This function suspends the calling thread until the semaphore pointed"] + #[doc = " to by \\c sem has a positive count. It then atomically decreases the"] + #[doc = " semaphore count."] + pub fn SDL_SemWait(sem: *mut SDL_sem) -> libc::c_int; +} +extern "C" { + #[doc = " Non-blocking variant of SDL_SemWait()."] + #[doc = ""] + #[doc = " \\return 0 if the wait succeeds, ::SDL_MUTEX_TIMEDOUT if the wait would"] + #[doc = " block, and -1 on error."] + pub fn SDL_SemTryWait(sem: *mut SDL_sem) -> libc::c_int; +} +extern "C" { + #[doc = " Variant of SDL_SemWait() with a timeout in milliseconds."] + #[doc = ""] + #[doc = " \\return 0 if the wait succeeds, ::SDL_MUTEX_TIMEDOUT if the wait does not"] + #[doc = " succeed in the allotted time, and -1 on error."] + #[doc = ""] + #[doc = " \\warning On some platforms this function is implemented by looping with a"] + #[doc = " delay of 1 ms, and so should be avoided if possible."] + pub fn SDL_SemWaitTimeout(sem: *mut SDL_sem, ms: Uint32) -> libc::c_int; +} +extern "C" { + #[doc = " Atomically increases the semaphore's count (not blocking)."] + #[doc = ""] + #[doc = " \\return 0, or -1 on error."] + pub fn SDL_SemPost(sem: *mut SDL_sem) -> libc::c_int; +} +extern "C" { + #[doc = " Returns the current count of the semaphore."] + pub fn SDL_SemValue(sem: *mut SDL_sem) -> Uint32; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_cond { + _unused: [u8; 0], +} +extern "C" { + #[doc = " Create a condition variable."] + #[doc = ""] + #[doc = " Typical use of condition variables:"] + #[doc = ""] + #[doc = " Thread A:"] + #[doc = " SDL_LockMutex(lock);"] + #[doc = " while ( ! condition ) {"] + #[doc = " SDL_CondWait(cond, lock);"] + #[doc = " }"] + #[doc = " SDL_UnlockMutex(lock);"] + #[doc = ""] + #[doc = " Thread B:"] + #[doc = " SDL_LockMutex(lock);"] + #[doc = " ..."] + #[doc = " condition = true;"] + #[doc = " ..."] + #[doc = " SDL_CondSignal(cond);"] + #[doc = " SDL_UnlockMutex(lock);"] + #[doc = ""] + #[doc = " There is some discussion whether to signal the condition variable"] + #[doc = " with the mutex locked or not. There is some potential performance"] + #[doc = " benefit to unlocking first on some platforms, but there are some"] + #[doc = " potential race conditions depending on how your code is structured."] + #[doc = ""] + #[doc = " In general it's safer to signal the condition variable while the"] + #[doc = " mutex is locked."] + pub fn SDL_CreateCond() -> *mut SDL_cond; +} +extern "C" { + #[doc = " Destroy a condition variable."] + pub fn SDL_DestroyCond(cond: *mut SDL_cond); +} +extern "C" { + #[doc = " Restart one of the threads that are waiting on the condition variable."] + #[doc = ""] + #[doc = " \\return 0 or -1 on error."] + pub fn SDL_CondSignal(cond: *mut SDL_cond) -> libc::c_int; +} +extern "C" { + #[doc = " Restart all threads that are waiting on the condition variable."] + #[doc = ""] + #[doc = " \\return 0 or -1 on error."] + pub fn SDL_CondBroadcast(cond: *mut SDL_cond) -> libc::c_int; +} +extern "C" { + #[doc = " Wait on the condition variable, unlocking the provided mutex."] + #[doc = ""] + #[doc = " \\warning The mutex must be locked before entering this function!"] + #[doc = ""] + #[doc = " The mutex is re-locked once the condition variable is signaled."] + #[doc = ""] + #[doc = " \\return 0 when it is signaled, or -1 on error."] + pub fn SDL_CondWait(cond: *mut SDL_cond, mutex: *mut SDL_mutex) -> libc::c_int; +} +extern "C" { + #[doc = " Waits for at most \\c ms milliseconds, and returns 0 if the condition"] + #[doc = " variable is signaled, ::SDL_MUTEX_TIMEDOUT if the condition is not"] + #[doc = " signaled in the allotted time, and -1 on error."] + #[doc = ""] + #[doc = " \\warning On some platforms this function is implemented by looping with a"] + #[doc = " delay of 1 ms, and so should be avoided if possible."] + pub fn SDL_CondWaitTimeout( + cond: *mut SDL_cond, + mutex: *mut SDL_mutex, + ms: Uint32, + ) -> libc::c_int; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Thread { + _unused: [u8; 0], +} +pub type SDL_threadID = libc::c_ulong; +pub type SDL_TLSID = libc::c_uint; +#[repr(u32)] +#[doc = " The SDL thread priority."] +#[doc = ""] +#[doc = " SDL will make system changes as necessary in order to apply the thread priority."] +#[doc = " Code which attempts to control thread state related to priority should be aware"] +#[doc = " that calling SDL_SetThreadPriority may alter such state."] +#[doc = " SDL_HINT_THREAD_PRIORITY_POLICY can be used to control aspects of this behavior."] +#[doc = ""] +#[doc = " \\note On many systems you require special privileges to set high or time critical priority."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_ThreadPriority { + SDL_THREAD_PRIORITY_LOW = 0, + SDL_THREAD_PRIORITY_NORMAL = 1, + SDL_THREAD_PRIORITY_HIGH = 2, + SDL_THREAD_PRIORITY_TIME_CRITICAL = 3, +} +#[doc = " The function passed to SDL_CreateThread()."] +#[doc = " It is passed a void* user context parameter and returns an int."] +pub type SDL_ThreadFunction = + ::core::option::Option libc::c_int>; +extern "C" { + #[doc = " Create a thread with a default stack size."] + #[doc = ""] + #[doc = " This is equivalent to calling:"] + #[doc = " SDL_CreateThreadWithStackSize(fn, name, 0, data);"] + pub fn SDL_CreateThread( + fn_: SDL_ThreadFunction, + name: *const libc::c_char, + data: *mut libc::c_void, + ) -> *mut SDL_Thread; +} +extern "C" { + #[doc = " Create a thread."] + #[doc = ""] + #[doc = " Thread naming is a little complicated: Most systems have very small"] + #[doc = " limits for the string length (Haiku has 32 bytes, Linux currently has 16,"] + #[doc = " Visual C++ 6.0 has nine!), and possibly other arbitrary rules. You'll"] + #[doc = " have to see what happens with your system's debugger. The name should be"] + #[doc = " UTF-8 (but using the naming limits of C identifiers is a better bet)."] + #[doc = " There are no requirements for thread naming conventions, so long as the"] + #[doc = " string is null-terminated UTF-8, but these guidelines are helpful in"] + #[doc = " choosing a name:"] + #[doc = ""] + #[doc = " http://stackoverflow.com/questions/149932/naming-conventions-for-threads"] + #[doc = ""] + #[doc = " If a system imposes requirements, SDL will try to munge the string for"] + #[doc = " it (truncate, etc), but the original string contents will be available"] + #[doc = " from SDL_GetThreadName()."] + #[doc = ""] + #[doc = " The size (in bytes) of the new stack can be specified. Zero means \"use"] + #[doc = " the system default\" which might be wildly different between platforms"] + #[doc = " (x86 Linux generally defaults to eight megabytes, an embedded device"] + #[doc = " might be a few kilobytes instead)."] + #[doc = ""] + #[doc = " In SDL 2.1, stacksize will be folded into the original SDL_CreateThread"] + #[doc = " function."] + pub fn SDL_CreateThreadWithStackSize( + fn_: SDL_ThreadFunction, + name: *const libc::c_char, + stacksize: size_t, + data: *mut libc::c_void, + ) -> *mut SDL_Thread; +} +extern "C" { + #[doc = " Get the thread name, as it was specified in SDL_CreateThread()."] + #[doc = " This function returns a pointer to a UTF-8 string that names the"] + #[doc = " specified thread, or NULL if it doesn't have a name. This is internal"] + #[doc = " memory, not to be free()'d by the caller, and remains valid until the"] + #[doc = " specified thread is cleaned up by SDL_WaitThread()."] + pub fn SDL_GetThreadName(thread: *mut SDL_Thread) -> *const libc::c_char; +} +extern "C" { + #[doc = " Get the thread identifier for the current thread."] + pub fn SDL_ThreadID() -> SDL_threadID; +} +extern "C" { + #[doc = " Get the thread identifier for the specified thread."] + #[doc = ""] + #[doc = " Equivalent to SDL_ThreadID() if the specified thread is NULL."] + pub fn SDL_GetThreadID(thread: *mut SDL_Thread) -> SDL_threadID; +} +extern "C" { + #[doc = " Set the priority for the current thread"] + pub fn SDL_SetThreadPriority(priority: SDL_ThreadPriority) -> libc::c_int; +} +extern "C" { + #[doc = " Wait for a thread to finish. Threads that haven't been detached will"] + #[doc = " remain (as a \"zombie\") until this function cleans them up. Not doing so"] + #[doc = " is a resource leak."] + #[doc = ""] + #[doc = " Once a thread has been cleaned up through this function, the SDL_Thread"] + #[doc = " that references it becomes invalid and should not be referenced again."] + #[doc = " As such, only one thread may call SDL_WaitThread() on another."] + #[doc = ""] + #[doc = " The return code for the thread function is placed in the area"] + #[doc = " pointed to by \\c status, if \\c status is not NULL."] + #[doc = ""] + #[doc = " You may not wait on a thread that has been used in a call to"] + #[doc = " SDL_DetachThread(). Use either that function or this one, but not"] + #[doc = " both, or behavior is undefined."] + #[doc = ""] + #[doc = " It is safe to pass NULL to this function; it is a no-op."] + pub fn SDL_WaitThread(thread: *mut SDL_Thread, status: *mut libc::c_int); +} +extern "C" { + #[doc = " A thread may be \"detached\" to signify that it should not remain until"] + #[doc = " another thread has called SDL_WaitThread() on it. Detaching a thread"] + #[doc = " is useful for long-running threads that nothing needs to synchronize"] + #[doc = " with or further manage. When a detached thread is done, it simply"] + #[doc = " goes away."] + #[doc = ""] + #[doc = " There is no way to recover the return code of a detached thread. If you"] + #[doc = " need this, don't detach the thread and instead use SDL_WaitThread()."] + #[doc = ""] + #[doc = " Once a thread is detached, you should usually assume the SDL_Thread isn't"] + #[doc = " safe to reference again, as it will become invalid immediately upon"] + #[doc = " the detached thread's exit, instead of remaining until someone has called"] + #[doc = " SDL_WaitThread() to finally clean it up. As such, don't detach the same"] + #[doc = " thread more than once."] + #[doc = ""] + #[doc = " If a thread has already exited when passed to SDL_DetachThread(), it will"] + #[doc = " stop waiting for a call to SDL_WaitThread() and clean up immediately."] + #[doc = " It is not safe to detach a thread that might be used with SDL_WaitThread()."] + #[doc = ""] + #[doc = " You may not call SDL_WaitThread() on a thread that has been detached."] + #[doc = " Use either that function or this one, but not both, or behavior is"] + #[doc = " undefined."] + #[doc = ""] + #[doc = " It is safe to pass NULL to this function; it is a no-op."] + pub fn SDL_DetachThread(thread: *mut SDL_Thread); +} +extern "C" { + #[doc = " \\brief Create an identifier that is globally visible to all threads but refers to data that is thread-specific."] + #[doc = ""] + #[doc = " \\return The newly created thread local storage identifier, or 0 on error"] + #[doc = ""] + #[doc = " \\code"] + #[doc = " static SDL_SpinLock tls_lock;"] + #[doc = " static SDL_TLSID thread_local_storage;"] + #[doc = ""] + #[doc = " void SetMyThreadData(void *value)"] + #[doc = " {"] + #[doc = " if (!thread_local_storage) {"] + #[doc = " SDL_AtomicLock(&tls_lock);"] + #[doc = " if (!thread_local_storage) {"] + #[doc = " thread_local_storage = SDL_TLSCreate();"] + #[doc = " }"] + #[doc = " SDL_AtomicUnlock(&tls_lock);"] + #[doc = " }"] + #[doc = " SDL_TLSSet(thread_local_storage, value, 0);"] + #[doc = " }"] + #[doc = ""] + #[doc = " void *GetMyThreadData(void)"] + #[doc = " {"] + #[doc = " return SDL_TLSGet(thread_local_storage);"] + #[doc = " }"] + #[doc = " \\endcode"] + #[doc = ""] + #[doc = " \\sa SDL_TLSGet()"] + #[doc = " \\sa SDL_TLSSet()"] + pub fn SDL_TLSCreate() -> SDL_TLSID; +} +extern "C" { + #[doc = " \\brief Get the value associated with a thread local storage ID for the current thread."] + #[doc = ""] + #[doc = " \\param id The thread local storage ID"] + #[doc = ""] + #[doc = " \\return The value associated with the ID for the current thread, or NULL if no value has been set."] + #[doc = ""] + #[doc = " \\sa SDL_TLSCreate()"] + #[doc = " \\sa SDL_TLSSet()"] + pub fn SDL_TLSGet(id: SDL_TLSID) -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Set the value associated with a thread local storage ID for the current thread."] + #[doc = ""] + #[doc = " \\param id The thread local storage ID"] + #[doc = " \\param value The value to associate with the ID for the current thread"] + #[doc = " \\param destructor A function called when the thread exits, to free the value."] + #[doc = ""] + #[doc = " \\return 0 on success, -1 on error"] + #[doc = ""] + #[doc = " \\sa SDL_TLSCreate()"] + #[doc = " \\sa SDL_TLSGet()"] + pub fn SDL_TLSSet( + id: SDL_TLSID, + value: *const libc::c_void, + destructor: ::core::option::Option, + ) -> libc::c_int; +} +#[doc = " This is the read/write operation structure -- very basic."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_RWops { + #[doc = " Return the size of the file in this rwops, or -1 if unknown"] + pub size: ::core::option::Option Sint64>, + #[doc = " Seek to \\c offset relative to \\c whence, one of stdio's whence values:"] + #[doc = " RW_SEEK_SET, RW_SEEK_CUR, RW_SEEK_END"] + #[doc = ""] + #[doc = " \\return the final offset in the data stream, or -1 on error."] + pub seek: ::core::option::Option< + unsafe extern "C" fn( + context: *mut SDL_RWops, + offset: Sint64, + whence: libc::c_int, + ) -> Sint64, + >, + #[doc = " Read up to \\c maxnum objects each of size \\c size from the data"] + #[doc = " stream to the area pointed at by \\c ptr."] + #[doc = ""] + #[doc = " \\return the number of objects read, or 0 at error or end of file."] + pub read: ::core::option::Option< + unsafe extern "C" fn( + context: *mut SDL_RWops, + ptr: *mut libc::c_void, + size: size_t, + maxnum: size_t, + ) -> size_t, + >, + #[doc = " Write exactly \\c num objects each of size \\c size from the area"] + #[doc = " pointed at by \\c ptr to data stream."] + #[doc = ""] + #[doc = " \\return the number of objects written, or 0 at error or end of file."] + pub write: ::core::option::Option< + unsafe extern "C" fn( + context: *mut SDL_RWops, + ptr: *const libc::c_void, + size: size_t, + num: size_t, + ) -> size_t, + >, + #[doc = " Close and free an allocated SDL_RWops structure."] + #[doc = ""] + #[doc = " \\return 0 if successful or -1 on write error when flushing data."] + pub close: ::core::option::Option libc::c_int>, + pub type_: Uint32, + pub hidden: SDL_RWops__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union SDL_RWops__bindgen_ty_1 { + pub mem: SDL_RWops__bindgen_ty_1__bindgen_ty_1, + pub unknown: SDL_RWops__bindgen_ty_1__bindgen_ty_2, + _bindgen_union_align: [u64; 3usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_RWops__bindgen_ty_1__bindgen_ty_1 { + pub base: *mut Uint8, + pub here: *mut Uint8, + pub stop: *mut Uint8, +} +#[test] +fn bindgen_test_layout_SDL_RWops__bindgen_ty_1__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!( + "Size of: ", + stringify!(SDL_RWops__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(SDL_RWops__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).base as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(base) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).here as *const _ + as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(here) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).stop as *const _ + as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(stop) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_RWops__bindgen_ty_1__bindgen_ty_2 { + pub data1: *mut libc::c_void, + pub data2: *mut libc::c_void, +} +#[test] +fn bindgen_test_layout_SDL_RWops__bindgen_ty_1__bindgen_ty_2() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!( + "Size of: ", + stringify!(SDL_RWops__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(SDL_RWops__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).data1 as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(data1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).data2 as *const _ + as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(data2) + ) + ); +} +#[test] +fn bindgen_test_layout_SDL_RWops__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(SDL_RWops__bindgen_ty_1)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_RWops__bindgen_ty_1)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).mem as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops__bindgen_ty_1), + "::", + stringify!(mem) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).unknown as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops__bindgen_ty_1), + "::", + stringify!(unknown) + ) + ); +} +#[test] +fn bindgen_test_layout_SDL_RWops() { + assert_eq!( + ::core::mem::size_of::(), + 72usize, + concat!("Size of: ", stringify!(SDL_RWops)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_RWops)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops), + "::", + stringify!(size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).seek as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops), + "::", + stringify!(seek) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).read as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops), + "::", + stringify!(read) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).write as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops), + "::", + stringify!(write) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).close as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops), + "::", + stringify!(close) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).hidden as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops), + "::", + stringify!(hidden) + ) + ); +} +extern "C" { + pub fn SDL_RWFromFile(file: *const libc::c_char, mode: *const libc::c_char) -> *mut SDL_RWops; +} +extern "C" { + pub fn SDL_RWFromFP(fp: *mut libc::c_void, autoclose: SDL_bool) -> *mut SDL_RWops; +} +extern "C" { + pub fn SDL_RWFromMem(mem: *mut libc::c_void, size: libc::c_int) -> *mut SDL_RWops; +} +extern "C" { + pub fn SDL_RWFromConstMem(mem: *const libc::c_void, size: libc::c_int) -> *mut SDL_RWops; +} +extern "C" { + pub fn SDL_AllocRW() -> *mut SDL_RWops; +} +extern "C" { + pub fn SDL_FreeRW(area: *mut SDL_RWops); +} +extern "C" { + #[doc = " Return the size of the file in this rwops, or -1 if unknown"] + pub fn SDL_RWsize(context: *mut SDL_RWops) -> Sint64; +} +extern "C" { + #[doc = " Seek to \\c offset relative to \\c whence, one of stdio's whence values:"] + #[doc = " RW_SEEK_SET, RW_SEEK_CUR, RW_SEEK_END"] + #[doc = ""] + #[doc = " \\return the final offset in the data stream, or -1 on error."] + pub fn SDL_RWseek(context: *mut SDL_RWops, offset: Sint64, whence: libc::c_int) -> Sint64; +} +extern "C" { + #[doc = " Return the current offset in the data stream, or -1 on error."] + pub fn SDL_RWtell(context: *mut SDL_RWops) -> Sint64; +} +extern "C" { + #[doc = " Read up to \\c maxnum objects each of size \\c size from the data"] + #[doc = " stream to the area pointed at by \\c ptr."] + #[doc = ""] + #[doc = " \\return the number of objects read, or 0 at error or end of file."] + pub fn SDL_RWread( + context: *mut SDL_RWops, + ptr: *mut libc::c_void, + size: size_t, + maxnum: size_t, + ) -> size_t; +} +extern "C" { + #[doc = " Write exactly \\c num objects each of size \\c size from the area"] + #[doc = " pointed at by \\c ptr to data stream."] + #[doc = ""] + #[doc = " \\return the number of objects written, or 0 at error or end of file."] + pub fn SDL_RWwrite( + context: *mut SDL_RWops, + ptr: *const libc::c_void, + size: size_t, + num: size_t, + ) -> size_t; +} +extern "C" { + #[doc = " Close and free an allocated SDL_RWops structure."] + #[doc = ""] + #[doc = " \\return 0 if successful or -1 on write error when flushing data."] + pub fn SDL_RWclose(context: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + #[doc = " Load all the data from an SDL data stream."] + #[doc = ""] + #[doc = " The data is allocated with a zero byte at the end (null terminated)"] + #[doc = ""] + #[doc = " If \\c datasize is not NULL, it is filled with the size of the data read."] + #[doc = ""] + #[doc = " If \\c freesrc is non-zero, the stream will be closed after being read."] + #[doc = ""] + #[doc = " The data should be freed with SDL_free()."] + #[doc = ""] + #[doc = " \\return the data, or NULL if there was an error."] + pub fn SDL_LoadFile_RW( + src: *mut SDL_RWops, + datasize: *mut size_t, + freesrc: libc::c_int, + ) -> *mut libc::c_void; +} +extern "C" { + #[doc = " Load an entire file."] + #[doc = ""] + #[doc = " The data is allocated with a zero byte at the end (null terminated)"] + #[doc = ""] + #[doc = " If \\c datasize is not NULL, it is filled with the size of the data read."] + #[doc = ""] + #[doc = " If \\c freesrc is non-zero, the stream will be closed after being read."] + #[doc = ""] + #[doc = " The data should be freed with SDL_free()."] + #[doc = ""] + #[doc = " \\return the data, or NULL if there was an error."] + pub fn SDL_LoadFile(file: *const libc::c_char, datasize: *mut size_t) -> *mut libc::c_void; +} +extern "C" { + pub fn SDL_ReadU8(src: *mut SDL_RWops) -> Uint8; +} +extern "C" { + pub fn SDL_ReadLE16(src: *mut SDL_RWops) -> Uint16; +} +extern "C" { + pub fn SDL_ReadBE16(src: *mut SDL_RWops) -> Uint16; +} +extern "C" { + pub fn SDL_ReadLE32(src: *mut SDL_RWops) -> Uint32; +} +extern "C" { + pub fn SDL_ReadBE32(src: *mut SDL_RWops) -> Uint32; +} +extern "C" { + pub fn SDL_ReadLE64(src: *mut SDL_RWops) -> Uint64; +} +extern "C" { + pub fn SDL_ReadBE64(src: *mut SDL_RWops) -> Uint64; +} +extern "C" { + pub fn SDL_WriteU8(dst: *mut SDL_RWops, value: Uint8) -> size_t; +} +extern "C" { + pub fn SDL_WriteLE16(dst: *mut SDL_RWops, value: Uint16) -> size_t; +} +extern "C" { + pub fn SDL_WriteBE16(dst: *mut SDL_RWops, value: Uint16) -> size_t; +} +extern "C" { + pub fn SDL_WriteLE32(dst: *mut SDL_RWops, value: Uint32) -> size_t; +} +extern "C" { + pub fn SDL_WriteBE32(dst: *mut SDL_RWops, value: Uint32) -> size_t; +} +extern "C" { + pub fn SDL_WriteLE64(dst: *mut SDL_RWops, value: Uint64) -> size_t; +} +extern "C" { + pub fn SDL_WriteBE64(dst: *mut SDL_RWops, value: Uint64) -> size_t; +} +#[doc = " \\brief Audio format flags."] +#[doc = ""] +#[doc = " These are what the 16 bits in SDL_AudioFormat currently mean..."] +#[doc = " (Unspecified bits are always zero)."] +#[doc = ""] +#[doc = " \\verbatim"] +#[doc = "++-----------------------sample is signed if set"] +#[doc = "||"] +#[doc = "|| ++-----------sample is bigendian if set"] +#[doc = "|| ||"] +#[doc = "|| || ++---sample is float if set"] +#[doc = "|| || ||"] +#[doc = "|| || || +---sample bit size---+"] +#[doc = "|| || || | |"] +#[doc = "15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00"] +#[doc = "\\endverbatim"] +#[doc = ""] +#[doc = " There are macros in SDL 2.0 and later to query these bits."] +pub type SDL_AudioFormat = Uint16; +#[doc = " This function is called when the audio device needs more data."] +#[doc = ""] +#[doc = " \\param userdata An application-specific parameter saved in"] +#[doc = " the SDL_AudioSpec structure"] +#[doc = " \\param stream A pointer to the audio data buffer."] +#[doc = " \\param len The length of that buffer in bytes."] +#[doc = ""] +#[doc = " Once the callback returns, the buffer will no longer be valid."] +#[doc = " Stereo samples are stored in a LRLRLR ordering."] +#[doc = ""] +#[doc = " You can choose to avoid callbacks and use SDL_QueueAudio() instead, if"] +#[doc = " you like. Just open your audio device with a NULL callback."] +pub type SDL_AudioCallback = ::core::option::Option< + unsafe extern "C" fn(userdata: *mut libc::c_void, stream: *mut Uint8, len: libc::c_int), +>; +#[doc = " The calculated values in this structure are calculated by SDL_OpenAudio()."] +#[doc = ""] +#[doc = " For multi-channel audio, the default SDL channel mapping is:"] +#[doc = " 2: FL FR (stereo)"] +#[doc = " 3: FL FR LFE (2.1 surround)"] +#[doc = " 4: FL FR BL BR (quad)"] +#[doc = " 5: FL FR FC BL BR (quad + center)"] +#[doc = " 6: FL FR FC LFE SL SR (5.1 surround - last two can also be BL BR)"] +#[doc = " 7: FL FR FC LFE BC SL SR (6.1 surround)"] +#[doc = " 8: FL FR FC LFE BL BR SL SR (7.1 surround)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_AudioSpec { + #[doc = "< DSP frequency -- samples per second"] + pub freq: libc::c_int, + #[doc = "< Audio data format"] + pub format: SDL_AudioFormat, + #[doc = "< Number of channels: 1 mono, 2 stereo"] + pub channels: Uint8, + #[doc = "< Audio buffer silence value (calculated)"] + pub silence: Uint8, + #[doc = "< Audio buffer size in sample FRAMES (total samples divided by channel count)"] + pub samples: Uint16, + #[doc = "< Necessary for some compile environments"] + pub padding: Uint16, + #[doc = "< Audio buffer size in bytes (calculated)"] + pub size: Uint32, + #[doc = "< Callback that feeds the audio device (NULL to use SDL_QueueAudio())."] + pub callback: SDL_AudioCallback, + #[doc = "< Userdata passed to callback (ignored for NULL callbacks)."] + pub userdata: *mut libc::c_void, +} +#[test] +fn bindgen_test_layout_SDL_AudioSpec() { + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(SDL_AudioSpec)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_AudioSpec)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).freq as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioSpec), + "::", + stringify!(freq) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).format as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioSpec), + "::", + stringify!(format) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).channels as *const _ as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioSpec), + "::", + stringify!(channels) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).silence as *const _ as usize }, + 7usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioSpec), + "::", + stringify!(silence) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).samples as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioSpec), + "::", + stringify!(samples) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding as *const _ as usize }, + 10usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioSpec), + "::", + stringify!(padding) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).size as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioSpec), + "::", + stringify!(size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).callback as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioSpec), + "::", + stringify!(callback) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).userdata as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioSpec), + "::", + stringify!(userdata) + ) + ); +} +pub type SDL_AudioFilter = + ::core::option::Option; +#[repr(C, packed)] +#[derive(Copy, Clone)] +pub struct SDL_AudioCVT { + #[doc = "< Set to 1 if conversion possible"] + pub needed: libc::c_int, + #[doc = "< Source audio format"] + pub src_format: SDL_AudioFormat, + #[doc = "< Target audio format"] + pub dst_format: SDL_AudioFormat, + #[doc = "< Rate conversion increment"] + pub rate_incr: f64, + #[doc = "< Buffer to hold entire audio data"] + pub buf: *mut Uint8, + #[doc = "< Length of original audio buffer"] + pub len: libc::c_int, + #[doc = "< Length of converted audio buffer"] + pub len_cvt: libc::c_int, + #[doc = "< buffer must be len*len_mult big"] + pub len_mult: libc::c_int, + #[doc = "< Given len, final size is len*len_ratio"] + pub len_ratio: f64, + #[doc = "< NULL-terminated list of filter functions"] + pub filters: [SDL_AudioFilter; 10usize], + #[doc = "< Current audio conversion function"] + pub filter_index: libc::c_int, +} +#[test] +fn bindgen_test_layout_SDL_AudioCVT() { + assert_eq!( + ::core::mem::size_of::(), + 128usize, + concat!("Size of: ", stringify!(SDL_AudioCVT)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(SDL_AudioCVT)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).needed as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioCVT), + "::", + stringify!(needed) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).src_format as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioCVT), + "::", + stringify!(src_format) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).dst_format as *const _ as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioCVT), + "::", + stringify!(dst_format) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).rate_incr as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioCVT), + "::", + stringify!(rate_incr) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).buf as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioCVT), + "::", + stringify!(buf) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).len as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioCVT), + "::", + stringify!(len) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).len_cvt as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioCVT), + "::", + stringify!(len_cvt) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).len_mult as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioCVT), + "::", + stringify!(len_mult) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).len_ratio as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioCVT), + "::", + stringify!(len_ratio) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).filters as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioCVT), + "::", + stringify!(filters) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).filter_index as *const _ as usize }, + 124usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioCVT), + "::", + stringify!(filter_index) + ) + ); +} +extern "C" { + pub fn SDL_GetNumAudioDrivers() -> libc::c_int; +} +extern "C" { + pub fn SDL_GetAudioDriver(index: libc::c_int) -> *const libc::c_char; +} +extern "C" { + pub fn SDL_AudioInit(driver_name: *const libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn SDL_AudioQuit(); +} +extern "C" { + #[doc = " This function returns the name of the current audio driver, or NULL"] + #[doc = " if no driver has been initialized."] + pub fn SDL_GetCurrentAudioDriver() -> *const libc::c_char; +} +extern "C" { + #[doc = " This function opens the audio device with the desired parameters, and"] + #[doc = " returns 0 if successful, placing the actual hardware parameters in the"] + #[doc = " structure pointed to by \\c obtained. If \\c obtained is NULL, the audio"] + #[doc = " data passed to the callback function will be guaranteed to be in the"] + #[doc = " requested format, and will be automatically converted to the hardware"] + #[doc = " audio format if necessary. This function returns -1 if it failed"] + #[doc = " to open the audio device, or couldn't set up the audio thread."] + #[doc = ""] + #[doc = " When filling in the desired audio spec structure,"] + #[doc = " - \\c desired->freq should be the desired audio frequency in samples-per-"] + #[doc = " second."] + #[doc = " - \\c desired->format should be the desired audio format."] + #[doc = " - \\c desired->samples is the desired size of the audio buffer, in"] + #[doc = " samples. This number should be a power of two, and may be adjusted by"] + #[doc = " the audio driver to a value more suitable for the hardware. Good values"] + #[doc = " seem to range between 512 and 8096 inclusive, depending on the"] + #[doc = " application and CPU speed. Smaller values yield faster response time,"] + #[doc = " but can lead to underflow if the application is doing heavy processing"] + #[doc = " and cannot fill the audio buffer in time. A stereo sample consists of"] + #[doc = " both right and left channels in LR ordering."] + #[doc = " Note that the number of samples is directly related to time by the"] + #[doc = " following formula: \\code ms = (samples*1000)/freq \\endcode"] + #[doc = " - \\c desired->size is the size in bytes of the audio buffer, and is"] + #[doc = " calculated by SDL_OpenAudio()."] + #[doc = " - \\c desired->silence is the value used to set the buffer to silence,"] + #[doc = " and is calculated by SDL_OpenAudio()."] + #[doc = " - \\c desired->callback should be set to a function that will be called"] + #[doc = " when the audio device is ready for more data. It is passed a pointer"] + #[doc = " to the audio buffer, and the length in bytes of the audio buffer."] + #[doc = " This function usually runs in a separate thread, and so you should"] + #[doc = " protect data structures that it accesses by calling SDL_LockAudio()"] + #[doc = " and SDL_UnlockAudio() in your code. Alternately, you may pass a NULL"] + #[doc = " pointer here, and call SDL_QueueAudio() with some frequency, to queue"] + #[doc = " more audio samples to be played (or for capture devices, call"] + #[doc = " SDL_DequeueAudio() with some frequency, to obtain audio samples)."] + #[doc = " - \\c desired->userdata is passed as the first parameter to your callback"] + #[doc = " function. If you passed a NULL callback, this value is ignored."] + #[doc = ""] + #[doc = " The audio device starts out playing silence when it's opened, and should"] + #[doc = " be enabled for playing by calling \\c SDL_PauseAudio(0) when you are ready"] + #[doc = " for your audio callback function to be called. Since the audio driver"] + #[doc = " may modify the requested size of the audio buffer, you should allocate"] + #[doc = " any local mixing buffers after you open the audio device."] + pub fn SDL_OpenAudio(desired: *mut SDL_AudioSpec, obtained: *mut SDL_AudioSpec) -> libc::c_int; +} +#[doc = " SDL Audio Device IDs."] +#[doc = ""] +#[doc = " A successful call to SDL_OpenAudio() is always device id 1, and legacy"] +#[doc = " SDL audio APIs assume you want this device ID. SDL_OpenAudioDevice() calls"] +#[doc = " always returns devices >= 2 on success. The legacy calls are good both"] +#[doc = " for backwards compatibility and when you don't care about multiple,"] +#[doc = " specific, or capture devices."] +pub type SDL_AudioDeviceID = Uint32; +extern "C" { + #[doc = " Get the number of available devices exposed by the current driver."] + #[doc = " Only valid after a successfully initializing the audio subsystem."] + #[doc = " Returns -1 if an explicit list of devices can't be determined; this is"] + #[doc = " not an error. For example, if SDL is set up to talk to a remote audio"] + #[doc = " server, it can't list every one available on the Internet, but it will"] + #[doc = " still allow a specific host to be specified to SDL_OpenAudioDevice()."] + #[doc = ""] + #[doc = " In many common cases, when this function returns a value <= 0, it can still"] + #[doc = " successfully open the default device (NULL for first argument of"] + #[doc = " SDL_OpenAudioDevice())."] + pub fn SDL_GetNumAudioDevices(iscapture: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " Get the human-readable name of a specific audio device."] + #[doc = " Must be a value between 0 and (number of audio devices-1)."] + #[doc = " Only valid after a successfully initializing the audio subsystem."] + #[doc = " The values returned by this function reflect the latest call to"] + #[doc = " SDL_GetNumAudioDevices(); recall that function to redetect available"] + #[doc = " hardware."] + #[doc = ""] + #[doc = " The string returned by this function is UTF-8 encoded, read-only, and"] + #[doc = " managed internally. You are not to free it. If you need to keep the"] + #[doc = " string for any length of time, you should make your own copy of it, as it"] + #[doc = " will be invalid next time any of several other SDL functions is called."] + pub fn SDL_GetAudioDeviceName( + index: libc::c_int, + iscapture: libc::c_int, + ) -> *const libc::c_char; +} +extern "C" { + #[doc = " Open a specific audio device. Passing in a device name of NULL requests"] + #[doc = " the most reasonable default (and is equivalent to calling SDL_OpenAudio())."] + #[doc = ""] + #[doc = " The device name is a UTF-8 string reported by SDL_GetAudioDeviceName(), but"] + #[doc = " some drivers allow arbitrary and driver-specific strings, such as a"] + #[doc = " hostname/IP address for a remote audio server, or a filename in the"] + #[doc = " diskaudio driver."] + #[doc = ""] + #[doc = " \\return 0 on error, a valid device ID that is >= 2 on success."] + #[doc = ""] + #[doc = " SDL_OpenAudio(), unlike this function, always acts on device ID 1."] + pub fn SDL_OpenAudioDevice( + device: *const libc::c_char, + iscapture: libc::c_int, + desired: *const SDL_AudioSpec, + obtained: *mut SDL_AudioSpec, + allowed_changes: libc::c_int, + ) -> SDL_AudioDeviceID; +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_AudioStatus { + SDL_AUDIO_STOPPED = 0, + SDL_AUDIO_PLAYING = 1, + SDL_AUDIO_PAUSED = 2, +} +extern "C" { + pub fn SDL_GetAudioStatus() -> SDL_AudioStatus; +} +extern "C" { + pub fn SDL_GetAudioDeviceStatus(dev: SDL_AudioDeviceID) -> SDL_AudioStatus; +} +extern "C" { + pub fn SDL_PauseAudio(pause_on: libc::c_int); +} +extern "C" { + pub fn SDL_PauseAudioDevice(dev: SDL_AudioDeviceID, pause_on: libc::c_int); +} +extern "C" { + #[doc = " \\brief Load the audio data of a WAVE file into memory"] + #[doc = ""] + #[doc = " Loading a WAVE file requires \\c src, \\c spec, \\c audio_buf and \\c audio_len"] + #[doc = " to be valid pointers. The entire data portion of the file is then loaded"] + #[doc = " into memory and decoded if necessary."] + #[doc = ""] + #[doc = " If \\c freesrc is non-zero, the data source gets automatically closed and"] + #[doc = " freed before the function returns."] + #[doc = ""] + #[doc = " Supported are RIFF WAVE files with the formats PCM (8, 16, 24, and 32 bits),"] + #[doc = " IEEE Float (32 bits), Microsoft ADPCM and IMA ADPCM (4 bits), and A-law and"] + #[doc = " µ-law (8 bits). Other formats are currently unsupported and cause an error."] + #[doc = ""] + #[doc = " If this function succeeds, the pointer returned by it is equal to \\c spec"] + #[doc = " and the pointer to the audio data allocated by the function is written to"] + #[doc = " \\c audio_buf and its length in bytes to \\c audio_len. The \\ref SDL_AudioSpec"] + #[doc = " members \\c freq, \\c channels, and \\c format are set to the values of the"] + #[doc = " audio data in the buffer. The \\c samples member is set to a sane default and"] + #[doc = " all others are set to zero."] + #[doc = ""] + #[doc = " It's necessary to use SDL_FreeWAV() to free the audio data returned in"] + #[doc = " \\c audio_buf when it is no longer used."] + #[doc = ""] + #[doc = " Because of the underspecification of the Waveform format, there are many"] + #[doc = " problematic files in the wild that cause issues with strict decoders. To"] + #[doc = " provide compatibility with these files, this decoder is lenient in regards"] + #[doc = " to the truncation of the file, the fact chunk, and the size of the RIFF"] + #[doc = " chunk. The hints SDL_HINT_WAVE_RIFF_CHUNK_SIZE, SDL_HINT_WAVE_TRUNCATION,"] + #[doc = " and SDL_HINT_WAVE_FACT_CHUNK can be used to tune the behavior of the"] + #[doc = " loading process."] + #[doc = ""] + #[doc = " Any file that is invalid (due to truncation, corruption, or wrong values in"] + #[doc = " the headers), too big, or unsupported causes an error. Additionally, any"] + #[doc = " critical I/O error from the data source will terminate the loading process"] + #[doc = " with an error. The function returns NULL on error and in all cases (with the"] + #[doc = " exception of \\c src being NULL), an appropriate error message will be set."] + #[doc = ""] + #[doc = " It is required that the data source supports seeking."] + #[doc = ""] + #[doc = " Example:"] + #[doc = " \\code"] + #[doc = " SDL_LoadWAV_RW(SDL_RWFromFile(\"sample.wav\", \"rb\"), 1, ...);"] + #[doc = " \\endcode"] + #[doc = ""] + #[doc = " \\param src The data source with the WAVE data"] + #[doc = " \\param freesrc A integer value that makes the function close the data source if non-zero"] + #[doc = " \\param spec A pointer filled with the audio format of the audio data"] + #[doc = " \\param audio_buf A pointer filled with the audio data allocated by the function"] + #[doc = " \\param audio_len A pointer filled with the length of the audio data buffer in bytes"] + #[doc = " \\return NULL on error, or non-NULL on success."] + pub fn SDL_LoadWAV_RW( + src: *mut SDL_RWops, + freesrc: libc::c_int, + spec: *mut SDL_AudioSpec, + audio_buf: *mut *mut Uint8, + audio_len: *mut Uint32, + ) -> *mut SDL_AudioSpec; +} +extern "C" { + #[doc = " This function frees data previously allocated with SDL_LoadWAV_RW()"] + pub fn SDL_FreeWAV(audio_buf: *mut Uint8); +} +extern "C" { + #[doc = " This function takes a source format and rate and a destination format"] + #[doc = " and rate, and initializes the \\c cvt structure with information needed"] + #[doc = " by SDL_ConvertAudio() to convert a buffer of audio data from one format"] + #[doc = " to the other. An unsupported format causes an error and -1 will be returned."] + #[doc = ""] + #[doc = " \\return 0 if no conversion is needed, 1 if the audio filter is set up,"] + #[doc = " or -1 on error."] + pub fn SDL_BuildAudioCVT( + cvt: *mut SDL_AudioCVT, + src_format: SDL_AudioFormat, + src_channels: Uint8, + src_rate: libc::c_int, + dst_format: SDL_AudioFormat, + dst_channels: Uint8, + dst_rate: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Once you have initialized the \\c cvt structure using SDL_BuildAudioCVT(),"] + #[doc = " created an audio buffer \\c cvt->buf, and filled it with \\c cvt->len bytes of"] + #[doc = " audio data in the source format, this function will convert it in-place"] + #[doc = " to the desired format."] + #[doc = ""] + #[doc = " The data conversion may expand the size of the audio data, so the buffer"] + #[doc = " \\c cvt->buf should be allocated after the \\c cvt structure is initialized by"] + #[doc = " SDL_BuildAudioCVT(), and should be \\c cvt->len*cvt->len_mult bytes long."] + #[doc = ""] + #[doc = " \\return 0 on success or -1 if \\c cvt->buf is NULL."] + pub fn SDL_ConvertAudio(cvt: *mut SDL_AudioCVT) -> libc::c_int; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _SDL_AudioStream { + _unused: [u8; 0], +} +pub type SDL_AudioStream = _SDL_AudioStream; +extern "C" { + #[doc = " Create a new audio stream"] + #[doc = ""] + #[doc = " \\param src_format The format of the source audio"] + #[doc = " \\param src_channels The number of channels of the source audio"] + #[doc = " \\param src_rate The sampling rate of the source audio"] + #[doc = " \\param dst_format The format of the desired audio output"] + #[doc = " \\param dst_channels The number of channels of the desired audio output"] + #[doc = " \\param dst_rate The sampling rate of the desired audio output"] + #[doc = " \\return 0 on success, or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_AudioStreamPut"] + #[doc = " \\sa SDL_AudioStreamGet"] + #[doc = " \\sa SDL_AudioStreamAvailable"] + #[doc = " \\sa SDL_AudioStreamFlush"] + #[doc = " \\sa SDL_AudioStreamClear"] + #[doc = " \\sa SDL_FreeAudioStream"] + pub fn SDL_NewAudioStream( + src_format: SDL_AudioFormat, + src_channels: Uint8, + src_rate: libc::c_int, + dst_format: SDL_AudioFormat, + dst_channels: Uint8, + dst_rate: libc::c_int, + ) -> *mut SDL_AudioStream; +} +extern "C" { + #[doc = " Add data to be converted/resampled to the stream"] + #[doc = ""] + #[doc = " \\param stream The stream the audio data is being added to"] + #[doc = " \\param buf A pointer to the audio data to add"] + #[doc = " \\param len The number of bytes to write to the stream"] + #[doc = " \\return 0 on success, or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_NewAudioStream"] + #[doc = " \\sa SDL_AudioStreamGet"] + #[doc = " \\sa SDL_AudioStreamAvailable"] + #[doc = " \\sa SDL_AudioStreamFlush"] + #[doc = " \\sa SDL_AudioStreamClear"] + #[doc = " \\sa SDL_FreeAudioStream"] + pub fn SDL_AudioStreamPut( + stream: *mut SDL_AudioStream, + buf: *const libc::c_void, + len: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Get converted/resampled data from the stream"] + #[doc = ""] + #[doc = " \\param stream The stream the audio is being requested from"] + #[doc = " \\param buf A buffer to fill with audio data"] + #[doc = " \\param len The maximum number of bytes to fill"] + #[doc = " \\return The number of bytes read from the stream, or -1 on error"] + #[doc = ""] + #[doc = " \\sa SDL_NewAudioStream"] + #[doc = " \\sa SDL_AudioStreamPut"] + #[doc = " \\sa SDL_AudioStreamAvailable"] + #[doc = " \\sa SDL_AudioStreamFlush"] + #[doc = " \\sa SDL_AudioStreamClear"] + #[doc = " \\sa SDL_FreeAudioStream"] + pub fn SDL_AudioStreamGet( + stream: *mut SDL_AudioStream, + buf: *mut libc::c_void, + len: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Get the number of converted/resampled bytes available. The stream may be"] + #[doc = " buffering data behind the scenes until it has enough to resample"] + #[doc = " correctly, so this number might be lower than what you expect, or even"] + #[doc = " be zero. Add more data or flush the stream if you need the data now."] + #[doc = ""] + #[doc = " \\sa SDL_NewAudioStream"] + #[doc = " \\sa SDL_AudioStreamPut"] + #[doc = " \\sa SDL_AudioStreamGet"] + #[doc = " \\sa SDL_AudioStreamFlush"] + #[doc = " \\sa SDL_AudioStreamClear"] + #[doc = " \\sa SDL_FreeAudioStream"] + pub fn SDL_AudioStreamAvailable(stream: *mut SDL_AudioStream) -> libc::c_int; +} +extern "C" { + #[doc = " Tell the stream that you're done sending data, and anything being buffered"] + #[doc = " should be converted/resampled and made available immediately."] + #[doc = ""] + #[doc = " It is legal to add more data to a stream after flushing, but there will"] + #[doc = " be audio gaps in the output. Generally this is intended to signal the"] + #[doc = " end of input, so the complete output becomes available."] + #[doc = ""] + #[doc = " \\sa SDL_NewAudioStream"] + #[doc = " \\sa SDL_AudioStreamPut"] + #[doc = " \\sa SDL_AudioStreamGet"] + #[doc = " \\sa SDL_AudioStreamAvailable"] + #[doc = " \\sa SDL_AudioStreamClear"] + #[doc = " \\sa SDL_FreeAudioStream"] + pub fn SDL_AudioStreamFlush(stream: *mut SDL_AudioStream) -> libc::c_int; +} +extern "C" { + #[doc = " Clear any pending data in the stream without converting it"] + #[doc = ""] + #[doc = " \\sa SDL_NewAudioStream"] + #[doc = " \\sa SDL_AudioStreamPut"] + #[doc = " \\sa SDL_AudioStreamGet"] + #[doc = " \\sa SDL_AudioStreamAvailable"] + #[doc = " \\sa SDL_AudioStreamFlush"] + #[doc = " \\sa SDL_FreeAudioStream"] + pub fn SDL_AudioStreamClear(stream: *mut SDL_AudioStream); +} +extern "C" { + #[doc = " Free an audio stream"] + #[doc = ""] + #[doc = " \\sa SDL_NewAudioStream"] + #[doc = " \\sa SDL_AudioStreamPut"] + #[doc = " \\sa SDL_AudioStreamGet"] + #[doc = " \\sa SDL_AudioStreamAvailable"] + #[doc = " \\sa SDL_AudioStreamFlush"] + #[doc = " \\sa SDL_AudioStreamClear"] + pub fn SDL_FreeAudioStream(stream: *mut SDL_AudioStream); +} +extern "C" { + #[doc = " This takes two audio buffers of the playing audio format and mixes"] + #[doc = " them, performing addition, volume adjustment, and overflow clipping."] + #[doc = " The volume ranges from 0 - 128, and should be set to ::SDL_MIX_MAXVOLUME"] + #[doc = " for full audio volume. Note this does not change hardware volume."] + #[doc = " This is provided for convenience -- you can mix your own audio data."] + pub fn SDL_MixAudio(dst: *mut Uint8, src: *const Uint8, len: Uint32, volume: libc::c_int); +} +extern "C" { + #[doc = " This works like SDL_MixAudio(), but you specify the audio format instead of"] + #[doc = " using the format of audio device 1. Thus it can be used when no audio"] + #[doc = " device is open at all."] + pub fn SDL_MixAudioFormat( + dst: *mut Uint8, + src: *const Uint8, + format: SDL_AudioFormat, + len: Uint32, + volume: libc::c_int, + ); +} +extern "C" { + #[doc = " Queue more audio on non-callback devices."] + #[doc = ""] + #[doc = " (If you are looking to retrieve queued audio from a non-callback capture"] + #[doc = " device, you want SDL_DequeueAudio() instead. This will return -1 to"] + #[doc = " signify an error if you use it with capture devices.)"] + #[doc = ""] + #[doc = " SDL offers two ways to feed audio to the device: you can either supply a"] + #[doc = " callback that SDL triggers with some frequency to obtain more audio"] + #[doc = " (pull method), or you can supply no callback, and then SDL will expect"] + #[doc = " you to supply data at regular intervals (push method) with this function."] + #[doc = ""] + #[doc = " There are no limits on the amount of data you can queue, short of"] + #[doc = " exhaustion of address space. Queued data will drain to the device as"] + #[doc = " necessary without further intervention from you. If the device needs"] + #[doc = " audio but there is not enough queued, it will play silence to make up"] + #[doc = " the difference. This means you will have skips in your audio playback"] + #[doc = " if you aren't routinely queueing sufficient data."] + #[doc = ""] + #[doc = " This function copies the supplied data, so you are safe to free it when"] + #[doc = " the function returns. This function is thread-safe, but queueing to the"] + #[doc = " same device from two threads at once does not promise which buffer will"] + #[doc = " be queued first."] + #[doc = ""] + #[doc = " You may not queue audio on a device that is using an application-supplied"] + #[doc = " callback; doing so returns an error. You have to use the audio callback"] + #[doc = " or queue audio with this function, but not both."] + #[doc = ""] + #[doc = " You should not call SDL_LockAudio() on the device before queueing; SDL"] + #[doc = " handles locking internally for this function."] + #[doc = ""] + #[doc = " \\param dev The device ID to which we will queue audio."] + #[doc = " \\param data The data to queue to the device for later playback."] + #[doc = " \\param len The number of bytes (not samples!) to which (data) points."] + #[doc = " \\return 0 on success, or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_GetQueuedAudioSize"] + #[doc = " \\sa SDL_ClearQueuedAudio"] + pub fn SDL_QueueAudio( + dev: SDL_AudioDeviceID, + data: *const libc::c_void, + len: Uint32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Dequeue more audio on non-callback devices."] + #[doc = ""] + #[doc = " (If you are looking to queue audio for output on a non-callback playback"] + #[doc = " device, you want SDL_QueueAudio() instead. This will always return 0"] + #[doc = " if you use it with playback devices.)"] + #[doc = ""] + #[doc = " SDL offers two ways to retrieve audio from a capture device: you can"] + #[doc = " either supply a callback that SDL triggers with some frequency as the"] + #[doc = " device records more audio data, (push method), or you can supply no"] + #[doc = " callback, and then SDL will expect you to retrieve data at regular"] + #[doc = " intervals (pull method) with this function."] + #[doc = ""] + #[doc = " There are no limits on the amount of data you can queue, short of"] + #[doc = " exhaustion of address space. Data from the device will keep queuing as"] + #[doc = " necessary without further intervention from you. This means you will"] + #[doc = " eventually run out of memory if you aren't routinely dequeueing data."] + #[doc = ""] + #[doc = " Capture devices will not queue data when paused; if you are expecting"] + #[doc = " to not need captured audio for some length of time, use"] + #[doc = " SDL_PauseAudioDevice() to stop the capture device from queueing more"] + #[doc = " data. This can be useful during, say, level loading times. When"] + #[doc = " unpaused, capture devices will start queueing data from that point,"] + #[doc = " having flushed any capturable data available while paused."] + #[doc = ""] + #[doc = " This function is thread-safe, but dequeueing from the same device from"] + #[doc = " two threads at once does not promise which thread will dequeued data"] + #[doc = " first."] + #[doc = ""] + #[doc = " You may not dequeue audio from a device that is using an"] + #[doc = " application-supplied callback; doing so returns an error. You have to use"] + #[doc = " the audio callback, or dequeue audio with this function, but not both."] + #[doc = ""] + #[doc = " You should not call SDL_LockAudio() on the device before queueing; SDL"] + #[doc = " handles locking internally for this function."] + #[doc = ""] + #[doc = " \\param dev The device ID from which we will dequeue audio."] + #[doc = " \\param data A pointer into where audio data should be copied."] + #[doc = " \\param len The number of bytes (not samples!) to which (data) points."] + #[doc = " \\return number of bytes dequeued, which could be less than requested."] + #[doc = ""] + #[doc = " \\sa SDL_GetQueuedAudioSize"] + #[doc = " \\sa SDL_ClearQueuedAudio"] + pub fn SDL_DequeueAudio(dev: SDL_AudioDeviceID, data: *mut libc::c_void, len: Uint32) + -> Uint32; +} +extern "C" { + #[doc = " Get the number of bytes of still-queued audio."] + #[doc = ""] + #[doc = " For playback device:"] + #[doc = ""] + #[doc = " This is the number of bytes that have been queued for playback with"] + #[doc = " SDL_QueueAudio(), but have not yet been sent to the hardware. This"] + #[doc = " number may shrink at any time, so this only informs of pending data."] + #[doc = ""] + #[doc = " Once we've sent it to the hardware, this function can not decide the"] + #[doc = " exact byte boundary of what has been played. It's possible that we just"] + #[doc = " gave the hardware several kilobytes right before you called this"] + #[doc = " function, but it hasn't played any of it yet, or maybe half of it, etc."] + #[doc = ""] + #[doc = " For capture devices:"] + #[doc = ""] + #[doc = " This is the number of bytes that have been captured by the device and"] + #[doc = " are waiting for you to dequeue. This number may grow at any time, so"] + #[doc = " this only informs of the lower-bound of available data."] + #[doc = ""] + #[doc = " You may not queue audio on a device that is using an application-supplied"] + #[doc = " callback; calling this function on such a device always returns 0."] + #[doc = " You have to queue audio with SDL_QueueAudio()/SDL_DequeueAudio(), or use"] + #[doc = " the audio callback, but not both."] + #[doc = ""] + #[doc = " You should not call SDL_LockAudio() on the device before querying; SDL"] + #[doc = " handles locking internally for this function."] + #[doc = ""] + #[doc = " \\param dev The device ID of which we will query queued audio size."] + #[doc = " \\return Number of bytes (not samples!) of queued audio."] + #[doc = ""] + #[doc = " \\sa SDL_QueueAudio"] + #[doc = " \\sa SDL_ClearQueuedAudio"] + pub fn SDL_GetQueuedAudioSize(dev: SDL_AudioDeviceID) -> Uint32; +} +extern "C" { + #[doc = " Drop any queued audio data. For playback devices, this is any queued data"] + #[doc = " still waiting to be submitted to the hardware. For capture devices, this"] + #[doc = " is any data that was queued by the device that hasn't yet been dequeued by"] + #[doc = " the application."] + #[doc = ""] + #[doc = " Immediately after this call, SDL_GetQueuedAudioSize() will return 0. For"] + #[doc = " playback devices, the hardware will start playing silence if more audio"] + #[doc = " isn't queued. Unpaused capture devices will start filling the queue again"] + #[doc = " as soon as they have more data available (which, depending on the state"] + #[doc = " of the hardware and the thread, could be before this function call"] + #[doc = " returns!)."] + #[doc = ""] + #[doc = " This will not prevent playback of queued audio that's already been sent"] + #[doc = " to the hardware, as we can not undo that, so expect there to be some"] + #[doc = " fraction of a second of audio that might still be heard. This can be"] + #[doc = " useful if you want to, say, drop any pending music during a level change"] + #[doc = " in your game."] + #[doc = ""] + #[doc = " You may not queue audio on a device that is using an application-supplied"] + #[doc = " callback; calling this function on such a device is always a no-op."] + #[doc = " You have to queue audio with SDL_QueueAudio()/SDL_DequeueAudio(), or use"] + #[doc = " the audio callback, but not both."] + #[doc = ""] + #[doc = " You should not call SDL_LockAudio() on the device before clearing the"] + #[doc = " queue; SDL handles locking internally for this function."] + #[doc = ""] + #[doc = " This function always succeeds and thus returns void."] + #[doc = ""] + #[doc = " \\param dev The device ID of which to clear the audio queue."] + #[doc = ""] + #[doc = " \\sa SDL_QueueAudio"] + #[doc = " \\sa SDL_GetQueuedAudioSize"] + pub fn SDL_ClearQueuedAudio(dev: SDL_AudioDeviceID); +} +extern "C" { + pub fn SDL_LockAudio(); +} +extern "C" { + pub fn SDL_LockAudioDevice(dev: SDL_AudioDeviceID); +} +extern "C" { + pub fn SDL_UnlockAudio(); +} +extern "C" { + pub fn SDL_UnlockAudioDevice(dev: SDL_AudioDeviceID); +} +extern "C" { + #[doc = " This function shuts down audio processing and closes the audio device."] + pub fn SDL_CloseAudio(); +} +extern "C" { + pub fn SDL_CloseAudioDevice(dev: SDL_AudioDeviceID); +} +extern "C" { + #[doc = " \\brief Put UTF-8 text into the clipboard"] + #[doc = ""] + #[doc = " \\sa SDL_GetClipboardText()"] + pub fn SDL_SetClipboardText(text: *const libc::c_char) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get UTF-8 text from the clipboard, which must be freed with SDL_free()"] + #[doc = ""] + #[doc = " \\sa SDL_SetClipboardText()"] + pub fn SDL_GetClipboardText() -> *mut libc::c_char; +} +extern "C" { + #[doc = " \\brief Returns a flag indicating whether the clipboard exists and contains a text string that is non-empty"] + #[doc = ""] + #[doc = " \\sa SDL_GetClipboardText()"] + pub fn SDL_HasClipboardText() -> SDL_bool; +} +pub type __m64 = [libc::c_longlong; 1usize]; +pub type __v1di = [libc::c_longlong; 1usize]; +pub type __v2si = [libc::c_int; 2usize]; +pub type __v4hi = [libc::c_short; 4usize]; +pub type __v8qi = [libc::c_char; 8usize]; +pub type __v4si = [libc::c_int; 4usize]; +pub type __v4sf = [f32; 4usize]; +pub type __m128 = [f32; 4usize]; +pub type __m128_u = [f32; 4usize]; +pub type __v4su = [libc::c_uint; 4usize]; +pub type _Float32 = f32; +pub type _Float64 = f64; +pub type _Float32x = f64; +pub type _Float64x = u128; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct div_t { + pub quot: libc::c_int, + pub rem: libc::c_int, +} +#[test] +fn bindgen_test_layout_div_t() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(div_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(div_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).quot as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(div_t), + "::", + stringify!(quot) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).rem as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(div_t), + "::", + stringify!(rem) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ldiv_t { + pub quot: libc::c_long, + pub rem: libc::c_long, +} +#[test] +fn bindgen_test_layout_ldiv_t() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ldiv_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ldiv_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).quot as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ldiv_t), + "::", + stringify!(quot) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).rem as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ldiv_t), + "::", + stringify!(rem) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct lldiv_t { + pub quot: libc::c_longlong, + pub rem: libc::c_longlong, +} +#[test] +fn bindgen_test_layout_lldiv_t() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(lldiv_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(lldiv_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).quot as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(lldiv_t), + "::", + stringify!(quot) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).rem as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(lldiv_t), + "::", + stringify!(rem) + ) + ); +} +extern "C" { + pub fn __ctype_get_mb_cur_max() -> size_t; +} +extern "C" { + pub fn atof(__nptr: *const libc::c_char) -> f64; +} +extern "C" { + pub fn atoi(__nptr: *const libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn atol(__nptr: *const libc::c_char) -> libc::c_long; +} +extern "C" { + pub fn atoll(__nptr: *const libc::c_char) -> libc::c_longlong; +} +extern "C" { + pub fn strtod(__nptr: *const libc::c_char, __endptr: *mut *mut libc::c_char) -> f64; +} +extern "C" { + pub fn strtof(__nptr: *const libc::c_char, __endptr: *mut *mut libc::c_char) -> f32; +} +extern "C" { + pub fn strtold(__nptr: *const libc::c_char, __endptr: *mut *mut libc::c_char) -> u128; +} +extern "C" { + pub fn strtol( + __nptr: *const libc::c_char, + __endptr: *mut *mut libc::c_char, + __base: libc::c_int, + ) -> libc::c_long; +} +extern "C" { + pub fn strtoul( + __nptr: *const libc::c_char, + __endptr: *mut *mut libc::c_char, + __base: libc::c_int, + ) -> libc::c_ulong; +} +extern "C" { + pub fn strtoq( + __nptr: *const libc::c_char, + __endptr: *mut *mut libc::c_char, + __base: libc::c_int, + ) -> libc::c_longlong; +} +extern "C" { + pub fn strtouq( + __nptr: *const libc::c_char, + __endptr: *mut *mut libc::c_char, + __base: libc::c_int, + ) -> libc::c_ulonglong; +} +extern "C" { + pub fn strtoll( + __nptr: *const libc::c_char, + __endptr: *mut *mut libc::c_char, + __base: libc::c_int, + ) -> libc::c_longlong; +} +extern "C" { + pub fn strtoull( + __nptr: *const libc::c_char, + __endptr: *mut *mut libc::c_char, + __base: libc::c_int, + ) -> libc::c_ulonglong; +} +extern "C" { + pub fn l64a(__n: libc::c_long) -> *mut libc::c_char; +} +extern "C" { + pub fn a64l(__s: *const libc::c_char) -> libc::c_long; +} +pub type u_char = __u_char; +pub type u_short = __u_short; +pub type u_int = __u_int; +pub type u_long = __u_long; +pub type quad_t = __quad_t; +pub type u_quad_t = __u_quad_t; +pub type fsid_t = __fsid_t; +pub type loff_t = __loff_t; +pub type ino_t = __ino_t; +pub type dev_t = __dev_t; +pub type gid_t = __gid_t; +pub type mode_t = __mode_t; +pub type nlink_t = __nlink_t; +pub type uid_t = __uid_t; +pub type off_t = __off_t; +pub type pid_t = __pid_t; +pub type id_t = __id_t; +pub type ssize_t = __ssize_t; +pub type daddr_t = __daddr_t; +pub type caddr_t = __caddr_t; +pub type key_t = __key_t; +pub type clock_t = __clock_t; +pub type clockid_t = __clockid_t; +pub type time_t = __time_t; +pub type timer_t = __timer_t; +pub type ulong = libc::c_ulong; +pub type ushort = libc::c_ushort; +pub type uint = libc::c_uint; +pub type u_int8_t = __uint8_t; +pub type u_int16_t = __uint16_t; +pub type u_int32_t = __uint32_t; +pub type u_int64_t = __uint64_t; +pub type register_t = libc::c_long; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __sigset_t { + pub __val: [libc::c_ulong; 16usize], +} +#[test] +fn bindgen_test_layout___sigset_t() { + assert_eq!( + ::core::mem::size_of::<__sigset_t>(), + 128usize, + concat!("Size of: ", stringify!(__sigset_t)) + ); + assert_eq!( + ::core::mem::align_of::<__sigset_t>(), + 8usize, + concat!("Alignment of ", stringify!(__sigset_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__sigset_t>())).__val as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__sigset_t), + "::", + stringify!(__val) + ) + ); +} +pub type sigset_t = __sigset_t; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct timeval { + pub tv_sec: __time_t, + pub tv_usec: __suseconds_t, +} +#[test] +fn bindgen_test_layout_timeval() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(timeval)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(timeval)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).tv_sec as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(timeval), + "::", + stringify!(tv_sec) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).tv_usec as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(timeval), + "::", + stringify!(tv_usec) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct timespec { + pub tv_sec: __time_t, + pub tv_nsec: __syscall_slong_t, +} +#[test] +fn bindgen_test_layout_timespec() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(timespec)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(timespec)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).tv_sec as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(timespec), + "::", + stringify!(tv_sec) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).tv_nsec as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(timespec), + "::", + stringify!(tv_nsec) + ) + ); +} +pub type suseconds_t = __suseconds_t; +pub type __fd_mask = libc::c_long; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fd_set { + pub __fds_bits: [__fd_mask; 16usize], +} +#[test] +fn bindgen_test_layout_fd_set() { + assert_eq!( + ::core::mem::size_of::(), + 128usize, + concat!("Size of: ", stringify!(fd_set)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(fd_set)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__fds_bits as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(fd_set), + "::", + stringify!(__fds_bits) + ) + ); +} +pub type fd_mask = __fd_mask; +extern "C" { + pub fn select( + __nfds: libc::c_int, + __readfds: *mut fd_set, + __writefds: *mut fd_set, + __exceptfds: *mut fd_set, + __timeout: *mut timeval, + ) -> libc::c_int; +} +extern "C" { + pub fn pselect( + __nfds: libc::c_int, + __readfds: *mut fd_set, + __writefds: *mut fd_set, + __exceptfds: *mut fd_set, + __timeout: *const timespec, + __sigmask: *const __sigset_t, + ) -> libc::c_int; +} +pub type blksize_t = __blksize_t; +pub type blkcnt_t = __blkcnt_t; +pub type fsblkcnt_t = __fsblkcnt_t; +pub type fsfilcnt_t = __fsfilcnt_t; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __pthread_internal_list { + pub __prev: *mut __pthread_internal_list, + pub __next: *mut __pthread_internal_list, +} +#[test] +fn bindgen_test_layout___pthread_internal_list() { + assert_eq!( + ::core::mem::size_of::<__pthread_internal_list>(), + 16usize, + concat!("Size of: ", stringify!(__pthread_internal_list)) + ); + assert_eq!( + ::core::mem::align_of::<__pthread_internal_list>(), + 8usize, + concat!("Alignment of ", stringify!(__pthread_internal_list)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_internal_list>())).__prev as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__pthread_internal_list), + "::", + stringify!(__prev) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_internal_list>())).__next as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(__pthread_internal_list), + "::", + stringify!(__next) + ) + ); +} +pub type __pthread_list_t = __pthread_internal_list; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __pthread_internal_slist { + pub __next: *mut __pthread_internal_slist, +} +#[test] +fn bindgen_test_layout___pthread_internal_slist() { + assert_eq!( + ::core::mem::size_of::<__pthread_internal_slist>(), + 8usize, + concat!("Size of: ", stringify!(__pthread_internal_slist)) + ); + assert_eq!( + ::core::mem::align_of::<__pthread_internal_slist>(), + 8usize, + concat!("Alignment of ", stringify!(__pthread_internal_slist)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_internal_slist>())).__next as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__pthread_internal_slist), + "::", + stringify!(__next) + ) + ); +} +pub type __pthread_slist_t = __pthread_internal_slist; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __pthread_mutex_s { + pub __lock: libc::c_int, + pub __count: libc::c_uint, + pub __owner: libc::c_int, + pub __nusers: libc::c_uint, + pub __kind: libc::c_int, + pub __spins: libc::c_short, + pub __elision: libc::c_short, + pub __list: __pthread_list_t, +} +#[test] +fn bindgen_test_layout___pthread_mutex_s() { + assert_eq!( + ::core::mem::size_of::<__pthread_mutex_s>(), + 40usize, + concat!("Size of: ", stringify!(__pthread_mutex_s)) + ); + assert_eq!( + ::core::mem::align_of::<__pthread_mutex_s>(), + 8usize, + concat!("Alignment of ", stringify!(__pthread_mutex_s)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_mutex_s>())).__lock as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__pthread_mutex_s), + "::", + stringify!(__lock) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_mutex_s>())).__count as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(__pthread_mutex_s), + "::", + stringify!(__count) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_mutex_s>())).__owner as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(__pthread_mutex_s), + "::", + stringify!(__owner) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_mutex_s>())).__nusers as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(__pthread_mutex_s), + "::", + stringify!(__nusers) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_mutex_s>())).__kind as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(__pthread_mutex_s), + "::", + stringify!(__kind) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_mutex_s>())).__spins as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(__pthread_mutex_s), + "::", + stringify!(__spins) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_mutex_s>())).__elision as *const _ as usize }, + 22usize, + concat!( + "Offset of field: ", + stringify!(__pthread_mutex_s), + "::", + stringify!(__elision) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_mutex_s>())).__list as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(__pthread_mutex_s), + "::", + stringify!(__list) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __pthread_rwlock_arch_t { + pub __readers: libc::c_uint, + pub __writers: libc::c_uint, + pub __wrphase_futex: libc::c_uint, + pub __writers_futex: libc::c_uint, + pub __pad3: libc::c_uint, + pub __pad4: libc::c_uint, + pub __cur_writer: libc::c_int, + pub __shared: libc::c_int, + pub __rwelision: libc::c_schar, + pub __pad1: [libc::c_uchar; 7usize], + pub __pad2: libc::c_ulong, + pub __flags: libc::c_uint, +} +#[test] +fn bindgen_test_layout___pthread_rwlock_arch_t() { + assert_eq!( + ::core::mem::size_of::<__pthread_rwlock_arch_t>(), + 56usize, + concat!("Size of: ", stringify!(__pthread_rwlock_arch_t)) + ); + assert_eq!( + ::core::mem::align_of::<__pthread_rwlock_arch_t>(), + 8usize, + concat!("Alignment of ", stringify!(__pthread_rwlock_arch_t)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__readers as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__readers) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__writers as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__writers) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__wrphase_futex as *const _ + as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__wrphase_futex) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__writers_futex as *const _ + as usize + }, + 12usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__writers_futex) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__pad3 as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__pad3) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__pad4 as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__pad4) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__cur_writer as *const _ as usize + }, + 24usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__cur_writer) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__shared as *const _ as usize + }, + 28usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__shared) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__rwelision as *const _ as usize + }, + 32usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__rwelision) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__pad1 as *const _ as usize }, + 33usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__pad1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__pad2 as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__pad2) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__flags as *const _ as usize + }, + 48usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__flags) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __pthread_cond_s { + pub __bindgen_anon_1: __pthread_cond_s__bindgen_ty_1, + pub __bindgen_anon_2: __pthread_cond_s__bindgen_ty_2, + pub __g_refs: [libc::c_uint; 2usize], + pub __g_size: [libc::c_uint; 2usize], + pub __g1_orig_size: libc::c_uint, + pub __wrefs: libc::c_uint, + pub __g_signals: [libc::c_uint; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union __pthread_cond_s__bindgen_ty_1 { + pub __wseq: libc::c_ulonglong, + pub __wseq32: __pthread_cond_s__bindgen_ty_1__bindgen_ty_1, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 { + pub __low: libc::c_uint, + pub __high: libc::c_uint, +} +#[test] +fn bindgen_test_layout___pthread_cond_s__bindgen_ty_1__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::<__pthread_cond_s__bindgen_ty_1__bindgen_ty_1>(), + 8usize, + concat!( + "Size of: ", + stringify!(__pthread_cond_s__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::<__pthread_cond_s__bindgen_ty_1__bindgen_ty_1>(), + 4usize, + concat!( + "Alignment of ", + stringify!(__pthread_cond_s__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_cond_s__bindgen_ty_1__bindgen_ty_1>())).__low + as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(__low) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_cond_s__bindgen_ty_1__bindgen_ty_1>())).__high + as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(__high) + ) + ); +} +#[test] +fn bindgen_test_layout___pthread_cond_s__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::<__pthread_cond_s__bindgen_ty_1>(), + 8usize, + concat!("Size of: ", stringify!(__pthread_cond_s__bindgen_ty_1)) + ); + assert_eq!( + ::core::mem::align_of::<__pthread_cond_s__bindgen_ty_1>(), + 8usize, + concat!("Alignment of ", stringify!(__pthread_cond_s__bindgen_ty_1)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_cond_s__bindgen_ty_1>())).__wseq as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s__bindgen_ty_1), + "::", + stringify!(__wseq) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_cond_s__bindgen_ty_1>())).__wseq32 as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s__bindgen_ty_1), + "::", + stringify!(__wseq32) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union __pthread_cond_s__bindgen_ty_2 { + pub __g1_start: libc::c_ulonglong, + pub __g1_start32: __pthread_cond_s__bindgen_ty_2__bindgen_ty_1, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 { + pub __low: libc::c_uint, + pub __high: libc::c_uint, +} +#[test] +fn bindgen_test_layout___pthread_cond_s__bindgen_ty_2__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::<__pthread_cond_s__bindgen_ty_2__bindgen_ty_1>(), + 8usize, + concat!( + "Size of: ", + stringify!(__pthread_cond_s__bindgen_ty_2__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::<__pthread_cond_s__bindgen_ty_2__bindgen_ty_1>(), + 4usize, + concat!( + "Alignment of ", + stringify!(__pthread_cond_s__bindgen_ty_2__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_cond_s__bindgen_ty_2__bindgen_ty_1>())).__low + as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s__bindgen_ty_2__bindgen_ty_1), + "::", + stringify!(__low) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_cond_s__bindgen_ty_2__bindgen_ty_1>())).__high + as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s__bindgen_ty_2__bindgen_ty_1), + "::", + stringify!(__high) + ) + ); +} +#[test] +fn bindgen_test_layout___pthread_cond_s__bindgen_ty_2() { + assert_eq!( + ::core::mem::size_of::<__pthread_cond_s__bindgen_ty_2>(), + 8usize, + concat!("Size of: ", stringify!(__pthread_cond_s__bindgen_ty_2)) + ); + assert_eq!( + ::core::mem::align_of::<__pthread_cond_s__bindgen_ty_2>(), + 8usize, + concat!("Alignment of ", stringify!(__pthread_cond_s__bindgen_ty_2)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_cond_s__bindgen_ty_2>())).__g1_start as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s__bindgen_ty_2), + "::", + stringify!(__g1_start) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_cond_s__bindgen_ty_2>())).__g1_start32 as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s__bindgen_ty_2), + "::", + stringify!(__g1_start32) + ) + ); +} +#[test] +fn bindgen_test_layout___pthread_cond_s() { + assert_eq!( + ::core::mem::size_of::<__pthread_cond_s>(), + 48usize, + concat!("Size of: ", stringify!(__pthread_cond_s)) + ); + assert_eq!( + ::core::mem::align_of::<__pthread_cond_s>(), + 8usize, + concat!("Alignment of ", stringify!(__pthread_cond_s)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_cond_s>())).__g_refs as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s), + "::", + stringify!(__g_refs) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_cond_s>())).__g_size as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s), + "::", + stringify!(__g_size) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_cond_s>())).__g1_orig_size as *const _ as usize + }, + 32usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s), + "::", + stringify!(__g1_orig_size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_cond_s>())).__wrefs as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s), + "::", + stringify!(__wrefs) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_cond_s>())).__g_signals as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s), + "::", + stringify!(__g_signals) + ) + ); +} +pub type __tss_t = libc::c_uint; +pub type __thrd_t = libc::c_ulong; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __once_flag { + pub __data: libc::c_int, +} +#[test] +fn bindgen_test_layout___once_flag() { + assert_eq!( + ::core::mem::size_of::<__once_flag>(), + 4usize, + concat!("Size of: ", stringify!(__once_flag)) + ); + assert_eq!( + ::core::mem::align_of::<__once_flag>(), + 4usize, + concat!("Alignment of ", stringify!(__once_flag)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__once_flag>())).__data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__once_flag), + "::", + stringify!(__data) + ) + ); +} +pub type pthread_t = libc::c_ulong; +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_mutexattr_t { + pub __size: [libc::c_char; 4usize], + pub __align: libc::c_int, + _bindgen_union_align: u32, +} +#[test] +fn bindgen_test_layout_pthread_mutexattr_t() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(pthread_mutexattr_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(pthread_mutexattr_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_mutexattr_t), + "::", + stringify!(__size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__align as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_mutexattr_t), + "::", + stringify!(__align) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_condattr_t { + pub __size: [libc::c_char; 4usize], + pub __align: libc::c_int, + _bindgen_union_align: u32, +} +#[test] +fn bindgen_test_layout_pthread_condattr_t() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(pthread_condattr_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(pthread_condattr_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_condattr_t), + "::", + stringify!(__size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__align as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_condattr_t), + "::", + stringify!(__align) + ) + ); +} +pub type pthread_key_t = libc::c_uint; +pub type pthread_once_t = libc::c_int; +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_attr_t { + pub __size: [libc::c_char; 56usize], + pub __align: libc::c_long, + _bindgen_union_align: [u64; 7usize], +} +#[test] +fn bindgen_test_layout_pthread_attr_t() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(pthread_attr_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(pthread_attr_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_attr_t), + "::", + stringify!(__size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__align as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_attr_t), + "::", + stringify!(__align) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_mutex_t { + pub __data: __pthread_mutex_s, + pub __size: [libc::c_char; 40usize], + pub __align: libc::c_long, + _bindgen_union_align: [u64; 5usize], +} +#[test] +fn bindgen_test_layout_pthread_mutex_t() { + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(pthread_mutex_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(pthread_mutex_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_mutex_t), + "::", + stringify!(__data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_mutex_t), + "::", + stringify!(__size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__align as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_mutex_t), + "::", + stringify!(__align) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_cond_t { + pub __data: __pthread_cond_s, + pub __size: [libc::c_char; 48usize], + pub __align: libc::c_longlong, + _bindgen_union_align: [u64; 6usize], +} +#[test] +fn bindgen_test_layout_pthread_cond_t() { + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(pthread_cond_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(pthread_cond_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_cond_t), + "::", + stringify!(__data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_cond_t), + "::", + stringify!(__size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__align as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_cond_t), + "::", + stringify!(__align) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_rwlock_t { + pub __data: __pthread_rwlock_arch_t, + pub __size: [libc::c_char; 56usize], + pub __align: libc::c_long, + _bindgen_union_align: [u64; 7usize], +} +#[test] +fn bindgen_test_layout_pthread_rwlock_t() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(pthread_rwlock_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(pthread_rwlock_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_rwlock_t), + "::", + stringify!(__data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_rwlock_t), + "::", + stringify!(__size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__align as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_rwlock_t), + "::", + stringify!(__align) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_rwlockattr_t { + pub __size: [libc::c_char; 8usize], + pub __align: libc::c_long, + _bindgen_union_align: u64, +} +#[test] +fn bindgen_test_layout_pthread_rwlockattr_t() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(pthread_rwlockattr_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(pthread_rwlockattr_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_rwlockattr_t), + "::", + stringify!(__size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__align as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_rwlockattr_t), + "::", + stringify!(__align) + ) + ); +} +pub type pthread_spinlock_t = libc::c_int; +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_barrier_t { + pub __size: [libc::c_char; 32usize], + pub __align: libc::c_long, + _bindgen_union_align: [u64; 4usize], +} +#[test] +fn bindgen_test_layout_pthread_barrier_t() { + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(pthread_barrier_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(pthread_barrier_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_barrier_t), + "::", + stringify!(__size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__align as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_barrier_t), + "::", + stringify!(__align) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_barrierattr_t { + pub __size: [libc::c_char; 4usize], + pub __align: libc::c_int, + _bindgen_union_align: u32, +} +#[test] +fn bindgen_test_layout_pthread_barrierattr_t() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(pthread_barrierattr_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(pthread_barrierattr_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_barrierattr_t), + "::", + stringify!(__size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__align as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_barrierattr_t), + "::", + stringify!(__align) + ) + ); +} +extern "C" { + pub fn random() -> libc::c_long; +} +extern "C" { + pub fn srandom(__seed: libc::c_uint); +} +extern "C" { + pub fn initstate( + __seed: libc::c_uint, + __statebuf: *mut libc::c_char, + __statelen: size_t, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn setstate(__statebuf: *mut libc::c_char) -> *mut libc::c_char; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct random_data { + pub fptr: *mut i32, + pub rptr: *mut i32, + pub state: *mut i32, + pub rand_type: libc::c_int, + pub rand_deg: libc::c_int, + pub rand_sep: libc::c_int, + pub end_ptr: *mut i32, +} +#[test] +fn bindgen_test_layout_random_data() { + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(random_data)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(random_data)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fptr as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(random_data), + "::", + stringify!(fptr) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).rptr as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(random_data), + "::", + stringify!(rptr) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(random_data), + "::", + stringify!(state) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).rand_type as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(random_data), + "::", + stringify!(rand_type) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).rand_deg as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(random_data), + "::", + stringify!(rand_deg) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).rand_sep as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(random_data), + "::", + stringify!(rand_sep) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).end_ptr as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(random_data), + "::", + stringify!(end_ptr) + ) + ); +} +extern "C" { + pub fn random_r(__buf: *mut random_data, __result: *mut i32) -> libc::c_int; +} +extern "C" { + pub fn srandom_r(__seed: libc::c_uint, __buf: *mut random_data) -> libc::c_int; +} +extern "C" { + pub fn initstate_r( + __seed: libc::c_uint, + __statebuf: *mut libc::c_char, + __statelen: size_t, + __buf: *mut random_data, + ) -> libc::c_int; +} +extern "C" { + pub fn setstate_r(__statebuf: *mut libc::c_char, __buf: *mut random_data) -> libc::c_int; +} +extern "C" { + pub fn rand() -> libc::c_int; +} +extern "C" { + pub fn srand(__seed: libc::c_uint); +} +extern "C" { + pub fn rand_r(__seed: *mut libc::c_uint) -> libc::c_int; +} +extern "C" { + pub fn drand48() -> f64; +} +extern "C" { + pub fn erand48(__xsubi: *mut libc::c_ushort) -> f64; +} +extern "C" { + pub fn lrand48() -> libc::c_long; +} +extern "C" { + pub fn nrand48(__xsubi: *mut libc::c_ushort) -> libc::c_long; +} +extern "C" { + pub fn mrand48() -> libc::c_long; +} +extern "C" { + pub fn jrand48(__xsubi: *mut libc::c_ushort) -> libc::c_long; +} +extern "C" { + pub fn srand48(__seedval: libc::c_long); +} +extern "C" { + pub fn seed48(__seed16v: *mut libc::c_ushort) -> *mut libc::c_ushort; +} +extern "C" { + pub fn lcong48(__param: *mut libc::c_ushort); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct drand48_data { + pub __x: [libc::c_ushort; 3usize], + pub __old_x: [libc::c_ushort; 3usize], + pub __c: libc::c_ushort, + pub __init: libc::c_ushort, + pub __a: libc::c_ulonglong, +} +#[test] +fn bindgen_test_layout_drand48_data() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(drand48_data)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(drand48_data)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__x as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(drand48_data), + "::", + stringify!(__x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__old_x as *const _ as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(drand48_data), + "::", + stringify!(__old_x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__c as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(drand48_data), + "::", + stringify!(__c) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__init as *const _ as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(drand48_data), + "::", + stringify!(__init) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__a as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(drand48_data), + "::", + stringify!(__a) + ) + ); +} +extern "C" { + pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64) -> libc::c_int; +} +extern "C" { + pub fn erand48_r( + __xsubi: *mut libc::c_ushort, + __buffer: *mut drand48_data, + __result: *mut f64, + ) -> libc::c_int; +} +extern "C" { + pub fn lrand48_r(__buffer: *mut drand48_data, __result: *mut libc::c_long) -> libc::c_int; +} +extern "C" { + pub fn nrand48_r( + __xsubi: *mut libc::c_ushort, + __buffer: *mut drand48_data, + __result: *mut libc::c_long, + ) -> libc::c_int; +} +extern "C" { + pub fn mrand48_r(__buffer: *mut drand48_data, __result: *mut libc::c_long) -> libc::c_int; +} +extern "C" { + pub fn jrand48_r( + __xsubi: *mut libc::c_ushort, + __buffer: *mut drand48_data, + __result: *mut libc::c_long, + ) -> libc::c_int; +} +extern "C" { + pub fn srand48_r(__seedval: libc::c_long, __buffer: *mut drand48_data) -> libc::c_int; +} +extern "C" { + pub fn seed48_r(__seed16v: *mut libc::c_ushort, __buffer: *mut drand48_data) -> libc::c_int; +} +extern "C" { + pub fn lcong48_r(__param: *mut libc::c_ushort, __buffer: *mut drand48_data) -> libc::c_int; +} +extern "C" { + pub fn malloc(__size: libc::c_ulong) -> *mut libc::c_void; +} +extern "C" { + pub fn calloc(__nmemb: libc::c_ulong, __size: libc::c_ulong) -> *mut libc::c_void; +} +extern "C" { + pub fn realloc(__ptr: *mut libc::c_void, __size: libc::c_ulong) -> *mut libc::c_void; +} +extern "C" { + pub fn reallocarray( + __ptr: *mut libc::c_void, + __nmemb: size_t, + __size: size_t, + ) -> *mut libc::c_void; +} +extern "C" { + pub fn free(__ptr: *mut libc::c_void); +} +extern "C" { + pub fn alloca(__size: libc::c_ulong) -> *mut libc::c_void; +} +extern "C" { + pub fn valloc(__size: size_t) -> *mut libc::c_void; +} +extern "C" { + pub fn posix_memalign( + __memptr: *mut *mut libc::c_void, + __alignment: size_t, + __size: size_t, + ) -> libc::c_int; +} +extern "C" { + pub fn aligned_alloc(__alignment: size_t, __size: size_t) -> *mut libc::c_void; +} +extern "C" { + pub fn abort(); +} +extern "C" { + pub fn atexit(__func: ::core::option::Option) -> libc::c_int; +} +extern "C" { + pub fn at_quick_exit(__func: ::core::option::Option) -> libc::c_int; +} +extern "C" { + pub fn on_exit( + __func: ::core::option::Option< + unsafe extern "C" fn(__status: libc::c_int, __arg: *mut libc::c_void), + >, + __arg: *mut libc::c_void, + ) -> libc::c_int; +} +extern "C" { + pub fn exit(__status: libc::c_int); +} +extern "C" { + pub fn quick_exit(__status: libc::c_int); +} +extern "C" { + pub fn _Exit(__status: libc::c_int); +} +extern "C" { + pub fn getenv(__name: *const libc::c_char) -> *mut libc::c_char; +} +extern "C" { + pub fn putenv(__string: *mut libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn setenv( + __name: *const libc::c_char, + __value: *const libc::c_char, + __replace: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn unsetenv(__name: *const libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn clearenv() -> libc::c_int; +} +extern "C" { + pub fn mktemp(__template: *mut libc::c_char) -> *mut libc::c_char; +} +extern "C" { + pub fn mkstemp(__template: *mut libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn mkstemps(__template: *mut libc::c_char, __suffixlen: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn mkdtemp(__template: *mut libc::c_char) -> *mut libc::c_char; +} +extern "C" { + pub fn system(__command: *const libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn realpath( + __name: *const libc::c_char, + __resolved: *mut libc::c_char, + ) -> *mut libc::c_char; +} +pub type __compar_fn_t = ::core::option::Option< + unsafe extern "C" fn(arg1: *const libc::c_void, arg2: *const libc::c_void) -> libc::c_int, +>; +extern "C" { + pub fn bsearch( + __key: *const libc::c_void, + __base: *const libc::c_void, + __nmemb: size_t, + __size: size_t, + __compar: __compar_fn_t, + ) -> *mut libc::c_void; +} +extern "C" { + pub fn qsort( + __base: *mut libc::c_void, + __nmemb: size_t, + __size: size_t, + __compar: __compar_fn_t, + ); +} +extern "C" { + pub fn abs(__x: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn labs(__x: libc::c_long) -> libc::c_long; +} +extern "C" { + pub fn llabs(__x: libc::c_longlong) -> libc::c_longlong; +} +extern "C" { + pub fn div(__numer: libc::c_int, __denom: libc::c_int) -> div_t; +} +extern "C" { + pub fn ldiv(__numer: libc::c_long, __denom: libc::c_long) -> ldiv_t; +} +extern "C" { + pub fn lldiv(__numer: libc::c_longlong, __denom: libc::c_longlong) -> lldiv_t; +} +extern "C" { + pub fn ecvt( + __value: f64, + __ndigit: libc::c_int, + __decpt: *mut libc::c_int, + __sign: *mut libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn fcvt( + __value: f64, + __ndigit: libc::c_int, + __decpt: *mut libc::c_int, + __sign: *mut libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn gcvt(__value: f64, __ndigit: libc::c_int, __buf: *mut libc::c_char) + -> *mut libc::c_char; +} +extern "C" { + pub fn qecvt( + __value: u128, + __ndigit: libc::c_int, + __decpt: *mut libc::c_int, + __sign: *mut libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn qfcvt( + __value: u128, + __ndigit: libc::c_int, + __decpt: *mut libc::c_int, + __sign: *mut libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn qgcvt( + __value: u128, + __ndigit: libc::c_int, + __buf: *mut libc::c_char, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn ecvt_r( + __value: f64, + __ndigit: libc::c_int, + __decpt: *mut libc::c_int, + __sign: *mut libc::c_int, + __buf: *mut libc::c_char, + __len: size_t, + ) -> libc::c_int; +} +extern "C" { + pub fn fcvt_r( + __value: f64, + __ndigit: libc::c_int, + __decpt: *mut libc::c_int, + __sign: *mut libc::c_int, + __buf: *mut libc::c_char, + __len: size_t, + ) -> libc::c_int; +} +extern "C" { + pub fn qecvt_r( + __value: u128, + __ndigit: libc::c_int, + __decpt: *mut libc::c_int, + __sign: *mut libc::c_int, + __buf: *mut libc::c_char, + __len: size_t, + ) -> libc::c_int; +} +extern "C" { + pub fn qfcvt_r( + __value: u128, + __ndigit: libc::c_int, + __decpt: *mut libc::c_int, + __sign: *mut libc::c_int, + __buf: *mut libc::c_char, + __len: size_t, + ) -> libc::c_int; +} +extern "C" { + pub fn mblen(__s: *const libc::c_char, __n: size_t) -> libc::c_int; +} +extern "C" { + pub fn mbtowc(__pwc: *mut wchar_t, __s: *const libc::c_char, __n: size_t) -> libc::c_int; +} +extern "C" { + pub fn wctomb(__s: *mut libc::c_char, __wchar: wchar_t) -> libc::c_int; +} +extern "C" { + pub fn mbstowcs(__pwcs: *mut wchar_t, __s: *const libc::c_char, __n: size_t) -> size_t; +} +extern "C" { + pub fn wcstombs(__s: *mut libc::c_char, __pwcs: *const wchar_t, __n: size_t) -> size_t; +} +extern "C" { + pub fn rpmatch(__response: *const libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn getsubopt( + __optionp: *mut *mut libc::c_char, + __tokens: *const *mut libc::c_char, + __valuep: *mut *mut libc::c_char, + ) -> libc::c_int; +} +extern "C" { + pub fn getloadavg(__loadavg: *mut f64, __nelem: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn _mm_sfence(); +} +extern "C" { + pub fn _mm_getcsr() -> libc::c_uint; +} +extern "C" { + pub fn _mm_setcsr(__i: libc::c_uint); +} +pub type __m128d = [f64; 2usize]; +pub type __m128i = [libc::c_longlong; 2usize]; +pub type __m128d_u = [f64; 2usize]; +pub type __m128i_u = [libc::c_longlong; 2usize]; +pub type __v2df = [f64; 2usize]; +pub type __v2di = [libc::c_longlong; 2usize]; +pub type __v8hi = [libc::c_short; 8usize]; +pub type __v16qi = [libc::c_char; 16usize]; +pub type __v2du = [libc::c_ulonglong; 2usize]; +pub type __v8hu = [libc::c_ushort; 8usize]; +pub type __v16qu = [libc::c_uchar; 16usize]; +pub type __v16qs = [libc::c_schar; 16usize]; +extern "C" { + pub fn _mm_clflush(__p: *const libc::c_void); +} +extern "C" { + pub fn _mm_lfence(); +} +extern "C" { + pub fn _mm_mfence(); +} +extern "C" { + pub fn _mm_pause(); +} +extern "C" { + #[doc = " This function returns the number of CPU cores available."] + pub fn SDL_GetCPUCount() -> libc::c_int; +} +extern "C" { + #[doc = " This function returns the L1 cache line size of the CPU"] + #[doc = ""] + #[doc = " This is useful for determining multi-threaded structure padding"] + #[doc = " or SIMD prefetch sizes."] + pub fn SDL_GetCPUCacheLineSize() -> libc::c_int; +} +extern "C" { + #[doc = " This function returns true if the CPU has the RDTSC instruction."] + pub fn SDL_HasRDTSC() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has AltiVec features."] + pub fn SDL_HasAltiVec() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has MMX features."] + pub fn SDL_HasMMX() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has 3DNow! features."] + pub fn SDL_Has3DNow() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has SSE features."] + pub fn SDL_HasSSE() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has SSE2 features."] + pub fn SDL_HasSSE2() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has SSE3 features."] + pub fn SDL_HasSSE3() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has SSE4.1 features."] + pub fn SDL_HasSSE41() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has SSE4.2 features."] + pub fn SDL_HasSSE42() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has AVX features."] + pub fn SDL_HasAVX() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has AVX2 features."] + pub fn SDL_HasAVX2() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has AVX-512F (foundation) features."] + pub fn SDL_HasAVX512F() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has ARM SIMD (ARMv6) features."] + pub fn SDL_HasARMSIMD() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has NEON (ARM SIMD) features."] + pub fn SDL_HasNEON() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns the amount of RAM configured in the system, in MB."] + pub fn SDL_GetSystemRAM() -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Report the alignment this system needs for SIMD allocations."] + #[doc = ""] + #[doc = " This will return the minimum number of bytes to which a pointer must be"] + #[doc = " aligned to be compatible with SIMD instructions on the current machine."] + #[doc = " For example, if the machine supports SSE only, it will return 16, but if"] + #[doc = " it supports AVX-512F, it'll return 64 (etc). This only reports values for"] + #[doc = " instruction sets SDL knows about, so if your SDL build doesn't have"] + #[doc = " SDL_HasAVX512F(), then it might return 16 for the SSE support it sees and"] + #[doc = " not 64 for the AVX-512 instructions that exist but SDL doesn't know about."] + #[doc = " Plan accordingly."] + pub fn SDL_SIMDGetAlignment() -> size_t; +} +extern "C" { + #[doc = " \\brief Allocate memory in a SIMD-friendly way."] + #[doc = ""] + #[doc = " This will allocate a block of memory that is suitable for use with SIMD"] + #[doc = " instructions. Specifically, it will be properly aligned and padded for"] + #[doc = " the system's supported vector instructions."] + #[doc = ""] + #[doc = " The memory returned will be padded such that it is safe to read or write"] + #[doc = " an incomplete vector at the end of the memory block. This can be useful"] + #[doc = " so you don't have to drop back to a scalar fallback at the end of your"] + #[doc = " SIMD processing loop to deal with the final elements without overflowing"] + #[doc = " the allocated buffer."] + #[doc = ""] + #[doc = " You must free this memory with SDL_FreeSIMD(), not free() or SDL_free()"] + #[doc = " or delete[], etc."] + #[doc = ""] + #[doc = " Note that SDL will only deal with SIMD instruction sets it is aware of;"] + #[doc = " for example, SDL 2.0.8 knows that SSE wants 16-byte vectors"] + #[doc = " (SDL_HasSSE()), and AVX2 wants 32 bytes (SDL_HasAVX2()), but doesn't"] + #[doc = " know that AVX-512 wants 64. To be clear: if you can't decide to use an"] + #[doc = " instruction set with an SDL_Has*() function, don't use that instruction"] + #[doc = " set with memory allocated through here."] + #[doc = ""] + #[doc = " SDL_AllocSIMD(0) will return a non-NULL pointer, assuming the system isn't"] + #[doc = " out of memory."] + #[doc = ""] + #[doc = " \\param len The length, in bytes, of the block to allocated. The actual"] + #[doc = " allocated block might be larger due to padding, etc."] + #[doc = " \\return Pointer to newly-allocated block, NULL if out of memory."] + #[doc = ""] + #[doc = " \\sa SDL_SIMDAlignment"] + #[doc = " \\sa SDL_SIMDRealloc"] + #[doc = " \\sa SDL_SIMDFree"] + pub fn SDL_SIMDAlloc(len: size_t) -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Reallocate memory obtained from SDL_SIMDAlloc"] + #[doc = ""] + #[doc = " It is not valid to use this function on a pointer from anything but"] + #[doc = " SDL_SIMDAlloc(). It can't be used on pointers from malloc, realloc,"] + #[doc = " SDL_malloc, memalign, new[], etc."] + #[doc = ""] + #[doc = " \\param mem The pointer obtained from SDL_SIMDAlloc. This function also"] + #[doc = " accepts NULL, at which point this function is the same as"] + #[doc = " calling SDL_realloc with a NULL pointer."] + #[doc = " \\param len The length, in bytes, of the block to allocated. The actual"] + #[doc = " allocated block might be larger due to padding, etc. Passing 0"] + #[doc = " will return a non-NULL pointer, assuming the system isn't out of"] + #[doc = " memory."] + #[doc = " \\return Pointer to newly-reallocated block, NULL if out of memory."] + #[doc = ""] + #[doc = " \\sa SDL_SIMDAlignment"] + #[doc = " \\sa SDL_SIMDAlloc"] + #[doc = " \\sa SDL_SIMDFree"] + pub fn SDL_SIMDRealloc(mem: *mut libc::c_void, len: size_t) -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Deallocate memory obtained from SDL_SIMDAlloc"] + #[doc = ""] + #[doc = " It is not valid to use this function on a pointer from anything but"] + #[doc = " SDL_SIMDAlloc(). It can't be used on pointers from malloc, realloc,"] + #[doc = " SDL_malloc, memalign, new[], etc."] + #[doc = ""] + #[doc = " However, SDL_SIMDFree(NULL) is a legal no-op."] + #[doc = ""] + #[doc = " \\sa SDL_SIMDAlloc"] + #[doc = " \\sa SDL_SIMDRealloc"] + pub fn SDL_SIMDFree(ptr: *mut libc::c_void); +} +#[repr(u32)] +#[doc = " Pixel type."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_PixelType { + SDL_PIXELTYPE_UNKNOWN = 0, + SDL_PIXELTYPE_INDEX1 = 1, + SDL_PIXELTYPE_INDEX4 = 2, + SDL_PIXELTYPE_INDEX8 = 3, + SDL_PIXELTYPE_PACKED8 = 4, + SDL_PIXELTYPE_PACKED16 = 5, + SDL_PIXELTYPE_PACKED32 = 6, + SDL_PIXELTYPE_ARRAYU8 = 7, + SDL_PIXELTYPE_ARRAYU16 = 8, + SDL_PIXELTYPE_ARRAYU32 = 9, + SDL_PIXELTYPE_ARRAYF16 = 10, + SDL_PIXELTYPE_ARRAYF32 = 11, +} +#[repr(u32)] +#[doc = " Bitmap pixel order, high bit -> low bit."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_BitmapOrder { + SDL_BITMAPORDER_NONE = 0, + SDL_BITMAPORDER_4321 = 1, + SDL_BITMAPORDER_1234 = 2, +} +#[repr(u32)] +#[doc = " Packed component order, high bit -> low bit."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_PackedOrder { + SDL_PACKEDORDER_NONE = 0, + SDL_PACKEDORDER_XRGB = 1, + SDL_PACKEDORDER_RGBX = 2, + SDL_PACKEDORDER_ARGB = 3, + SDL_PACKEDORDER_RGBA = 4, + SDL_PACKEDORDER_XBGR = 5, + SDL_PACKEDORDER_BGRX = 6, + SDL_PACKEDORDER_ABGR = 7, + SDL_PACKEDORDER_BGRA = 8, +} +#[repr(u32)] +#[doc = " Array component order, low byte -> high byte."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_ArrayOrder { + SDL_ARRAYORDER_NONE = 0, + SDL_ARRAYORDER_RGB = 1, + SDL_ARRAYORDER_RGBA = 2, + SDL_ARRAYORDER_ARGB = 3, + SDL_ARRAYORDER_BGR = 4, + SDL_ARRAYORDER_BGRA = 5, + SDL_ARRAYORDER_ABGR = 6, +} +#[repr(u32)] +#[doc = " Packed component layout."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_PackedLayout { + SDL_PACKEDLAYOUT_NONE = 0, + SDL_PACKEDLAYOUT_332 = 1, + SDL_PACKEDLAYOUT_4444 = 2, + SDL_PACKEDLAYOUT_1555 = 3, + SDL_PACKEDLAYOUT_5551 = 4, + SDL_PACKEDLAYOUT_565 = 5, + SDL_PACKEDLAYOUT_8888 = 6, + SDL_PACKEDLAYOUT_2101010 = 7, + SDL_PACKEDLAYOUT_1010102 = 8, +} +impl SDL_PixelFormatEnum { + pub const SDL_PIXELFORMAT_RGB444: SDL_PixelFormatEnum = + SDL_PixelFormatEnum::SDL_PIXELFORMAT_XRGB4444; +} +impl SDL_PixelFormatEnum { + pub const SDL_PIXELFORMAT_BGR444: SDL_PixelFormatEnum = + SDL_PixelFormatEnum::SDL_PIXELFORMAT_XBGR4444; +} +impl SDL_PixelFormatEnum { + pub const SDL_PIXELFORMAT_RGB555: SDL_PixelFormatEnum = + SDL_PixelFormatEnum::SDL_PIXELFORMAT_XRGB1555; +} +impl SDL_PixelFormatEnum { + pub const SDL_PIXELFORMAT_BGR555: SDL_PixelFormatEnum = + SDL_PixelFormatEnum::SDL_PIXELFORMAT_XBGR1555; +} +impl SDL_PixelFormatEnum { + pub const SDL_PIXELFORMAT_RGB888: SDL_PixelFormatEnum = + SDL_PixelFormatEnum::SDL_PIXELFORMAT_XRGB8888; +} +impl SDL_PixelFormatEnum { + pub const SDL_PIXELFORMAT_BGR888: SDL_PixelFormatEnum = + SDL_PixelFormatEnum::SDL_PIXELFORMAT_XBGR8888; +} +impl SDL_PixelFormatEnum { + pub const SDL_PIXELFORMAT_RGBA32: SDL_PixelFormatEnum = + SDL_PixelFormatEnum::SDL_PIXELFORMAT_ABGR8888; +} +impl SDL_PixelFormatEnum { + pub const SDL_PIXELFORMAT_ARGB32: SDL_PixelFormatEnum = + SDL_PixelFormatEnum::SDL_PIXELFORMAT_BGRA8888; +} +impl SDL_PixelFormatEnum { + pub const SDL_PIXELFORMAT_BGRA32: SDL_PixelFormatEnum = + SDL_PixelFormatEnum::SDL_PIXELFORMAT_ARGB8888; +} +impl SDL_PixelFormatEnum { + pub const SDL_PIXELFORMAT_ABGR32: SDL_PixelFormatEnum = + SDL_PixelFormatEnum::SDL_PIXELFORMAT_RGBA8888; +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_PixelFormatEnum { + SDL_PIXELFORMAT_UNKNOWN = 0, + SDL_PIXELFORMAT_INDEX1LSB = 286261504, + SDL_PIXELFORMAT_INDEX1MSB = 287310080, + SDL_PIXELFORMAT_INDEX4LSB = 303039488, + SDL_PIXELFORMAT_INDEX4MSB = 304088064, + SDL_PIXELFORMAT_INDEX8 = 318769153, + SDL_PIXELFORMAT_RGB332 = 336660481, + SDL_PIXELFORMAT_XRGB4444 = 353504258, + SDL_PIXELFORMAT_XBGR4444 = 357698562, + SDL_PIXELFORMAT_XRGB1555 = 353570562, + SDL_PIXELFORMAT_XBGR1555 = 357764866, + SDL_PIXELFORMAT_ARGB4444 = 355602434, + SDL_PIXELFORMAT_RGBA4444 = 356651010, + SDL_PIXELFORMAT_ABGR4444 = 359796738, + SDL_PIXELFORMAT_BGRA4444 = 360845314, + SDL_PIXELFORMAT_ARGB1555 = 355667970, + SDL_PIXELFORMAT_RGBA5551 = 356782082, + SDL_PIXELFORMAT_ABGR1555 = 359862274, + SDL_PIXELFORMAT_BGRA5551 = 360976386, + SDL_PIXELFORMAT_RGB565 = 353701890, + SDL_PIXELFORMAT_BGR565 = 357896194, + SDL_PIXELFORMAT_RGB24 = 386930691, + SDL_PIXELFORMAT_BGR24 = 390076419, + SDL_PIXELFORMAT_XRGB8888 = 370546692, + SDL_PIXELFORMAT_RGBX8888 = 371595268, + SDL_PIXELFORMAT_XBGR8888 = 374740996, + SDL_PIXELFORMAT_BGRX8888 = 375789572, + SDL_PIXELFORMAT_ARGB8888 = 372645892, + SDL_PIXELFORMAT_RGBA8888 = 373694468, + SDL_PIXELFORMAT_ABGR8888 = 376840196, + SDL_PIXELFORMAT_BGRA8888 = 377888772, + SDL_PIXELFORMAT_ARGB2101010 = 372711428, + #[doc = "< Planar mode: Y + V + U (3 planes)"] + SDL_PIXELFORMAT_YV12 = 842094169, + #[doc = "< Planar mode: Y + U + V (3 planes)"] + SDL_PIXELFORMAT_IYUV = 1448433993, + #[doc = "< Packed mode: Y0+U0+Y1+V0 (1 plane)"] + SDL_PIXELFORMAT_YUY2 = 844715353, + #[doc = "< Packed mode: U0+Y0+V0+Y1 (1 plane)"] + SDL_PIXELFORMAT_UYVY = 1498831189, + #[doc = "< Packed mode: Y0+V0+Y1+U0 (1 plane)"] + SDL_PIXELFORMAT_YVYU = 1431918169, + #[doc = "< Planar mode: Y + U/V interleaved (2 planes)"] + SDL_PIXELFORMAT_NV12 = 842094158, + #[doc = "< Planar mode: Y + V/U interleaved (2 planes)"] + SDL_PIXELFORMAT_NV21 = 825382478, + #[doc = "< Android video texture format"] + SDL_PIXELFORMAT_EXTERNAL_OES = 542328143, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Color { + pub r: Uint8, + pub g: Uint8, + pub b: Uint8, + pub a: Uint8, +} +#[test] +fn bindgen_test_layout_SDL_Color() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(SDL_Color)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(SDL_Color)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).r as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Color), + "::", + stringify!(r) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).g as *const _ as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(SDL_Color), + "::", + stringify!(g) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).b as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(SDL_Color), + "::", + stringify!(b) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).a as *const _ as usize }, + 3usize, + concat!( + "Offset of field: ", + stringify!(SDL_Color), + "::", + stringify!(a) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Palette { + pub ncolors: libc::c_int, + pub colors: *mut SDL_Color, + pub version: Uint32, + pub refcount: libc::c_int, +} +#[test] +fn bindgen_test_layout_SDL_Palette() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(SDL_Palette)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_Palette)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ncolors as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Palette), + "::", + stringify!(ncolors) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).colors as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_Palette), + "::", + stringify!(colors) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).version as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_Palette), + "::", + stringify!(version) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).refcount as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_Palette), + "::", + stringify!(refcount) + ) + ); +} +#[doc = " \\note Everything in the pixel format structure is read-only."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_PixelFormat { + pub format: Uint32, + pub palette: *mut SDL_Palette, + pub BitsPerPixel: Uint8, + pub BytesPerPixel: Uint8, + pub padding: [Uint8; 2usize], + pub Rmask: Uint32, + pub Gmask: Uint32, + pub Bmask: Uint32, + pub Amask: Uint32, + pub Rloss: Uint8, + pub Gloss: Uint8, + pub Bloss: Uint8, + pub Aloss: Uint8, + pub Rshift: Uint8, + pub Gshift: Uint8, + pub Bshift: Uint8, + pub Ashift: Uint8, + pub refcount: libc::c_int, + pub next: *mut SDL_PixelFormat, +} +#[test] +fn bindgen_test_layout_SDL_PixelFormat() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(SDL_PixelFormat)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_PixelFormat)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).format as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(format) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).palette as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(palette) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).BitsPerPixel as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(BitsPerPixel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).BytesPerPixel as *const _ as usize }, + 17usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(BytesPerPixel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding as *const _ as usize }, + 18usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(padding) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Rmask as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Rmask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Gmask as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Gmask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Bmask as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Bmask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Amask as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Amask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Rloss as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Rloss) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Gloss as *const _ as usize }, + 37usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Gloss) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Bloss as *const _ as usize }, + 38usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Bloss) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Aloss as *const _ as usize }, + 39usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Aloss) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Rshift as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Rshift) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Gshift as *const _ as usize }, + 41usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Gshift) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Bshift as *const _ as usize }, + 42usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Bshift) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Ashift as *const _ as usize }, + 43usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Ashift) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).refcount as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(refcount) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).next as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(next) + ) + ); +} +extern "C" { + #[doc = " \\brief Get the human readable name of a pixel format"] + pub fn SDL_GetPixelFormatName(format: Uint32) -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Convert one of the enumerated pixel formats to a bpp and RGBA masks."] + #[doc = ""] + #[doc = " \\return SDL_TRUE, or SDL_FALSE if the conversion wasn't possible."] + #[doc = ""] + #[doc = " \\sa SDL_MasksToPixelFormatEnum()"] + pub fn SDL_PixelFormatEnumToMasks( + format: Uint32, + bpp: *mut libc::c_int, + Rmask: *mut Uint32, + Gmask: *mut Uint32, + Bmask: *mut Uint32, + Amask: *mut Uint32, + ) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Convert a bpp and RGBA masks to an enumerated pixel format."] + #[doc = ""] + #[doc = " \\return The pixel format, or ::SDL_PIXELFORMAT_UNKNOWN if the conversion"] + #[doc = " wasn't possible."] + #[doc = ""] + #[doc = " \\sa SDL_PixelFormatEnumToMasks()"] + pub fn SDL_MasksToPixelFormatEnum( + bpp: libc::c_int, + Rmask: Uint32, + Gmask: Uint32, + Bmask: Uint32, + Amask: Uint32, + ) -> Uint32; +} +extern "C" { + #[doc = " \\brief Create an SDL_PixelFormat structure from a pixel format enum."] + pub fn SDL_AllocFormat(pixel_format: Uint32) -> *mut SDL_PixelFormat; +} +extern "C" { + #[doc = " \\brief Free an SDL_PixelFormat structure."] + pub fn SDL_FreeFormat(format: *mut SDL_PixelFormat); +} +extern "C" { + #[doc = " \\brief Create a palette structure with the specified number of color"] + #[doc = " entries."] + #[doc = ""] + #[doc = " \\return A new palette, or NULL if there wasn't enough memory."] + #[doc = ""] + #[doc = " \\note The palette entries are initialized to white."] + #[doc = ""] + #[doc = " \\sa SDL_FreePalette()"] + pub fn SDL_AllocPalette(ncolors: libc::c_int) -> *mut SDL_Palette; +} +extern "C" { + #[doc = " \\brief Set the palette for a pixel format structure."] + pub fn SDL_SetPixelFormatPalette( + format: *mut SDL_PixelFormat, + palette: *mut SDL_Palette, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set a range of colors in a palette."] + #[doc = ""] + #[doc = " \\param palette The palette to modify."] + #[doc = " \\param colors An array of colors to copy into the palette."] + #[doc = " \\param firstcolor The index of the first palette entry to modify."] + #[doc = " \\param ncolors The number of entries to modify."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if not all of the colors could be set."] + pub fn SDL_SetPaletteColors( + palette: *mut SDL_Palette, + colors: *const SDL_Color, + firstcolor: libc::c_int, + ncolors: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Free a palette created with SDL_AllocPalette()."] + #[doc = ""] + #[doc = " \\sa SDL_AllocPalette()"] + pub fn SDL_FreePalette(palette: *mut SDL_Palette); +} +extern "C" { + #[doc = " \\brief Maps an RGB triple to an opaque pixel value for a given pixel format."] + #[doc = ""] + #[doc = " \\sa SDL_MapRGBA"] + pub fn SDL_MapRGB(format: *const SDL_PixelFormat, r: Uint8, g: Uint8, b: Uint8) -> Uint32; +} +extern "C" { + #[doc = " \\brief Maps an RGBA quadruple to a pixel value for a given pixel format."] + #[doc = ""] + #[doc = " \\sa SDL_MapRGB"] + pub fn SDL_MapRGBA( + format: *const SDL_PixelFormat, + r: Uint8, + g: Uint8, + b: Uint8, + a: Uint8, + ) -> Uint32; +} +extern "C" { + #[doc = " \\brief Get the RGB components from a pixel of the specified format."] + #[doc = ""] + #[doc = " \\sa SDL_GetRGBA"] + pub fn SDL_GetRGB( + pixel: Uint32, + format: *const SDL_PixelFormat, + r: *mut Uint8, + g: *mut Uint8, + b: *mut Uint8, + ); +} +extern "C" { + #[doc = " \\brief Get the RGBA components from a pixel of the specified format."] + #[doc = ""] + #[doc = " \\sa SDL_GetRGB"] + pub fn SDL_GetRGBA( + pixel: Uint32, + format: *const SDL_PixelFormat, + r: *mut Uint8, + g: *mut Uint8, + b: *mut Uint8, + a: *mut Uint8, + ); +} +extern "C" { + #[doc = " \\brief Calculate a 256 entry gamma ramp for a gamma value."] + pub fn SDL_CalculateGammaRamp(gamma: f32, ramp: *mut Uint16); +} +#[doc = " \\brief The structure that defines a point (integer)"] +#[doc = ""] +#[doc = " \\sa SDL_EnclosePoints"] +#[doc = " \\sa SDL_PointInRect"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Point { + pub x: libc::c_int, + pub y: libc::c_int, +} +#[test] +fn bindgen_test_layout_SDL_Point() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(SDL_Point)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_Point)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Point), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_Point), + "::", + stringify!(y) + ) + ); +} +#[doc = " \\brief The structure that defines a point (floating point)"] +#[doc = ""] +#[doc = " \\sa SDL_EnclosePoints"] +#[doc = " \\sa SDL_PointInRect"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_FPoint { + pub x: f32, + pub y: f32, +} +#[test] +fn bindgen_test_layout_SDL_FPoint() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(SDL_FPoint)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_FPoint)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_FPoint), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_FPoint), + "::", + stringify!(y) + ) + ); +} +#[doc = " \\brief A rectangle, with the origin at the upper left (integer)."] +#[doc = ""] +#[doc = " \\sa SDL_RectEmpty"] +#[doc = " \\sa SDL_RectEquals"] +#[doc = " \\sa SDL_HasIntersection"] +#[doc = " \\sa SDL_IntersectRect"] +#[doc = " \\sa SDL_UnionRect"] +#[doc = " \\sa SDL_EnclosePoints"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Rect { + pub x: libc::c_int, + pub y: libc::c_int, + pub w: libc::c_int, + pub h: libc::c_int, +} +#[test] +fn bindgen_test_layout_SDL_Rect() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_Rect)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_Rect)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Rect), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_Rect), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).w as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_Rect), + "::", + stringify!(w) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).h as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_Rect), + "::", + stringify!(h) + ) + ); +} +#[doc = " \\brief A rectangle, with the origin at the upper left (floating point)."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_FRect { + pub x: f32, + pub y: f32, + pub w: f32, + pub h: f32, +} +#[test] +fn bindgen_test_layout_SDL_FRect() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_FRect)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_FRect)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_FRect), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_FRect), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).w as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_FRect), + "::", + stringify!(w) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).h as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_FRect), + "::", + stringify!(h) + ) + ); +} +extern "C" { + #[doc = " \\brief Determine whether two rectangles intersect."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if there is an intersection, SDL_FALSE otherwise."] + pub fn SDL_HasIntersection(A: *const SDL_Rect, B: *const SDL_Rect) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Calculate the intersection of two rectangles."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if there is an intersection, SDL_FALSE otherwise."] + pub fn SDL_IntersectRect( + A: *const SDL_Rect, + B: *const SDL_Rect, + result: *mut SDL_Rect, + ) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Calculate the union of two rectangles."] + pub fn SDL_UnionRect(A: *const SDL_Rect, B: *const SDL_Rect, result: *mut SDL_Rect); +} +extern "C" { + #[doc = " \\brief Calculate a minimal rectangle enclosing a set of points"] + #[doc = ""] + #[doc = " \\return SDL_TRUE if any points were within the clipping rect"] + pub fn SDL_EnclosePoints( + points: *const SDL_Point, + count: libc::c_int, + clip: *const SDL_Rect, + result: *mut SDL_Rect, + ) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Calculate the intersection of a rectangle and line segment."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if there is an intersection, SDL_FALSE otherwise."] + pub fn SDL_IntersectRectAndLine( + rect: *const SDL_Rect, + X1: *mut libc::c_int, + Y1: *mut libc::c_int, + X2: *mut libc::c_int, + Y2: *mut libc::c_int, + ) -> SDL_bool; +} +#[repr(u32)] +#[doc = " \\brief The blend mode used in SDL_RenderCopy() and drawing operations."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_BlendMode { + #[doc = "< no blending"] + #[doc = "dstRGBA = srcRGBA"] + SDL_BLENDMODE_NONE = 0, + #[doc = "< alpha blending"] + #[doc = "dstRGB = (srcRGB * srcA) + (dstRGB * (1-srcA))"] + #[doc = "dstA = srcA + (dstA * (1-srcA))"] + SDL_BLENDMODE_BLEND = 1, + #[doc = "< additive blending"] + #[doc = "dstRGB = (srcRGB * srcA) + dstRGB"] + #[doc = "dstA = dstA"] + SDL_BLENDMODE_ADD = 2, + #[doc = "< color modulate"] + #[doc = "dstRGB = srcRGB * dstRGB"] + #[doc = "dstA = dstA"] + SDL_BLENDMODE_MOD = 4, + #[doc = "< color multiply"] + #[doc = "dstRGB = (srcRGB * dstRGB) + (dstRGB * (1-srcA))"] + #[doc = "dstA = (srcA * dstA) + (dstA * (1-srcA))"] + SDL_BLENDMODE_MUL = 8, + SDL_BLENDMODE_INVALID = 2147483647, +} +#[repr(u32)] +#[doc = " \\brief The blend operation used when combining source and destination pixel components"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_BlendOperation { + #[doc = "< dst + src: supported by all renderers"] + SDL_BLENDOPERATION_ADD = 1, + #[doc = "< dst - src : supported by D3D9, D3D11, OpenGL, OpenGLES"] + SDL_BLENDOPERATION_SUBTRACT = 2, + #[doc = "< src - dst : supported by D3D9, D3D11, OpenGL, OpenGLES"] + SDL_BLENDOPERATION_REV_SUBTRACT = 3, + #[doc = "< min(dst, src) : supported by D3D11"] + SDL_BLENDOPERATION_MINIMUM = 4, + #[doc = "< max(dst, src) : supported by D3D11"] + SDL_BLENDOPERATION_MAXIMUM = 5, +} +#[repr(u32)] +#[doc = " \\brief The normalized factor used to multiply pixel components"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_BlendFactor { + #[doc = "< 0, 0, 0, 0"] + SDL_BLENDFACTOR_ZERO = 1, + #[doc = "< 1, 1, 1, 1"] + SDL_BLENDFACTOR_ONE = 2, + #[doc = "< srcR, srcG, srcB, srcA"] + SDL_BLENDFACTOR_SRC_COLOR = 3, + #[doc = "< 1-srcR, 1-srcG, 1-srcB, 1-srcA"] + SDL_BLENDFACTOR_ONE_MINUS_SRC_COLOR = 4, + #[doc = "< srcA, srcA, srcA, srcA"] + SDL_BLENDFACTOR_SRC_ALPHA = 5, + #[doc = "< 1-srcA, 1-srcA, 1-srcA, 1-srcA"] + SDL_BLENDFACTOR_ONE_MINUS_SRC_ALPHA = 6, + #[doc = "< dstR, dstG, dstB, dstA"] + SDL_BLENDFACTOR_DST_COLOR = 7, + #[doc = "< 1-dstR, 1-dstG, 1-dstB, 1-dstA"] + SDL_BLENDFACTOR_ONE_MINUS_DST_COLOR = 8, + #[doc = "< dstA, dstA, dstA, dstA"] + SDL_BLENDFACTOR_DST_ALPHA = 9, + #[doc = "< 1-dstA, 1-dstA, 1-dstA, 1-dstA"] + SDL_BLENDFACTOR_ONE_MINUS_DST_ALPHA = 10, +} +extern "C" { + #[doc = " \\brief Create a custom blend mode, which may or may not be supported by a given renderer"] + #[doc = ""] + #[doc = " \\param srcColorFactor source color factor"] + #[doc = " \\param dstColorFactor destination color factor"] + #[doc = " \\param colorOperation color operation"] + #[doc = " \\param srcAlphaFactor source alpha factor"] + #[doc = " \\param dstAlphaFactor destination alpha factor"] + #[doc = " \\param alphaOperation alpha operation"] + #[doc = ""] + #[doc = " The result of the blend mode operation will be:"] + #[doc = " dstRGB = dstRGB * dstColorFactor colorOperation srcRGB * srcColorFactor"] + #[doc = " and"] + #[doc = " dstA = dstA * dstAlphaFactor alphaOperation srcA * srcAlphaFactor"] + pub fn SDL_ComposeCustomBlendMode( + srcColorFactor: SDL_BlendFactor, + dstColorFactor: SDL_BlendFactor, + colorOperation: SDL_BlendOperation, + srcAlphaFactor: SDL_BlendFactor, + dstAlphaFactor: SDL_BlendFactor, + alphaOperation: SDL_BlendOperation, + ) -> SDL_BlendMode; +} +#[doc = " \\brief A collection of pixels used in software blitting."] +#[doc = ""] +#[doc = " \\note This structure should be treated as read-only, except for \\c pixels,"] +#[doc = " which, if not NULL, contains the raw pixel data for the surface."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Surface { + #[doc = "< Read-only"] + pub flags: Uint32, + #[doc = "< Read-only"] + pub format: *mut SDL_PixelFormat, + #[doc = "< Read-only"] + pub w: libc::c_int, + #[doc = "< Read-only"] + pub h: libc::c_int, + #[doc = "< Read-only"] + pub pitch: libc::c_int, + #[doc = "< Read-write"] + pub pixels: *mut libc::c_void, + #[doc = "< Read-write"] + pub userdata: *mut libc::c_void, + #[doc = "< Read-only"] + pub locked: libc::c_int, + #[doc = "< Private"] + pub list_blitmap: *mut libc::c_void, + #[doc = "< Read-only"] + pub clip_rect: SDL_Rect, + #[doc = "< Private"] + pub map: *mut SDL_BlitMap, + #[doc = "< Read-mostly"] + pub refcount: libc::c_int, +} +#[test] +fn bindgen_test_layout_SDL_Surface() { + assert_eq!( + ::core::mem::size_of::(), + 96usize, + concat!("Size of: ", stringify!(SDL_Surface)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_Surface)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).flags as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).format as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(format) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).w as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(w) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).h as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(h) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).pitch as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(pitch) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).pixels as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(pixels) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).userdata as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(userdata) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).locked as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(locked) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).list_blitmap as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(list_blitmap) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).clip_rect as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(clip_rect) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).map as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(map) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).refcount as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(refcount) + ) + ); +} +#[doc = " \\brief The type of function used for surface blitting functions."] +pub type SDL_blit = ::core::option::Option< + unsafe extern "C" fn( + src: *mut SDL_Surface, + srcrect: *mut SDL_Rect, + dst: *mut SDL_Surface, + dstrect: *mut SDL_Rect, + ) -> libc::c_int, +>; +#[repr(u32)] +#[doc = " \\brief The formula used for converting between YUV and RGB"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_YUV_CONVERSION_MODE { + #[doc = "< Full range JPEG"] + SDL_YUV_CONVERSION_JPEG = 0, + #[doc = "< BT.601 (the default)"] + SDL_YUV_CONVERSION_BT601 = 1, + #[doc = "< BT.709"] + SDL_YUV_CONVERSION_BT709 = 2, + #[doc = "< BT.601 for SD content, BT.709 for HD content"] + SDL_YUV_CONVERSION_AUTOMATIC = 3, +} +extern "C" { + #[doc = " Allocate and free an RGB surface."] + #[doc = ""] + #[doc = " If the depth is 4 or 8 bits, an empty palette is allocated for the surface."] + #[doc = " If the depth is greater than 8 bits, the pixel format is set using the"] + #[doc = " flags '[RGB]mask'."] + #[doc = ""] + #[doc = " If the function runs out of memory, it will return NULL."] + #[doc = ""] + #[doc = " \\param flags The \\c flags are obsolete and should be set to 0."] + #[doc = " \\param width The width in pixels of the surface to create."] + #[doc = " \\param height The height in pixels of the surface to create."] + #[doc = " \\param depth The depth in bits of the surface to create."] + #[doc = " \\param Rmask The red mask of the surface to create."] + #[doc = " \\param Gmask The green mask of the surface to create."] + #[doc = " \\param Bmask The blue mask of the surface to create."] + #[doc = " \\param Amask The alpha mask of the surface to create."] + pub fn SDL_CreateRGBSurface( + flags: Uint32, + width: libc::c_int, + height: libc::c_int, + depth: libc::c_int, + Rmask: Uint32, + Gmask: Uint32, + Bmask: Uint32, + Amask: Uint32, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn SDL_CreateRGBSurfaceWithFormat( + flags: Uint32, + width: libc::c_int, + height: libc::c_int, + depth: libc::c_int, + format: Uint32, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn SDL_CreateRGBSurfaceFrom( + pixels: *mut libc::c_void, + width: libc::c_int, + height: libc::c_int, + depth: libc::c_int, + pitch: libc::c_int, + Rmask: Uint32, + Gmask: Uint32, + Bmask: Uint32, + Amask: Uint32, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn SDL_CreateRGBSurfaceWithFormatFrom( + pixels: *mut libc::c_void, + width: libc::c_int, + height: libc::c_int, + depth: libc::c_int, + pitch: libc::c_int, + format: Uint32, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn SDL_FreeSurface(surface: *mut SDL_Surface); +} +extern "C" { + #[doc = " \\brief Set the palette used by a surface."] + #[doc = ""] + #[doc = " \\return 0, or -1 if the surface format doesn't use a palette."] + #[doc = ""] + #[doc = " \\note A single palette can be shared with many surfaces."] + pub fn SDL_SetSurfacePalette( + surface: *mut SDL_Surface, + palette: *mut SDL_Palette, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Sets up a surface for directly accessing the pixels."] + #[doc = ""] + #[doc = " Between calls to SDL_LockSurface() / SDL_UnlockSurface(), you can write"] + #[doc = " to and read from \\c surface->pixels, using the pixel format stored in"] + #[doc = " \\c surface->format. Once you are done accessing the surface, you should"] + #[doc = " use SDL_UnlockSurface() to release it."] + #[doc = ""] + #[doc = " Not all surfaces require locking. If SDL_MUSTLOCK(surface) evaluates"] + #[doc = " to 0, then you can read and write to the surface at any time, and the"] + #[doc = " pixel format of the surface will not change."] + #[doc = ""] + #[doc = " No operating system or library calls should be made between lock/unlock"] + #[doc = " pairs, as critical system locks may be held during this time."] + #[doc = ""] + #[doc = " SDL_LockSurface() returns 0, or -1 if the surface couldn't be locked."] + #[doc = ""] + #[doc = " \\sa SDL_UnlockSurface()"] + pub fn SDL_LockSurface(surface: *mut SDL_Surface) -> libc::c_int; +} +extern "C" { + #[doc = " \\sa SDL_LockSurface()"] + pub fn SDL_UnlockSurface(surface: *mut SDL_Surface); +} +extern "C" { + #[doc = " Load a surface from a seekable SDL data stream (memory or file)."] + #[doc = ""] + #[doc = " If \\c freesrc is non-zero, the stream will be closed after being read."] + #[doc = ""] + #[doc = " The new surface should be freed with SDL_FreeSurface()."] + #[doc = ""] + #[doc = " \\return the new surface, or NULL if there was an error."] + pub fn SDL_LoadBMP_RW(src: *mut SDL_RWops, freesrc: libc::c_int) -> *mut SDL_Surface; +} +extern "C" { + #[doc = " Save a surface to a seekable SDL data stream (memory or file)."] + #[doc = ""] + #[doc = " Surfaces with a 24-bit, 32-bit and paletted 8-bit format get saved in the"] + #[doc = " BMP directly. Other RGB formats with 8-bit or higher get converted to a"] + #[doc = " 24-bit surface or, if they have an alpha mask or a colorkey, to a 32-bit"] + #[doc = " surface before they are saved. YUV and paletted 1-bit and 4-bit formats are"] + #[doc = " not supported."] + #[doc = ""] + #[doc = " If \\c freedst is non-zero, the stream will be closed after being written."] + #[doc = ""] + #[doc = " \\return 0 if successful or -1 if there was an error."] + pub fn SDL_SaveBMP_RW( + surface: *mut SDL_Surface, + dst: *mut SDL_RWops, + freedst: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Sets the RLE acceleration hint for a surface."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the surface is not valid"] + #[doc = ""] + #[doc = " \\note If RLE is enabled, colorkey and alpha blending blits are much faster,"] + #[doc = " but the surface must be locked before directly accessing the pixels."] + pub fn SDL_SetSurfaceRLE(surface: *mut SDL_Surface, flag: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Returns whether the surface is RLE enabled"] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the surface is RLE enabled, or SDL_FALSE if the surface is NULL or not RLE enabled"] + pub fn SDL_HasSurfaceRLE(surface: *mut SDL_Surface) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Sets the color key (transparent pixel) in a blittable surface."] + #[doc = ""] + #[doc = " \\param surface The surface to update"] + #[doc = " \\param flag Non-zero to enable colorkey and 0 to disable colorkey"] + #[doc = " \\param key The transparent pixel in the native surface format"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the surface is not valid"] + #[doc = ""] + #[doc = " You can pass SDL_RLEACCEL to enable RLE accelerated blits."] + pub fn SDL_SetColorKey( + surface: *mut SDL_Surface, + flag: libc::c_int, + key: Uint32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Returns whether the surface has a color key"] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the surface has a color key, or SDL_FALSE if the surface is NULL or has no color key"] + pub fn SDL_HasColorKey(surface: *mut SDL_Surface) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Gets the color key (transparent pixel) in a blittable surface."] + #[doc = ""] + #[doc = " \\param surface The surface to update"] + #[doc = " \\param key A pointer filled in with the transparent pixel in the native"] + #[doc = " surface format"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the surface is not valid or colorkey is not"] + #[doc = " enabled."] + pub fn SDL_GetColorKey(surface: *mut SDL_Surface, key: *mut Uint32) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set an additional color value used in blit operations."] + #[doc = ""] + #[doc = " \\param surface The surface to update."] + #[doc = " \\param r The red color value multiplied into blit operations."] + #[doc = " \\param g The green color value multiplied into blit operations."] + #[doc = " \\param b The blue color value multiplied into blit operations."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the surface is not valid."] + #[doc = ""] + #[doc = " \\sa SDL_GetSurfaceColorMod()"] + pub fn SDL_SetSurfaceColorMod( + surface: *mut SDL_Surface, + r: Uint8, + g: Uint8, + b: Uint8, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the additional color value used in blit operations."] + #[doc = ""] + #[doc = " \\param surface The surface to query."] + #[doc = " \\param r A pointer filled in with the current red color value."] + #[doc = " \\param g A pointer filled in with the current green color value."] + #[doc = " \\param b A pointer filled in with the current blue color value."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the surface is not valid."] + #[doc = ""] + #[doc = " \\sa SDL_SetSurfaceColorMod()"] + pub fn SDL_GetSurfaceColorMod( + surface: *mut SDL_Surface, + r: *mut Uint8, + g: *mut Uint8, + b: *mut Uint8, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set an additional alpha value used in blit operations."] + #[doc = ""] + #[doc = " \\param surface The surface to update."] + #[doc = " \\param alpha The alpha value multiplied into blit operations."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the surface is not valid."] + #[doc = ""] + #[doc = " \\sa SDL_GetSurfaceAlphaMod()"] + pub fn SDL_SetSurfaceAlphaMod(surface: *mut SDL_Surface, alpha: Uint8) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the additional alpha value used in blit operations."] + #[doc = ""] + #[doc = " \\param surface The surface to query."] + #[doc = " \\param alpha A pointer filled in with the current alpha value."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the surface is not valid."] + #[doc = ""] + #[doc = " \\sa SDL_SetSurfaceAlphaMod()"] + pub fn SDL_GetSurfaceAlphaMod(surface: *mut SDL_Surface, alpha: *mut Uint8) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set the blend mode used for blit operations."] + #[doc = ""] + #[doc = " \\param surface The surface to update."] + #[doc = " \\param blendMode ::SDL_BlendMode to use for blit blending."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the parameters are not valid."] + #[doc = ""] + #[doc = " \\sa SDL_GetSurfaceBlendMode()"] + pub fn SDL_SetSurfaceBlendMode( + surface: *mut SDL_Surface, + blendMode: SDL_BlendMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the blend mode used for blit operations."] + #[doc = ""] + #[doc = " \\param surface The surface to query."] + #[doc = " \\param blendMode A pointer filled in with the current blend mode."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the surface is not valid."] + #[doc = ""] + #[doc = " \\sa SDL_SetSurfaceBlendMode()"] + pub fn SDL_GetSurfaceBlendMode( + surface: *mut SDL_Surface, + blendMode: *mut SDL_BlendMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Sets the clipping rectangle for the destination surface in a blit."] + #[doc = ""] + #[doc = " If the clip rectangle is NULL, clipping will be disabled."] + #[doc = ""] + #[doc = " If the clip rectangle doesn't intersect the surface, the function will"] + #[doc = " return SDL_FALSE and blits will be completely clipped. Otherwise the"] + #[doc = " function returns SDL_TRUE and blits to the surface will be clipped to"] + #[doc = " the intersection of the surface area and the clipping rectangle."] + #[doc = ""] + #[doc = " Note that blits are automatically clipped to the edges of the source"] + #[doc = " and destination surfaces."] + pub fn SDL_SetClipRect(surface: *mut SDL_Surface, rect: *const SDL_Rect) -> SDL_bool; +} +extern "C" { + #[doc = " Gets the clipping rectangle for the destination surface in a blit."] + #[doc = ""] + #[doc = " \\c rect must be a pointer to a valid rectangle which will be filled"] + #[doc = " with the correct values."] + pub fn SDL_GetClipRect(surface: *mut SDL_Surface, rect: *mut SDL_Rect); +} +extern "C" { + pub fn SDL_DuplicateSurface(surface: *mut SDL_Surface) -> *mut SDL_Surface; +} +extern "C" { + #[doc = " Creates a new surface of the specified format, and then copies and maps"] + #[doc = " the given surface to it so the blit of the converted surface will be as"] + #[doc = " fast as possible. If this function fails, it returns NULL."] + #[doc = ""] + #[doc = " The \\c flags parameter is passed to SDL_CreateRGBSurface() and has those"] + #[doc = " semantics. You can also pass ::SDL_RLEACCEL in the flags parameter and"] + #[doc = " SDL will try to RLE accelerate colorkey and alpha blits in the resulting"] + #[doc = " surface."] + pub fn SDL_ConvertSurface( + src: *mut SDL_Surface, + fmt: *const SDL_PixelFormat, + flags: Uint32, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn SDL_ConvertSurfaceFormat( + src: *mut SDL_Surface, + pixel_format: Uint32, + flags: Uint32, + ) -> *mut SDL_Surface; +} +extern "C" { + #[doc = " \\brief Copy a block of pixels of one format to another format"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if there was an error"] + pub fn SDL_ConvertPixels( + width: libc::c_int, + height: libc::c_int, + src_format: Uint32, + src: *const libc::c_void, + src_pitch: libc::c_int, + dst_format: Uint32, + dst: *mut libc::c_void, + dst_pitch: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Performs a fast fill of the given rectangle with \\c color."] + #[doc = ""] + #[doc = " If \\c rect is NULL, the whole surface will be filled with \\c color."] + #[doc = ""] + #[doc = " The color should be a pixel of the format used by the surface, and"] + #[doc = " can be generated by the SDL_MapRGB() function."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error."] + pub fn SDL_FillRect(dst: *mut SDL_Surface, rect: *const SDL_Rect, color: Uint32) + -> libc::c_int; +} +extern "C" { + pub fn SDL_FillRects( + dst: *mut SDL_Surface, + rects: *const SDL_Rect, + count: libc::c_int, + color: Uint32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " This is the public blit function, SDL_BlitSurface(), and it performs"] + #[doc = " rectangle validation and clipping before passing it to SDL_LowerBlit()"] + pub fn SDL_UpperBlit( + src: *mut SDL_Surface, + srcrect: *const SDL_Rect, + dst: *mut SDL_Surface, + dstrect: *mut SDL_Rect, + ) -> libc::c_int; +} +extern "C" { + #[doc = " This is a semi-private blit function and it performs low-level surface"] + #[doc = " blitting only."] + pub fn SDL_LowerBlit( + src: *mut SDL_Surface, + srcrect: *mut SDL_Rect, + dst: *mut SDL_Surface, + dstrect: *mut SDL_Rect, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Perform a fast, low quality, stretch blit between two surfaces of the"] + #[doc = " same pixel format."] + #[doc = ""] + #[doc = " \\note This function uses a static buffer, and is not thread-safe."] + pub fn SDL_SoftStretch( + src: *mut SDL_Surface, + srcrect: *const SDL_Rect, + dst: *mut SDL_Surface, + dstrect: *const SDL_Rect, + ) -> libc::c_int; +} +extern "C" { + #[doc = " This is the public scaled blit function, SDL_BlitScaled(), and it performs"] + #[doc = " rectangle validation and clipping before passing it to SDL_LowerBlitScaled()"] + pub fn SDL_UpperBlitScaled( + src: *mut SDL_Surface, + srcrect: *const SDL_Rect, + dst: *mut SDL_Surface, + dstrect: *mut SDL_Rect, + ) -> libc::c_int; +} +extern "C" { + #[doc = " This is a semi-private blit function and it performs low-level surface"] + #[doc = " scaled blitting only."] + pub fn SDL_LowerBlitScaled( + src: *mut SDL_Surface, + srcrect: *mut SDL_Rect, + dst: *mut SDL_Surface, + dstrect: *mut SDL_Rect, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set the YUV conversion mode"] + pub fn SDL_SetYUVConversionMode(mode: SDL_YUV_CONVERSION_MODE); +} +extern "C" { + #[doc = " \\brief Get the YUV conversion mode"] + pub fn SDL_GetYUVConversionMode() -> SDL_YUV_CONVERSION_MODE; +} +extern "C" { + #[doc = " \\brief Get the YUV conversion mode, returning the correct mode for the resolution when the current conversion mode is SDL_YUV_CONVERSION_AUTOMATIC"] + pub fn SDL_GetYUVConversionModeForResolution( + width: libc::c_int, + height: libc::c_int, + ) -> SDL_YUV_CONVERSION_MODE; +} +#[doc = " \\brief The structure that defines a display mode"] +#[doc = ""] +#[doc = " \\sa SDL_GetNumDisplayModes()"] +#[doc = " \\sa SDL_GetDisplayMode()"] +#[doc = " \\sa SDL_GetDesktopDisplayMode()"] +#[doc = " \\sa SDL_GetCurrentDisplayMode()"] +#[doc = " \\sa SDL_GetClosestDisplayMode()"] +#[doc = " \\sa SDL_SetWindowDisplayMode()"] +#[doc = " \\sa SDL_GetWindowDisplayMode()"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_DisplayMode { + #[doc = "< pixel format"] + pub format: Uint32, + #[doc = "< width, in screen coordinates"] + pub w: libc::c_int, + #[doc = "< height, in screen coordinates"] + pub h: libc::c_int, + #[doc = "< refresh rate (or zero for unspecified)"] + pub refresh_rate: libc::c_int, + #[doc = "< driver-specific data, initialize to 0"] + pub driverdata: *mut libc::c_void, +} +#[test] +fn bindgen_test_layout_SDL_DisplayMode() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(SDL_DisplayMode)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_DisplayMode)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).format as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayMode), + "::", + stringify!(format) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).w as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayMode), + "::", + stringify!(w) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).h as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayMode), + "::", + stringify!(h) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).refresh_rate as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayMode), + "::", + stringify!(refresh_rate) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).driverdata as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayMode), + "::", + stringify!(driverdata) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Window { + _unused: [u8; 0], +} +#[repr(u32)] +#[doc = " \\brief The flags on a window"] +#[doc = ""] +#[doc = " \\sa SDL_GetWindowFlags()"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_WindowFlags { + #[doc = "< fullscreen window"] + SDL_WINDOW_FULLSCREEN = 1, + #[doc = "< window usable with OpenGL context"] + SDL_WINDOW_OPENGL = 2, + #[doc = "< window is visible"] + SDL_WINDOW_SHOWN = 4, + #[doc = "< window is not visible"] + SDL_WINDOW_HIDDEN = 8, + #[doc = "< no window decoration"] + SDL_WINDOW_BORDERLESS = 16, + #[doc = "< window can be resized"] + SDL_WINDOW_RESIZABLE = 32, + #[doc = "< window is minimized"] + SDL_WINDOW_MINIMIZED = 64, + #[doc = "< window is maximized"] + SDL_WINDOW_MAXIMIZED = 128, + #[doc = "< window has grabbed input focus"] + SDL_WINDOW_INPUT_GRABBED = 256, + #[doc = "< window has input focus"] + SDL_WINDOW_INPUT_FOCUS = 512, + #[doc = "< window has mouse focus"] + SDL_WINDOW_MOUSE_FOCUS = 1024, + SDL_WINDOW_FULLSCREEN_DESKTOP = 4097, + #[doc = "< window not created by SDL"] + SDL_WINDOW_FOREIGN = 2048, + #[doc = "< window should be created in high-DPI mode if supported."] + #[doc = "On macOS NSHighResolutionCapable must be set true in the"] + #[doc = "application's Info.plist for this to have any effect."] + SDL_WINDOW_ALLOW_HIGHDPI = 8192, + #[doc = "< window has mouse captured (unrelated to INPUT_GRABBED)"] + SDL_WINDOW_MOUSE_CAPTURE = 16384, + #[doc = "< window should always be above others"] + SDL_WINDOW_ALWAYS_ON_TOP = 32768, + #[doc = "< window should not be added to the taskbar"] + SDL_WINDOW_SKIP_TASKBAR = 65536, + #[doc = "< window should be treated as a utility window"] + SDL_WINDOW_UTILITY = 131072, + #[doc = "< window should be treated as a tooltip"] + SDL_WINDOW_TOOLTIP = 262144, + #[doc = "< window should be treated as a popup menu"] + SDL_WINDOW_POPUP_MENU = 524288, + #[doc = "< window usable for Vulkan surface"] + SDL_WINDOW_VULKAN = 268435456, + #[doc = "< window usable for Metal view"] + SDL_WINDOW_METAL = 536870912, +} +#[repr(u32)] +#[doc = " \\brief Event subtype for window events"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_WindowEventID { + #[doc = "< Never used"] + SDL_WINDOWEVENT_NONE = 0, + #[doc = "< Window has been shown"] + SDL_WINDOWEVENT_SHOWN = 1, + #[doc = "< Window has been hidden"] + SDL_WINDOWEVENT_HIDDEN = 2, + #[doc = "< Window has been exposed and should be"] + #[doc = "redrawn"] + SDL_WINDOWEVENT_EXPOSED = 3, + #[doc = "< Window has been moved to data1, data2"] + SDL_WINDOWEVENT_MOVED = 4, + #[doc = "< Window has been resized to data1xdata2"] + SDL_WINDOWEVENT_RESIZED = 5, + #[doc = "< The window size has changed, either as"] + #[doc = "a result of an API call or through the"] + #[doc = "system or user changing the window size."] + SDL_WINDOWEVENT_SIZE_CHANGED = 6, + #[doc = "< Window has been minimized"] + SDL_WINDOWEVENT_MINIMIZED = 7, + #[doc = "< Window has been maximized"] + SDL_WINDOWEVENT_MAXIMIZED = 8, + #[doc = "< Window has been restored to normal size"] + #[doc = "and position"] + SDL_WINDOWEVENT_RESTORED = 9, + #[doc = "< Window has gained mouse focus"] + SDL_WINDOWEVENT_ENTER = 10, + #[doc = "< Window has lost mouse focus"] + SDL_WINDOWEVENT_LEAVE = 11, + #[doc = "< Window has gained keyboard focus"] + SDL_WINDOWEVENT_FOCUS_GAINED = 12, + #[doc = "< Window has lost keyboard focus"] + SDL_WINDOWEVENT_FOCUS_LOST = 13, + #[doc = "< The window manager requests that the window be closed"] + SDL_WINDOWEVENT_CLOSE = 14, + #[doc = "< Window is being offered a focus (should SetWindowInputFocus() on itself or a subwindow, or ignore)"] + SDL_WINDOWEVENT_TAKE_FOCUS = 15, + #[doc = "< Window had a hit test that wasn't SDL_HITTEST_NORMAL."] + SDL_WINDOWEVENT_HIT_TEST = 16, +} +#[repr(u32)] +#[doc = " \\brief Event subtype for display events"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_DisplayEventID { + #[doc = "< Never used"] + SDL_DISPLAYEVENT_NONE = 0, + #[doc = "< Display orientation has changed to data1"] + SDL_DISPLAYEVENT_ORIENTATION = 1, + #[doc = "< Display has been added to the system"] + SDL_DISPLAYEVENT_CONNECTED = 2, + #[doc = "< Display has been removed from the system"] + SDL_DISPLAYEVENT_DISCONNECTED = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_DisplayOrientation { + #[doc = "< The display orientation can't be determined"] + SDL_ORIENTATION_UNKNOWN = 0, + #[doc = "< The display is in landscape mode, with the right side up, relative to portrait mode"] + SDL_ORIENTATION_LANDSCAPE = 1, + #[doc = "< The display is in landscape mode, with the left side up, relative to portrait mode"] + SDL_ORIENTATION_LANDSCAPE_FLIPPED = 2, + #[doc = "< The display is in portrait mode"] + SDL_ORIENTATION_PORTRAIT = 3, + #[doc = "< The display is in portrait mode, upside down"] + SDL_ORIENTATION_PORTRAIT_FLIPPED = 4, +} +#[doc = " \\brief An opaque handle to an OpenGL context."] +pub type SDL_GLContext = *mut libc::c_void; +#[repr(u32)] +#[doc = " \\brief OpenGL configuration attributes"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_GLattr { + SDL_GL_RED_SIZE = 0, + SDL_GL_GREEN_SIZE = 1, + SDL_GL_BLUE_SIZE = 2, + SDL_GL_ALPHA_SIZE = 3, + SDL_GL_BUFFER_SIZE = 4, + SDL_GL_DOUBLEBUFFER = 5, + SDL_GL_DEPTH_SIZE = 6, + SDL_GL_STENCIL_SIZE = 7, + SDL_GL_ACCUM_RED_SIZE = 8, + SDL_GL_ACCUM_GREEN_SIZE = 9, + SDL_GL_ACCUM_BLUE_SIZE = 10, + SDL_GL_ACCUM_ALPHA_SIZE = 11, + SDL_GL_STEREO = 12, + SDL_GL_MULTISAMPLEBUFFERS = 13, + SDL_GL_MULTISAMPLESAMPLES = 14, + SDL_GL_ACCELERATED_VISUAL = 15, + SDL_GL_RETAINED_BACKING = 16, + SDL_GL_CONTEXT_MAJOR_VERSION = 17, + SDL_GL_CONTEXT_MINOR_VERSION = 18, + SDL_GL_CONTEXT_EGL = 19, + SDL_GL_CONTEXT_FLAGS = 20, + SDL_GL_CONTEXT_PROFILE_MASK = 21, + SDL_GL_SHARE_WITH_CURRENT_CONTEXT = 22, + SDL_GL_FRAMEBUFFER_SRGB_CAPABLE = 23, + SDL_GL_CONTEXT_RELEASE_BEHAVIOR = 24, + SDL_GL_CONTEXT_RESET_NOTIFICATION = 25, + SDL_GL_CONTEXT_NO_ERROR = 26, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_GLprofile { + SDL_GL_CONTEXT_PROFILE_CORE = 1, + SDL_GL_CONTEXT_PROFILE_COMPATIBILITY = 2, + #[doc = "< GLX_CONTEXT_ES2_PROFILE_BIT_EXT"] + SDL_GL_CONTEXT_PROFILE_ES = 4, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_GLcontextFlag { + SDL_GL_CONTEXT_DEBUG_FLAG = 1, + SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG = 2, + SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG = 4, + SDL_GL_CONTEXT_RESET_ISOLATION_FLAG = 8, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_GLcontextReleaseFlag { + SDL_GL_CONTEXT_RELEASE_BEHAVIOR_NONE = 0, + SDL_GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_GLContextResetNotification { + SDL_GL_CONTEXT_RESET_NO_NOTIFICATION = 0, + SDL_GL_CONTEXT_RESET_LOSE_CONTEXT = 1, +} +extern "C" { + #[doc = " \\brief Get the number of video drivers compiled into SDL"] + #[doc = ""] + #[doc = " \\sa SDL_GetVideoDriver()"] + pub fn SDL_GetNumVideoDrivers() -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the name of a built in video driver."] + #[doc = ""] + #[doc = " \\note The video drivers are presented in the order in which they are"] + #[doc = " normally checked during initialization."] + #[doc = ""] + #[doc = " \\sa SDL_GetNumVideoDrivers()"] + pub fn SDL_GetVideoDriver(index: libc::c_int) -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Initialize the video subsystem, optionally specifying a video driver."] + #[doc = ""] + #[doc = " \\param driver_name Initialize a specific driver by name, or NULL for the"] + #[doc = " default video driver."] + #[doc = ""] + #[doc = " \\return 0 on success, -1 on error"] + #[doc = ""] + #[doc = " This function initializes the video subsystem; setting up a connection"] + #[doc = " to the window manager, etc, and determines the available display modes"] + #[doc = " and pixel formats, but does not initialize a window or graphics mode."] + #[doc = ""] + #[doc = " \\sa SDL_VideoQuit()"] + pub fn SDL_VideoInit(driver_name: *const libc::c_char) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Shuts down the video subsystem."] + #[doc = ""] + #[doc = " This function closes all windows, and restores the original video mode."] + #[doc = ""] + #[doc = " \\sa SDL_VideoInit()"] + pub fn SDL_VideoQuit(); +} +extern "C" { + #[doc = " \\brief Returns the name of the currently initialized video driver."] + #[doc = ""] + #[doc = " \\return The name of the current video driver or NULL if no driver"] + #[doc = " has been initialized"] + #[doc = ""] + #[doc = " \\sa SDL_GetNumVideoDrivers()"] + #[doc = " \\sa SDL_GetVideoDriver()"] + pub fn SDL_GetCurrentVideoDriver() -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Returns the number of available video displays."] + #[doc = ""] + #[doc = " \\sa SDL_GetDisplayBounds()"] + pub fn SDL_GetNumVideoDisplays() -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the name of a display in UTF-8 encoding"] + #[doc = ""] + #[doc = " \\return The name of a display, or NULL for an invalid display index."] + #[doc = ""] + #[doc = " \\sa SDL_GetNumVideoDisplays()"] + pub fn SDL_GetDisplayName(displayIndex: libc::c_int) -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Get the desktop area represented by a display, with the primary"] + #[doc = " display located at 0,0"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the index is out of range."] + #[doc = ""] + #[doc = " \\sa SDL_GetNumVideoDisplays()"] + pub fn SDL_GetDisplayBounds(displayIndex: libc::c_int, rect: *mut SDL_Rect) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the usable desktop area represented by a display, with the"] + #[doc = " primary display located at 0,0"] + #[doc = ""] + #[doc = " This is the same area as SDL_GetDisplayBounds() reports, but with portions"] + #[doc = " reserved by the system removed. For example, on Mac OS X, this subtracts"] + #[doc = " the area occupied by the menu bar and dock."] + #[doc = ""] + #[doc = " Setting a window to be fullscreen generally bypasses these unusable areas,"] + #[doc = " so these are good guidelines for the maximum space available to a"] + #[doc = " non-fullscreen window."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the index is out of range."] + #[doc = ""] + #[doc = " \\sa SDL_GetDisplayBounds()"] + #[doc = " \\sa SDL_GetNumVideoDisplays()"] + pub fn SDL_GetDisplayUsableBounds( + displayIndex: libc::c_int, + rect: *mut SDL_Rect, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the dots/pixels-per-inch for a display"] + #[doc = ""] + #[doc = " \\note Diagonal, horizontal and vertical DPI can all be optionally"] + #[doc = " returned if the parameter is non-NULL."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if no DPI information is available or the index is out of range."] + #[doc = ""] + #[doc = " \\sa SDL_GetNumVideoDisplays()"] + pub fn SDL_GetDisplayDPI( + displayIndex: libc::c_int, + ddpi: *mut f32, + hdpi: *mut f32, + vdpi: *mut f32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the orientation of a display"] + #[doc = ""] + #[doc = " \\return The orientation of the display, or SDL_ORIENTATION_UNKNOWN if it isn't available."] + #[doc = ""] + #[doc = " \\sa SDL_GetNumVideoDisplays()"] + pub fn SDL_GetDisplayOrientation(displayIndex: libc::c_int) -> SDL_DisplayOrientation; +} +extern "C" { + #[doc = " \\brief Returns the number of available display modes."] + #[doc = ""] + #[doc = " \\sa SDL_GetDisplayMode()"] + pub fn SDL_GetNumDisplayModes(displayIndex: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Fill in information about a specific display mode."] + #[doc = ""] + #[doc = " \\note The display modes are sorted in this priority:"] + #[doc = " \\li bits per pixel -> more colors to fewer colors"] + #[doc = " \\li width -> largest to smallest"] + #[doc = " \\li height -> largest to smallest"] + #[doc = " \\li refresh rate -> highest to lowest"] + #[doc = ""] + #[doc = " \\sa SDL_GetNumDisplayModes()"] + pub fn SDL_GetDisplayMode( + displayIndex: libc::c_int, + modeIndex: libc::c_int, + mode: *mut SDL_DisplayMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Fill in information about the desktop display mode."] + pub fn SDL_GetDesktopDisplayMode( + displayIndex: libc::c_int, + mode: *mut SDL_DisplayMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Fill in information about the current display mode."] + pub fn SDL_GetCurrentDisplayMode( + displayIndex: libc::c_int, + mode: *mut SDL_DisplayMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the closest match to the requested display mode."] + #[doc = ""] + #[doc = " \\param displayIndex The index of display from which mode should be queried."] + #[doc = " \\param mode The desired display mode"] + #[doc = " \\param closest A pointer to a display mode to be filled in with the closest"] + #[doc = " match of the available display modes."] + #[doc = ""] + #[doc = " \\return The passed in value \\c closest, or NULL if no matching video mode"] + #[doc = " was available."] + #[doc = ""] + #[doc = " The available display modes are scanned, and \\c closest is filled in with the"] + #[doc = " closest mode matching the requested mode and returned. The mode format and"] + #[doc = " refresh_rate default to the desktop mode if they are 0. The modes are"] + #[doc = " scanned with size being first priority, format being second priority, and"] + #[doc = " finally checking the refresh_rate. If all the available modes are too"] + #[doc = " small, then NULL is returned."] + #[doc = ""] + #[doc = " \\sa SDL_GetNumDisplayModes()"] + #[doc = " \\sa SDL_GetDisplayMode()"] + pub fn SDL_GetClosestDisplayMode( + displayIndex: libc::c_int, + mode: *const SDL_DisplayMode, + closest: *mut SDL_DisplayMode, + ) -> *mut SDL_DisplayMode; +} +extern "C" { + #[doc = " \\brief Get the display index associated with a window."] + #[doc = ""] + #[doc = " \\return the display index of the display containing the center of the"] + #[doc = " window, or -1 on error."] + pub fn SDL_GetWindowDisplayIndex(window: *mut SDL_Window) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set the display mode used when a fullscreen window is visible."] + #[doc = ""] + #[doc = " By default the window's dimensions and the desktop format and refresh rate"] + #[doc = " are used."] + #[doc = ""] + #[doc = " \\param window The window for which the display mode should be set."] + #[doc = " \\param mode The mode to use, or NULL for the default mode."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if setting the display mode failed."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowDisplayMode()"] + #[doc = " \\sa SDL_SetWindowFullscreen()"] + pub fn SDL_SetWindowDisplayMode( + window: *mut SDL_Window, + mode: *const SDL_DisplayMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Fill in information about the display mode used when a fullscreen"] + #[doc = " window is visible."] + #[doc = ""] + #[doc = " \\sa SDL_SetWindowDisplayMode()"] + #[doc = " \\sa SDL_SetWindowFullscreen()"] + pub fn SDL_GetWindowDisplayMode( + window: *mut SDL_Window, + mode: *mut SDL_DisplayMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the pixel format associated with the window."] + pub fn SDL_GetWindowPixelFormat(window: *mut SDL_Window) -> Uint32; +} +extern "C" { + #[doc = " \\brief Create a window with the specified position, dimensions, and flags."] + #[doc = ""] + #[doc = " \\param title The title of the window, in UTF-8 encoding."] + #[doc = " \\param x The x position of the window, ::SDL_WINDOWPOS_CENTERED, or"] + #[doc = " ::SDL_WINDOWPOS_UNDEFINED."] + #[doc = " \\param y The y position of the window, ::SDL_WINDOWPOS_CENTERED, or"] + #[doc = " ::SDL_WINDOWPOS_UNDEFINED."] + #[doc = " \\param w The width of the window, in screen coordinates."] + #[doc = " \\param h The height of the window, in screen coordinates."] + #[doc = " \\param flags The flags for the window, a mask of any of the following:"] + #[doc = " ::SDL_WINDOW_FULLSCREEN, ::SDL_WINDOW_OPENGL,"] + #[doc = " ::SDL_WINDOW_HIDDEN, ::SDL_WINDOW_BORDERLESS,"] + #[doc = " ::SDL_WINDOW_RESIZABLE, ::SDL_WINDOW_MAXIMIZED,"] + #[doc = " ::SDL_WINDOW_MINIMIZED, ::SDL_WINDOW_INPUT_GRABBED,"] + #[doc = " ::SDL_WINDOW_ALLOW_HIGHDPI, ::SDL_WINDOW_VULKAN"] + #[doc = " ::SDL_WINDOW_METAL."] + #[doc = ""] + #[doc = " \\return The created window, or NULL if window creation failed."] + #[doc = ""] + #[doc = " If the window is created with the SDL_WINDOW_ALLOW_HIGHDPI flag, its size"] + #[doc = " in pixels may differ from its size in screen coordinates on platforms with"] + #[doc = " high-DPI support (e.g. iOS and Mac OS X). Use SDL_GetWindowSize() to query"] + #[doc = " the client area's size in screen coordinates, and SDL_GL_GetDrawableSize(),"] + #[doc = " SDL_Vulkan_GetDrawableSize(), or SDL_GetRendererOutputSize() to query the"] + #[doc = " drawable size in pixels."] + #[doc = ""] + #[doc = " If the window is created with any of the SDL_WINDOW_OPENGL or"] + #[doc = " SDL_WINDOW_VULKAN flags, then the corresponding LoadLibrary function"] + #[doc = " (SDL_GL_LoadLibrary or SDL_Vulkan_LoadLibrary) is called and the"] + #[doc = " corresponding UnloadLibrary function is called by SDL_DestroyWindow()."] + #[doc = ""] + #[doc = " If SDL_WINDOW_VULKAN is specified and there isn't a working Vulkan driver,"] + #[doc = " SDL_CreateWindow() will fail because SDL_Vulkan_LoadLibrary() will fail."] + #[doc = ""] + #[doc = " If SDL_WINDOW_METAL is specified on an OS that does not support Metal,"] + #[doc = " SDL_CreateWindow() will fail."] + #[doc = ""] + #[doc = " \\note On non-Apple devices, SDL requires you to either not link to the"] + #[doc = " Vulkan loader or link to a dynamic library version. This limitation"] + #[doc = " may be removed in a future version of SDL."] + #[doc = ""] + #[doc = " \\sa SDL_DestroyWindow()"] + #[doc = " \\sa SDL_GL_LoadLibrary()"] + #[doc = " \\sa SDL_Vulkan_LoadLibrary()"] + pub fn SDL_CreateWindow( + title: *const libc::c_char, + x: libc::c_int, + y: libc::c_int, + w: libc::c_int, + h: libc::c_int, + flags: Uint32, + ) -> *mut SDL_Window; +} +extern "C" { + #[doc = " \\brief Create an SDL window from an existing native window."] + #[doc = ""] + #[doc = " \\param data A pointer to driver-dependent window creation data"] + #[doc = ""] + #[doc = " \\return The created window, or NULL if window creation failed."] + #[doc = ""] + #[doc = " \\sa SDL_DestroyWindow()"] + pub fn SDL_CreateWindowFrom(data: *const libc::c_void) -> *mut SDL_Window; +} +extern "C" { + #[doc = " \\brief Get the numeric ID of a window, for logging purposes."] + pub fn SDL_GetWindowID(window: *mut SDL_Window) -> Uint32; +} +extern "C" { + #[doc = " \\brief Get a window from a stored ID, or NULL if it doesn't exist."] + pub fn SDL_GetWindowFromID(id: Uint32) -> *mut SDL_Window; +} +extern "C" { + #[doc = " \\brief Get the window flags."] + pub fn SDL_GetWindowFlags(window: *mut SDL_Window) -> Uint32; +} +extern "C" { + #[doc = " \\brief Set the title of a window, in UTF-8 format."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowTitle()"] + pub fn SDL_SetWindowTitle(window: *mut SDL_Window, title: *const libc::c_char); +} +extern "C" { + #[doc = " \\brief Get the title of a window, in UTF-8 format."] + #[doc = ""] + #[doc = " \\sa SDL_SetWindowTitle()"] + pub fn SDL_GetWindowTitle(window: *mut SDL_Window) -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Set the icon for a window."] + #[doc = ""] + #[doc = " \\param window The window for which the icon should be set."] + #[doc = " \\param icon The icon for the window."] + pub fn SDL_SetWindowIcon(window: *mut SDL_Window, icon: *mut SDL_Surface); +} +extern "C" { + #[doc = " \\brief Associate an arbitrary named pointer with a window."] + #[doc = ""] + #[doc = " \\param window The window to associate with the pointer."] + #[doc = " \\param name The name of the pointer."] + #[doc = " \\param userdata The associated pointer."] + #[doc = ""] + #[doc = " \\return The previous value associated with 'name'"] + #[doc = ""] + #[doc = " \\note The name is case-sensitive."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowData()"] + pub fn SDL_SetWindowData( + window: *mut SDL_Window, + name: *const libc::c_char, + userdata: *mut libc::c_void, + ) -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Retrieve the data pointer associated with a window."] + #[doc = ""] + #[doc = " \\param window The window to query."] + #[doc = " \\param name The name of the pointer."] + #[doc = ""] + #[doc = " \\return The value associated with 'name'"] + #[doc = ""] + #[doc = " \\sa SDL_SetWindowData()"] + pub fn SDL_GetWindowData( + window: *mut SDL_Window, + name: *const libc::c_char, + ) -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Set the position of a window."] + #[doc = ""] + #[doc = " \\param window The window to reposition."] + #[doc = " \\param x The x coordinate of the window in screen coordinates, or"] + #[doc = " ::SDL_WINDOWPOS_CENTERED or ::SDL_WINDOWPOS_UNDEFINED."] + #[doc = " \\param y The y coordinate of the window in screen coordinates, or"] + #[doc = " ::SDL_WINDOWPOS_CENTERED or ::SDL_WINDOWPOS_UNDEFINED."] + #[doc = ""] + #[doc = " \\note The window coordinate origin is the upper left of the display."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowPosition()"] + pub fn SDL_SetWindowPosition(window: *mut SDL_Window, x: libc::c_int, y: libc::c_int); +} +extern "C" { + #[doc = " \\brief Get the position of a window."] + #[doc = ""] + #[doc = " \\param window The window to query."] + #[doc = " \\param x Pointer to variable for storing the x position, in screen"] + #[doc = " coordinates. May be NULL."] + #[doc = " \\param y Pointer to variable for storing the y position, in screen"] + #[doc = " coordinates. May be NULL."] + #[doc = ""] + #[doc = " \\sa SDL_SetWindowPosition()"] + pub fn SDL_GetWindowPosition(window: *mut SDL_Window, x: *mut libc::c_int, y: *mut libc::c_int); +} +extern "C" { + #[doc = " \\brief Set the size of a window's client area."] + #[doc = ""] + #[doc = " \\param window The window to resize."] + #[doc = " \\param w The width of the window, in screen coordinates. Must be >0."] + #[doc = " \\param h The height of the window, in screen coordinates. Must be >0."] + #[doc = ""] + #[doc = " \\note Fullscreen windows automatically match the size of the display mode,"] + #[doc = " and you should use SDL_SetWindowDisplayMode() to change their size."] + #[doc = ""] + #[doc = " The window size in screen coordinates may differ from the size in pixels, if"] + #[doc = " the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a platform with"] + #[doc = " high-dpi support (e.g. iOS or OS X). Use SDL_GL_GetDrawableSize() or"] + #[doc = " SDL_GetRendererOutputSize() to get the real client area size in pixels."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowSize()"] + #[doc = " \\sa SDL_SetWindowDisplayMode()"] + pub fn SDL_SetWindowSize(window: *mut SDL_Window, w: libc::c_int, h: libc::c_int); +} +extern "C" { + #[doc = " \\brief Get the size of a window's client area."] + #[doc = ""] + #[doc = " \\param window The window to query."] + #[doc = " \\param w Pointer to variable for storing the width, in screen"] + #[doc = " coordinates. May be NULL."] + #[doc = " \\param h Pointer to variable for storing the height, in screen"] + #[doc = " coordinates. May be NULL."] + #[doc = ""] + #[doc = " The window size in screen coordinates may differ from the size in pixels, if"] + #[doc = " the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a platform with"] + #[doc = " high-dpi support (e.g. iOS or OS X). Use SDL_GL_GetDrawableSize() or"] + #[doc = " SDL_GetRendererOutputSize() to get the real client area size in pixels."] + #[doc = ""] + #[doc = " \\sa SDL_SetWindowSize()"] + pub fn SDL_GetWindowSize(window: *mut SDL_Window, w: *mut libc::c_int, h: *mut libc::c_int); +} +extern "C" { + #[doc = " \\brief Get the size of a window's borders (decorations) around the client area."] + #[doc = ""] + #[doc = " \\param window The window to query."] + #[doc = " \\param top Pointer to variable for storing the size of the top border. NULL is permitted."] + #[doc = " \\param left Pointer to variable for storing the size of the left border. NULL is permitted."] + #[doc = " \\param bottom Pointer to variable for storing the size of the bottom border. NULL is permitted."] + #[doc = " \\param right Pointer to variable for storing the size of the right border. NULL is permitted."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if getting this information is not supported."] + #[doc = ""] + #[doc = " \\note if this function fails (returns -1), the size values will be"] + #[doc = " initialized to 0, 0, 0, 0 (if a non-NULL pointer is provided), as"] + #[doc = " if the window in question was borderless."] + pub fn SDL_GetWindowBordersSize( + window: *mut SDL_Window, + top: *mut libc::c_int, + left: *mut libc::c_int, + bottom: *mut libc::c_int, + right: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set the minimum size of a window's client area."] + #[doc = ""] + #[doc = " \\param window The window to set a new minimum size."] + #[doc = " \\param min_w The minimum width of the window, must be >0"] + #[doc = " \\param min_h The minimum height of the window, must be >0"] + #[doc = ""] + #[doc = " \\note You can't change the minimum size of a fullscreen window, it"] + #[doc = " automatically matches the size of the display mode."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowMinimumSize()"] + #[doc = " \\sa SDL_SetWindowMaximumSize()"] + pub fn SDL_SetWindowMinimumSize( + window: *mut SDL_Window, + min_w: libc::c_int, + min_h: libc::c_int, + ); +} +extern "C" { + #[doc = " \\brief Get the minimum size of a window's client area."] + #[doc = ""] + #[doc = " \\param window The window to query."] + #[doc = " \\param w Pointer to variable for storing the minimum width, may be NULL"] + #[doc = " \\param h Pointer to variable for storing the minimum height, may be NULL"] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowMaximumSize()"] + #[doc = " \\sa SDL_SetWindowMinimumSize()"] + pub fn SDL_GetWindowMinimumSize( + window: *mut SDL_Window, + w: *mut libc::c_int, + h: *mut libc::c_int, + ); +} +extern "C" { + #[doc = " \\brief Set the maximum size of a window's client area."] + #[doc = ""] + #[doc = " \\param window The window to set a new maximum size."] + #[doc = " \\param max_w The maximum width of the window, must be >0"] + #[doc = " \\param max_h The maximum height of the window, must be >0"] + #[doc = ""] + #[doc = " \\note You can't change the maximum size of a fullscreen window, it"] + #[doc = " automatically matches the size of the display mode."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowMaximumSize()"] + #[doc = " \\sa SDL_SetWindowMinimumSize()"] + pub fn SDL_SetWindowMaximumSize( + window: *mut SDL_Window, + max_w: libc::c_int, + max_h: libc::c_int, + ); +} +extern "C" { + #[doc = " \\brief Get the maximum size of a window's client area."] + #[doc = ""] + #[doc = " \\param window The window to query."] + #[doc = " \\param w Pointer to variable for storing the maximum width, may be NULL"] + #[doc = " \\param h Pointer to variable for storing the maximum height, may be NULL"] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowMinimumSize()"] + #[doc = " \\sa SDL_SetWindowMaximumSize()"] + pub fn SDL_GetWindowMaximumSize( + window: *mut SDL_Window, + w: *mut libc::c_int, + h: *mut libc::c_int, + ); +} +extern "C" { + #[doc = " \\brief Set the border state of a window."] + #[doc = ""] + #[doc = " This will add or remove the window's SDL_WINDOW_BORDERLESS flag and"] + #[doc = " add or remove the border from the actual window. This is a no-op if the"] + #[doc = " window's border already matches the requested state."] + #[doc = ""] + #[doc = " \\param window The window of which to change the border state."] + #[doc = " \\param bordered SDL_FALSE to remove border, SDL_TRUE to add border."] + #[doc = ""] + #[doc = " \\note You can't change the border state of a fullscreen window."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowFlags()"] + pub fn SDL_SetWindowBordered(window: *mut SDL_Window, bordered: SDL_bool); +} +extern "C" { + #[doc = " \\brief Set the user-resizable state of a window."] + #[doc = ""] + #[doc = " This will add or remove the window's SDL_WINDOW_RESIZABLE flag and"] + #[doc = " allow/disallow user resizing of the window. This is a no-op if the"] + #[doc = " window's resizable state already matches the requested state."] + #[doc = ""] + #[doc = " \\param window The window of which to change the resizable state."] + #[doc = " \\param resizable SDL_TRUE to allow resizing, SDL_FALSE to disallow."] + #[doc = ""] + #[doc = " \\note You can't change the resizable state of a fullscreen window."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowFlags()"] + pub fn SDL_SetWindowResizable(window: *mut SDL_Window, resizable: SDL_bool); +} +extern "C" { + #[doc = " \\brief Show a window."] + #[doc = ""] + #[doc = " \\sa SDL_HideWindow()"] + pub fn SDL_ShowWindow(window: *mut SDL_Window); +} +extern "C" { + #[doc = " \\brief Hide a window."] + #[doc = ""] + #[doc = " \\sa SDL_ShowWindow()"] + pub fn SDL_HideWindow(window: *mut SDL_Window); +} +extern "C" { + #[doc = " \\brief Raise a window above other windows and set the input focus."] + pub fn SDL_RaiseWindow(window: *mut SDL_Window); +} +extern "C" { + #[doc = " \\brief Make a window as large as possible."] + #[doc = ""] + #[doc = " \\sa SDL_RestoreWindow()"] + pub fn SDL_MaximizeWindow(window: *mut SDL_Window); +} +extern "C" { + #[doc = " \\brief Minimize a window to an iconic representation."] + #[doc = ""] + #[doc = " \\sa SDL_RestoreWindow()"] + pub fn SDL_MinimizeWindow(window: *mut SDL_Window); +} +extern "C" { + #[doc = " \\brief Restore the size and position of a minimized or maximized window."] + #[doc = ""] + #[doc = " \\sa SDL_MaximizeWindow()"] + #[doc = " \\sa SDL_MinimizeWindow()"] + pub fn SDL_RestoreWindow(window: *mut SDL_Window); +} +extern "C" { + #[doc = " \\brief Set a window's fullscreen state."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if setting the display mode failed."] + #[doc = ""] + #[doc = " \\sa SDL_SetWindowDisplayMode()"] + #[doc = " \\sa SDL_GetWindowDisplayMode()"] + pub fn SDL_SetWindowFullscreen(window: *mut SDL_Window, flags: Uint32) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the SDL surface associated with the window."] + #[doc = ""] + #[doc = " \\return The window's framebuffer surface, or NULL on error."] + #[doc = ""] + #[doc = " A new surface will be created with the optimal format for the window,"] + #[doc = " if necessary. This surface will be freed when the window is destroyed."] + #[doc = ""] + #[doc = " \\note You may not combine this with 3D or the rendering API on this window."] + #[doc = ""] + #[doc = " \\sa SDL_UpdateWindowSurface()"] + #[doc = " \\sa SDL_UpdateWindowSurfaceRects()"] + pub fn SDL_GetWindowSurface(window: *mut SDL_Window) -> *mut SDL_Surface; +} +extern "C" { + #[doc = " \\brief Copy the window surface to the screen."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowSurface()"] + #[doc = " \\sa SDL_UpdateWindowSurfaceRects()"] + pub fn SDL_UpdateWindowSurface(window: *mut SDL_Window) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Copy a number of rectangles on the window surface to the screen."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowSurface()"] + #[doc = " \\sa SDL_UpdateWindowSurface()"] + pub fn SDL_UpdateWindowSurfaceRects( + window: *mut SDL_Window, + rects: *const SDL_Rect, + numrects: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set a window's input grab mode."] + #[doc = ""] + #[doc = " \\param window The window for which the input grab mode should be set."] + #[doc = " \\param grabbed This is SDL_TRUE to grab input, and SDL_FALSE to release input."] + #[doc = ""] + #[doc = " If the caller enables a grab while another window is currently grabbed,"] + #[doc = " the other window loses its grab in favor of the caller's window."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowGrab()"] + pub fn SDL_SetWindowGrab(window: *mut SDL_Window, grabbed: SDL_bool); +} +extern "C" { + #[doc = " \\brief Get a window's input grab mode."] + #[doc = ""] + #[doc = " \\return This returns SDL_TRUE if input is grabbed, and SDL_FALSE otherwise."] + #[doc = ""] + #[doc = " \\sa SDL_SetWindowGrab()"] + pub fn SDL_GetWindowGrab(window: *mut SDL_Window) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Get the window that currently has an input grab enabled."] + #[doc = ""] + #[doc = " \\return This returns the window if input is grabbed, and NULL otherwise."] + #[doc = ""] + #[doc = " \\sa SDL_SetWindowGrab()"] + pub fn SDL_GetGrabbedWindow() -> *mut SDL_Window; +} +extern "C" { + #[doc = " \\brief Set the brightness (gamma correction) for a window."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if setting the brightness isn't supported."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowBrightness()"] + #[doc = " \\sa SDL_SetWindowGammaRamp()"] + pub fn SDL_SetWindowBrightness(window: *mut SDL_Window, brightness: f32) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the brightness (gamma correction) for a window."] + #[doc = ""] + #[doc = " \\return The last brightness value passed to SDL_SetWindowBrightness()"] + #[doc = ""] + #[doc = " \\sa SDL_SetWindowBrightness()"] + pub fn SDL_GetWindowBrightness(window: *mut SDL_Window) -> f32; +} +extern "C" { + #[doc = " \\brief Set the opacity for a window"] + #[doc = ""] + #[doc = " \\param window The window which will be made transparent or opaque"] + #[doc = " \\param opacity Opacity (0.0f - transparent, 1.0f - opaque) This will be"] + #[doc = " clamped internally between 0.0f and 1.0f."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if setting the opacity isn't supported."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowOpacity()"] + pub fn SDL_SetWindowOpacity(window: *mut SDL_Window, opacity: f32) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the opacity of a window."] + #[doc = ""] + #[doc = " If transparency isn't supported on this platform, opacity will be reported"] + #[doc = " as 1.0f without error."] + #[doc = ""] + #[doc = " \\param window The window in question."] + #[doc = " \\param out_opacity Opacity (0.0f - transparent, 1.0f - opaque)"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error (invalid window, etc)."] + #[doc = ""] + #[doc = " \\sa SDL_SetWindowOpacity()"] + pub fn SDL_GetWindowOpacity(window: *mut SDL_Window, out_opacity: *mut f32) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Sets the window as a modal for another window (TODO: reconsider this function and/or its name)"] + #[doc = ""] + #[doc = " \\param modal_window The window that should be modal"] + #[doc = " \\param parent_window The parent window"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 otherwise."] + pub fn SDL_SetWindowModalFor( + modal_window: *mut SDL_Window, + parent_window: *mut SDL_Window, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Explicitly sets input focus to the window."] + #[doc = ""] + #[doc = " You almost certainly want SDL_RaiseWindow() instead of this function. Use"] + #[doc = " this with caution, as you might give focus to a window that's completely"] + #[doc = " obscured by other windows."] + #[doc = ""] + #[doc = " \\param window The window that should get the input focus"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 otherwise."] + #[doc = " \\sa SDL_RaiseWindow()"] + pub fn SDL_SetWindowInputFocus(window: *mut SDL_Window) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set the gamma ramp for a window."] + #[doc = ""] + #[doc = " \\param window The window for which the gamma ramp should be set."] + #[doc = " \\param red The translation table for the red channel, or NULL."] + #[doc = " \\param green The translation table for the green channel, or NULL."] + #[doc = " \\param blue The translation table for the blue channel, or NULL."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if gamma ramps are unsupported."] + #[doc = ""] + #[doc = " Set the gamma translation table for the red, green, and blue channels"] + #[doc = " of the video hardware. Each table is an array of 256 16-bit quantities,"] + #[doc = " representing a mapping between the input and output for that channel."] + #[doc = " The input is the index into the array, and the output is the 16-bit"] + #[doc = " gamma value at that index, scaled to the output color precision."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowGammaRamp()"] + pub fn SDL_SetWindowGammaRamp( + window: *mut SDL_Window, + red: *const Uint16, + green: *const Uint16, + blue: *const Uint16, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the gamma ramp for a window."] + #[doc = ""] + #[doc = " \\param window The window from which the gamma ramp should be queried."] + #[doc = " \\param red A pointer to a 256 element array of 16-bit quantities to hold"] + #[doc = " the translation table for the red channel, or NULL."] + #[doc = " \\param green A pointer to a 256 element array of 16-bit quantities to hold"] + #[doc = " the translation table for the green channel, or NULL."] + #[doc = " \\param blue A pointer to a 256 element array of 16-bit quantities to hold"] + #[doc = " the translation table for the blue channel, or NULL."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if gamma ramps are unsupported."] + #[doc = ""] + #[doc = " \\sa SDL_SetWindowGammaRamp()"] + pub fn SDL_GetWindowGammaRamp( + window: *mut SDL_Window, + red: *mut Uint16, + green: *mut Uint16, + blue: *mut Uint16, + ) -> libc::c_int; +} +#[repr(u32)] +#[doc = " \\brief Possible return values from the SDL_HitTest callback."] +#[doc = ""] +#[doc = " \\sa SDL_HitTest"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_HitTestResult { + #[doc = "< Region is normal. No special properties."] + SDL_HITTEST_NORMAL = 0, + #[doc = "< Region can drag entire window."] + SDL_HITTEST_DRAGGABLE = 1, + SDL_HITTEST_RESIZE_TOPLEFT = 2, + SDL_HITTEST_RESIZE_TOP = 3, + SDL_HITTEST_RESIZE_TOPRIGHT = 4, + SDL_HITTEST_RESIZE_RIGHT = 5, + SDL_HITTEST_RESIZE_BOTTOMRIGHT = 6, + SDL_HITTEST_RESIZE_BOTTOM = 7, + SDL_HITTEST_RESIZE_BOTTOMLEFT = 8, + SDL_HITTEST_RESIZE_LEFT = 9, +} +#[doc = " \\brief Callback used for hit-testing."] +#[doc = ""] +#[doc = " \\sa SDL_SetWindowHitTest"] +pub type SDL_HitTest = ::core::option::Option< + unsafe extern "C" fn( + win: *mut SDL_Window, + area: *const SDL_Point, + data: *mut libc::c_void, + ) -> SDL_HitTestResult, +>; +extern "C" { + #[doc = " \\brief Provide a callback that decides if a window region has special properties."] + #[doc = ""] + #[doc = " Normally windows are dragged and resized by decorations provided by the"] + #[doc = " system window manager (a title bar, borders, etc), but for some apps, it"] + #[doc = " makes sense to drag them from somewhere else inside the window itself; for"] + #[doc = " example, one might have a borderless window that wants to be draggable"] + #[doc = " from any part, or simulate its own title bar, etc."] + #[doc = ""] + #[doc = " This function lets the app provide a callback that designates pieces of"] + #[doc = " a given window as special. This callback is run during event processing"] + #[doc = " if we need to tell the OS to treat a region of the window specially; the"] + #[doc = " use of this callback is known as \"hit testing.\""] + #[doc = ""] + #[doc = " Mouse input may not be delivered to your application if it is within"] + #[doc = " a special area; the OS will often apply that input to moving the window or"] + #[doc = " resizing the window and not deliver it to the application."] + #[doc = ""] + #[doc = " Specifying NULL for a callback disables hit-testing. Hit-testing is"] + #[doc = " disabled by default."] + #[doc = ""] + #[doc = " Platforms that don't support this functionality will return -1"] + #[doc = " unconditionally, even if you're attempting to disable hit-testing."] + #[doc = ""] + #[doc = " Your callback may fire at any time, and its firing does not indicate any"] + #[doc = " specific behavior (for example, on Windows, this certainly might fire"] + #[doc = " when the OS is deciding whether to drag your window, but it fires for lots"] + #[doc = " of other reasons, too, some unrelated to anything you probably care about"] + #[doc = " _and when the mouse isn't actually at the location it is testing_)."] + #[doc = " Since this can fire at any time, you should try to keep your callback"] + #[doc = " efficient, devoid of allocations, etc."] + #[doc = ""] + #[doc = " \\param window The window to set hit-testing on."] + #[doc = " \\param callback The callback to call when doing a hit-test."] + #[doc = " \\param callback_data An app-defined void pointer passed to the callback."] + #[doc = " \\return 0 on success, -1 on error (including unsupported)."] + pub fn SDL_SetWindowHitTest( + window: *mut SDL_Window, + callback: SDL_HitTest, + callback_data: *mut libc::c_void, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Destroy a window."] + pub fn SDL_DestroyWindow(window: *mut SDL_Window); +} +extern "C" { + #[doc = " \\brief Returns whether the screensaver is currently enabled (default off)."] + #[doc = ""] + #[doc = " \\sa SDL_EnableScreenSaver()"] + #[doc = " \\sa SDL_DisableScreenSaver()"] + pub fn SDL_IsScreenSaverEnabled() -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Allow the screen to be blanked by a screensaver"] + #[doc = ""] + #[doc = " \\sa SDL_IsScreenSaverEnabled()"] + #[doc = " \\sa SDL_DisableScreenSaver()"] + pub fn SDL_EnableScreenSaver(); +} +extern "C" { + #[doc = " \\brief Prevent the screen from being blanked by a screensaver"] + #[doc = ""] + #[doc = " \\sa SDL_IsScreenSaverEnabled()"] + #[doc = " \\sa SDL_EnableScreenSaver()"] + pub fn SDL_DisableScreenSaver(); +} +extern "C" { + #[doc = " \\brief Dynamically load an OpenGL library."] + #[doc = ""] + #[doc = " \\param path The platform dependent OpenGL library name, or NULL to open the"] + #[doc = " default OpenGL library."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the library couldn't be loaded."] + #[doc = ""] + #[doc = " This should be done after initializing the video driver, but before"] + #[doc = " creating any OpenGL windows. If no OpenGL library is loaded, the default"] + #[doc = " library will be loaded upon creation of the first OpenGL window."] + #[doc = ""] + #[doc = " \\note If you do this, you need to retrieve all of the GL functions used in"] + #[doc = " your program from the dynamic library using SDL_GL_GetProcAddress()."] + #[doc = ""] + #[doc = " \\sa SDL_GL_GetProcAddress()"] + #[doc = " \\sa SDL_GL_UnloadLibrary()"] + pub fn SDL_GL_LoadLibrary(path: *const libc::c_char) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the address of an OpenGL function."] + pub fn SDL_GL_GetProcAddress(proc_: *const libc::c_char) -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Unload the OpenGL library previously loaded by SDL_GL_LoadLibrary()."] + #[doc = ""] + #[doc = " \\sa SDL_GL_LoadLibrary()"] + pub fn SDL_GL_UnloadLibrary(); +} +extern "C" { + #[doc = " \\brief Return true if an OpenGL extension is supported for the current"] + #[doc = " context."] + pub fn SDL_GL_ExtensionSupported(extension: *const libc::c_char) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Reset all previously set OpenGL context attributes to their default values"] + pub fn SDL_GL_ResetAttributes(); +} +extern "C" { + #[doc = " \\brief Set an OpenGL window attribute before window creation."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the attribute could not be set."] + pub fn SDL_GL_SetAttribute(attr: SDL_GLattr, value: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the actual value for an attribute from the current context."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the attribute could not be retrieved."] + #[doc = " The integer at \\c value will be modified in either case."] + pub fn SDL_GL_GetAttribute(attr: SDL_GLattr, value: *mut libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Create an OpenGL context for use with an OpenGL window, and make it"] + #[doc = " current."] + #[doc = ""] + #[doc = " \\sa SDL_GL_DeleteContext()"] + pub fn SDL_GL_CreateContext(window: *mut SDL_Window) -> SDL_GLContext; +} +extern "C" { + #[doc = " \\brief Set up an OpenGL context for rendering into an OpenGL window."] + #[doc = ""] + #[doc = " \\note The context must have been created with a compatible window."] + pub fn SDL_GL_MakeCurrent(window: *mut SDL_Window, context: SDL_GLContext) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the currently active OpenGL window."] + pub fn SDL_GL_GetCurrentWindow() -> *mut SDL_Window; +} +extern "C" { + #[doc = " \\brief Get the currently active OpenGL context."] + pub fn SDL_GL_GetCurrentContext() -> SDL_GLContext; +} +extern "C" { + #[doc = " \\brief Get the size of a window's underlying drawable in pixels (for use"] + #[doc = " with glViewport)."] + #[doc = ""] + #[doc = " \\param window Window from which the drawable size should be queried"] + #[doc = " \\param w Pointer to variable for storing the width in pixels, may be NULL"] + #[doc = " \\param h Pointer to variable for storing the height in pixels, may be NULL"] + #[doc = ""] + #[doc = " This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI"] + #[doc = " drawable, i.e. the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a"] + #[doc = " platform with high-DPI support (Apple calls this \"Retina\"), and not disabled"] + #[doc = " by the SDL_HINT_VIDEO_HIGHDPI_DISABLED hint."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowSize()"] + #[doc = " \\sa SDL_CreateWindow()"] + pub fn SDL_GL_GetDrawableSize( + window: *mut SDL_Window, + w: *mut libc::c_int, + h: *mut libc::c_int, + ); +} +extern "C" { + #[doc = " \\brief Set the swap interval for the current OpenGL context."] + #[doc = ""] + #[doc = " \\param interval 0 for immediate updates, 1 for updates synchronized with the"] + #[doc = " vertical retrace. If the system supports it, you may"] + #[doc = " specify -1 to allow late swaps to happen immediately"] + #[doc = " instead of waiting for the next retrace."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if setting the swap interval is not supported."] + #[doc = ""] + #[doc = " \\sa SDL_GL_GetSwapInterval()"] + pub fn SDL_GL_SetSwapInterval(interval: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the swap interval for the current OpenGL context."] + #[doc = ""] + #[doc = " \\return 0 if there is no vertical retrace synchronization, 1 if the buffer"] + #[doc = " swap is synchronized with the vertical retrace, and -1 if late"] + #[doc = " swaps happen immediately instead of waiting for the next retrace."] + #[doc = " If the system can't determine the swap interval, or there isn't a"] + #[doc = " valid current context, this will return 0 as a safe default."] + #[doc = ""] + #[doc = " \\sa SDL_GL_SetSwapInterval()"] + pub fn SDL_GL_GetSwapInterval() -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Swap the OpenGL buffers for a window, if double-buffering is"] + #[doc = " supported."] + pub fn SDL_GL_SwapWindow(window: *mut SDL_Window); +} +extern "C" { + #[doc = " \\brief Delete an OpenGL context."] + #[doc = ""] + #[doc = " \\sa SDL_GL_CreateContext()"] + pub fn SDL_GL_DeleteContext(context: SDL_GLContext); +} +#[repr(u32)] +#[doc = " \\brief The SDL keyboard scancode representation."] +#[doc = ""] +#[doc = " Values of this type are used to represent keyboard keys, among other places"] +#[doc = " in the \\link SDL_Keysym::scancode key.keysym.scancode \\endlink field of the"] +#[doc = " SDL_Event structure."] +#[doc = ""] +#[doc = " The values in this enumeration are based on the USB usage page standard:"] +#[doc = " https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_Scancode { + SDL_SCANCODE_UNKNOWN = 0, + SDL_SCANCODE_A = 4, + SDL_SCANCODE_B = 5, + SDL_SCANCODE_C = 6, + SDL_SCANCODE_D = 7, + SDL_SCANCODE_E = 8, + SDL_SCANCODE_F = 9, + SDL_SCANCODE_G = 10, + SDL_SCANCODE_H = 11, + SDL_SCANCODE_I = 12, + SDL_SCANCODE_J = 13, + SDL_SCANCODE_K = 14, + SDL_SCANCODE_L = 15, + SDL_SCANCODE_M = 16, + SDL_SCANCODE_N = 17, + SDL_SCANCODE_O = 18, + SDL_SCANCODE_P = 19, + SDL_SCANCODE_Q = 20, + SDL_SCANCODE_R = 21, + SDL_SCANCODE_S = 22, + SDL_SCANCODE_T = 23, + SDL_SCANCODE_U = 24, + SDL_SCANCODE_V = 25, + SDL_SCANCODE_W = 26, + SDL_SCANCODE_X = 27, + SDL_SCANCODE_Y = 28, + SDL_SCANCODE_Z = 29, + SDL_SCANCODE_1 = 30, + SDL_SCANCODE_2 = 31, + SDL_SCANCODE_3 = 32, + SDL_SCANCODE_4 = 33, + SDL_SCANCODE_5 = 34, + SDL_SCANCODE_6 = 35, + SDL_SCANCODE_7 = 36, + SDL_SCANCODE_8 = 37, + SDL_SCANCODE_9 = 38, + SDL_SCANCODE_0 = 39, + SDL_SCANCODE_RETURN = 40, + SDL_SCANCODE_ESCAPE = 41, + SDL_SCANCODE_BACKSPACE = 42, + SDL_SCANCODE_TAB = 43, + SDL_SCANCODE_SPACE = 44, + SDL_SCANCODE_MINUS = 45, + SDL_SCANCODE_EQUALS = 46, + SDL_SCANCODE_LEFTBRACKET = 47, + SDL_SCANCODE_RIGHTBRACKET = 48, + #[doc = "< Located at the lower left of the return"] + #[doc = " key on ISO keyboards and at the right end"] + #[doc = " of the QWERTY row on ANSI keyboards."] + #[doc = " Produces REVERSE SOLIDUS (backslash) and"] + #[doc = " VERTICAL LINE in a US layout, REVERSE"] + #[doc = " SOLIDUS and VERTICAL LINE in a UK Mac"] + #[doc = " layout, NUMBER SIGN and TILDE in a UK"] + #[doc = " Windows layout, DOLLAR SIGN and POUND SIGN"] + #[doc = " in a Swiss German layout, NUMBER SIGN and"] + #[doc = " APOSTROPHE in a German layout, GRAVE"] + #[doc = " ACCENT and POUND SIGN in a French Mac"] + #[doc = " layout, and ASTERISK and MICRO SIGN in a"] + #[doc = " French Windows layout."] + SDL_SCANCODE_BACKSLASH = 49, + #[doc = "< ISO USB keyboards actually use this code"] + #[doc = " instead of 49 for the same key, but all"] + #[doc = " OSes I've seen treat the two codes"] + #[doc = " identically. So, as an implementor, unless"] + #[doc = " your keyboard generates both of those"] + #[doc = " codes and your OS treats them differently,"] + #[doc = " you should generate SDL_SCANCODE_BACKSLASH"] + #[doc = " instead of this code. As a user, you"] + #[doc = " should not rely on this code because SDL"] + #[doc = " will never generate it with most (all?)"] + #[doc = " keyboards."] + SDL_SCANCODE_NONUSHASH = 50, + SDL_SCANCODE_SEMICOLON = 51, + SDL_SCANCODE_APOSTROPHE = 52, + #[doc = "< Located in the top left corner (on both ANSI"] + #[doc = " and ISO keyboards). Produces GRAVE ACCENT and"] + #[doc = " TILDE in a US Windows layout and in US and UK"] + #[doc = " Mac layouts on ANSI keyboards, GRAVE ACCENT"] + #[doc = " and NOT SIGN in a UK Windows layout, SECTION"] + #[doc = " SIGN and PLUS-MINUS SIGN in US and UK Mac"] + #[doc = " layouts on ISO keyboards, SECTION SIGN and"] + #[doc = " DEGREE SIGN in a Swiss German layout (Mac:"] + #[doc = " only on ISO keyboards), CIRCUMFLEX ACCENT and"] + #[doc = " DEGREE SIGN in a German layout (Mac: only on"] + #[doc = " ISO keyboards), SUPERSCRIPT TWO and TILDE in a"] + #[doc = " French Windows layout, COMMERCIAL AT and"] + #[doc = " NUMBER SIGN in a French Mac layout on ISO"] + #[doc = " keyboards, and LESS-THAN SIGN and GREATER-THAN"] + #[doc = " SIGN in a Swiss German, German, or French Mac"] + #[doc = " layout on ANSI keyboards."] + SDL_SCANCODE_GRAVE = 53, + SDL_SCANCODE_COMMA = 54, + SDL_SCANCODE_PERIOD = 55, + SDL_SCANCODE_SLASH = 56, + SDL_SCANCODE_CAPSLOCK = 57, + SDL_SCANCODE_F1 = 58, + SDL_SCANCODE_F2 = 59, + SDL_SCANCODE_F3 = 60, + SDL_SCANCODE_F4 = 61, + SDL_SCANCODE_F5 = 62, + SDL_SCANCODE_F6 = 63, + SDL_SCANCODE_F7 = 64, + SDL_SCANCODE_F8 = 65, + SDL_SCANCODE_F9 = 66, + SDL_SCANCODE_F10 = 67, + SDL_SCANCODE_F11 = 68, + SDL_SCANCODE_F12 = 69, + SDL_SCANCODE_PRINTSCREEN = 70, + SDL_SCANCODE_SCROLLLOCK = 71, + SDL_SCANCODE_PAUSE = 72, + #[doc = "< insert on PC, help on some Mac keyboards (but"] + #[doc = "does send code 73, not 117)"] + SDL_SCANCODE_INSERT = 73, + SDL_SCANCODE_HOME = 74, + SDL_SCANCODE_PAGEUP = 75, + SDL_SCANCODE_DELETE = 76, + SDL_SCANCODE_END = 77, + SDL_SCANCODE_PAGEDOWN = 78, + SDL_SCANCODE_RIGHT = 79, + SDL_SCANCODE_LEFT = 80, + SDL_SCANCODE_DOWN = 81, + SDL_SCANCODE_UP = 82, + #[doc = "< num lock on PC, clear on Mac keyboards"] + SDL_SCANCODE_NUMLOCKCLEAR = 83, + SDL_SCANCODE_KP_DIVIDE = 84, + SDL_SCANCODE_KP_MULTIPLY = 85, + SDL_SCANCODE_KP_MINUS = 86, + SDL_SCANCODE_KP_PLUS = 87, + SDL_SCANCODE_KP_ENTER = 88, + SDL_SCANCODE_KP_1 = 89, + SDL_SCANCODE_KP_2 = 90, + SDL_SCANCODE_KP_3 = 91, + SDL_SCANCODE_KP_4 = 92, + SDL_SCANCODE_KP_5 = 93, + SDL_SCANCODE_KP_6 = 94, + SDL_SCANCODE_KP_7 = 95, + SDL_SCANCODE_KP_8 = 96, + SDL_SCANCODE_KP_9 = 97, + SDL_SCANCODE_KP_0 = 98, + SDL_SCANCODE_KP_PERIOD = 99, + #[doc = "< This is the additional key that ISO"] + #[doc = " keyboards have over ANSI ones,"] + #[doc = " located between left shift and Y."] + #[doc = " Produces GRAVE ACCENT and TILDE in a"] + #[doc = " US or UK Mac layout, REVERSE SOLIDUS"] + #[doc = " (backslash) and VERTICAL LINE in a"] + #[doc = " US or UK Windows layout, and"] + #[doc = " LESS-THAN SIGN and GREATER-THAN SIGN"] + #[doc = " in a Swiss German, German, or French"] + #[doc = " layout."] + SDL_SCANCODE_NONUSBACKSLASH = 100, + #[doc = "< windows contextual menu, compose"] + SDL_SCANCODE_APPLICATION = 101, + #[doc = "< The USB document says this is a status flag,"] + #[doc = " not a physical key - but some Mac keyboards"] + #[doc = " do have a power key."] + SDL_SCANCODE_POWER = 102, + SDL_SCANCODE_KP_EQUALS = 103, + SDL_SCANCODE_F13 = 104, + SDL_SCANCODE_F14 = 105, + SDL_SCANCODE_F15 = 106, + SDL_SCANCODE_F16 = 107, + SDL_SCANCODE_F17 = 108, + SDL_SCANCODE_F18 = 109, + SDL_SCANCODE_F19 = 110, + SDL_SCANCODE_F20 = 111, + SDL_SCANCODE_F21 = 112, + SDL_SCANCODE_F22 = 113, + SDL_SCANCODE_F23 = 114, + SDL_SCANCODE_F24 = 115, + SDL_SCANCODE_EXECUTE = 116, + SDL_SCANCODE_HELP = 117, + SDL_SCANCODE_MENU = 118, + SDL_SCANCODE_SELECT = 119, + SDL_SCANCODE_STOP = 120, + #[doc = "< redo"] + SDL_SCANCODE_AGAIN = 121, + SDL_SCANCODE_UNDO = 122, + SDL_SCANCODE_CUT = 123, + SDL_SCANCODE_COPY = 124, + SDL_SCANCODE_PASTE = 125, + SDL_SCANCODE_FIND = 126, + SDL_SCANCODE_MUTE = 127, + SDL_SCANCODE_VOLUMEUP = 128, + SDL_SCANCODE_VOLUMEDOWN = 129, + SDL_SCANCODE_KP_COMMA = 133, + SDL_SCANCODE_KP_EQUALSAS400 = 134, + #[doc = "< used on Asian keyboards, see"] + #[doc = "footnotes in USB doc"] + SDL_SCANCODE_INTERNATIONAL1 = 135, + SDL_SCANCODE_INTERNATIONAL2 = 136, + #[doc = "< Yen"] + SDL_SCANCODE_INTERNATIONAL3 = 137, + SDL_SCANCODE_INTERNATIONAL4 = 138, + SDL_SCANCODE_INTERNATIONAL5 = 139, + SDL_SCANCODE_INTERNATIONAL6 = 140, + SDL_SCANCODE_INTERNATIONAL7 = 141, + SDL_SCANCODE_INTERNATIONAL8 = 142, + SDL_SCANCODE_INTERNATIONAL9 = 143, + #[doc = "< Hangul/English toggle"] + SDL_SCANCODE_LANG1 = 144, + #[doc = "< Hanja conversion"] + SDL_SCANCODE_LANG2 = 145, + #[doc = "< Katakana"] + SDL_SCANCODE_LANG3 = 146, + #[doc = "< Hiragana"] + SDL_SCANCODE_LANG4 = 147, + #[doc = "< Zenkaku/Hankaku"] + SDL_SCANCODE_LANG5 = 148, + #[doc = "< reserved"] + SDL_SCANCODE_LANG6 = 149, + #[doc = "< reserved"] + SDL_SCANCODE_LANG7 = 150, + #[doc = "< reserved"] + SDL_SCANCODE_LANG8 = 151, + #[doc = "< reserved"] + SDL_SCANCODE_LANG9 = 152, + #[doc = "< Erase-Eaze"] + SDL_SCANCODE_ALTERASE = 153, + SDL_SCANCODE_SYSREQ = 154, + SDL_SCANCODE_CANCEL = 155, + SDL_SCANCODE_CLEAR = 156, + SDL_SCANCODE_PRIOR = 157, + SDL_SCANCODE_RETURN2 = 158, + SDL_SCANCODE_SEPARATOR = 159, + SDL_SCANCODE_OUT = 160, + SDL_SCANCODE_OPER = 161, + SDL_SCANCODE_CLEARAGAIN = 162, + SDL_SCANCODE_CRSEL = 163, + SDL_SCANCODE_EXSEL = 164, + SDL_SCANCODE_KP_00 = 176, + SDL_SCANCODE_KP_000 = 177, + SDL_SCANCODE_THOUSANDSSEPARATOR = 178, + SDL_SCANCODE_DECIMALSEPARATOR = 179, + SDL_SCANCODE_CURRENCYUNIT = 180, + SDL_SCANCODE_CURRENCYSUBUNIT = 181, + SDL_SCANCODE_KP_LEFTPAREN = 182, + SDL_SCANCODE_KP_RIGHTPAREN = 183, + SDL_SCANCODE_KP_LEFTBRACE = 184, + SDL_SCANCODE_KP_RIGHTBRACE = 185, + SDL_SCANCODE_KP_TAB = 186, + SDL_SCANCODE_KP_BACKSPACE = 187, + SDL_SCANCODE_KP_A = 188, + SDL_SCANCODE_KP_B = 189, + SDL_SCANCODE_KP_C = 190, + SDL_SCANCODE_KP_D = 191, + SDL_SCANCODE_KP_E = 192, + SDL_SCANCODE_KP_F = 193, + SDL_SCANCODE_KP_XOR = 194, + SDL_SCANCODE_KP_POWER = 195, + SDL_SCANCODE_KP_PERCENT = 196, + SDL_SCANCODE_KP_LESS = 197, + SDL_SCANCODE_KP_GREATER = 198, + SDL_SCANCODE_KP_AMPERSAND = 199, + SDL_SCANCODE_KP_DBLAMPERSAND = 200, + SDL_SCANCODE_KP_VERTICALBAR = 201, + SDL_SCANCODE_KP_DBLVERTICALBAR = 202, + SDL_SCANCODE_KP_COLON = 203, + SDL_SCANCODE_KP_HASH = 204, + SDL_SCANCODE_KP_SPACE = 205, + SDL_SCANCODE_KP_AT = 206, + SDL_SCANCODE_KP_EXCLAM = 207, + SDL_SCANCODE_KP_MEMSTORE = 208, + SDL_SCANCODE_KP_MEMRECALL = 209, + SDL_SCANCODE_KP_MEMCLEAR = 210, + SDL_SCANCODE_KP_MEMADD = 211, + SDL_SCANCODE_KP_MEMSUBTRACT = 212, + SDL_SCANCODE_KP_MEMMULTIPLY = 213, + SDL_SCANCODE_KP_MEMDIVIDE = 214, + SDL_SCANCODE_KP_PLUSMINUS = 215, + SDL_SCANCODE_KP_CLEAR = 216, + SDL_SCANCODE_KP_CLEARENTRY = 217, + SDL_SCANCODE_KP_BINARY = 218, + SDL_SCANCODE_KP_OCTAL = 219, + SDL_SCANCODE_KP_DECIMAL = 220, + SDL_SCANCODE_KP_HEXADECIMAL = 221, + SDL_SCANCODE_LCTRL = 224, + SDL_SCANCODE_LSHIFT = 225, + #[doc = "< alt, option"] + SDL_SCANCODE_LALT = 226, + #[doc = "< windows, command (apple), meta"] + SDL_SCANCODE_LGUI = 227, + SDL_SCANCODE_RCTRL = 228, + SDL_SCANCODE_RSHIFT = 229, + #[doc = "< alt gr, option"] + SDL_SCANCODE_RALT = 230, + #[doc = "< windows, command (apple), meta"] + SDL_SCANCODE_RGUI = 231, + #[doc = "< I'm not sure if this is really not covered"] + #[doc = " by any of the above, but since there's a"] + #[doc = " special KMOD_MODE for it I'm adding it here"] + SDL_SCANCODE_MODE = 257, + SDL_SCANCODE_AUDIONEXT = 258, + SDL_SCANCODE_AUDIOPREV = 259, + SDL_SCANCODE_AUDIOSTOP = 260, + SDL_SCANCODE_AUDIOPLAY = 261, + SDL_SCANCODE_AUDIOMUTE = 262, + SDL_SCANCODE_MEDIASELECT = 263, + SDL_SCANCODE_WWW = 264, + SDL_SCANCODE_MAIL = 265, + SDL_SCANCODE_CALCULATOR = 266, + SDL_SCANCODE_COMPUTER = 267, + SDL_SCANCODE_AC_SEARCH = 268, + SDL_SCANCODE_AC_HOME = 269, + SDL_SCANCODE_AC_BACK = 270, + SDL_SCANCODE_AC_FORWARD = 271, + SDL_SCANCODE_AC_STOP = 272, + SDL_SCANCODE_AC_REFRESH = 273, + SDL_SCANCODE_AC_BOOKMARKS = 274, + SDL_SCANCODE_BRIGHTNESSDOWN = 275, + SDL_SCANCODE_BRIGHTNESSUP = 276, + #[doc = "< display mirroring/dual display"] + #[doc = "switch, video mode switch"] + SDL_SCANCODE_DISPLAYSWITCH = 277, + SDL_SCANCODE_KBDILLUMTOGGLE = 278, + SDL_SCANCODE_KBDILLUMDOWN = 279, + SDL_SCANCODE_KBDILLUMUP = 280, + SDL_SCANCODE_EJECT = 281, + SDL_SCANCODE_SLEEP = 282, + SDL_SCANCODE_APP1 = 283, + SDL_SCANCODE_APP2 = 284, + SDL_SCANCODE_AUDIOREWIND = 285, + SDL_SCANCODE_AUDIOFASTFORWARD = 286, + #[doc = "< not a key, just marks the number of scancodes"] + #[doc = "for array bounds"] + SDL_NUM_SCANCODES = 512, +} +#[doc = " \\brief The SDL virtual key representation."] +#[doc = ""] +#[doc = " Values of this type are used to represent keyboard keys using the current"] +#[doc = " layout of the keyboard. These values include Unicode values representing"] +#[doc = " the unmodified character that would be generated by pressing the key, or"] +#[doc = " an SDLK_* constant for those keys that do not generate characters."] +#[doc = ""] +#[doc = " A special exception is the number keys at the top of the keyboard which"] +#[doc = " always map to SDLK_0...SDLK_9, regardless of layout."] +pub type SDL_Keycode = Sint32; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_KeyCode { + SDLK_UNKNOWN = 0, + SDLK_RETURN = 13, + SDLK_ESCAPE = 27, + SDLK_BACKSPACE = 8, + SDLK_TAB = 9, + SDLK_SPACE = 32, + SDLK_EXCLAIM = 33, + SDLK_QUOTEDBL = 34, + SDLK_HASH = 35, + SDLK_PERCENT = 37, + SDLK_DOLLAR = 36, + SDLK_AMPERSAND = 38, + SDLK_QUOTE = 39, + SDLK_LEFTPAREN = 40, + SDLK_RIGHTPAREN = 41, + SDLK_ASTERISK = 42, + SDLK_PLUS = 43, + SDLK_COMMA = 44, + SDLK_MINUS = 45, + SDLK_PERIOD = 46, + SDLK_SLASH = 47, + SDLK_0 = 48, + SDLK_1 = 49, + SDLK_2 = 50, + SDLK_3 = 51, + SDLK_4 = 52, + SDLK_5 = 53, + SDLK_6 = 54, + SDLK_7 = 55, + SDLK_8 = 56, + SDLK_9 = 57, + SDLK_COLON = 58, + SDLK_SEMICOLON = 59, + SDLK_LESS = 60, + SDLK_EQUALS = 61, + SDLK_GREATER = 62, + SDLK_QUESTION = 63, + SDLK_AT = 64, + SDLK_LEFTBRACKET = 91, + SDLK_BACKSLASH = 92, + SDLK_RIGHTBRACKET = 93, + SDLK_CARET = 94, + SDLK_UNDERSCORE = 95, + SDLK_BACKQUOTE = 96, + SDLK_a = 97, + SDLK_b = 98, + SDLK_c = 99, + SDLK_d = 100, + SDLK_e = 101, + SDLK_f = 102, + SDLK_g = 103, + SDLK_h = 104, + SDLK_i = 105, + SDLK_j = 106, + SDLK_k = 107, + SDLK_l = 108, + SDLK_m = 109, + SDLK_n = 110, + SDLK_o = 111, + SDLK_p = 112, + SDLK_q = 113, + SDLK_r = 114, + SDLK_s = 115, + SDLK_t = 116, + SDLK_u = 117, + SDLK_v = 118, + SDLK_w = 119, + SDLK_x = 120, + SDLK_y = 121, + SDLK_z = 122, + SDLK_CAPSLOCK = 1073741881, + SDLK_F1 = 1073741882, + SDLK_F2 = 1073741883, + SDLK_F3 = 1073741884, + SDLK_F4 = 1073741885, + SDLK_F5 = 1073741886, + SDLK_F6 = 1073741887, + SDLK_F7 = 1073741888, + SDLK_F8 = 1073741889, + SDLK_F9 = 1073741890, + SDLK_F10 = 1073741891, + SDLK_F11 = 1073741892, + SDLK_F12 = 1073741893, + SDLK_PRINTSCREEN = 1073741894, + SDLK_SCROLLLOCK = 1073741895, + SDLK_PAUSE = 1073741896, + SDLK_INSERT = 1073741897, + SDLK_HOME = 1073741898, + SDLK_PAGEUP = 1073741899, + SDLK_DELETE = 127, + SDLK_END = 1073741901, + SDLK_PAGEDOWN = 1073741902, + SDLK_RIGHT = 1073741903, + SDLK_LEFT = 1073741904, + SDLK_DOWN = 1073741905, + SDLK_UP = 1073741906, + SDLK_NUMLOCKCLEAR = 1073741907, + SDLK_KP_DIVIDE = 1073741908, + SDLK_KP_MULTIPLY = 1073741909, + SDLK_KP_MINUS = 1073741910, + SDLK_KP_PLUS = 1073741911, + SDLK_KP_ENTER = 1073741912, + SDLK_KP_1 = 1073741913, + SDLK_KP_2 = 1073741914, + SDLK_KP_3 = 1073741915, + SDLK_KP_4 = 1073741916, + SDLK_KP_5 = 1073741917, + SDLK_KP_6 = 1073741918, + SDLK_KP_7 = 1073741919, + SDLK_KP_8 = 1073741920, + SDLK_KP_9 = 1073741921, + SDLK_KP_0 = 1073741922, + SDLK_KP_PERIOD = 1073741923, + SDLK_APPLICATION = 1073741925, + SDLK_POWER = 1073741926, + SDLK_KP_EQUALS = 1073741927, + SDLK_F13 = 1073741928, + SDLK_F14 = 1073741929, + SDLK_F15 = 1073741930, + SDLK_F16 = 1073741931, + SDLK_F17 = 1073741932, + SDLK_F18 = 1073741933, + SDLK_F19 = 1073741934, + SDLK_F20 = 1073741935, + SDLK_F21 = 1073741936, + SDLK_F22 = 1073741937, + SDLK_F23 = 1073741938, + SDLK_F24 = 1073741939, + SDLK_EXECUTE = 1073741940, + SDLK_HELP = 1073741941, + SDLK_MENU = 1073741942, + SDLK_SELECT = 1073741943, + SDLK_STOP = 1073741944, + SDLK_AGAIN = 1073741945, + SDLK_UNDO = 1073741946, + SDLK_CUT = 1073741947, + SDLK_COPY = 1073741948, + SDLK_PASTE = 1073741949, + SDLK_FIND = 1073741950, + SDLK_MUTE = 1073741951, + SDLK_VOLUMEUP = 1073741952, + SDLK_VOLUMEDOWN = 1073741953, + SDLK_KP_COMMA = 1073741957, + SDLK_KP_EQUALSAS400 = 1073741958, + SDLK_ALTERASE = 1073741977, + SDLK_SYSREQ = 1073741978, + SDLK_CANCEL = 1073741979, + SDLK_CLEAR = 1073741980, + SDLK_PRIOR = 1073741981, + SDLK_RETURN2 = 1073741982, + SDLK_SEPARATOR = 1073741983, + SDLK_OUT = 1073741984, + SDLK_OPER = 1073741985, + SDLK_CLEARAGAIN = 1073741986, + SDLK_CRSEL = 1073741987, + SDLK_EXSEL = 1073741988, + SDLK_KP_00 = 1073742000, + SDLK_KP_000 = 1073742001, + SDLK_THOUSANDSSEPARATOR = 1073742002, + SDLK_DECIMALSEPARATOR = 1073742003, + SDLK_CURRENCYUNIT = 1073742004, + SDLK_CURRENCYSUBUNIT = 1073742005, + SDLK_KP_LEFTPAREN = 1073742006, + SDLK_KP_RIGHTPAREN = 1073742007, + SDLK_KP_LEFTBRACE = 1073742008, + SDLK_KP_RIGHTBRACE = 1073742009, + SDLK_KP_TAB = 1073742010, + SDLK_KP_BACKSPACE = 1073742011, + SDLK_KP_A = 1073742012, + SDLK_KP_B = 1073742013, + SDLK_KP_C = 1073742014, + SDLK_KP_D = 1073742015, + SDLK_KP_E = 1073742016, + SDLK_KP_F = 1073742017, + SDLK_KP_XOR = 1073742018, + SDLK_KP_POWER = 1073742019, + SDLK_KP_PERCENT = 1073742020, + SDLK_KP_LESS = 1073742021, + SDLK_KP_GREATER = 1073742022, + SDLK_KP_AMPERSAND = 1073742023, + SDLK_KP_DBLAMPERSAND = 1073742024, + SDLK_KP_VERTICALBAR = 1073742025, + SDLK_KP_DBLVERTICALBAR = 1073742026, + SDLK_KP_COLON = 1073742027, + SDLK_KP_HASH = 1073742028, + SDLK_KP_SPACE = 1073742029, + SDLK_KP_AT = 1073742030, + SDLK_KP_EXCLAM = 1073742031, + SDLK_KP_MEMSTORE = 1073742032, + SDLK_KP_MEMRECALL = 1073742033, + SDLK_KP_MEMCLEAR = 1073742034, + SDLK_KP_MEMADD = 1073742035, + SDLK_KP_MEMSUBTRACT = 1073742036, + SDLK_KP_MEMMULTIPLY = 1073742037, + SDLK_KP_MEMDIVIDE = 1073742038, + SDLK_KP_PLUSMINUS = 1073742039, + SDLK_KP_CLEAR = 1073742040, + SDLK_KP_CLEARENTRY = 1073742041, + SDLK_KP_BINARY = 1073742042, + SDLK_KP_OCTAL = 1073742043, + SDLK_KP_DECIMAL = 1073742044, + SDLK_KP_HEXADECIMAL = 1073742045, + SDLK_LCTRL = 1073742048, + SDLK_LSHIFT = 1073742049, + SDLK_LALT = 1073742050, + SDLK_LGUI = 1073742051, + SDLK_RCTRL = 1073742052, + SDLK_RSHIFT = 1073742053, + SDLK_RALT = 1073742054, + SDLK_RGUI = 1073742055, + SDLK_MODE = 1073742081, + SDLK_AUDIONEXT = 1073742082, + SDLK_AUDIOPREV = 1073742083, + SDLK_AUDIOSTOP = 1073742084, + SDLK_AUDIOPLAY = 1073742085, + SDLK_AUDIOMUTE = 1073742086, + SDLK_MEDIASELECT = 1073742087, + SDLK_WWW = 1073742088, + SDLK_MAIL = 1073742089, + SDLK_CALCULATOR = 1073742090, + SDLK_COMPUTER = 1073742091, + SDLK_AC_SEARCH = 1073742092, + SDLK_AC_HOME = 1073742093, + SDLK_AC_BACK = 1073742094, + SDLK_AC_FORWARD = 1073742095, + SDLK_AC_STOP = 1073742096, + SDLK_AC_REFRESH = 1073742097, + SDLK_AC_BOOKMARKS = 1073742098, + SDLK_BRIGHTNESSDOWN = 1073742099, + SDLK_BRIGHTNESSUP = 1073742100, + SDLK_DISPLAYSWITCH = 1073742101, + SDLK_KBDILLUMTOGGLE = 1073742102, + SDLK_KBDILLUMDOWN = 1073742103, + SDLK_KBDILLUMUP = 1073742104, + SDLK_EJECT = 1073742105, + SDLK_SLEEP = 1073742106, + SDLK_APP1 = 1073742107, + SDLK_APP2 = 1073742108, + SDLK_AUDIOREWIND = 1073742109, + SDLK_AUDIOFASTFORWARD = 1073742110, +} +#[repr(u32)] +#[doc = " \\brief Enumeration of valid key mods (possibly OR'd together)."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_Keymod { + KMOD_NONE = 0, + KMOD_LSHIFT = 1, + KMOD_RSHIFT = 2, + KMOD_LCTRL = 64, + KMOD_RCTRL = 128, + KMOD_LALT = 256, + KMOD_RALT = 512, + KMOD_LGUI = 1024, + KMOD_RGUI = 2048, + KMOD_NUM = 4096, + KMOD_CAPS = 8192, + KMOD_MODE = 16384, + KMOD_RESERVED = 32768, + KMOD_CTRL = 192, + KMOD_SHIFT = 3, + KMOD_ALT = 768, + KMOD_GUI = 3072, +} +#[doc = " \\brief The SDL keysym structure, used in key events."] +#[doc = ""] +#[doc = " \\note If you are looking for translated character input, see the ::SDL_TEXTINPUT event."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Keysym { + #[doc = "< SDL physical key code - see ::SDL_Scancode for details"] + pub scancode: SDL_Scancode, + #[doc = "< SDL virtual key code - see ::SDL_Keycode for details"] + pub sym: SDL_Keycode, + #[doc = "< current key modifiers"] + pub mod_: Uint16, + pub unused: Uint32, +} +#[test] +fn bindgen_test_layout_SDL_Keysym() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_Keysym)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_Keysym)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).scancode as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Keysym), + "::", + stringify!(scancode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).sym as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_Keysym), + "::", + stringify!(sym) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).mod_ as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_Keysym), + "::", + stringify!(mod_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).unused as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_Keysym), + "::", + stringify!(unused) + ) + ); +} +extern "C" { + #[doc = " \\brief Get the window which currently has keyboard focus."] + pub fn SDL_GetKeyboardFocus() -> *mut SDL_Window; +} +extern "C" { + #[doc = " \\brief Get a snapshot of the current state of the keyboard."] + #[doc = ""] + #[doc = " \\param numkeys if non-NULL, receives the length of the returned array."] + #[doc = ""] + #[doc = " \\return An array of key states. Indexes into this array are obtained by using ::SDL_Scancode values."] + #[doc = ""] + #[doc = " \\b Example:"] + #[doc = " \\code"] + #[doc = " const Uint8 *state = SDL_GetKeyboardState(NULL);"] + #[doc = " if ( state[SDL_SCANCODE_RETURN] ) {"] + #[doc = " printf(\" is pressed.\\n\");"] + #[doc = " }"] + #[doc = " \\endcode"] + pub fn SDL_GetKeyboardState(numkeys: *mut libc::c_int) -> *const Uint8; +} +extern "C" { + #[doc = " \\brief Get the current key modifier state for the keyboard."] + pub fn SDL_GetModState() -> SDL_Keymod; +} +extern "C" { + #[doc = " \\brief Set the current key modifier state for the keyboard."] + #[doc = ""] + #[doc = " \\note This does not change the keyboard state, only the key modifier flags."] + pub fn SDL_SetModState(modstate: SDL_Keymod); +} +extern "C" { + #[doc = " \\brief Get the key code corresponding to the given scancode according"] + #[doc = " to the current keyboard layout."] + #[doc = ""] + #[doc = " See ::SDL_Keycode for details."] + #[doc = ""] + #[doc = " \\sa SDL_GetKeyName()"] + pub fn SDL_GetKeyFromScancode(scancode: SDL_Scancode) -> SDL_Keycode; +} +extern "C" { + #[doc = " \\brief Get the scancode corresponding to the given key code according to the"] + #[doc = " current keyboard layout."] + #[doc = ""] + #[doc = " See ::SDL_Scancode for details."] + #[doc = ""] + #[doc = " \\sa SDL_GetScancodeName()"] + pub fn SDL_GetScancodeFromKey(key: SDL_Keycode) -> SDL_Scancode; +} +extern "C" { + #[doc = " \\brief Get a human-readable name for a scancode."] + #[doc = ""] + #[doc = " \\return A pointer to the name for the scancode."] + #[doc = " If the scancode doesn't have a name, this function returns"] + #[doc = " an empty string (\"\")."] + #[doc = ""] + #[doc = " \\sa SDL_Scancode"] + pub fn SDL_GetScancodeName(scancode: SDL_Scancode) -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Get a scancode from a human-readable name"] + #[doc = ""] + #[doc = " \\return scancode, or SDL_SCANCODE_UNKNOWN if the name wasn't recognized"] + #[doc = ""] + #[doc = " \\sa SDL_Scancode"] + pub fn SDL_GetScancodeFromName(name: *const libc::c_char) -> SDL_Scancode; +} +extern "C" { + #[doc = " \\brief Get a human-readable name for a key."] + #[doc = ""] + #[doc = " \\return A pointer to a UTF-8 string that stays valid at least until the next"] + #[doc = " call to this function. If you need it around any longer, you must"] + #[doc = " copy it. If the key doesn't have a name, this function returns an"] + #[doc = " empty string (\"\")."] + #[doc = ""] + #[doc = " \\sa SDL_Keycode"] + pub fn SDL_GetKeyName(key: SDL_Keycode) -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Get a key code from a human-readable name"] + #[doc = ""] + #[doc = " \\return key code, or SDLK_UNKNOWN if the name wasn't recognized"] + #[doc = ""] + #[doc = " \\sa SDL_Keycode"] + pub fn SDL_GetKeyFromName(name: *const libc::c_char) -> SDL_Keycode; +} +extern "C" { + #[doc = " \\brief Start accepting Unicode text input events."] + #[doc = " This function will show the on-screen keyboard if supported."] + #[doc = ""] + #[doc = " \\sa SDL_StopTextInput()"] + #[doc = " \\sa SDL_SetTextInputRect()"] + #[doc = " \\sa SDL_HasScreenKeyboardSupport()"] + pub fn SDL_StartTextInput(); +} +extern "C" { + #[doc = " \\brief Return whether or not Unicode text input events are enabled."] + #[doc = ""] + #[doc = " \\sa SDL_StartTextInput()"] + #[doc = " \\sa SDL_StopTextInput()"] + pub fn SDL_IsTextInputActive() -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Stop receiving any text input events."] + #[doc = " This function will hide the on-screen keyboard if supported."] + #[doc = ""] + #[doc = " \\sa SDL_StartTextInput()"] + #[doc = " \\sa SDL_HasScreenKeyboardSupport()"] + pub fn SDL_StopTextInput(); +} +extern "C" { + #[doc = " \\brief Set the rectangle used to type Unicode text inputs."] + #[doc = " This is used as a hint for IME and on-screen keyboard placement."] + #[doc = ""] + #[doc = " \\sa SDL_StartTextInput()"] + pub fn SDL_SetTextInputRect(rect: *mut SDL_Rect); +} +extern "C" { + #[doc = " \\brief Returns whether the platform has some screen keyboard support."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if some keyboard support is available else SDL_FALSE."] + #[doc = ""] + #[doc = " \\note Not all screen keyboard functions are supported on all platforms."] + #[doc = ""] + #[doc = " \\sa SDL_IsScreenKeyboardShown()"] + pub fn SDL_HasScreenKeyboardSupport() -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Returns whether the screen keyboard is shown for given window."] + #[doc = ""] + #[doc = " \\param window The window for which screen keyboard should be queried."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if screen keyboard is shown else SDL_FALSE."] + #[doc = ""] + #[doc = " \\sa SDL_HasScreenKeyboardSupport()"] + pub fn SDL_IsScreenKeyboardShown(window: *mut SDL_Window) -> SDL_bool; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Cursor { + _unused: [u8; 0], +} +#[repr(u32)] +#[doc = " \\brief Cursor types for SDL_CreateSystemCursor()."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_SystemCursor { + #[doc = "< Arrow"] + SDL_SYSTEM_CURSOR_ARROW = 0, + #[doc = "< I-beam"] + SDL_SYSTEM_CURSOR_IBEAM = 1, + #[doc = "< Wait"] + SDL_SYSTEM_CURSOR_WAIT = 2, + #[doc = "< Crosshair"] + SDL_SYSTEM_CURSOR_CROSSHAIR = 3, + #[doc = "< Small wait cursor (or Wait if not available)"] + SDL_SYSTEM_CURSOR_WAITARROW = 4, + #[doc = "< Double arrow pointing northwest and southeast"] + SDL_SYSTEM_CURSOR_SIZENWSE = 5, + #[doc = "< Double arrow pointing northeast and southwest"] + SDL_SYSTEM_CURSOR_SIZENESW = 6, + #[doc = "< Double arrow pointing west and east"] + SDL_SYSTEM_CURSOR_SIZEWE = 7, + #[doc = "< Double arrow pointing north and south"] + SDL_SYSTEM_CURSOR_SIZENS = 8, + #[doc = "< Four pointed arrow pointing north, south, east, and west"] + SDL_SYSTEM_CURSOR_SIZEALL = 9, + #[doc = "< Slashed circle or crossbones"] + SDL_SYSTEM_CURSOR_NO = 10, + #[doc = "< Hand"] + SDL_SYSTEM_CURSOR_HAND = 11, + SDL_NUM_SYSTEM_CURSORS = 12, +} +#[repr(u32)] +#[doc = " \\brief Scroll direction types for the Scroll event"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_MouseWheelDirection { + #[doc = "< The scroll direction is normal"] + SDL_MOUSEWHEEL_NORMAL = 0, + #[doc = "< The scroll direction is flipped / natural"] + SDL_MOUSEWHEEL_FLIPPED = 1, +} +extern "C" { + #[doc = " \\brief Get the window which currently has mouse focus."] + pub fn SDL_GetMouseFocus() -> *mut SDL_Window; +} +extern "C" { + #[doc = " \\brief Retrieve the current state of the mouse."] + #[doc = ""] + #[doc = " The current button state is returned as a button bitmask, which can"] + #[doc = " be tested using the SDL_BUTTON(X) macros, and x and y are set to the"] + #[doc = " mouse cursor position relative to the focus window for the currently"] + #[doc = " selected mouse. You can pass NULL for either x or y."] + pub fn SDL_GetMouseState(x: *mut libc::c_int, y: *mut libc::c_int) -> Uint32; +} +extern "C" { + #[doc = " \\brief Get the current state of the mouse, in relation to the desktop"] + #[doc = ""] + #[doc = " This works just like SDL_GetMouseState(), but the coordinates will be"] + #[doc = " reported relative to the top-left of the desktop. This can be useful if"] + #[doc = " you need to track the mouse outside of a specific window and"] + #[doc = " SDL_CaptureMouse() doesn't fit your needs. For example, it could be"] + #[doc = " useful if you need to track the mouse while dragging a window, where"] + #[doc = " coordinates relative to a window might not be in sync at all times."] + #[doc = ""] + #[doc = " \\note SDL_GetMouseState() returns the mouse position as SDL understands"] + #[doc = " it from the last pump of the event queue. This function, however,"] + #[doc = " queries the OS for the current mouse position, and as such, might"] + #[doc = " be a slightly less efficient function. Unless you know what you're"] + #[doc = " doing and have a good reason to use this function, you probably want"] + #[doc = " SDL_GetMouseState() instead."] + #[doc = ""] + #[doc = " \\param x Returns the current X coord, relative to the desktop. Can be NULL."] + #[doc = " \\param y Returns the current Y coord, relative to the desktop. Can be NULL."] + #[doc = " \\return The current button state as a bitmask, which can be tested using the SDL_BUTTON(X) macros."] + #[doc = ""] + #[doc = " \\sa SDL_GetMouseState"] + pub fn SDL_GetGlobalMouseState(x: *mut libc::c_int, y: *mut libc::c_int) -> Uint32; +} +extern "C" { + #[doc = " \\brief Retrieve the relative state of the mouse."] + #[doc = ""] + #[doc = " The current button state is returned as a button bitmask, which can"] + #[doc = " be tested using the SDL_BUTTON(X) macros, and x and y are set to the"] + #[doc = " mouse deltas since the last call to SDL_GetRelativeMouseState()."] + pub fn SDL_GetRelativeMouseState(x: *mut libc::c_int, y: *mut libc::c_int) -> Uint32; +} +extern "C" { + #[doc = " \\brief Moves the mouse to the given position within the window."] + #[doc = ""] + #[doc = " \\param window The window to move the mouse into, or NULL for the current mouse focus"] + #[doc = " \\param x The x coordinate within the window"] + #[doc = " \\param y The y coordinate within the window"] + #[doc = ""] + #[doc = " \\note This function generates a mouse motion event"] + pub fn SDL_WarpMouseInWindow(window: *mut SDL_Window, x: libc::c_int, y: libc::c_int); +} +extern "C" { + #[doc = " \\brief Moves the mouse to the given position in global screen space."] + #[doc = ""] + #[doc = " \\param x The x coordinate"] + #[doc = " \\param y The y coordinate"] + #[doc = " \\return 0 on success, -1 on error (usually: unsupported by a platform)."] + #[doc = ""] + #[doc = " \\note This function generates a mouse motion event"] + pub fn SDL_WarpMouseGlobal(x: libc::c_int, y: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set relative mouse mode."] + #[doc = ""] + #[doc = " \\param enabled Whether or not to enable relative mode"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if relative mode is not supported."] + #[doc = ""] + #[doc = " While the mouse is in relative mode, the cursor is hidden, and the"] + #[doc = " driver will try to report continuous motion in the current window."] + #[doc = " Only relative motion events will be delivered, the mouse position"] + #[doc = " will not change."] + #[doc = ""] + #[doc = " \\note This function will flush any pending mouse motion."] + #[doc = ""] + #[doc = " \\sa SDL_GetRelativeMouseMode()"] + pub fn SDL_SetRelativeMouseMode(enabled: SDL_bool) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Capture the mouse, to track input outside an SDL window."] + #[doc = ""] + #[doc = " \\param enabled Whether or not to enable capturing"] + #[doc = ""] + #[doc = " Capturing enables your app to obtain mouse events globally, instead of"] + #[doc = " just within your window. Not all video targets support this function."] + #[doc = " When capturing is enabled, the current window will get all mouse events,"] + #[doc = " but unlike relative mode, no change is made to the cursor and it is"] + #[doc = " not restrained to your window."] + #[doc = ""] + #[doc = " This function may also deny mouse input to other windows--both those in"] + #[doc = " your application and others on the system--so you should use this"] + #[doc = " function sparingly, and in small bursts. For example, you might want to"] + #[doc = " track the mouse while the user is dragging something, until the user"] + #[doc = " releases a mouse button. It is not recommended that you capture the mouse"] + #[doc = " for long periods of time, such as the entire time your app is running."] + #[doc = ""] + #[doc = " While captured, mouse events still report coordinates relative to the"] + #[doc = " current (foreground) window, but those coordinates may be outside the"] + #[doc = " bounds of the window (including negative values). Capturing is only"] + #[doc = " allowed for the foreground window. If the window loses focus while"] + #[doc = " capturing, the capture will be disabled automatically."] + #[doc = ""] + #[doc = " While capturing is enabled, the current window will have the"] + #[doc = " SDL_WINDOW_MOUSE_CAPTURE flag set."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if not supported."] + pub fn SDL_CaptureMouse(enabled: SDL_bool) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Query whether relative mouse mode is enabled."] + #[doc = ""] + #[doc = " \\sa SDL_SetRelativeMouseMode()"] + pub fn SDL_GetRelativeMouseMode() -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Create a cursor, using the specified bitmap data and"] + #[doc = " mask (in MSB format)."] + #[doc = ""] + #[doc = " The cursor width must be a multiple of 8 bits."] + #[doc = ""] + #[doc = " The cursor is created in black and white according to the following:"] + #[doc = " "] + #[doc = " "] + #[doc = " "] + #[doc = " "] + #[doc = " "] + #[doc = " "] + #[doc = "
data mask resulting pixel on screen
0 1 White
1 1 Black
0 0 Transparent
1 0 Inverted color if possible, black"] + #[doc = " if not.
"] + #[doc = ""] + #[doc = " \\sa SDL_FreeCursor()"] + pub fn SDL_CreateCursor( + data: *const Uint8, + mask: *const Uint8, + w: libc::c_int, + h: libc::c_int, + hot_x: libc::c_int, + hot_y: libc::c_int, + ) -> *mut SDL_Cursor; +} +extern "C" { + #[doc = " \\brief Create a color cursor."] + #[doc = ""] + #[doc = " \\sa SDL_FreeCursor()"] + pub fn SDL_CreateColorCursor( + surface: *mut SDL_Surface, + hot_x: libc::c_int, + hot_y: libc::c_int, + ) -> *mut SDL_Cursor; +} +extern "C" { + #[doc = " \\brief Create a system cursor."] + #[doc = ""] + #[doc = " \\sa SDL_FreeCursor()"] + pub fn SDL_CreateSystemCursor(id: SDL_SystemCursor) -> *mut SDL_Cursor; +} +extern "C" { + #[doc = " \\brief Set the active cursor."] + pub fn SDL_SetCursor(cursor: *mut SDL_Cursor); +} +extern "C" { + #[doc = " \\brief Return the active cursor."] + pub fn SDL_GetCursor() -> *mut SDL_Cursor; +} +extern "C" { + #[doc = " \\brief Return the default cursor."] + pub fn SDL_GetDefaultCursor() -> *mut SDL_Cursor; +} +extern "C" { + #[doc = " \\brief Frees a cursor created with SDL_CreateCursor() or similar functions."] + #[doc = ""] + #[doc = " \\sa SDL_CreateCursor()"] + #[doc = " \\sa SDL_CreateColorCursor()"] + #[doc = " \\sa SDL_CreateSystemCursor()"] + pub fn SDL_FreeCursor(cursor: *mut SDL_Cursor); +} +extern "C" { + #[doc = " \\brief Toggle whether or not the cursor is shown."] + #[doc = ""] + #[doc = " \\param toggle 1 to show the cursor, 0 to hide it, -1 to query the current"] + #[doc = " state."] + #[doc = ""] + #[doc = " \\return 1 if the cursor is shown, or 0 if the cursor is hidden."] + pub fn SDL_ShowCursor(toggle: libc::c_int) -> libc::c_int; +} +#[doc = " The joystick structure used to identify an SDL joystick"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _SDL_Joystick { + _unused: [u8; 0], +} +pub type SDL_Joystick = _SDL_Joystick; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_JoystickGUID { + pub data: [Uint8; 16usize], +} +#[test] +fn bindgen_test_layout_SDL_JoystickGUID() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_JoystickGUID)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(SDL_JoystickGUID)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoystickGUID), + "::", + stringify!(data) + ) + ); +} +#[doc = " This is a unique ID for a joystick for the time it is connected to the system,"] +#[doc = " and is never reused for the lifetime of the application. If the joystick is"] +#[doc = " disconnected and reconnected, it will get a new ID."] +#[doc = ""] +#[doc = " The ID value starts at 0 and increments from there. The value -1 is an invalid ID."] +pub type SDL_JoystickID = Sint32; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_JoystickType { + SDL_JOYSTICK_TYPE_UNKNOWN = 0, + SDL_JOYSTICK_TYPE_GAMECONTROLLER = 1, + SDL_JOYSTICK_TYPE_WHEEL = 2, + SDL_JOYSTICK_TYPE_ARCADE_STICK = 3, + SDL_JOYSTICK_TYPE_FLIGHT_STICK = 4, + SDL_JOYSTICK_TYPE_DANCE_PAD = 5, + SDL_JOYSTICK_TYPE_GUITAR = 6, + SDL_JOYSTICK_TYPE_DRUM_KIT = 7, + SDL_JOYSTICK_TYPE_ARCADE_PAD = 8, + SDL_JOYSTICK_TYPE_THROTTLE = 9, +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_JoystickPowerLevel { + SDL_JOYSTICK_POWER_UNKNOWN = -1, + SDL_JOYSTICK_POWER_EMPTY = 0, + SDL_JOYSTICK_POWER_LOW = 1, + SDL_JOYSTICK_POWER_MEDIUM = 2, + SDL_JOYSTICK_POWER_FULL = 3, + SDL_JOYSTICK_POWER_WIRED = 4, + SDL_JOYSTICK_POWER_MAX = 5, +} +extern "C" { + #[doc = " Locking for multi-threaded access to the joystick API"] + #[doc = ""] + #[doc = " If you are using the joystick API or handling events from multiple threads"] + #[doc = " you should use these locking functions to protect access to the joysticks."] + #[doc = ""] + #[doc = " In particular, you are guaranteed that the joystick list won't change, so"] + #[doc = " the API functions that take a joystick index will be valid, and joystick"] + #[doc = " and game controller events will not be delivered."] + pub fn SDL_LockJoysticks(); +} +extern "C" { + pub fn SDL_UnlockJoysticks(); +} +extern "C" { + #[doc = " Count the number of joysticks attached to the system right now"] + pub fn SDL_NumJoysticks() -> libc::c_int; +} +extern "C" { + #[doc = " Get the implementation dependent name of a joystick."] + #[doc = " This can be called before any joysticks are opened."] + #[doc = " If no name can be found, this function returns NULL."] + pub fn SDL_JoystickNameForIndex(device_index: libc::c_int) -> *const libc::c_char; +} +extern "C" { + #[doc = " Get the player index of a joystick, or -1 if it's not available"] + #[doc = " This can be called before any joysticks are opened."] + pub fn SDL_JoystickGetDevicePlayerIndex(device_index: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " Return the GUID for the joystick at this index"] + #[doc = " This can be called before any joysticks are opened."] + pub fn SDL_JoystickGetDeviceGUID(device_index: libc::c_int) -> SDL_JoystickGUID; +} +extern "C" { + #[doc = " Get the USB vendor ID of a joystick, if available."] + #[doc = " This can be called before any joysticks are opened."] + #[doc = " If the vendor ID isn't available this function returns 0."] + pub fn SDL_JoystickGetDeviceVendor(device_index: libc::c_int) -> Uint16; +} +extern "C" { + #[doc = " Get the USB product ID of a joystick, if available."] + #[doc = " This can be called before any joysticks are opened."] + #[doc = " If the product ID isn't available this function returns 0."] + pub fn SDL_JoystickGetDeviceProduct(device_index: libc::c_int) -> Uint16; +} +extern "C" { + #[doc = " Get the product version of a joystick, if available."] + #[doc = " This can be called before any joysticks are opened."] + #[doc = " If the product version isn't available this function returns 0."] + pub fn SDL_JoystickGetDeviceProductVersion(device_index: libc::c_int) -> Uint16; +} +extern "C" { + #[doc = " Get the type of a joystick, if available."] + #[doc = " This can be called before any joysticks are opened."] + pub fn SDL_JoystickGetDeviceType(device_index: libc::c_int) -> SDL_JoystickType; +} +extern "C" { + #[doc = " Get the instance ID of a joystick."] + #[doc = " This can be called before any joysticks are opened."] + #[doc = " If the index is out of range, this function will return -1."] + pub fn SDL_JoystickGetDeviceInstanceID(device_index: libc::c_int) -> SDL_JoystickID; +} +extern "C" { + #[doc = " Open a joystick for use."] + #[doc = " The index passed as an argument refers to the N'th joystick on the system."] + #[doc = " This index is not the value which will identify this joystick in future"] + #[doc = " joystick events. The joystick's instance id (::SDL_JoystickID) will be used"] + #[doc = " there instead."] + #[doc = ""] + #[doc = " \\return A joystick identifier, or NULL if an error occurred."] + pub fn SDL_JoystickOpen(device_index: libc::c_int) -> *mut SDL_Joystick; +} +extern "C" { + #[doc = " Return the SDL_Joystick associated with an instance id."] + pub fn SDL_JoystickFromInstanceID(instance_id: SDL_JoystickID) -> *mut SDL_Joystick; +} +extern "C" { + #[doc = " Return the SDL_Joystick associated with a player index."] + pub fn SDL_JoystickFromPlayerIndex(player_index: libc::c_int) -> *mut SDL_Joystick; +} +extern "C" { + #[doc = " Attaches a new virtual joystick."] + #[doc = " Returns the joystick's device index, or -1 if an error occurred."] + pub fn SDL_JoystickAttachVirtual( + type_: SDL_JoystickType, + naxes: libc::c_int, + nbuttons: libc::c_int, + nhats: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Detaches a virtual joystick"] + #[doc = " Returns 0 on success, or -1 if an error occurred."] + pub fn SDL_JoystickDetachVirtual(device_index: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " Indicates whether or not a virtual-joystick is at a given device index."] + pub fn SDL_JoystickIsVirtual(device_index: libc::c_int) -> SDL_bool; +} +extern "C" { + #[doc = " Set values on an opened, virtual-joystick's controls."] + #[doc = " Please note that values set here will not be applied until the next"] + #[doc = " call to SDL_JoystickUpdate, which can either be called directly,"] + #[doc = " or can be called indirectly through various other SDL APIS,"] + #[doc = " including, but not limited to the following: SDL_PollEvent,"] + #[doc = " SDL_PumpEvents, SDL_WaitEventTimeout, SDL_WaitEvent."] + #[doc = ""] + #[doc = " Returns 0 on success, -1 on error."] + pub fn SDL_JoystickSetVirtualAxis( + joystick: *mut SDL_Joystick, + axis: libc::c_int, + value: Sint16, + ) -> libc::c_int; +} +extern "C" { + pub fn SDL_JoystickSetVirtualButton( + joystick: *mut SDL_Joystick, + button: libc::c_int, + value: Uint8, + ) -> libc::c_int; +} +extern "C" { + pub fn SDL_JoystickSetVirtualHat( + joystick: *mut SDL_Joystick, + hat: libc::c_int, + value: Uint8, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Return the name for this currently opened joystick."] + #[doc = " If no name can be found, this function returns NULL."] + pub fn SDL_JoystickName(joystick: *mut SDL_Joystick) -> *const libc::c_char; +} +extern "C" { + #[doc = " Get the player index of an opened joystick, or -1 if it's not available"] + #[doc = ""] + #[doc = " For XInput controllers this returns the XInput user index."] + pub fn SDL_JoystickGetPlayerIndex(joystick: *mut SDL_Joystick) -> libc::c_int; +} +extern "C" { + #[doc = " Set the player index of an opened joystick"] + pub fn SDL_JoystickSetPlayerIndex(joystick: *mut SDL_Joystick, player_index: libc::c_int); +} +extern "C" { + #[doc = " Return the GUID for this opened joystick"] + pub fn SDL_JoystickGetGUID(joystick: *mut SDL_Joystick) -> SDL_JoystickGUID; +} +extern "C" { + #[doc = " Get the USB vendor ID of an opened joystick, if available."] + #[doc = " If the vendor ID isn't available this function returns 0."] + pub fn SDL_JoystickGetVendor(joystick: *mut SDL_Joystick) -> Uint16; +} +extern "C" { + #[doc = " Get the USB product ID of an opened joystick, if available."] + #[doc = " If the product ID isn't available this function returns 0."] + pub fn SDL_JoystickGetProduct(joystick: *mut SDL_Joystick) -> Uint16; +} +extern "C" { + #[doc = " Get the product version of an opened joystick, if available."] + #[doc = " If the product version isn't available this function returns 0."] + pub fn SDL_JoystickGetProductVersion(joystick: *mut SDL_Joystick) -> Uint16; +} +extern "C" { + #[doc = " Get the serial number of an opened joystick, if available."] + #[doc = ""] + #[doc = " Returns the serial number of the joystick, or NULL if it is not available."] + pub fn SDL_JoystickGetSerial(joystick: *mut SDL_Joystick) -> *const libc::c_char; +} +extern "C" { + #[doc = " Get the type of an opened joystick."] + pub fn SDL_JoystickGetType(joystick: *mut SDL_Joystick) -> SDL_JoystickType; +} +extern "C" { + #[doc = " Return a string representation for this guid. pszGUID must point to at least 33 bytes"] + #[doc = " (32 for the string plus a NULL terminator)."] + pub fn SDL_JoystickGetGUIDString( + guid: SDL_JoystickGUID, + pszGUID: *mut libc::c_char, + cbGUID: libc::c_int, + ); +} +extern "C" { + #[doc = " Convert a string into a joystick guid"] + pub fn SDL_JoystickGetGUIDFromString(pchGUID: *const libc::c_char) -> SDL_JoystickGUID; +} +extern "C" { + #[doc = " Returns SDL_TRUE if the joystick has been opened and currently connected, or SDL_FALSE if it has not."] + pub fn SDL_JoystickGetAttached(joystick: *mut SDL_Joystick) -> SDL_bool; +} +extern "C" { + #[doc = " Get the instance ID of an opened joystick or -1 if the joystick is invalid."] + pub fn SDL_JoystickInstanceID(joystick: *mut SDL_Joystick) -> SDL_JoystickID; +} +extern "C" { + #[doc = " Get the number of general axis controls on a joystick."] + pub fn SDL_JoystickNumAxes(joystick: *mut SDL_Joystick) -> libc::c_int; +} +extern "C" { + #[doc = " Get the number of trackballs on a joystick."] + #[doc = ""] + #[doc = " Joystick trackballs have only relative motion events associated"] + #[doc = " with them and their state cannot be polled."] + pub fn SDL_JoystickNumBalls(joystick: *mut SDL_Joystick) -> libc::c_int; +} +extern "C" { + #[doc = " Get the number of POV hats on a joystick."] + pub fn SDL_JoystickNumHats(joystick: *mut SDL_Joystick) -> libc::c_int; +} +extern "C" { + #[doc = " Get the number of buttons on a joystick."] + pub fn SDL_JoystickNumButtons(joystick: *mut SDL_Joystick) -> libc::c_int; +} +extern "C" { + #[doc = " Update the current state of the open joysticks."] + #[doc = ""] + #[doc = " This is called automatically by the event loop if any joystick"] + #[doc = " events are enabled."] + pub fn SDL_JoystickUpdate(); +} +extern "C" { + #[doc = " Enable/disable joystick event polling."] + #[doc = ""] + #[doc = " If joystick events are disabled, you must call SDL_JoystickUpdate()"] + #[doc = " yourself and check the state of the joystick when you want joystick"] + #[doc = " information."] + #[doc = ""] + #[doc = " The state can be one of ::SDL_QUERY, ::SDL_ENABLE or ::SDL_IGNORE."] + pub fn SDL_JoystickEventState(state: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " Get the current state of an axis control on a joystick."] + #[doc = ""] + #[doc = " The state is a value ranging from -32768 to 32767."] + #[doc = ""] + #[doc = " The axis indices start at index 0."] + pub fn SDL_JoystickGetAxis(joystick: *mut SDL_Joystick, axis: libc::c_int) -> Sint16; +} +extern "C" { + #[doc = " Get the initial state of an axis control on a joystick."] + #[doc = ""] + #[doc = " The state is a value ranging from -32768 to 32767."] + #[doc = ""] + #[doc = " The axis indices start at index 0."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if this axis has any initial value, or SDL_FALSE if not."] + pub fn SDL_JoystickGetAxisInitialState( + joystick: *mut SDL_Joystick, + axis: libc::c_int, + state: *mut Sint16, + ) -> SDL_bool; +} +extern "C" { + #[doc = " Get the current state of a POV hat on a joystick."] + #[doc = ""] + #[doc = " The hat indices start at index 0."] + #[doc = ""] + #[doc = " \\return The return value is one of the following positions:"] + #[doc = " - ::SDL_HAT_CENTERED"] + #[doc = " - ::SDL_HAT_UP"] + #[doc = " - ::SDL_HAT_RIGHT"] + #[doc = " - ::SDL_HAT_DOWN"] + #[doc = " - ::SDL_HAT_LEFT"] + #[doc = " - ::SDL_HAT_RIGHTUP"] + #[doc = " - ::SDL_HAT_RIGHTDOWN"] + #[doc = " - ::SDL_HAT_LEFTUP"] + #[doc = " - ::SDL_HAT_LEFTDOWN"] + pub fn SDL_JoystickGetHat(joystick: *mut SDL_Joystick, hat: libc::c_int) -> Uint8; +} +extern "C" { + #[doc = " Get the ball axis change since the last poll."] + #[doc = ""] + #[doc = " \\return 0, or -1 if you passed it invalid parameters."] + #[doc = ""] + #[doc = " The ball indices start at index 0."] + pub fn SDL_JoystickGetBall( + joystick: *mut SDL_Joystick, + ball: libc::c_int, + dx: *mut libc::c_int, + dy: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Get the current state of a button on a joystick."] + #[doc = ""] + #[doc = " The button indices start at index 0."] + pub fn SDL_JoystickGetButton(joystick: *mut SDL_Joystick, button: libc::c_int) -> Uint8; +} +extern "C" { + #[doc = " Start a rumble effect"] + #[doc = " Each call to this function cancels any previous rumble effect, and calling it with 0 intensity stops any rumbling."] + #[doc = ""] + #[doc = " \\param joystick The joystick to vibrate"] + #[doc = " \\param low_frequency_rumble The intensity of the low frequency (left) rumble motor, from 0 to 0xFFFF"] + #[doc = " \\param high_frequency_rumble The intensity of the high frequency (right) rumble motor, from 0 to 0xFFFF"] + #[doc = " \\param duration_ms The duration of the rumble effect, in milliseconds"] + #[doc = ""] + #[doc = " \\return 0, or -1 if rumble isn't supported on this joystick"] + pub fn SDL_JoystickRumble( + joystick: *mut SDL_Joystick, + low_frequency_rumble: Uint16, + high_frequency_rumble: Uint16, + duration_ms: Uint32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Start a rumble effect in the joystick's triggers"] + #[doc = " Each call to this function cancels any previous trigger rumble effect, and calling it with 0 intensity stops any rumbling."] + #[doc = ""] + #[doc = " \\param joystick The joystick to vibrate"] + #[doc = " \\param left_rumble The intensity of the left trigger rumble motor, from 0 to 0xFFFF"] + #[doc = " \\param right_rumble The intensity of the right trigger rumble motor, from 0 to 0xFFFF"] + #[doc = " \\param duration_ms The duration of the rumble effect, in milliseconds"] + #[doc = ""] + #[doc = " \\return 0, or -1 if trigger rumble isn't supported on this joystick"] + pub fn SDL_JoystickRumbleTriggers( + joystick: *mut SDL_Joystick, + left_rumble: Uint16, + right_rumble: Uint16, + duration_ms: Uint32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Return whether a joystick has an LED"] + #[doc = ""] + #[doc = " \\param joystick The joystick to query"] + #[doc = ""] + #[doc = " \\return SDL_TRUE, or SDL_FALSE if this joystick does not have a modifiable LED"] + pub fn SDL_JoystickHasLED(joystick: *mut SDL_Joystick) -> SDL_bool; +} +extern "C" { + #[doc = " Update a joystick's LED color."] + #[doc = ""] + #[doc = " \\param joystick The joystick to update"] + #[doc = " \\param red The intensity of the red LED"] + #[doc = " \\param green The intensity of the green LED"] + #[doc = " \\param blue The intensity of the blue LED"] + #[doc = ""] + #[doc = " \\return 0, or -1 if this joystick does not have a modifiable LED"] + pub fn SDL_JoystickSetLED( + joystick: *mut SDL_Joystick, + red: Uint8, + green: Uint8, + blue: Uint8, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Close a joystick previously opened with SDL_JoystickOpen()."] + pub fn SDL_JoystickClose(joystick: *mut SDL_Joystick); +} +extern "C" { + #[doc = " Return the battery level of this joystick"] + pub fn SDL_JoystickCurrentPowerLevel(joystick: *mut SDL_Joystick) -> SDL_JoystickPowerLevel; +} +#[doc = " \\brief SDL_sensor.h"] +#[doc = ""] +#[doc = " In order to use these functions, SDL_Init() must have been called"] +#[doc = " with the ::SDL_INIT_SENSOR flag. This causes SDL to scan the system"] +#[doc = " for sensors, and load appropriate drivers."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _SDL_Sensor { + _unused: [u8; 0], +} +pub type SDL_Sensor = _SDL_Sensor; +#[doc = " This is a unique ID for a sensor for the time it is connected to the system,"] +#[doc = " and is never reused for the lifetime of the application."] +#[doc = ""] +#[doc = " The ID value starts at 0 and increments from there. The value -1 is an invalid ID."] +pub type SDL_SensorID = Sint32; +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_SensorType { + #[doc = "< Returned for an invalid sensor"] + SDL_SENSOR_INVALID = -1, + #[doc = "< Unknown sensor type"] + SDL_SENSOR_UNKNOWN = 0, + #[doc = "< Accelerometer"] + SDL_SENSOR_ACCEL = 1, + #[doc = "< Gyroscope"] + SDL_SENSOR_GYRO = 2, +} +extern "C" { + #[doc = " Locking for multi-threaded access to the sensor API"] + #[doc = ""] + #[doc = " If you are using the sensor API or handling events from multiple threads"] + #[doc = " you should use these locking functions to protect access to the sensors."] + #[doc = ""] + #[doc = " In particular, you are guaranteed that the sensor list won't change, so"] + #[doc = " the API functions that take a sensor index will be valid, and sensor"] + #[doc = " events will not be delivered."] + pub fn SDL_LockSensors(); +} +extern "C" { + pub fn SDL_UnlockSensors(); +} +extern "C" { + #[doc = " \\brief Count the number of sensors attached to the system right now"] + pub fn SDL_NumSensors() -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the implementation dependent name of a sensor."] + #[doc = ""] + #[doc = " This can be called before any sensors are opened."] + #[doc = ""] + #[doc = " \\return The sensor name, or NULL if device_index is out of range."] + pub fn SDL_SensorGetDeviceName(device_index: libc::c_int) -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Get the type of a sensor."] + #[doc = ""] + #[doc = " This can be called before any sensors are opened."] + #[doc = ""] + #[doc = " \\return The sensor type, or SDL_SENSOR_INVALID if device_index is out of range."] + pub fn SDL_SensorGetDeviceType(device_index: libc::c_int) -> SDL_SensorType; +} +extern "C" { + #[doc = " \\brief Get the platform dependent type of a sensor."] + #[doc = ""] + #[doc = " This can be called before any sensors are opened."] + #[doc = ""] + #[doc = " \\return The sensor platform dependent type, or -1 if device_index is out of range."] + pub fn SDL_SensorGetDeviceNonPortableType(device_index: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the instance ID of a sensor."] + #[doc = ""] + #[doc = " This can be called before any sensors are opened."] + #[doc = ""] + #[doc = " \\return The sensor instance ID, or -1 if device_index is out of range."] + pub fn SDL_SensorGetDeviceInstanceID(device_index: libc::c_int) -> SDL_SensorID; +} +extern "C" { + #[doc = " \\brief Open a sensor for use."] + #[doc = ""] + #[doc = " The index passed as an argument refers to the N'th sensor on the system."] + #[doc = ""] + #[doc = " \\return A sensor identifier, or NULL if an error occurred."] + pub fn SDL_SensorOpen(device_index: libc::c_int) -> *mut SDL_Sensor; +} +extern "C" { + #[doc = " Return the SDL_Sensor associated with an instance id."] + pub fn SDL_SensorFromInstanceID(instance_id: SDL_SensorID) -> *mut SDL_Sensor; +} +extern "C" { + #[doc = " \\brief Get the implementation dependent name of a sensor."] + #[doc = ""] + #[doc = " \\return The sensor name, or NULL if the sensor is NULL."] + pub fn SDL_SensorGetName(sensor: *mut SDL_Sensor) -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Get the type of a sensor."] + #[doc = ""] + #[doc = " This can be called before any sensors are opened."] + #[doc = ""] + #[doc = " \\return The sensor type, or SDL_SENSOR_INVALID if the sensor is NULL."] + pub fn SDL_SensorGetType(sensor: *mut SDL_Sensor) -> SDL_SensorType; +} +extern "C" { + #[doc = " \\brief Get the platform dependent type of a sensor."] + #[doc = ""] + #[doc = " This can be called before any sensors are opened."] + #[doc = ""] + #[doc = " \\return The sensor platform dependent type, or -1 if the sensor is NULL."] + pub fn SDL_SensorGetNonPortableType(sensor: *mut SDL_Sensor) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the instance ID of a sensor."] + #[doc = ""] + #[doc = " This can be called before any sensors are opened."] + #[doc = ""] + #[doc = " \\return The sensor instance ID, or -1 if the sensor is NULL."] + pub fn SDL_SensorGetInstanceID(sensor: *mut SDL_Sensor) -> SDL_SensorID; +} +extern "C" { + #[doc = " Get the current state of an opened sensor."] + #[doc = ""] + #[doc = " The number of values and interpretation of the data is sensor dependent."] + #[doc = ""] + #[doc = " \\param sensor The sensor to query"] + #[doc = " \\param data A pointer filled with the current sensor state"] + #[doc = " \\param num_values The number of values to write to data"] + #[doc = ""] + #[doc = " \\return 0 or -1 if an error occurred."] + pub fn SDL_SensorGetData( + sensor: *mut SDL_Sensor, + data: *mut f32, + num_values: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Close a sensor previously opened with SDL_SensorOpen()"] + pub fn SDL_SensorClose(sensor: *mut SDL_Sensor); +} +extern "C" { + #[doc = " Update the current state of the open sensors."] + #[doc = ""] + #[doc = " This is called automatically by the event loop if sensor events are enabled."] + #[doc = ""] + #[doc = " This needs to be called from the thread that initialized the sensor subsystem."] + pub fn SDL_SensorUpdate(); +} +#[doc = " The gamecontroller structure used to identify an SDL game controller"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _SDL_GameController { + _unused: [u8; 0], +} +pub type SDL_GameController = _SDL_GameController; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_GameControllerType { + SDL_CONTROLLER_TYPE_UNKNOWN = 0, + SDL_CONTROLLER_TYPE_XBOX360 = 1, + SDL_CONTROLLER_TYPE_XBOXONE = 2, + SDL_CONTROLLER_TYPE_PS3 = 3, + SDL_CONTROLLER_TYPE_PS4 = 4, + SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_PRO = 5, + SDL_CONTROLLER_TYPE_VIRTUAL = 6, + SDL_CONTROLLER_TYPE_PS5 = 7, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_GameControllerBindType { + SDL_CONTROLLER_BINDTYPE_NONE = 0, + SDL_CONTROLLER_BINDTYPE_BUTTON = 1, + SDL_CONTROLLER_BINDTYPE_AXIS = 2, + SDL_CONTROLLER_BINDTYPE_HAT = 3, +} +#[doc = " Get the SDL joystick layer binding for this controller button/axis mapping"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_GameControllerButtonBind { + pub bindType: SDL_GameControllerBindType, + pub value: SDL_GameControllerButtonBind__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union SDL_GameControllerButtonBind__bindgen_ty_1 { + pub button: libc::c_int, + pub axis: libc::c_int, + pub hat: SDL_GameControllerButtonBind__bindgen_ty_1__bindgen_ty_1, + _bindgen_union_align: [u32; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_GameControllerButtonBind__bindgen_ty_1__bindgen_ty_1 { + pub hat: libc::c_int, + pub hat_mask: libc::c_int, +} +#[test] +fn bindgen_test_layout_SDL_GameControllerButtonBind__bindgen_ty_1__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!( + "Size of: ", + stringify!(SDL_GameControllerButtonBind__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(SDL_GameControllerButtonBind__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())) + .hat as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_GameControllerButtonBind__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(hat) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())) + .hat_mask as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_GameControllerButtonBind__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(hat_mask) + ) + ); +} +#[test] +fn bindgen_test_layout_SDL_GameControllerButtonBind__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!( + "Size of: ", + stringify!(SDL_GameControllerButtonBind__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(SDL_GameControllerButtonBind__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).button + as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_GameControllerButtonBind__bindgen_ty_1), + "::", + stringify!(button) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).axis as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_GameControllerButtonBind__bindgen_ty_1), + "::", + stringify!(axis) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).hat as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_GameControllerButtonBind__bindgen_ty_1), + "::", + stringify!(hat) + ) + ); +} +#[test] +fn bindgen_test_layout_SDL_GameControllerButtonBind() { + assert_eq!( + ::core::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(SDL_GameControllerButtonBind)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_GameControllerButtonBind)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).bindType as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_GameControllerButtonBind), + "::", + stringify!(bindType) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).value as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_GameControllerButtonBind), + "::", + stringify!(value) + ) + ); +} +extern "C" { + #[doc = " Load a set of mappings from a seekable SDL data stream (memory or file), filtered by the current SDL_GetPlatform()"] + #[doc = " A community sourced database of controllers is available at https://raw.github.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt"] + #[doc = ""] + #[doc = " If \\c freerw is non-zero, the stream will be closed after being read."] + #[doc = ""] + #[doc = " \\return number of mappings added, -1 on error"] + pub fn SDL_GameControllerAddMappingsFromRW( + rw: *mut SDL_RWops, + freerw: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Add or update an existing mapping configuration"] + #[doc = ""] + #[doc = " \\return 1 if mapping is added, 0 if updated, -1 on error"] + pub fn SDL_GameControllerAddMapping(mappingString: *const libc::c_char) -> libc::c_int; +} +extern "C" { + #[doc = " Get the number of mappings installed"] + #[doc = ""] + #[doc = " \\return the number of mappings"] + pub fn SDL_GameControllerNumMappings() -> libc::c_int; +} +extern "C" { + #[doc = " Get the mapping at a particular index."] + #[doc = ""] + #[doc = " \\return the mapping string. Must be freed with SDL_free(). Returns NULL if the index is out of range."] + pub fn SDL_GameControllerMappingForIndex(mapping_index: libc::c_int) -> *mut libc::c_char; +} +extern "C" { + #[doc = " Get a mapping string for a GUID"] + #[doc = ""] + #[doc = " \\return the mapping string. Must be freed with SDL_free(). Returns NULL if no mapping is available"] + pub fn SDL_GameControllerMappingForGUID(guid: SDL_JoystickGUID) -> *mut libc::c_char; +} +extern "C" { + #[doc = " Get a mapping string for an open GameController"] + #[doc = ""] + #[doc = " \\return the mapping string. Must be freed with SDL_free(). Returns NULL if no mapping is available"] + pub fn SDL_GameControllerMapping(gamecontroller: *mut SDL_GameController) -> *mut libc::c_char; +} +extern "C" { + #[doc = " Is the joystick on this index supported by the game controller interface?"] + pub fn SDL_IsGameController(joystick_index: libc::c_int) -> SDL_bool; +} +extern "C" { + #[doc = " Get the implementation dependent name of a game controller."] + #[doc = " This can be called before any controllers are opened."] + #[doc = " If no name can be found, this function returns NULL."] + pub fn SDL_GameControllerNameForIndex(joystick_index: libc::c_int) -> *const libc::c_char; +} +extern "C" { + #[doc = " Get the type of a game controller."] + #[doc = " This can be called before any controllers are opened."] + pub fn SDL_GameControllerTypeForIndex(joystick_index: libc::c_int) -> SDL_GameControllerType; +} +extern "C" { + #[doc = " Get the mapping of a game controller."] + #[doc = " This can be called before any controllers are opened."] + #[doc = ""] + #[doc = " \\return the mapping string. Must be freed with SDL_free(). Returns NULL if no mapping is available"] + pub fn SDL_GameControllerMappingForDeviceIndex( + joystick_index: libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + #[doc = " Open a game controller for use."] + #[doc = " The index passed as an argument refers to the N'th game controller on the system."] + #[doc = " This index is not the value which will identify this controller in future"] + #[doc = " controller events. The joystick's instance id (::SDL_JoystickID) will be"] + #[doc = " used there instead."] + #[doc = ""] + #[doc = " \\return A controller identifier, or NULL if an error occurred."] + pub fn SDL_GameControllerOpen(joystick_index: libc::c_int) -> *mut SDL_GameController; +} +extern "C" { + #[doc = " Return the SDL_GameController associated with an instance id."] + pub fn SDL_GameControllerFromInstanceID(joyid: SDL_JoystickID) -> *mut SDL_GameController; +} +extern "C" { + #[doc = " Return the SDL_GameController associated with a player index."] + pub fn SDL_GameControllerFromPlayerIndex(player_index: libc::c_int) -> *mut SDL_GameController; +} +extern "C" { + #[doc = " Return the name for this currently opened controller"] + pub fn SDL_GameControllerName(gamecontroller: *mut SDL_GameController) -> *const libc::c_char; +} +extern "C" { + #[doc = " Return the type of this currently opened controller"] + pub fn SDL_GameControllerGetType( + gamecontroller: *mut SDL_GameController, + ) -> SDL_GameControllerType; +} +extern "C" { + #[doc = " Get the player index of an opened game controller, or -1 if it's not available"] + #[doc = ""] + #[doc = " For XInput controllers this returns the XInput user index."] + pub fn SDL_GameControllerGetPlayerIndex(gamecontroller: *mut SDL_GameController) + -> libc::c_int; +} +extern "C" { + #[doc = " Set the player index of an opened game controller"] + pub fn SDL_GameControllerSetPlayerIndex( + gamecontroller: *mut SDL_GameController, + player_index: libc::c_int, + ); +} +extern "C" { + #[doc = " Get the USB vendor ID of an opened controller, if available."] + #[doc = " If the vendor ID isn't available this function returns 0."] + pub fn SDL_GameControllerGetVendor(gamecontroller: *mut SDL_GameController) -> Uint16; +} +extern "C" { + #[doc = " Get the USB product ID of an opened controller, if available."] + #[doc = " If the product ID isn't available this function returns 0."] + pub fn SDL_GameControllerGetProduct(gamecontroller: *mut SDL_GameController) -> Uint16; +} +extern "C" { + #[doc = " Get the product version of an opened controller, if available."] + #[doc = " If the product version isn't available this function returns 0."] + pub fn SDL_GameControllerGetProductVersion(gamecontroller: *mut SDL_GameController) -> Uint16; +} +extern "C" { + #[doc = " Get the serial number of an opened controller, if available."] + #[doc = ""] + #[doc = " Returns the serial number of the controller, or NULL if it is not available."] + pub fn SDL_GameControllerGetSerial( + gamecontroller: *mut SDL_GameController, + ) -> *const libc::c_char; +} +extern "C" { + #[doc = " Returns SDL_TRUE if the controller has been opened and currently connected,"] + #[doc = " or SDL_FALSE if it has not."] + pub fn SDL_GameControllerGetAttached(gamecontroller: *mut SDL_GameController) -> SDL_bool; +} +extern "C" { + #[doc = " Get the underlying joystick object used by a controller"] + pub fn SDL_GameControllerGetJoystick( + gamecontroller: *mut SDL_GameController, + ) -> *mut SDL_Joystick; +} +extern "C" { + #[doc = " Enable/disable controller event polling."] + #[doc = ""] + #[doc = " If controller events are disabled, you must call SDL_GameControllerUpdate()"] + #[doc = " yourself and check the state of the controller when you want controller"] + #[doc = " information."] + #[doc = ""] + #[doc = " The state can be one of ::SDL_QUERY, ::SDL_ENABLE or ::SDL_IGNORE."] + pub fn SDL_GameControllerEventState(state: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " Update the current state of the open game controllers."] + #[doc = ""] + #[doc = " This is called automatically by the event loop if any game controller"] + #[doc = " events are enabled."] + pub fn SDL_GameControllerUpdate(); +} +#[repr(i32)] +#[doc = " The list of axes available from a controller"] +#[doc = ""] +#[doc = " Thumbstick axis values range from SDL_JOYSTICK_AXIS_MIN to SDL_JOYSTICK_AXIS_MAX,"] +#[doc = " and are centered within ~8000 of zero, though advanced UI will allow users to set"] +#[doc = " or autodetect the dead zone, which varies between controllers."] +#[doc = ""] +#[doc = " Trigger axis values range from 0 to SDL_JOYSTICK_AXIS_MAX."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_GameControllerAxis { + SDL_CONTROLLER_AXIS_INVALID = -1, + SDL_CONTROLLER_AXIS_LEFTX = 0, + SDL_CONTROLLER_AXIS_LEFTY = 1, + SDL_CONTROLLER_AXIS_RIGHTX = 2, + SDL_CONTROLLER_AXIS_RIGHTY = 3, + SDL_CONTROLLER_AXIS_TRIGGERLEFT = 4, + SDL_CONTROLLER_AXIS_TRIGGERRIGHT = 5, + SDL_CONTROLLER_AXIS_MAX = 6, +} +extern "C" { + #[doc = " turn this string into a axis mapping"] + pub fn SDL_GameControllerGetAxisFromString( + pchString: *const libc::c_char, + ) -> SDL_GameControllerAxis; +} +extern "C" { + #[doc = " turn this axis enum into a string mapping"] + pub fn SDL_GameControllerGetStringForAxis(axis: SDL_GameControllerAxis) -> *const libc::c_char; +} +extern "C" { + #[doc = " Get the SDL joystick layer binding for this controller button mapping"] + pub fn SDL_GameControllerGetBindForAxis( + gamecontroller: *mut SDL_GameController, + axis: SDL_GameControllerAxis, + ) -> SDL_GameControllerButtonBind; +} +extern "C" { + #[doc = " Return whether a game controller has a given axis"] + pub fn SDL_GameControllerHasAxis( + gamecontroller: *mut SDL_GameController, + axis: SDL_GameControllerAxis, + ) -> SDL_bool; +} +extern "C" { + #[doc = " Get the current state of an axis control on a game controller."] + #[doc = ""] + #[doc = " The state is a value ranging from -32768 to 32767 (except for the triggers,"] + #[doc = " which range from 0 to 32767)."] + #[doc = ""] + #[doc = " The axis indices start at index 0."] + pub fn SDL_GameControllerGetAxis( + gamecontroller: *mut SDL_GameController, + axis: SDL_GameControllerAxis, + ) -> Sint16; +} +#[repr(i32)] +#[doc = " The list of buttons available from a controller"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_GameControllerButton { + SDL_CONTROLLER_BUTTON_INVALID = -1, + SDL_CONTROLLER_BUTTON_A = 0, + SDL_CONTROLLER_BUTTON_B = 1, + SDL_CONTROLLER_BUTTON_X = 2, + SDL_CONTROLLER_BUTTON_Y = 3, + SDL_CONTROLLER_BUTTON_BACK = 4, + SDL_CONTROLLER_BUTTON_GUIDE = 5, + SDL_CONTROLLER_BUTTON_START = 6, + SDL_CONTROLLER_BUTTON_LEFTSTICK = 7, + SDL_CONTROLLER_BUTTON_RIGHTSTICK = 8, + SDL_CONTROLLER_BUTTON_LEFTSHOULDER = 9, + SDL_CONTROLLER_BUTTON_RIGHTSHOULDER = 10, + SDL_CONTROLLER_BUTTON_DPAD_UP = 11, + SDL_CONTROLLER_BUTTON_DPAD_DOWN = 12, + SDL_CONTROLLER_BUTTON_DPAD_LEFT = 13, + SDL_CONTROLLER_BUTTON_DPAD_RIGHT = 14, + SDL_CONTROLLER_BUTTON_MISC1 = 15, + SDL_CONTROLLER_BUTTON_PADDLE1 = 16, + SDL_CONTROLLER_BUTTON_PADDLE2 = 17, + SDL_CONTROLLER_BUTTON_PADDLE3 = 18, + SDL_CONTROLLER_BUTTON_PADDLE4 = 19, + SDL_CONTROLLER_BUTTON_TOUCHPAD = 20, + SDL_CONTROLLER_BUTTON_MAX = 21, +} +extern "C" { + #[doc = " turn this string into a button mapping"] + pub fn SDL_GameControllerGetButtonFromString( + pchString: *const libc::c_char, + ) -> SDL_GameControllerButton; +} +extern "C" { + #[doc = " turn this button enum into a string mapping"] + pub fn SDL_GameControllerGetStringForButton( + button: SDL_GameControllerButton, + ) -> *const libc::c_char; +} +extern "C" { + #[doc = " Get the SDL joystick layer binding for this controller button mapping"] + pub fn SDL_GameControllerGetBindForButton( + gamecontroller: *mut SDL_GameController, + button: SDL_GameControllerButton, + ) -> SDL_GameControllerButtonBind; +} +extern "C" { + #[doc = " Return whether a game controller has a given button"] + pub fn SDL_GameControllerHasButton( + gamecontroller: *mut SDL_GameController, + button: SDL_GameControllerButton, + ) -> SDL_bool; +} +extern "C" { + #[doc = " Get the current state of a button on a game controller."] + #[doc = ""] + #[doc = " The button indices start at index 0."] + pub fn SDL_GameControllerGetButton( + gamecontroller: *mut SDL_GameController, + button: SDL_GameControllerButton, + ) -> Uint8; +} +extern "C" { + #[doc = " Get the number of touchpads on a game controller."] + pub fn SDL_GameControllerGetNumTouchpads( + gamecontroller: *mut SDL_GameController, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Get the number of supported simultaneous fingers on a touchpad on a game controller."] + pub fn SDL_GameControllerGetNumTouchpadFingers( + gamecontroller: *mut SDL_GameController, + touchpad: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Get the current state of a finger on a touchpad on a game controller."] + pub fn SDL_GameControllerGetTouchpadFinger( + gamecontroller: *mut SDL_GameController, + touchpad: libc::c_int, + finger: libc::c_int, + state: *mut Uint8, + x: *mut f32, + y: *mut f32, + pressure: *mut f32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Return whether a game controller has a particular sensor."] + #[doc = ""] + #[doc = " \\param gamecontroller The controller to query"] + #[doc = " \\param type The type of sensor to query"] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the sensor exists, SDL_FALSE otherwise."] + pub fn SDL_GameControllerHasSensor( + gamecontroller: *mut SDL_GameController, + type_: SDL_SensorType, + ) -> SDL_bool; +} +extern "C" { + #[doc = " Set whether data reporting for a game controller sensor is enabled"] + #[doc = ""] + #[doc = " \\param gamecontroller The controller to update"] + #[doc = " \\param type The type of sensor to enable/disable"] + #[doc = " \\param enabled Whether data reporting should be enabled"] + #[doc = ""] + #[doc = " \\return 0 or -1 if an error occurred."] + pub fn SDL_GameControllerSetSensorEnabled( + gamecontroller: *mut SDL_GameController, + type_: SDL_SensorType, + enabled: SDL_bool, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Query whether sensor data reporting is enabled for a game controller"] + #[doc = ""] + #[doc = " \\param gamecontroller The controller to query"] + #[doc = " \\param type The type of sensor to query"] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the sensor is enabled, SDL_FALSE otherwise."] + pub fn SDL_GameControllerIsSensorEnabled( + gamecontroller: *mut SDL_GameController, + type_: SDL_SensorType, + ) -> SDL_bool; +} +extern "C" { + #[doc = " Get the current state of a game controller sensor."] + #[doc = ""] + #[doc = " The number of values and interpretation of the data is sensor dependent."] + #[doc = " See SDL_sensor.h for the details for each type of sensor."] + #[doc = ""] + #[doc = " \\param gamecontroller The controller to query"] + #[doc = " \\param type The type of sensor to query"] + #[doc = " \\param data A pointer filled with the current sensor state"] + #[doc = " \\param num_values The number of values to write to data"] + #[doc = ""] + #[doc = " \\return 0 or -1 if an error occurred."] + pub fn SDL_GameControllerGetSensorData( + gamecontroller: *mut SDL_GameController, + type_: SDL_SensorType, + data: *mut f32, + num_values: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Start a rumble effect"] + #[doc = " Each call to this function cancels any previous rumble effect, and calling it with 0 intensity stops any rumbling."] + #[doc = ""] + #[doc = " \\param gamecontroller The controller to vibrate"] + #[doc = " \\param low_frequency_rumble The intensity of the low frequency (left) rumble motor, from 0 to 0xFFFF"] + #[doc = " \\param high_frequency_rumble The intensity of the high frequency (right) rumble motor, from 0 to 0xFFFF"] + #[doc = " \\param duration_ms The duration of the rumble effect, in milliseconds"] + #[doc = ""] + #[doc = " \\return 0, or -1 if rumble isn't supported on this controller"] + pub fn SDL_GameControllerRumble( + gamecontroller: *mut SDL_GameController, + low_frequency_rumble: Uint16, + high_frequency_rumble: Uint16, + duration_ms: Uint32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Start a rumble effect in the game controller's triggers"] + #[doc = " Each call to this function cancels any previous trigger rumble effect, and calling it with 0 intensity stops any rumbling."] + #[doc = ""] + #[doc = " \\param gamecontroller The controller to vibrate"] + #[doc = " \\param left_rumble The intensity of the left trigger rumble motor, from 0 to 0xFFFF"] + #[doc = " \\param right_rumble The intensity of the right trigger rumble motor, from 0 to 0xFFFF"] + #[doc = " \\param duration_ms The duration of the rumble effect, in milliseconds"] + #[doc = ""] + #[doc = " \\return 0, or -1 if rumble isn't supported on this controller"] + pub fn SDL_GameControllerRumbleTriggers( + gamecontroller: *mut SDL_GameController, + left_rumble: Uint16, + right_rumble: Uint16, + duration_ms: Uint32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Return whether a controller has an LED"] + #[doc = ""] + #[doc = " \\param gamecontroller The controller to query"] + #[doc = ""] + #[doc = " \\return SDL_TRUE, or SDL_FALSE if this controller does not have a modifiable LED"] + pub fn SDL_GameControllerHasLED(gamecontroller: *mut SDL_GameController) -> SDL_bool; +} +extern "C" { + #[doc = " Update a controller's LED color."] + #[doc = ""] + #[doc = " \\param gamecontroller The controller to update"] + #[doc = " \\param red The intensity of the red LED"] + #[doc = " \\param green The intensity of the green LED"] + #[doc = " \\param blue The intensity of the blue LED"] + #[doc = ""] + #[doc = " \\return 0, or -1 if this controller does not have a modifiable LED"] + pub fn SDL_GameControllerSetLED( + gamecontroller: *mut SDL_GameController, + red: Uint8, + green: Uint8, + blue: Uint8, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Close a controller previously opened with SDL_GameControllerOpen()."] + pub fn SDL_GameControllerClose(gamecontroller: *mut SDL_GameController); +} +pub type SDL_TouchID = Sint64; +pub type SDL_FingerID = Sint64; +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_TouchDeviceType { + SDL_TOUCH_DEVICE_INVALID = -1, + SDL_TOUCH_DEVICE_DIRECT = 0, + SDL_TOUCH_DEVICE_INDIRECT_ABSOLUTE = 1, + SDL_TOUCH_DEVICE_INDIRECT_RELATIVE = 2, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Finger { + pub id: SDL_FingerID, + pub x: f32, + pub y: f32, + pub pressure: f32, +} +#[test] +fn bindgen_test_layout_SDL_Finger() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(SDL_Finger)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_Finger)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).id as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Finger), + "::", + stringify!(id) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_Finger), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_Finger), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).pressure as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_Finger), + "::", + stringify!(pressure) + ) + ); +} +extern "C" { + #[doc = " \\brief Get the number of registered touch devices."] + pub fn SDL_GetNumTouchDevices() -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the touch ID with the given index, or 0 if the index is invalid."] + pub fn SDL_GetTouchDevice(index: libc::c_int) -> SDL_TouchID; +} +extern "C" { + #[doc = " \\brief Get the type of the given touch device."] + pub fn SDL_GetTouchDeviceType(touchID: SDL_TouchID) -> SDL_TouchDeviceType; +} +extern "C" { + #[doc = " \\brief Get the number of active fingers for a given touch device."] + pub fn SDL_GetNumTouchFingers(touchID: SDL_TouchID) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the finger object of the given touch, with the given index."] + pub fn SDL_GetTouchFinger(touchID: SDL_TouchID, index: libc::c_int) -> *mut SDL_Finger; +} +pub type SDL_GestureID = Sint64; +extern "C" { + #[doc = " \\brief Begin Recording a gesture on the specified touch, or all touches (-1)"] + #[doc = ""] + #[doc = ""] + pub fn SDL_RecordGesture(touchId: SDL_TouchID) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Save all currently loaded Dollar Gesture templates"] + #[doc = ""] + #[doc = ""] + pub fn SDL_SaveAllDollarTemplates(dst: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Save a currently loaded Dollar Gesture template"] + #[doc = ""] + #[doc = ""] + pub fn SDL_SaveDollarTemplate(gestureId: SDL_GestureID, dst: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Load Dollar Gesture templates from a file"] + #[doc = ""] + #[doc = ""] + pub fn SDL_LoadDollarTemplates(touchId: SDL_TouchID, src: *mut SDL_RWops) -> libc::c_int; +} +#[repr(u32)] +#[doc = " \\brief The types of events that can be delivered."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_EventType { + #[doc = "< Unused (do not remove)"] + SDL_FIRSTEVENT = 0, + #[doc = "< User-requested quit"] + SDL_QUIT = 256, + #[doc = "< The application is being terminated by the OS"] + #[doc = "Called on iOS in applicationWillTerminate()"] + #[doc = "Called on Android in onDestroy()"] + SDL_APP_TERMINATING = 257, + #[doc = "< The application is low on memory, free memory if possible."] + #[doc = "Called on iOS in applicationDidReceiveMemoryWarning()"] + #[doc = "Called on Android in onLowMemory()"] + SDL_APP_LOWMEMORY = 258, + #[doc = "< The application is about to enter the background"] + #[doc = "Called on iOS in applicationWillResignActive()"] + #[doc = "Called on Android in onPause()"] + SDL_APP_WILLENTERBACKGROUND = 259, + #[doc = "< The application did enter the background and may not get CPU for some time"] + #[doc = "Called on iOS in applicationDidEnterBackground()"] + #[doc = "Called on Android in onPause()"] + SDL_APP_DIDENTERBACKGROUND = 260, + #[doc = "< The application is about to enter the foreground"] + #[doc = "Called on iOS in applicationWillEnterForeground()"] + #[doc = "Called on Android in onResume()"] + SDL_APP_WILLENTERFOREGROUND = 261, + #[doc = "< The application is now interactive"] + #[doc = "Called on iOS in applicationDidBecomeActive()"] + #[doc = "Called on Android in onResume()"] + SDL_APP_DIDENTERFOREGROUND = 262, + #[doc = "< The user's locale preferences have changed."] + SDL_LOCALECHANGED = 263, + #[doc = "< Display state change"] + SDL_DISPLAYEVENT = 336, + #[doc = "< Window state change"] + SDL_WINDOWEVENT = 512, + #[doc = "< System specific event"] + SDL_SYSWMEVENT = 513, + #[doc = "< Key pressed"] + SDL_KEYDOWN = 768, + #[doc = "< Key released"] + SDL_KEYUP = 769, + #[doc = "< Keyboard text editing (composition)"] + SDL_TEXTEDITING = 770, + #[doc = "< Keyboard text input"] + SDL_TEXTINPUT = 771, + #[doc = "< Keymap changed due to a system event such as an"] + #[doc = "input language or keyboard layout change."] + SDL_KEYMAPCHANGED = 772, + #[doc = "< Mouse moved"] + SDL_MOUSEMOTION = 1024, + #[doc = "< Mouse button pressed"] + SDL_MOUSEBUTTONDOWN = 1025, + #[doc = "< Mouse button released"] + SDL_MOUSEBUTTONUP = 1026, + #[doc = "< Mouse wheel motion"] + SDL_MOUSEWHEEL = 1027, + #[doc = "< Joystick axis motion"] + SDL_JOYAXISMOTION = 1536, + #[doc = "< Joystick trackball motion"] + SDL_JOYBALLMOTION = 1537, + #[doc = "< Joystick hat position change"] + SDL_JOYHATMOTION = 1538, + #[doc = "< Joystick button pressed"] + SDL_JOYBUTTONDOWN = 1539, + #[doc = "< Joystick button released"] + SDL_JOYBUTTONUP = 1540, + #[doc = "< A new joystick has been inserted into the system"] + SDL_JOYDEVICEADDED = 1541, + #[doc = "< An opened joystick has been removed"] + SDL_JOYDEVICEREMOVED = 1542, + #[doc = "< Game controller axis motion"] + SDL_CONTROLLERAXISMOTION = 1616, + #[doc = "< Game controller button pressed"] + SDL_CONTROLLERBUTTONDOWN = 1617, + #[doc = "< Game controller button released"] + SDL_CONTROLLERBUTTONUP = 1618, + #[doc = "< A new Game controller has been inserted into the system"] + SDL_CONTROLLERDEVICEADDED = 1619, + #[doc = "< An opened Game controller has been removed"] + SDL_CONTROLLERDEVICEREMOVED = 1620, + #[doc = "< The controller mapping was updated"] + SDL_CONTROLLERDEVICEREMAPPED = 1621, + #[doc = "< Game controller touchpad was touched"] + SDL_CONTROLLERTOUCHPADDOWN = 1622, + #[doc = "< Game controller touchpad finger was moved"] + SDL_CONTROLLERTOUCHPADMOTION = 1623, + #[doc = "< Game controller touchpad finger was lifted"] + SDL_CONTROLLERTOUCHPADUP = 1624, + #[doc = "< Game controller sensor was updated"] + SDL_CONTROLLERSENSORUPDATE = 1625, + SDL_FINGERDOWN = 1792, + SDL_FINGERUP = 1793, + SDL_FINGERMOTION = 1794, + SDL_DOLLARGESTURE = 2048, + SDL_DOLLARRECORD = 2049, + SDL_MULTIGESTURE = 2050, + #[doc = "< The clipboard changed"] + SDL_CLIPBOARDUPDATE = 2304, + #[doc = "< The system requests a file open"] + SDL_DROPFILE = 4096, + #[doc = "< text/plain drag-and-drop event"] + SDL_DROPTEXT = 4097, + #[doc = "< A new set of drops is beginning (NULL filename)"] + SDL_DROPBEGIN = 4098, + #[doc = "< Current set of drops is now complete (NULL filename)"] + SDL_DROPCOMPLETE = 4099, + #[doc = "< A new audio device is available"] + SDL_AUDIODEVICEADDED = 4352, + #[doc = "< An audio device has been removed."] + SDL_AUDIODEVICEREMOVED = 4353, + #[doc = "< A sensor was updated"] + SDL_SENSORUPDATE = 4608, + #[doc = "< The render targets have been reset and their contents need to be updated"] + SDL_RENDER_TARGETS_RESET = 8192, + #[doc = "< The device has been reset and all textures need to be recreated"] + SDL_RENDER_DEVICE_RESET = 8193, + #[doc = " Events ::SDL_USEREVENT through ::SDL_LASTEVENT are for your use,"] + #[doc = " and should be allocated with SDL_RegisterEvents()"] + SDL_USEREVENT = 32768, + #[doc = " This last event is only for bounding internal arrays"] + SDL_LASTEVENT = 65535, +} +#[doc = " \\brief Fields shared by every event"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_CommonEvent { + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, +} +#[test] +fn bindgen_test_layout_SDL_CommonEvent() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(SDL_CommonEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_CommonEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_CommonEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_CommonEvent), + "::", + stringify!(timestamp) + ) + ); +} +#[doc = " \\brief Display state change event data (event.display.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_DisplayEvent { + #[doc = "< ::SDL_DISPLAYEVENT"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The associated display index"] + pub display: Uint32, + #[doc = "< ::SDL_DisplayEventID"] + pub event: Uint8, + pub padding1: Uint8, + pub padding2: Uint8, + pub padding3: Uint8, + #[doc = "< event dependent data"] + pub data1: Sint32, +} +#[test] +fn bindgen_test_layout_SDL_DisplayEvent() { + assert_eq!( + ::core::mem::size_of::(), + 20usize, + concat!("Size of: ", stringify!(SDL_DisplayEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_DisplayEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).event as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayEvent), + "::", + stringify!(event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding1 as *const _ as usize }, + 13usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayEvent), + "::", + stringify!(padding1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding2 as *const _ as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayEvent), + "::", + stringify!(padding2) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding3 as *const _ as usize }, + 15usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayEvent), + "::", + stringify!(padding3) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).data1 as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayEvent), + "::", + stringify!(data1) + ) + ); +} +#[doc = " \\brief Window state change event data (event.window.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_WindowEvent { + #[doc = "< ::SDL_WINDOWEVENT"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The associated window"] + pub windowID: Uint32, + #[doc = "< ::SDL_WindowEventID"] + pub event: Uint8, + pub padding1: Uint8, + pub padding2: Uint8, + pub padding3: Uint8, + #[doc = "< event dependent data"] + pub data1: Sint32, + #[doc = "< event dependent data"] + pub data2: Sint32, +} +#[test] +fn bindgen_test_layout_SDL_WindowEvent() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(SDL_WindowEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_WindowEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).windowID as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowEvent), + "::", + stringify!(windowID) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).event as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowEvent), + "::", + stringify!(event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding1 as *const _ as usize }, + 13usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowEvent), + "::", + stringify!(padding1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding2 as *const _ as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowEvent), + "::", + stringify!(padding2) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding3 as *const _ as usize }, + 15usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowEvent), + "::", + stringify!(padding3) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).data1 as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowEvent), + "::", + stringify!(data1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).data2 as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowEvent), + "::", + stringify!(data2) + ) + ); +} +#[doc = " \\brief Keyboard button event structure (event.key.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_KeyboardEvent { + #[doc = "< ::SDL_KEYDOWN or ::SDL_KEYUP"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The window with keyboard focus, if any"] + pub windowID: Uint32, + #[doc = "< ::SDL_PRESSED or ::SDL_RELEASED"] + pub state: Uint8, + #[doc = "< Non-zero if this is a key repeat"] + pub repeat: Uint8, + pub padding2: Uint8, + pub padding3: Uint8, + #[doc = "< The key that was pressed or released"] + pub keysym: SDL_Keysym, +} +#[test] +fn bindgen_test_layout_SDL_KeyboardEvent() { + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(SDL_KeyboardEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_KeyboardEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_KeyboardEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_KeyboardEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).windowID as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_KeyboardEvent), + "::", + stringify!(windowID) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_KeyboardEvent), + "::", + stringify!(state) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).repeat as *const _ as usize }, + 13usize, + concat!( + "Offset of field: ", + stringify!(SDL_KeyboardEvent), + "::", + stringify!(repeat) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding2 as *const _ as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(SDL_KeyboardEvent), + "::", + stringify!(padding2) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding3 as *const _ as usize }, + 15usize, + concat!( + "Offset of field: ", + stringify!(SDL_KeyboardEvent), + "::", + stringify!(padding3) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).keysym as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_KeyboardEvent), + "::", + stringify!(keysym) + ) + ); +} +#[doc = " \\brief Keyboard text editing event structure (event.edit.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_TextEditingEvent { + #[doc = "< ::SDL_TEXTEDITING"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The window with keyboard focus, if any"] + pub windowID: Uint32, + #[doc = "< The editing text"] + pub text: [libc::c_char; 32usize], + #[doc = "< The start cursor of selected editing text"] + pub start: Sint32, + #[doc = "< The length of selected editing text"] + pub length: Sint32, +} +#[test] +fn bindgen_test_layout_SDL_TextEditingEvent() { + assert_eq!( + ::core::mem::size_of::(), + 52usize, + concat!("Size of: ", stringify!(SDL_TextEditingEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_TextEditingEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_TextEditingEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_TextEditingEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).windowID as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_TextEditingEvent), + "::", + stringify!(windowID) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).text as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_TextEditingEvent), + "::", + stringify!(text) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).start as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(SDL_TextEditingEvent), + "::", + stringify!(start) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).length as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(SDL_TextEditingEvent), + "::", + stringify!(length) + ) + ); +} +#[doc = " \\brief Keyboard text input event structure (event.text.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_TextInputEvent { + #[doc = "< ::SDL_TEXTINPUT"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The window with keyboard focus, if any"] + pub windowID: Uint32, + #[doc = "< The input text"] + pub text: [libc::c_char; 32usize], +} +#[test] +fn bindgen_test_layout_SDL_TextInputEvent() { + assert_eq!( + ::core::mem::size_of::(), + 44usize, + concat!("Size of: ", stringify!(SDL_TextInputEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_TextInputEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_TextInputEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_TextInputEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).windowID as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_TextInputEvent), + "::", + stringify!(windowID) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).text as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_TextInputEvent), + "::", + stringify!(text) + ) + ); +} +#[doc = " \\brief Mouse motion event structure (event.motion.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_MouseMotionEvent { + #[doc = "< ::SDL_MOUSEMOTION"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The window with mouse focus, if any"] + pub windowID: Uint32, + #[doc = "< The mouse instance id, or SDL_TOUCH_MOUSEID"] + pub which: Uint32, + #[doc = "< The current button state"] + pub state: Uint32, + #[doc = "< X coordinate, relative to window"] + pub x: Sint32, + #[doc = "< Y coordinate, relative to window"] + pub y: Sint32, + #[doc = "< The relative motion in the X direction"] + pub xrel: Sint32, + #[doc = "< The relative motion in the Y direction"] + pub yrel: Sint32, +} +#[test] +fn bindgen_test_layout_SDL_MouseMotionEvent() { + assert_eq!( + ::core::mem::size_of::(), + 36usize, + concat!("Size of: ", stringify!(SDL_MouseMotionEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_MouseMotionEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseMotionEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseMotionEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).windowID as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseMotionEvent), + "::", + stringify!(windowID) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).which as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseMotionEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseMotionEvent), + "::", + stringify!(state) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseMotionEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseMotionEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).xrel as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseMotionEvent), + "::", + stringify!(xrel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).yrel as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseMotionEvent), + "::", + stringify!(yrel) + ) + ); +} +#[doc = " \\brief Mouse button event structure (event.button.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_MouseButtonEvent { + #[doc = "< ::SDL_MOUSEBUTTONDOWN or ::SDL_MOUSEBUTTONUP"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The window with mouse focus, if any"] + pub windowID: Uint32, + #[doc = "< The mouse instance id, or SDL_TOUCH_MOUSEID"] + pub which: Uint32, + #[doc = "< The mouse button index"] + pub button: Uint8, + #[doc = "< ::SDL_PRESSED or ::SDL_RELEASED"] + pub state: Uint8, + #[doc = "< 1 for single-click, 2 for double-click, etc."] + pub clicks: Uint8, + pub padding1: Uint8, + #[doc = "< X coordinate, relative to window"] + pub x: Sint32, + #[doc = "< Y coordinate, relative to window"] + pub y: Sint32, +} +#[test] +fn bindgen_test_layout_SDL_MouseButtonEvent() { + assert_eq!( + ::core::mem::size_of::(), + 28usize, + concat!("Size of: ", stringify!(SDL_MouseButtonEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_MouseButtonEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseButtonEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseButtonEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).windowID as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseButtonEvent), + "::", + stringify!(windowID) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).which as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseButtonEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).button as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseButtonEvent), + "::", + stringify!(button) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 17usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseButtonEvent), + "::", + stringify!(state) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).clicks as *const _ as usize }, + 18usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseButtonEvent), + "::", + stringify!(clicks) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding1 as *const _ as usize }, + 19usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseButtonEvent), + "::", + stringify!(padding1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseButtonEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseButtonEvent), + "::", + stringify!(y) + ) + ); +} +#[doc = " \\brief Mouse wheel event structure (event.wheel.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_MouseWheelEvent { + #[doc = "< ::SDL_MOUSEWHEEL"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The window with mouse focus, if any"] + pub windowID: Uint32, + #[doc = "< The mouse instance id, or SDL_TOUCH_MOUSEID"] + pub which: Uint32, + #[doc = "< The amount scrolled horizontally, positive to the right and negative to the left"] + pub x: Sint32, + #[doc = "< The amount scrolled vertically, positive away from the user and negative toward the user"] + pub y: Sint32, + #[doc = "< Set to one of the SDL_MOUSEWHEEL_* defines. When FLIPPED the values in X and Y will be opposite. Multiply by -1 to change them back"] + pub direction: Uint32, +} +#[test] +fn bindgen_test_layout_SDL_MouseWheelEvent() { + assert_eq!( + ::core::mem::size_of::(), + 28usize, + concat!("Size of: ", stringify!(SDL_MouseWheelEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_MouseWheelEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseWheelEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseWheelEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).windowID as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseWheelEvent), + "::", + stringify!(windowID) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).which as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseWheelEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseWheelEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseWheelEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).direction as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseWheelEvent), + "::", + stringify!(direction) + ) + ); +} +#[doc = " \\brief Joystick axis motion event structure (event.jaxis.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_JoyAxisEvent { + #[doc = "< ::SDL_JOYAXISMOTION"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The joystick instance id"] + pub which: SDL_JoystickID, + #[doc = "< The joystick axis index"] + pub axis: Uint8, + pub padding1: Uint8, + pub padding2: Uint8, + pub padding3: Uint8, + #[doc = "< The axis value (range: -32768 to 32767)"] + pub value: Sint16, + pub padding4: Uint16, +} +#[test] +fn bindgen_test_layout_SDL_JoyAxisEvent() { + assert_eq!( + ::core::mem::size_of::(), + 20usize, + concat!("Size of: ", stringify!(SDL_JoyAxisEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_JoyAxisEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyAxisEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyAxisEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).which as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyAxisEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).axis as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyAxisEvent), + "::", + stringify!(axis) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding1 as *const _ as usize }, + 13usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyAxisEvent), + "::", + stringify!(padding1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding2 as *const _ as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyAxisEvent), + "::", + stringify!(padding2) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding3 as *const _ as usize }, + 15usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyAxisEvent), + "::", + stringify!(padding3) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).value as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyAxisEvent), + "::", + stringify!(value) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding4 as *const _ as usize }, + 18usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyAxisEvent), + "::", + stringify!(padding4) + ) + ); +} +#[doc = " \\brief Joystick trackball motion event structure (event.jball.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_JoyBallEvent { + #[doc = "< ::SDL_JOYBALLMOTION"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The joystick instance id"] + pub which: SDL_JoystickID, + #[doc = "< The joystick trackball index"] + pub ball: Uint8, + pub padding1: Uint8, + pub padding2: Uint8, + pub padding3: Uint8, + #[doc = "< The relative motion in the X direction"] + pub xrel: Sint16, + #[doc = "< The relative motion in the Y direction"] + pub yrel: Sint16, +} +#[test] +fn bindgen_test_layout_SDL_JoyBallEvent() { + assert_eq!( + ::core::mem::size_of::(), + 20usize, + concat!("Size of: ", stringify!(SDL_JoyBallEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_JoyBallEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyBallEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyBallEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).which as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyBallEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ball as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyBallEvent), + "::", + stringify!(ball) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding1 as *const _ as usize }, + 13usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyBallEvent), + "::", + stringify!(padding1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding2 as *const _ as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyBallEvent), + "::", + stringify!(padding2) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding3 as *const _ as usize }, + 15usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyBallEvent), + "::", + stringify!(padding3) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).xrel as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyBallEvent), + "::", + stringify!(xrel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).yrel as *const _ as usize }, + 18usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyBallEvent), + "::", + stringify!(yrel) + ) + ); +} +#[doc = " \\brief Joystick hat position change event structure (event.jhat.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_JoyHatEvent { + #[doc = "< ::SDL_JOYHATMOTION"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The joystick instance id"] + pub which: SDL_JoystickID, + #[doc = "< The joystick hat index"] + pub hat: Uint8, + #[doc = "< The hat position value."] + #[doc = " \\sa ::SDL_HAT_LEFTUP ::SDL_HAT_UP ::SDL_HAT_RIGHTUP"] + #[doc = " \\sa ::SDL_HAT_LEFT ::SDL_HAT_CENTERED ::SDL_HAT_RIGHT"] + #[doc = " \\sa ::SDL_HAT_LEFTDOWN ::SDL_HAT_DOWN ::SDL_HAT_RIGHTDOWN"] + #[doc = ""] + #[doc = " Note that zero means the POV is centered."] + pub value: Uint8, + pub padding1: Uint8, + pub padding2: Uint8, +} +#[test] +fn bindgen_test_layout_SDL_JoyHatEvent() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_JoyHatEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_JoyHatEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyHatEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyHatEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).which as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyHatEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).hat as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyHatEvent), + "::", + stringify!(hat) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).value as *const _ as usize }, + 13usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyHatEvent), + "::", + stringify!(value) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding1 as *const _ as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyHatEvent), + "::", + stringify!(padding1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding2 as *const _ as usize }, + 15usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyHatEvent), + "::", + stringify!(padding2) + ) + ); +} +#[doc = " \\brief Joystick button event structure (event.jbutton.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_JoyButtonEvent { + #[doc = "< ::SDL_JOYBUTTONDOWN or ::SDL_JOYBUTTONUP"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The joystick instance id"] + pub which: SDL_JoystickID, + #[doc = "< The joystick button index"] + pub button: Uint8, + #[doc = "< ::SDL_PRESSED or ::SDL_RELEASED"] + pub state: Uint8, + pub padding1: Uint8, + pub padding2: Uint8, +} +#[test] +fn bindgen_test_layout_SDL_JoyButtonEvent() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_JoyButtonEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_JoyButtonEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyButtonEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyButtonEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).which as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyButtonEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).button as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyButtonEvent), + "::", + stringify!(button) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 13usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyButtonEvent), + "::", + stringify!(state) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding1 as *const _ as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyButtonEvent), + "::", + stringify!(padding1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding2 as *const _ as usize }, + 15usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyButtonEvent), + "::", + stringify!(padding2) + ) + ); +} +#[doc = " \\brief Joystick device event structure (event.jdevice.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_JoyDeviceEvent { + #[doc = "< ::SDL_JOYDEVICEADDED or ::SDL_JOYDEVICEREMOVED"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The joystick device index for the ADDED event, instance id for the REMOVED event"] + pub which: Sint32, +} +#[test] +fn bindgen_test_layout_SDL_JoyDeviceEvent() { + assert_eq!( + ::core::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(SDL_JoyDeviceEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_JoyDeviceEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyDeviceEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyDeviceEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).which as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyDeviceEvent), + "::", + stringify!(which) + ) + ); +} +#[doc = " \\brief Game controller axis motion event structure (event.caxis.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_ControllerAxisEvent { + #[doc = "< ::SDL_CONTROLLERAXISMOTION"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The joystick instance id"] + pub which: SDL_JoystickID, + #[doc = "< The controller axis (SDL_GameControllerAxis)"] + pub axis: Uint8, + pub padding1: Uint8, + pub padding2: Uint8, + pub padding3: Uint8, + #[doc = "< The axis value (range: -32768 to 32767)"] + pub value: Sint16, + pub padding4: Uint16, +} +#[test] +fn bindgen_test_layout_SDL_ControllerAxisEvent() { + assert_eq!( + ::core::mem::size_of::(), + 20usize, + concat!("Size of: ", stringify!(SDL_ControllerAxisEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_ControllerAxisEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerAxisEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).timestamp as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerAxisEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).which as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerAxisEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).axis as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerAxisEvent), + "::", + stringify!(axis) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).padding1 as *const _ as usize + }, + 13usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerAxisEvent), + "::", + stringify!(padding1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).padding2 as *const _ as usize + }, + 14usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerAxisEvent), + "::", + stringify!(padding2) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).padding3 as *const _ as usize + }, + 15usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerAxisEvent), + "::", + stringify!(padding3) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).value as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerAxisEvent), + "::", + stringify!(value) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).padding4 as *const _ as usize + }, + 18usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerAxisEvent), + "::", + stringify!(padding4) + ) + ); +} +#[doc = " \\brief Game controller button event structure (event.cbutton.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_ControllerButtonEvent { + #[doc = "< ::SDL_CONTROLLERBUTTONDOWN or ::SDL_CONTROLLERBUTTONUP"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The joystick instance id"] + pub which: SDL_JoystickID, + #[doc = "< The controller button (SDL_GameControllerButton)"] + pub button: Uint8, + #[doc = "< ::SDL_PRESSED or ::SDL_RELEASED"] + pub state: Uint8, + pub padding1: Uint8, + pub padding2: Uint8, +} +#[test] +fn bindgen_test_layout_SDL_ControllerButtonEvent() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_ControllerButtonEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_ControllerButtonEvent)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).type_ as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerButtonEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).timestamp as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerButtonEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).which as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerButtonEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).button as *const _ as usize + }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerButtonEvent), + "::", + stringify!(button) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).state as *const _ as usize + }, + 13usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerButtonEvent), + "::", + stringify!(state) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).padding1 as *const _ as usize + }, + 14usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerButtonEvent), + "::", + stringify!(padding1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).padding2 as *const _ as usize + }, + 15usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerButtonEvent), + "::", + stringify!(padding2) + ) + ); +} +#[doc = " \\brief Controller device event structure (event.cdevice.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_ControllerDeviceEvent { + #[doc = "< ::SDL_CONTROLLERDEVICEADDED, ::SDL_CONTROLLERDEVICEREMOVED, or ::SDL_CONTROLLERDEVICEREMAPPED"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The joystick device index for the ADDED event, instance id for the REMOVED or REMAPPED event"] + pub which: Sint32, +} +#[test] +fn bindgen_test_layout_SDL_ControllerDeviceEvent() { + assert_eq!( + ::core::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(SDL_ControllerDeviceEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_ControllerDeviceEvent)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).type_ as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerDeviceEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).timestamp as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerDeviceEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).which as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerDeviceEvent), + "::", + stringify!(which) + ) + ); +} +#[doc = " \\brief Game controller touchpad event structure (event.ctouchpad.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_ControllerTouchpadEvent { + #[doc = "< ::SDL_CONTROLLERTOUCHPADDOWN or ::SDL_CONTROLLERTOUCHPADMOTION or ::SDL_CONTROLLERTOUCHPADUP"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The joystick instance id"] + pub which: SDL_JoystickID, + #[doc = "< The index of the touchpad"] + pub touchpad: Sint32, + #[doc = "< The index of the finger on the touchpad"] + pub finger: Sint32, + #[doc = "< Normalized in the range 0...1 with 0 being on the left"] + pub x: f32, + #[doc = "< Normalized in the range 0...1 with 0 being at the top"] + pub y: f32, + #[doc = "< Normalized in the range 0...1"] + pub pressure: f32, +} +#[test] +fn bindgen_test_layout_SDL_ControllerTouchpadEvent() { + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(SDL_ControllerTouchpadEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_ControllerTouchpadEvent)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).type_ as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerTouchpadEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).timestamp as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerTouchpadEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).which as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerTouchpadEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).touchpad as *const _ as usize + }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerTouchpadEvent), + "::", + stringify!(touchpad) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).finger as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerTouchpadEvent), + "::", + stringify!(finger) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerTouchpadEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerTouchpadEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).pressure as *const _ as usize + }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerTouchpadEvent), + "::", + stringify!(pressure) + ) + ); +} +#[doc = " \\brief Game controller sensor event structure (event.csensor.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_ControllerSensorEvent { + #[doc = "< ::SDL_CONTROLLERSENSORUPDATE"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The joystick instance id"] + pub which: SDL_JoystickID, + #[doc = "< The type of the sensor, one of the values of ::SDL_SensorType"] + pub sensor: Sint32, + #[doc = "< Up to 3 values from the sensor, as defined in SDL_sensor.h"] + pub data: [f32; 3usize], +} +#[test] +fn bindgen_test_layout_SDL_ControllerSensorEvent() { + assert_eq!( + ::core::mem::size_of::(), + 28usize, + concat!("Size of: ", stringify!(SDL_ControllerSensorEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_ControllerSensorEvent)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).type_ as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerSensorEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).timestamp as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerSensorEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).which as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerSensorEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).sensor as *const _ as usize + }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerSensorEvent), + "::", + stringify!(sensor) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).data as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerSensorEvent), + "::", + stringify!(data) + ) + ); +} +#[doc = " \\brief Audio device event structure (event.adevice.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_AudioDeviceEvent { + #[doc = "< ::SDL_AUDIODEVICEADDED, or ::SDL_AUDIODEVICEREMOVED"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The audio device index for the ADDED event (valid until next SDL_GetNumAudioDevices() call), SDL_AudioDeviceID for the REMOVED event"] + pub which: Uint32, + #[doc = "< zero if an output device, non-zero if a capture device."] + pub iscapture: Uint8, + pub padding1: Uint8, + pub padding2: Uint8, + pub padding3: Uint8, +} +#[test] +fn bindgen_test_layout_SDL_AudioDeviceEvent() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_AudioDeviceEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_AudioDeviceEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioDeviceEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioDeviceEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).which as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioDeviceEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).iscapture as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioDeviceEvent), + "::", + stringify!(iscapture) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding1 as *const _ as usize }, + 13usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioDeviceEvent), + "::", + stringify!(padding1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding2 as *const _ as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioDeviceEvent), + "::", + stringify!(padding2) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding3 as *const _ as usize }, + 15usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioDeviceEvent), + "::", + stringify!(padding3) + ) + ); +} +#[doc = " \\brief Touch finger event structure (event.tfinger.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_TouchFingerEvent { + #[doc = "< ::SDL_FINGERMOTION or ::SDL_FINGERDOWN or ::SDL_FINGERUP"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The touch device id"] + pub touchId: SDL_TouchID, + pub fingerId: SDL_FingerID, + #[doc = "< Normalized in the range 0...1"] + pub x: f32, + #[doc = "< Normalized in the range 0...1"] + pub y: f32, + #[doc = "< Normalized in the range -1...1"] + pub dx: f32, + #[doc = "< Normalized in the range -1...1"] + pub dy: f32, + #[doc = "< Normalized in the range 0...1"] + pub pressure: f32, + #[doc = "< The window underneath the finger, if any"] + pub windowID: Uint32, +} +#[test] +fn bindgen_test_layout_SDL_TouchFingerEvent() { + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(SDL_TouchFingerEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_TouchFingerEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_TouchFingerEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_TouchFingerEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).touchId as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_TouchFingerEvent), + "::", + stringify!(touchId) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fingerId as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_TouchFingerEvent), + "::", + stringify!(fingerId) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_TouchFingerEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_TouchFingerEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).dx as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_TouchFingerEvent), + "::", + stringify!(dx) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).dy as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(SDL_TouchFingerEvent), + "::", + stringify!(dy) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).pressure as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(SDL_TouchFingerEvent), + "::", + stringify!(pressure) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).windowID as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(SDL_TouchFingerEvent), + "::", + stringify!(windowID) + ) + ); +} +#[doc = " \\brief Multiple Finger Gesture Event (event.mgesture.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_MultiGestureEvent { + #[doc = "< ::SDL_MULTIGESTURE"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The touch device id"] + pub touchId: SDL_TouchID, + pub dTheta: f32, + pub dDist: f32, + pub x: f32, + pub y: f32, + pub numFingers: Uint16, + pub padding: Uint16, +} +#[test] +fn bindgen_test_layout_SDL_MultiGestureEvent() { + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(SDL_MultiGestureEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_MultiGestureEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_MultiGestureEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).timestamp as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_MultiGestureEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).touchId as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_MultiGestureEvent), + "::", + stringify!(touchId) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).dTheta as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_MultiGestureEvent), + "::", + stringify!(dTheta) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).dDist as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_MultiGestureEvent), + "::", + stringify!(dDist) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_MultiGestureEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_MultiGestureEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).numFingers as *const _ as usize + }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_MultiGestureEvent), + "::", + stringify!(numFingers) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding as *const _ as usize }, + 34usize, + concat!( + "Offset of field: ", + stringify!(SDL_MultiGestureEvent), + "::", + stringify!(padding) + ) + ); +} +#[doc = " \\brief Dollar Gesture Event (event.dgesture.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_DollarGestureEvent { + #[doc = "< ::SDL_DOLLARGESTURE or ::SDL_DOLLARRECORD"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The touch device id"] + pub touchId: SDL_TouchID, + pub gestureId: SDL_GestureID, + pub numFingers: Uint32, + pub error: f32, + #[doc = "< Normalized center of gesture"] + pub x: f32, + #[doc = "< Normalized center of gesture"] + pub y: f32, +} +#[test] +fn bindgen_test_layout_SDL_DollarGestureEvent() { + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(SDL_DollarGestureEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_DollarGestureEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_DollarGestureEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).timestamp as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_DollarGestureEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).touchId as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_DollarGestureEvent), + "::", + stringify!(touchId) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).gestureId as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_DollarGestureEvent), + "::", + stringify!(gestureId) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).numFingers as *const _ as usize + }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_DollarGestureEvent), + "::", + stringify!(numFingers) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).error as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_DollarGestureEvent), + "::", + stringify!(error) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_DollarGestureEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(SDL_DollarGestureEvent), + "::", + stringify!(y) + ) + ); +} +#[doc = " \\brief An event used to request a file open by the system (event.drop.*)"] +#[doc = " This event is enabled by default, you can disable it with SDL_EventState()."] +#[doc = " \\note If this event is enabled, you must free the filename in the event."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_DropEvent { + #[doc = "< ::SDL_DROPBEGIN or ::SDL_DROPFILE or ::SDL_DROPTEXT or ::SDL_DROPCOMPLETE"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The file name, which should be freed with SDL_free(), is NULL on begin/complete"] + pub file: *mut libc::c_char, + #[doc = "< The window that was dropped on, if any"] + pub windowID: Uint32, +} +#[test] +fn bindgen_test_layout_SDL_DropEvent() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(SDL_DropEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_DropEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_DropEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_DropEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).file as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_DropEvent), + "::", + stringify!(file) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).windowID as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_DropEvent), + "::", + stringify!(windowID) + ) + ); +} +#[doc = " \\brief Sensor event structure (event.sensor.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_SensorEvent { + #[doc = "< ::SDL_SENSORUPDATE"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The instance ID of the sensor"] + pub which: Sint32, + #[doc = "< Up to 6 values from the sensor - additional values can be queried using SDL_SensorGetData()"] + pub data: [f32; 6usize], +} +#[test] +fn bindgen_test_layout_SDL_SensorEvent() { + assert_eq!( + ::core::mem::size_of::(), + 36usize, + concat!("Size of: ", stringify!(SDL_SensorEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_SensorEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SensorEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_SensorEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).which as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_SensorEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).data as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_SensorEvent), + "::", + stringify!(data) + ) + ); +} +#[doc = " \\brief The \"quit requested\" event"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_QuitEvent { + #[doc = "< ::SDL_QUIT"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, +} +#[test] +fn bindgen_test_layout_SDL_QuitEvent() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(SDL_QuitEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_QuitEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_QuitEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_QuitEvent), + "::", + stringify!(timestamp) + ) + ); +} +#[doc = " \\brief OS Specific event"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_OSEvent { + #[doc = "< ::SDL_QUIT"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, +} +#[test] +fn bindgen_test_layout_SDL_OSEvent() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(SDL_OSEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_OSEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_OSEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_OSEvent), + "::", + stringify!(timestamp) + ) + ); +} +#[doc = " \\brief A user-defined event type (event.user.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_UserEvent { + #[doc = "< ::SDL_USEREVENT through ::SDL_LASTEVENT-1"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The associated window if any"] + pub windowID: Uint32, + #[doc = "< User defined event code"] + pub code: Sint32, + #[doc = "< User defined data pointer"] + pub data1: *mut libc::c_void, + #[doc = "< User defined data pointer"] + pub data2: *mut libc::c_void, +} +#[test] +fn bindgen_test_layout_SDL_UserEvent() { + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(SDL_UserEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_UserEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_UserEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_UserEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).windowID as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_UserEvent), + "::", + stringify!(windowID) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).code as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_UserEvent), + "::", + stringify!(code) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).data1 as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_UserEvent), + "::", + stringify!(data1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).data2 as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_UserEvent), + "::", + stringify!(data2) + ) + ); +} +#[doc = " \\brief A video driver dependent system event (event.syswm.*)"] +#[doc = " This event is disabled by default, you can enable it with SDL_EventState()"] +#[doc = ""] +#[doc = " \\note If you want to use this event, you should include SDL_syswm.h."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_SysWMEvent { + #[doc = "< ::SDL_SYSWMEVENT"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< driver dependent data, defined in SDL_syswm.h"] + pub msg: *mut SDL_SysWMmsg, +} +#[test] +fn bindgen_test_layout_SDL_SysWMEvent() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_SysWMEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_SysWMEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).msg as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMEvent), + "::", + stringify!(msg) + ) + ); +} +#[doc = " \\brief General event structure"] +#[repr(C)] +#[derive(Copy, Clone)] +pub union SDL_Event { + #[doc = "< Event type, shared with all events"] + pub type_: Uint32, + #[doc = "< Common event data"] + pub common: SDL_CommonEvent, + #[doc = "< Display event data"] + pub display: SDL_DisplayEvent, + #[doc = "< Window event data"] + pub window: SDL_WindowEvent, + #[doc = "< Keyboard event data"] + pub key: SDL_KeyboardEvent, + #[doc = "< Text editing event data"] + pub edit: SDL_TextEditingEvent, + #[doc = "< Text input event data"] + pub text: SDL_TextInputEvent, + #[doc = "< Mouse motion event data"] + pub motion: SDL_MouseMotionEvent, + #[doc = "< Mouse button event data"] + pub button: SDL_MouseButtonEvent, + #[doc = "< Mouse wheel event data"] + pub wheel: SDL_MouseWheelEvent, + #[doc = "< Joystick axis event data"] + pub jaxis: SDL_JoyAxisEvent, + #[doc = "< Joystick ball event data"] + pub jball: SDL_JoyBallEvent, + #[doc = "< Joystick hat event data"] + pub jhat: SDL_JoyHatEvent, + #[doc = "< Joystick button event data"] + pub jbutton: SDL_JoyButtonEvent, + #[doc = "< Joystick device change event data"] + pub jdevice: SDL_JoyDeviceEvent, + #[doc = "< Game Controller axis event data"] + pub caxis: SDL_ControllerAxisEvent, + #[doc = "< Game Controller button event data"] + pub cbutton: SDL_ControllerButtonEvent, + #[doc = "< Game Controller device event data"] + pub cdevice: SDL_ControllerDeviceEvent, + #[doc = "< Game Controller touchpad event data"] + pub ctouchpad: SDL_ControllerTouchpadEvent, + #[doc = "< Game Controller sensor event data"] + pub csensor: SDL_ControllerSensorEvent, + #[doc = "< Audio device event data"] + pub adevice: SDL_AudioDeviceEvent, + #[doc = "< Sensor event data"] + pub sensor: SDL_SensorEvent, + #[doc = "< Quit request event data"] + pub quit: SDL_QuitEvent, + #[doc = "< Custom event data"] + pub user: SDL_UserEvent, + #[doc = "< System dependent window event data"] + pub syswm: SDL_SysWMEvent, + #[doc = "< Touch finger event data"] + pub tfinger: SDL_TouchFingerEvent, + #[doc = "< Gesture event data"] + pub mgesture: SDL_MultiGestureEvent, + #[doc = "< Gesture event data"] + pub dgesture: SDL_DollarGestureEvent, + #[doc = "< Drag and drop event data"] + pub drop: SDL_DropEvent, + pub padding: [Uint8; 56usize], + _bindgen_union_align: [u64; 7usize], +} +#[test] +fn bindgen_test_layout_SDL_Event() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(SDL_Event)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_Event)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).common as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(common) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).key as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(key) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).edit as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(edit) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).text as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(text) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).motion as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(motion) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).button as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(button) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).wheel as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(wheel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).jaxis as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(jaxis) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).jball as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(jball) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).jhat as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(jhat) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).jbutton as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(jbutton) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).jdevice as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(jdevice) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).caxis as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(caxis) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).cbutton as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(cbutton) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).cdevice as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(cdevice) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ctouchpad as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(ctouchpad) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).csensor as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(csensor) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).adevice as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(adevice) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).sensor as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(sensor) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).quit as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(quit) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).user as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(user) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).syswm as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(syswm) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).tfinger as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(tfinger) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).mgesture as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(mgesture) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).dgesture as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(dgesture) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).drop as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(drop) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(padding) + ) + ); +} +pub type SDL_compile_time_assert_SDL_Event = [libc::c_int; 1usize]; +extern "C" { + #[doc = " Pumps the event loop, gathering events from the input devices."] + #[doc = ""] + #[doc = " This function updates the event queue and internal input device state."] + #[doc = ""] + #[doc = " This should only be run in the thread that sets the video mode."] + pub fn SDL_PumpEvents(); +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_eventaction { + SDL_ADDEVENT = 0, + SDL_PEEKEVENT = 1, + SDL_GETEVENT = 2, +} +extern "C" { + #[doc = " Checks the event queue for messages and optionally returns them."] + #[doc = ""] + #[doc = " If \\c action is ::SDL_ADDEVENT, up to \\c numevents events will be added to"] + #[doc = " the back of the event queue."] + #[doc = ""] + #[doc = " If \\c action is ::SDL_PEEKEVENT, up to \\c numevents events at the front"] + #[doc = " of the event queue, within the specified minimum and maximum type,"] + #[doc = " will be returned and will not be removed from the queue."] + #[doc = ""] + #[doc = " If \\c action is ::SDL_GETEVENT, up to \\c numevents events at the front"] + #[doc = " of the event queue, within the specified minimum and maximum type,"] + #[doc = " will be returned and will be removed from the queue."] + #[doc = ""] + #[doc = " \\return The number of events actually stored, or -1 if there was an error."] + #[doc = ""] + #[doc = " This function is thread-safe."] + pub fn SDL_PeepEvents( + events: *mut SDL_Event, + numevents: libc::c_int, + action: SDL_eventaction, + minType: Uint32, + maxType: Uint32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Checks to see if certain event types are in the event queue."] + pub fn SDL_HasEvent(type_: Uint32) -> SDL_bool; +} +extern "C" { + pub fn SDL_HasEvents(minType: Uint32, maxType: Uint32) -> SDL_bool; +} +extern "C" { + #[doc = " This function clears events from the event queue"] + #[doc = " This function only affects currently queued events. If you want to make"] + #[doc = " sure that all pending OS events are flushed, you can call SDL_PumpEvents()"] + #[doc = " on the main thread immediately before the flush call."] + pub fn SDL_FlushEvent(type_: Uint32); +} +extern "C" { + pub fn SDL_FlushEvents(minType: Uint32, maxType: Uint32); +} +extern "C" { + #[doc = " \\brief Polls for currently pending events."] + #[doc = ""] + #[doc = " \\return 1 if there are any pending events, or 0 if there are none available."] + #[doc = ""] + #[doc = " \\param event If not NULL, the next event is removed from the queue and"] + #[doc = " stored in that area."] + pub fn SDL_PollEvent(event: *mut SDL_Event) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Waits indefinitely for the next available event."] + #[doc = ""] + #[doc = " \\return 1, or 0 if there was an error while waiting for events."] + #[doc = ""] + #[doc = " \\param event If not NULL, the next event is removed from the queue and"] + #[doc = " stored in that area."] + pub fn SDL_WaitEvent(event: *mut SDL_Event) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Waits until the specified timeout (in milliseconds) for the next"] + #[doc = " available event."] + #[doc = ""] + #[doc = " \\return 1, or 0 if there was an error while waiting for events."] + #[doc = ""] + #[doc = " \\param event If not NULL, the next event is removed from the queue and"] + #[doc = " stored in that area."] + #[doc = " \\param timeout The timeout (in milliseconds) to wait for next event."] + pub fn SDL_WaitEventTimeout(event: *mut SDL_Event, timeout: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Add an event to the event queue."] + #[doc = ""] + #[doc = " \\return 1 on success, 0 if the event was filtered, or -1 if the event queue"] + #[doc = " was full or there was some other error."] + pub fn SDL_PushEvent(event: *mut SDL_Event) -> libc::c_int; +} +pub type SDL_EventFilter = ::core::option::Option< + unsafe extern "C" fn(userdata: *mut libc::c_void, event: *mut SDL_Event) -> libc::c_int, +>; +extern "C" { + #[doc = " Sets up a filter to process all events before they change internal state and"] + #[doc = " are posted to the internal event queue."] + #[doc = ""] + #[doc = " The filter is prototyped as:"] + #[doc = " \\code"] + #[doc = " int SDL_EventFilter(void *userdata, SDL_Event * event);"] + #[doc = " \\endcode"] + #[doc = ""] + #[doc = " If the filter returns 1, then the event will be added to the internal queue."] + #[doc = " If it returns 0, then the event will be dropped from the queue, but the"] + #[doc = " internal state will still be updated. This allows selective filtering of"] + #[doc = " dynamically arriving events."] + #[doc = ""] + #[doc = " \\warning Be very careful of what you do in the event filter function, as"] + #[doc = " it may run in a different thread!"] + #[doc = ""] + #[doc = " There is one caveat when dealing with the ::SDL_QuitEvent event type. The"] + #[doc = " event filter is only called when the window manager desires to close the"] + #[doc = " application window. If the event filter returns 1, then the window will"] + #[doc = " be closed, otherwise the window will remain open if possible."] + #[doc = ""] + #[doc = " If the quit event is generated by an interrupt signal, it will bypass the"] + #[doc = " internal queue and be delivered to the application at the next event poll."] + pub fn SDL_SetEventFilter(filter: SDL_EventFilter, userdata: *mut libc::c_void); +} +extern "C" { + #[doc = " Return the current event filter - can be used to \"chain\" filters."] + #[doc = " If there is no event filter set, this function returns SDL_FALSE."] + pub fn SDL_GetEventFilter( + filter: *mut SDL_EventFilter, + userdata: *mut *mut libc::c_void, + ) -> SDL_bool; +} +extern "C" { + #[doc = " Add a function which is called when an event is added to the queue."] + pub fn SDL_AddEventWatch(filter: SDL_EventFilter, userdata: *mut libc::c_void); +} +extern "C" { + #[doc = " Remove an event watch function added with SDL_AddEventWatch()"] + pub fn SDL_DelEventWatch(filter: SDL_EventFilter, userdata: *mut libc::c_void); +} +extern "C" { + #[doc = " Run the filter function on the current event queue, removing any"] + #[doc = " events for which the filter returns 0."] + pub fn SDL_FilterEvents(filter: SDL_EventFilter, userdata: *mut libc::c_void); +} +extern "C" { + #[doc = " This function allows you to set the state of processing certain events."] + #[doc = " - If \\c state is set to ::SDL_IGNORE, that event will be automatically"] + #[doc = " dropped from the event queue and will not be filtered."] + #[doc = " - If \\c state is set to ::SDL_ENABLE, that event will be processed"] + #[doc = " normally."] + #[doc = " - If \\c state is set to ::SDL_QUERY, SDL_EventState() will return the"] + #[doc = " current processing state of the specified event."] + pub fn SDL_EventState(type_: Uint32, state: libc::c_int) -> Uint8; +} +extern "C" { + #[doc = " This function allocates a set of user-defined events, and returns"] + #[doc = " the beginning event number for that set of events."] + #[doc = ""] + #[doc = " If there aren't enough user-defined events left, this function"] + #[doc = " returns (Uint32)-1"] + pub fn SDL_RegisterEvents(numevents: libc::c_int) -> Uint32; +} +extern "C" { + #[doc = " \\brief Get the path where the application resides."] + #[doc = ""] + #[doc = " Get the \"base path\". This is the directory where the application was run"] + #[doc = " from, which is probably the installation directory, and may or may not"] + #[doc = " be the process's current working directory."] + #[doc = ""] + #[doc = " This returns an absolute path in UTF-8 encoding, and is guaranteed to"] + #[doc = " end with a path separator ('\\\\' on Windows, '/' most other places)."] + #[doc = ""] + #[doc = " The pointer returned by this function is owned by you. Please call"] + #[doc = " SDL_free() on the pointer when you are done with it, or it will be a"] + #[doc = " memory leak. This is not necessarily a fast call, though, so you should"] + #[doc = " call this once near startup and save the string if you need it."] + #[doc = ""] + #[doc = " Some platforms can't determine the application's path, and on other"] + #[doc = " platforms, this might be meaningless. In such cases, this function will"] + #[doc = " return NULL."] + #[doc = ""] + #[doc = " \\return String of base dir in UTF-8 encoding, or NULL on error."] + #[doc = ""] + #[doc = " \\sa SDL_GetPrefPath"] + pub fn SDL_GetBasePath() -> *mut libc::c_char; +} +extern "C" { + #[doc = " \\brief Get the user-and-app-specific path where files can be written."] + #[doc = ""] + #[doc = " Get the \"pref dir\". This is meant to be where users can write personal"] + #[doc = " files (preferences and save games, etc) that are specific to your"] + #[doc = " application. This directory is unique per user, per application."] + #[doc = ""] + #[doc = " This function will decide the appropriate location in the native filesystem,"] + #[doc = " create the directory if necessary, and return a string of the absolute"] + #[doc = " path to the directory in UTF-8 encoding."] + #[doc = ""] + #[doc = " On Windows, the string might look like:"] + #[doc = " \"C:\\\\Users\\\\bob\\\\AppData\\\\Roaming\\\\My Company\\\\My Program Name\\\\\""] + #[doc = ""] + #[doc = " On Linux, the string might look like:"] + #[doc = " \"/home/bob/.local/share/My Program Name/\""] + #[doc = ""] + #[doc = " On Mac OS X, the string might look like:"] + #[doc = " \"/Users/bob/Library/Application Support/My Program Name/\""] + #[doc = ""] + #[doc = " (etc.)"] + #[doc = ""] + #[doc = " You specify the name of your organization (if it's not a real organization,"] + #[doc = " your name or an Internet domain you own might do) and the name of your"] + #[doc = " application. These should be untranslated proper names."] + #[doc = ""] + #[doc = " Both the org and app strings may become part of a directory name, so"] + #[doc = " please follow these rules:"] + #[doc = ""] + #[doc = " - Try to use the same org string (including case-sensitivity) for"] + #[doc = " all your applications that use this function."] + #[doc = " - Always use a unique app string for each one, and make sure it never"] + #[doc = " changes for an app once you've decided on it."] + #[doc = " - Unicode characters are legal, as long as it's UTF-8 encoded, but..."] + #[doc = " - ...only use letters, numbers, and spaces. Avoid punctuation like"] + #[doc = " \"Game Name 2: Bad Guy's Revenge!\" ... \"Game Name 2\" is sufficient."] + #[doc = ""] + #[doc = " This returns an absolute path in UTF-8 encoding, and is guaranteed to"] + #[doc = " end with a path separator ('\\\\' on Windows, '/' most other places)."] + #[doc = ""] + #[doc = " The pointer returned by this function is owned by you. Please call"] + #[doc = " SDL_free() on the pointer when you are done with it, or it will be a"] + #[doc = " memory leak. This is not necessarily a fast call, though, so you should"] + #[doc = " call this once near startup and save the string if you need it."] + #[doc = ""] + #[doc = " You should assume the path returned by this function is the only safe"] + #[doc = " place to write files (and that SDL_GetBasePath(), while it might be"] + #[doc = " writable, or even the parent of the returned path, aren't where you"] + #[doc = " should be writing things)."] + #[doc = ""] + #[doc = " Some platforms can't determine the pref path, and on other"] + #[doc = " platforms, this might be meaningless. In such cases, this function will"] + #[doc = " return NULL."] + #[doc = ""] + #[doc = " \\param org The name of your organization."] + #[doc = " \\param app The name of your application."] + #[doc = " \\return UTF-8 string of user dir in platform-dependent notation. NULL"] + #[doc = " if there's a problem (creating directory failed, etc)."] + #[doc = ""] + #[doc = " \\sa SDL_GetBasePath"] + pub fn SDL_GetPrefPath(org: *const libc::c_char, app: *const libc::c_char) + -> *mut libc::c_char; +} +#[doc = " \\typedef SDL_Haptic"] +#[doc = ""] +#[doc = " \\brief The haptic structure used to identify an SDL haptic."] +#[doc = ""] +#[doc = " \\sa SDL_HapticOpen"] +#[doc = " \\sa SDL_HapticOpenFromJoystick"] +#[doc = " \\sa SDL_HapticClose"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _SDL_Haptic { + _unused: [u8; 0], +} +pub type SDL_Haptic = _SDL_Haptic; +#[doc = " \\brief Structure that represents a haptic direction."] +#[doc = ""] +#[doc = " This is the direction where the force comes from,"] +#[doc = " instead of the direction in which the force is exerted."] +#[doc = ""] +#[doc = " Directions can be specified by:"] +#[doc = " - ::SDL_HAPTIC_POLAR : Specified by polar coordinates."] +#[doc = " - ::SDL_HAPTIC_CARTESIAN : Specified by cartesian coordinates."] +#[doc = " - ::SDL_HAPTIC_SPHERICAL : Specified by spherical coordinates."] +#[doc = ""] +#[doc = " Cardinal directions of the haptic device are relative to the positioning"] +#[doc = " of the device. North is considered to be away from the user."] +#[doc = ""] +#[doc = " The following diagram represents the cardinal directions:"] +#[doc = " \\verbatim"] +#[doc = ".--."] +#[doc = "|__| .-------."] +#[doc = "|=.| |.-----.|"] +#[doc = "|--| || ||"] +#[doc = "| | |'-----'|"] +#[doc = "|__|~')_____('"] +#[doc = "[ COMPUTER ]"] +#[doc = ""] +#[doc = ""] +#[doc = "North (0,-1)"] +#[doc = "^"] +#[doc = "|"] +#[doc = "|"] +#[doc = "(-1,0) West <----[ HAPTIC ]----> East (1,0)"] +#[doc = "|"] +#[doc = "|"] +#[doc = "v"] +#[doc = "South (0,1)"] +#[doc = ""] +#[doc = ""] +#[doc = "[ USER ]"] +#[doc = "\\|||/"] +#[doc = "(o o)"] +#[doc = "---ooO-(_)-Ooo---"] +#[doc = "\\endverbatim"] +#[doc = ""] +#[doc = " If type is ::SDL_HAPTIC_POLAR, direction is encoded by hundredths of a"] +#[doc = " degree starting north and turning clockwise. ::SDL_HAPTIC_POLAR only uses"] +#[doc = " the first \\c dir parameter. The cardinal directions would be:"] +#[doc = " - North: 0 (0 degrees)"] +#[doc = " - East: 9000 (90 degrees)"] +#[doc = " - South: 18000 (180 degrees)"] +#[doc = " - West: 27000 (270 degrees)"] +#[doc = ""] +#[doc = " If type is ::SDL_HAPTIC_CARTESIAN, direction is encoded by three positions"] +#[doc = " (X axis, Y axis and Z axis (with 3 axes)). ::SDL_HAPTIC_CARTESIAN uses"] +#[doc = " the first three \\c dir parameters. The cardinal directions would be:"] +#[doc = " - North: 0,-1, 0"] +#[doc = " - East: 1, 0, 0"] +#[doc = " - South: 0, 1, 0"] +#[doc = " - West: -1, 0, 0"] +#[doc = ""] +#[doc = " The Z axis represents the height of the effect if supported, otherwise"] +#[doc = " it's unused. In cartesian encoding (1, 2) would be the same as (2, 4), you"] +#[doc = " can use any multiple you want, only the direction matters."] +#[doc = ""] +#[doc = " If type is ::SDL_HAPTIC_SPHERICAL, direction is encoded by two rotations."] +#[doc = " The first two \\c dir parameters are used. The \\c dir parameters are as"] +#[doc = " follows (all values are in hundredths of degrees):"] +#[doc = " - Degrees from (1, 0) rotated towards (0, 1)."] +#[doc = " - Degrees towards (0, 0, 1) (device needs at least 3 axes)."] +#[doc = ""] +#[doc = ""] +#[doc = " Example of force coming from the south with all encodings (force coming"] +#[doc = " from the south means the user will have to pull the stick to counteract):"] +#[doc = " \\code"] +#[doc = " SDL_HapticDirection direction;"] +#[doc = ""] +#[doc = " // Cartesian directions"] +#[doc = " direction.type = SDL_HAPTIC_CARTESIAN; // Using cartesian direction encoding."] +#[doc = " direction.dir[0] = 0; // X position"] +#[doc = " direction.dir[1] = 1; // Y position"] +#[doc = " // Assuming the device has 2 axes, we don't need to specify third parameter."] +#[doc = ""] +#[doc = " // Polar directions"] +#[doc = " direction.type = SDL_HAPTIC_POLAR; // We'll be using polar direction encoding."] +#[doc = " direction.dir[0] = 18000; // Polar only uses first parameter"] +#[doc = ""] +#[doc = " // Spherical coordinates"] +#[doc = " direction.type = SDL_HAPTIC_SPHERICAL; // Spherical encoding"] +#[doc = " direction.dir[0] = 9000; // Since we only have two axes we don't need more parameters."] +#[doc = " \\endcode"] +#[doc = ""] +#[doc = " \\sa SDL_HAPTIC_POLAR"] +#[doc = " \\sa SDL_HAPTIC_CARTESIAN"] +#[doc = " \\sa SDL_HAPTIC_SPHERICAL"] +#[doc = " \\sa SDL_HAPTIC_STEERING_AXIS"] +#[doc = " \\sa SDL_HapticEffect"] +#[doc = " \\sa SDL_HapticNumAxes"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_HapticDirection { + #[doc = "< The type of encoding."] + pub type_: Uint8, + #[doc = "< The encoded direction."] + pub dir: [Sint32; 3usize], +} +#[test] +fn bindgen_test_layout_SDL_HapticDirection() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_HapticDirection)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_HapticDirection)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticDirection), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).dir as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticDirection), + "::", + stringify!(dir) + ) + ); +} +#[doc = " \\brief A structure containing a template for a Constant effect."] +#[doc = ""] +#[doc = " This struct is exclusively for the ::SDL_HAPTIC_CONSTANT effect."] +#[doc = ""] +#[doc = " A constant effect applies a constant force in the specified direction"] +#[doc = " to the joystick."] +#[doc = ""] +#[doc = " \\sa SDL_HAPTIC_CONSTANT"] +#[doc = " \\sa SDL_HapticEffect"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_HapticConstant { + #[doc = "< ::SDL_HAPTIC_CONSTANT"] + pub type_: Uint16, + #[doc = "< Direction of the effect."] + pub direction: SDL_HapticDirection, + #[doc = "< Duration of the effect."] + pub length: Uint32, + #[doc = "< Delay before starting the effect."] + pub delay: Uint16, + #[doc = "< Button that triggers the effect."] + pub button: Uint16, + #[doc = "< How soon it can be triggered again after button."] + pub interval: Uint16, + #[doc = "< Strength of the constant effect."] + pub level: Sint16, + #[doc = "< Duration of the attack."] + pub attack_length: Uint16, + #[doc = "< Level at the start of the attack."] + pub attack_level: Uint16, + #[doc = "< Duration of the fade."] + pub fade_length: Uint16, + #[doc = "< Level at the end of the fade."] + pub fade_level: Uint16, +} +#[test] +fn bindgen_test_layout_SDL_HapticConstant() { + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(SDL_HapticConstant)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_HapticConstant)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticConstant), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).direction as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticConstant), + "::", + stringify!(direction) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).length as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticConstant), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).delay as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticConstant), + "::", + stringify!(delay) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).button as *const _ as usize }, + 26usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticConstant), + "::", + stringify!(button) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).interval as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticConstant), + "::", + stringify!(interval) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).level as *const _ as usize }, + 30usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticConstant), + "::", + stringify!(level) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).attack_length as *const _ as usize + }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticConstant), + "::", + stringify!(attack_length) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).attack_level as *const _ as usize + }, + 34usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticConstant), + "::", + stringify!(attack_level) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fade_length as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticConstant), + "::", + stringify!(fade_length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fade_level as *const _ as usize }, + 38usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticConstant), + "::", + stringify!(fade_level) + ) + ); +} +#[doc = " \\brief A structure containing a template for a Periodic effect."] +#[doc = ""] +#[doc = " The struct handles the following effects:"] +#[doc = " - ::SDL_HAPTIC_SINE"] +#[doc = " - ::SDL_HAPTIC_LEFTRIGHT"] +#[doc = " - ::SDL_HAPTIC_TRIANGLE"] +#[doc = " - ::SDL_HAPTIC_SAWTOOTHUP"] +#[doc = " - ::SDL_HAPTIC_SAWTOOTHDOWN"] +#[doc = ""] +#[doc = " A periodic effect consists in a wave-shaped effect that repeats itself"] +#[doc = " over time. The type determines the shape of the wave and the parameters"] +#[doc = " determine the dimensions of the wave."] +#[doc = ""] +#[doc = " Phase is given by hundredth of a degree meaning that giving the phase a value"] +#[doc = " of 9000 will displace it 25% of its period. Here are sample values:"] +#[doc = " - 0: No phase displacement."] +#[doc = " - 9000: Displaced 25% of its period."] +#[doc = " - 18000: Displaced 50% of its period."] +#[doc = " - 27000: Displaced 75% of its period."] +#[doc = " - 36000: Displaced 100% of its period, same as 0, but 0 is preferred."] +#[doc = ""] +#[doc = " Examples:"] +#[doc = " \\verbatim"] +#[doc = "SDL_HAPTIC_SINE"] +#[doc = "__ __ __ __"] +#[doc = ""] +#[doc = "SDL_HAPTIC_SQUARE"] +#[doc = "__ __ __ __ __"] +#[doc = "| | | | | | | | | |"] +#[doc = "| |__| |__| |__| |__| |"] +#[doc = ""] +#[doc = "SDL_HAPTIC_TRIANGLE"] +#[doc = ""] +#[doc = "SDL_HAPTIC_SAWTOOTHUP"] +#[doc = ""] +#[doc = "SDL_HAPTIC_SAWTOOTHDOWN"] +#[doc = "\\ |\\ |\\ |\\ |\\ |\\ |\\ |"] +#[doc = "\\ | \\ | \\ | \\ | \\ | \\ | \\ |"] +#[doc = "\\| \\| \\| \\| \\| \\| \\|"] +#[doc = "\\endverbatim"] +#[doc = ""] +#[doc = " \\sa SDL_HAPTIC_SINE"] +#[doc = " \\sa SDL_HAPTIC_LEFTRIGHT"] +#[doc = " \\sa SDL_HAPTIC_TRIANGLE"] +#[doc = " \\sa SDL_HAPTIC_SAWTOOTHUP"] +#[doc = " \\sa SDL_HAPTIC_SAWTOOTHDOWN"] +#[doc = " \\sa SDL_HapticEffect"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_HapticPeriodic { + #[doc = "< ::SDL_HAPTIC_SINE, ::SDL_HAPTIC_LEFTRIGHT,"] + #[doc = "::SDL_HAPTIC_TRIANGLE, ::SDL_HAPTIC_SAWTOOTHUP or"] + #[doc = "::SDL_HAPTIC_SAWTOOTHDOWN"] + pub type_: Uint16, + #[doc = "< Direction of the effect."] + pub direction: SDL_HapticDirection, + #[doc = "< Duration of the effect."] + pub length: Uint32, + #[doc = "< Delay before starting the effect."] + pub delay: Uint16, + #[doc = "< Button that triggers the effect."] + pub button: Uint16, + #[doc = "< How soon it can be triggered again after button."] + pub interval: Uint16, + #[doc = "< Period of the wave."] + pub period: Uint16, + #[doc = "< Peak value; if negative, equivalent to 180 degrees extra phase shift."] + pub magnitude: Sint16, + #[doc = "< Mean value of the wave."] + pub offset: Sint16, + #[doc = "< Positive phase shift given by hundredth of a degree."] + pub phase: Uint16, + #[doc = "< Duration of the attack."] + pub attack_length: Uint16, + #[doc = "< Level at the start of the attack."] + pub attack_level: Uint16, + #[doc = "< Duration of the fade."] + pub fade_length: Uint16, + #[doc = "< Level at the end of the fade."] + pub fade_level: Uint16, +} +#[test] +fn bindgen_test_layout_SDL_HapticPeriodic() { + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(SDL_HapticPeriodic)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_HapticPeriodic)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).direction as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(direction) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).length as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).delay as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(delay) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).button as *const _ as usize }, + 26usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(button) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).interval as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(interval) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).period as *const _ as usize }, + 30usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(period) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).magnitude as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(magnitude) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).offset as *const _ as usize }, + 34usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(offset) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).phase as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(phase) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).attack_length as *const _ as usize + }, + 38usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(attack_length) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).attack_level as *const _ as usize + }, + 40usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(attack_level) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fade_length as *const _ as usize }, + 42usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(fade_length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fade_level as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(fade_level) + ) + ); +} +#[doc = " \\brief A structure containing a template for a Condition effect."] +#[doc = ""] +#[doc = " The struct handles the following effects:"] +#[doc = " - ::SDL_HAPTIC_SPRING: Effect based on axes position."] +#[doc = " - ::SDL_HAPTIC_DAMPER: Effect based on axes velocity."] +#[doc = " - ::SDL_HAPTIC_INERTIA: Effect based on axes acceleration."] +#[doc = " - ::SDL_HAPTIC_FRICTION: Effect based on axes movement."] +#[doc = ""] +#[doc = " Direction is handled by condition internals instead of a direction member."] +#[doc = " The condition effect specific members have three parameters. The first"] +#[doc = " refers to the X axis, the second refers to the Y axis and the third"] +#[doc = " refers to the Z axis. The right terms refer to the positive side of the"] +#[doc = " axis and the left terms refer to the negative side of the axis. Please"] +#[doc = " refer to the ::SDL_HapticDirection diagram for which side is positive and"] +#[doc = " which is negative."] +#[doc = ""] +#[doc = " \\sa SDL_HapticDirection"] +#[doc = " \\sa SDL_HAPTIC_SPRING"] +#[doc = " \\sa SDL_HAPTIC_DAMPER"] +#[doc = " \\sa SDL_HAPTIC_INERTIA"] +#[doc = " \\sa SDL_HAPTIC_FRICTION"] +#[doc = " \\sa SDL_HapticEffect"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_HapticCondition { + #[doc = "< ::SDL_HAPTIC_SPRING, ::SDL_HAPTIC_DAMPER,"] + #[doc = "::SDL_HAPTIC_INERTIA or ::SDL_HAPTIC_FRICTION"] + pub type_: Uint16, + #[doc = "< Direction of the effect - Not used ATM."] + pub direction: SDL_HapticDirection, + #[doc = "< Duration of the effect."] + pub length: Uint32, + #[doc = "< Delay before starting the effect."] + pub delay: Uint16, + #[doc = "< Button that triggers the effect."] + pub button: Uint16, + #[doc = "< How soon it can be triggered again after button."] + pub interval: Uint16, + #[doc = "< Level when joystick is to the positive side; max 0xFFFF."] + pub right_sat: [Uint16; 3usize], + #[doc = "< Level when joystick is to the negative side; max 0xFFFF."] + pub left_sat: [Uint16; 3usize], + #[doc = "< How fast to increase the force towards the positive side."] + pub right_coeff: [Sint16; 3usize], + #[doc = "< How fast to increase the force towards the negative side."] + pub left_coeff: [Sint16; 3usize], + #[doc = "< Size of the dead zone; max 0xFFFF: whole axis-range when 0-centered."] + pub deadband: [Uint16; 3usize], + #[doc = "< Position of the dead zone."] + pub center: [Sint16; 3usize], +} +#[test] +fn bindgen_test_layout_SDL_HapticCondition() { + assert_eq!( + ::core::mem::size_of::(), + 68usize, + concat!("Size of: ", stringify!(SDL_HapticCondition)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_HapticCondition)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).direction as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(direction) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).length as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).delay as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(delay) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).button as *const _ as usize }, + 26usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(button) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).interval as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(interval) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).right_sat as *const _ as usize }, + 30usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(right_sat) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).left_sat as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(left_sat) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).right_coeff as *const _ as usize + }, + 42usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(right_coeff) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).left_coeff as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(left_coeff) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).deadband as *const _ as usize }, + 54usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(deadband) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).center as *const _ as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(center) + ) + ); +} +#[doc = " \\brief A structure containing a template for a Ramp effect."] +#[doc = ""] +#[doc = " This struct is exclusively for the ::SDL_HAPTIC_RAMP effect."] +#[doc = ""] +#[doc = " The ramp effect starts at start strength and ends at end strength."] +#[doc = " It augments in linear fashion. If you use attack and fade with a ramp"] +#[doc = " the effects get added to the ramp effect making the effect become"] +#[doc = " quadratic instead of linear."] +#[doc = ""] +#[doc = " \\sa SDL_HAPTIC_RAMP"] +#[doc = " \\sa SDL_HapticEffect"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_HapticRamp { + #[doc = "< ::SDL_HAPTIC_RAMP"] + pub type_: Uint16, + #[doc = "< Direction of the effect."] + pub direction: SDL_HapticDirection, + #[doc = "< Duration of the effect."] + pub length: Uint32, + #[doc = "< Delay before starting the effect."] + pub delay: Uint16, + #[doc = "< Button that triggers the effect."] + pub button: Uint16, + #[doc = "< How soon it can be triggered again after button."] + pub interval: Uint16, + #[doc = "< Beginning strength level."] + pub start: Sint16, + #[doc = "< Ending strength level."] + pub end: Sint16, + #[doc = "< Duration of the attack."] + pub attack_length: Uint16, + #[doc = "< Level at the start of the attack."] + pub attack_level: Uint16, + #[doc = "< Duration of the fade."] + pub fade_length: Uint16, + #[doc = "< Level at the end of the fade."] + pub fade_level: Uint16, +} +#[test] +fn bindgen_test_layout_SDL_HapticRamp() { + assert_eq!( + ::core::mem::size_of::(), + 44usize, + concat!("Size of: ", stringify!(SDL_HapticRamp)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_HapticRamp)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).direction as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(direction) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).length as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).delay as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(delay) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).button as *const _ as usize }, + 26usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(button) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).interval as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(interval) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).start as *const _ as usize }, + 30usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(start) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).end as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(end) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).attack_length as *const _ as usize }, + 34usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(attack_length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).attack_level as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(attack_level) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fade_length as *const _ as usize }, + 38usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(fade_length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fade_level as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(fade_level) + ) + ); +} +#[doc = " \\brief A structure containing a template for a Left/Right effect."] +#[doc = ""] +#[doc = " This struct is exclusively for the ::SDL_HAPTIC_LEFTRIGHT effect."] +#[doc = ""] +#[doc = " The Left/Right effect is used to explicitly control the large and small"] +#[doc = " motors, commonly found in modern game controllers. The small (right) motor"] +#[doc = " is high frequency, and the large (left) motor is low frequency."] +#[doc = ""] +#[doc = " \\sa SDL_HAPTIC_LEFTRIGHT"] +#[doc = " \\sa SDL_HapticEffect"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_HapticLeftRight { + #[doc = "< ::SDL_HAPTIC_LEFTRIGHT"] + pub type_: Uint16, + #[doc = "< Duration of the effect in milliseconds."] + pub length: Uint32, + #[doc = "< Control of the large controller motor."] + pub large_magnitude: Uint16, + #[doc = "< Control of the small controller motor."] + pub small_magnitude: Uint16, +} +#[test] +fn bindgen_test_layout_SDL_HapticLeftRight() { + assert_eq!( + ::core::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(SDL_HapticLeftRight)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_HapticLeftRight)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticLeftRight), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).length as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticLeftRight), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).large_magnitude as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticLeftRight), + "::", + stringify!(large_magnitude) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).small_magnitude as *const _ as usize + }, + 10usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticLeftRight), + "::", + stringify!(small_magnitude) + ) + ); +} +#[doc = " \\brief A structure containing a template for the ::SDL_HAPTIC_CUSTOM effect."] +#[doc = ""] +#[doc = " This struct is exclusively for the ::SDL_HAPTIC_CUSTOM effect."] +#[doc = ""] +#[doc = " A custom force feedback effect is much like a periodic effect, where the"] +#[doc = " application can define its exact shape. You will have to allocate the"] +#[doc = " data yourself. Data should consist of channels * samples Uint16 samples."] +#[doc = ""] +#[doc = " If channels is one, the effect is rotated using the defined direction."] +#[doc = " Otherwise it uses the samples in data for the different axes."] +#[doc = ""] +#[doc = " \\sa SDL_HAPTIC_CUSTOM"] +#[doc = " \\sa SDL_HapticEffect"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_HapticCustom { + #[doc = "< ::SDL_HAPTIC_CUSTOM"] + pub type_: Uint16, + #[doc = "< Direction of the effect."] + pub direction: SDL_HapticDirection, + #[doc = "< Duration of the effect."] + pub length: Uint32, + #[doc = "< Delay before starting the effect."] + pub delay: Uint16, + #[doc = "< Button that triggers the effect."] + pub button: Uint16, + #[doc = "< How soon it can be triggered again after button."] + pub interval: Uint16, + #[doc = "< Axes to use, minimum of one."] + pub channels: Uint8, + #[doc = "< Sample periods."] + pub period: Uint16, + #[doc = "< Amount of samples."] + pub samples: Uint16, + #[doc = "< Should contain channels*samples items."] + pub data: *mut Uint16, + #[doc = "< Duration of the attack."] + pub attack_length: Uint16, + #[doc = "< Level at the start of the attack."] + pub attack_level: Uint16, + #[doc = "< Duration of the fade."] + pub fade_length: Uint16, + #[doc = "< Level at the end of the fade."] + pub fade_level: Uint16, +} +#[test] +fn bindgen_test_layout_SDL_HapticCustom() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(SDL_HapticCustom)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_HapticCustom)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).direction as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(direction) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).length as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).delay as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(delay) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).button as *const _ as usize }, + 26usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(button) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).interval as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(interval) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).channels as *const _ as usize }, + 30usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(channels) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).period as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(period) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).samples as *const _ as usize }, + 34usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(samples) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).data as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).attack_length as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(attack_length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).attack_level as *const _ as usize }, + 50usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(attack_level) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fade_length as *const _ as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(fade_length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fade_level as *const _ as usize }, + 54usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(fade_level) + ) + ); +} +#[doc = " \\brief The generic template for any haptic effect."] +#[doc = ""] +#[doc = " All values max at 32767 (0x7FFF). Signed values also can be negative."] +#[doc = " Time values unless specified otherwise are in milliseconds."] +#[doc = ""] +#[doc = " You can also pass ::SDL_HAPTIC_INFINITY to length instead of a 0-32767"] +#[doc = " value. Neither delay, interval, attack_length nor fade_length support"] +#[doc = " ::SDL_HAPTIC_INFINITY. Fade will also not be used since effect never ends."] +#[doc = ""] +#[doc = " Additionally, the ::SDL_HAPTIC_RAMP effect does not support a duration of"] +#[doc = " ::SDL_HAPTIC_INFINITY."] +#[doc = ""] +#[doc = " Button triggers may not be supported on all devices, it is advised to not"] +#[doc = " use them if possible. Buttons start at index 1 instead of index 0 like"] +#[doc = " the joystick."] +#[doc = ""] +#[doc = " If both attack_length and fade_level are 0, the envelope is not used,"] +#[doc = " otherwise both values are used."] +#[doc = ""] +#[doc = " Common parts:"] +#[doc = " \\code"] +#[doc = " // Replay - All effects have this"] +#[doc = " Uint32 length; // Duration of effect (ms)."] +#[doc = " Uint16 delay; // Delay before starting effect."] +#[doc = ""] +#[doc = " // Trigger - All effects have this"] +#[doc = " Uint16 button; // Button that triggers effect."] +#[doc = " Uint16 interval; // How soon before effect can be triggered again."] +#[doc = ""] +#[doc = " // Envelope - All effects except condition effects have this"] +#[doc = " Uint16 attack_length; // Duration of the attack (ms)."] +#[doc = " Uint16 attack_level; // Level at the start of the attack."] +#[doc = " Uint16 fade_length; // Duration of the fade out (ms)."] +#[doc = " Uint16 fade_level; // Level at the end of the fade."] +#[doc = " \\endcode"] +#[doc = ""] +#[doc = ""] +#[doc = " Here we have an example of a constant effect evolution in time:"] +#[doc = " \\verbatim"] +#[doc = "Strength"] +#[doc = "^"] +#[doc = "|"] +#[doc = "| effect level --> _________________"] +#[doc = "| / \\"] +#[doc = "| / \\"] +#[doc = "| / \\"] +#[doc = "| / \\"] +#[doc = "| attack_level --> | \\"] +#[doc = "| | | <--- fade_level"] +#[doc = "|"] +#[doc = "+--------------------------------------------------> Time"] +#[doc = "[--] [---]"] +#[doc = "attack_length fade_length"] +#[doc = ""] +#[doc = "[------------------][-----------------------]"] +#[doc = "delay length"] +#[doc = "\\endverbatim"] +#[doc = ""] +#[doc = " Note either the attack_level or the fade_level may be above the actual"] +#[doc = " effect level."] +#[doc = ""] +#[doc = " \\sa SDL_HapticConstant"] +#[doc = " \\sa SDL_HapticPeriodic"] +#[doc = " \\sa SDL_HapticCondition"] +#[doc = " \\sa SDL_HapticRamp"] +#[doc = " \\sa SDL_HapticLeftRight"] +#[doc = " \\sa SDL_HapticCustom"] +#[repr(C)] +#[derive(Copy, Clone)] +pub union SDL_HapticEffect { + #[doc = "< Effect type."] + pub type_: Uint16, + #[doc = "< Constant effect."] + pub constant: SDL_HapticConstant, + #[doc = "< Periodic effect."] + pub periodic: SDL_HapticPeriodic, + #[doc = "< Condition effect."] + pub condition: SDL_HapticCondition, + #[doc = "< Ramp effect."] + pub ramp: SDL_HapticRamp, + #[doc = "< Left/Right effect."] + pub leftright: SDL_HapticLeftRight, + #[doc = "< Custom effect."] + pub custom: SDL_HapticCustom, + _bindgen_union_align: [u64; 9usize], +} +#[test] +fn bindgen_test_layout_SDL_HapticEffect() { + assert_eq!( + ::core::mem::size_of::(), + 72usize, + concat!("Size of: ", stringify!(SDL_HapticEffect)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_HapticEffect)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticEffect), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).constant as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticEffect), + "::", + stringify!(constant) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).periodic as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticEffect), + "::", + stringify!(periodic) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).condition as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticEffect), + "::", + stringify!(condition) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ramp as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticEffect), + "::", + stringify!(ramp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).leftright as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticEffect), + "::", + stringify!(leftright) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).custom as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticEffect), + "::", + stringify!(custom) + ) + ); +} +extern "C" { + #[doc = " \\brief Count the number of haptic devices attached to the system."] + #[doc = ""] + #[doc = " \\return Number of haptic devices detected on the system."] + pub fn SDL_NumHaptics() -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the implementation dependent name of a haptic device."] + #[doc = ""] + #[doc = " This can be called before any joysticks are opened."] + #[doc = " If no name can be found, this function returns NULL."] + #[doc = ""] + #[doc = " \\param device_index Index of the device to get its name."] + #[doc = " \\return Name of the device or NULL on error."] + #[doc = ""] + #[doc = " \\sa SDL_NumHaptics"] + pub fn SDL_HapticName(device_index: libc::c_int) -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Opens a haptic device for use."] + #[doc = ""] + #[doc = " The index passed as an argument refers to the N'th haptic device on this"] + #[doc = " system."] + #[doc = ""] + #[doc = " When opening a haptic device, its gain will be set to maximum and"] + #[doc = " autocenter will be disabled. To modify these values use"] + #[doc = " SDL_HapticSetGain() and SDL_HapticSetAutocenter()."] + #[doc = ""] + #[doc = " \\param device_index Index of the device to open."] + #[doc = " \\return Device identifier or NULL on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticIndex"] + #[doc = " \\sa SDL_HapticOpenFromMouse"] + #[doc = " \\sa SDL_HapticOpenFromJoystick"] + #[doc = " \\sa SDL_HapticClose"] + #[doc = " \\sa SDL_HapticSetGain"] + #[doc = " \\sa SDL_HapticSetAutocenter"] + #[doc = " \\sa SDL_HapticPause"] + #[doc = " \\sa SDL_HapticStopAll"] + pub fn SDL_HapticOpen(device_index: libc::c_int) -> *mut SDL_Haptic; +} +extern "C" { + #[doc = " \\brief Checks if the haptic device at index has been opened."] + #[doc = ""] + #[doc = " \\param device_index Index to check to see if it has been opened."] + #[doc = " \\return 1 if it has been opened or 0 if it hasn't."] + #[doc = ""] + #[doc = " \\sa SDL_HapticOpen"] + #[doc = " \\sa SDL_HapticIndex"] + pub fn SDL_HapticOpened(device_index: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Gets the index of a haptic device."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to get the index of."] + #[doc = " \\return The index of the haptic device or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticOpen"] + #[doc = " \\sa SDL_HapticOpened"] + pub fn SDL_HapticIndex(haptic: *mut SDL_Haptic) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Gets whether or not the current mouse has haptic capabilities."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the mouse is haptic, SDL_FALSE if it isn't."] + #[doc = ""] + #[doc = " \\sa SDL_HapticOpenFromMouse"] + pub fn SDL_MouseIsHaptic() -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Tries to open a haptic device from the current mouse."] + #[doc = ""] + #[doc = " \\return The haptic device identifier or NULL on error."] + #[doc = ""] + #[doc = " \\sa SDL_MouseIsHaptic"] + #[doc = " \\sa SDL_HapticOpen"] + pub fn SDL_HapticOpenFromMouse() -> *mut SDL_Haptic; +} +extern "C" { + #[doc = " \\brief Checks to see if a joystick has haptic features."] + #[doc = ""] + #[doc = " \\param joystick Joystick to test for haptic capabilities."] + #[doc = " \\return SDL_TRUE if the joystick is haptic, SDL_FALSE if it isn't"] + #[doc = " or -1 if an error occurred."] + #[doc = ""] + #[doc = " \\sa SDL_HapticOpenFromJoystick"] + pub fn SDL_JoystickIsHaptic(joystick: *mut SDL_Joystick) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Opens a haptic device for use from a joystick device."] + #[doc = ""] + #[doc = " You must still close the haptic device separately. It will not be closed"] + #[doc = " with the joystick."] + #[doc = ""] + #[doc = " When opening from a joystick you should first close the haptic device before"] + #[doc = " closing the joystick device. If not, on some implementations the haptic"] + #[doc = " device will also get unallocated and you'll be unable to use force feedback"] + #[doc = " on that device."] + #[doc = ""] + #[doc = " \\param joystick Joystick to create a haptic device from."] + #[doc = " \\return A valid haptic device identifier on success or NULL on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticOpen"] + #[doc = " \\sa SDL_HapticClose"] + pub fn SDL_HapticOpenFromJoystick(joystick: *mut SDL_Joystick) -> *mut SDL_Haptic; +} +extern "C" { + #[doc = " \\brief Closes a haptic device previously opened with SDL_HapticOpen()."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to close."] + pub fn SDL_HapticClose(haptic: *mut SDL_Haptic); +} +extern "C" { + #[doc = " \\brief Returns the number of effects a haptic device can store."] + #[doc = ""] + #[doc = " On some platforms this isn't fully supported, and therefore is an"] + #[doc = " approximation. Always check to see if your created effect was actually"] + #[doc = " created and do not rely solely on SDL_HapticNumEffects()."] + #[doc = ""] + #[doc = " \\param haptic The haptic device to query effect max."] + #[doc = " \\return The number of effects the haptic device can store or"] + #[doc = " -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticNumEffectsPlaying"] + #[doc = " \\sa SDL_HapticQuery"] + pub fn SDL_HapticNumEffects(haptic: *mut SDL_Haptic) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Returns the number of effects a haptic device can play at the same"] + #[doc = " time."] + #[doc = ""] + #[doc = " This is not supported on all platforms, but will always return a value."] + #[doc = " Added here for the sake of completeness."] + #[doc = ""] + #[doc = " \\param haptic The haptic device to query maximum playing effects."] + #[doc = " \\return The number of effects the haptic device can play at the same time"] + #[doc = " or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticNumEffects"] + #[doc = " \\sa SDL_HapticQuery"] + pub fn SDL_HapticNumEffectsPlaying(haptic: *mut SDL_Haptic) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Gets the haptic device's supported features in bitwise manner."] + #[doc = ""] + #[doc = " Example:"] + #[doc = " \\code"] + #[doc = " if (SDL_HapticQuery(haptic) & SDL_HAPTIC_CONSTANT) {"] + #[doc = " printf(\"We have constant haptic effect!\\n\");"] + #[doc = " }"] + #[doc = " \\endcode"] + #[doc = ""] + #[doc = " \\param haptic The haptic device to query."] + #[doc = " \\return Haptic features in bitwise manner (OR'd)."] + #[doc = ""] + #[doc = " \\sa SDL_HapticNumEffects"] + #[doc = " \\sa SDL_HapticEffectSupported"] + pub fn SDL_HapticQuery(haptic: *mut SDL_Haptic) -> libc::c_uint; +} +extern "C" { + #[doc = " \\brief Gets the number of haptic axes the device has."] + #[doc = ""] + #[doc = " \\sa SDL_HapticDirection"] + pub fn SDL_HapticNumAxes(haptic: *mut SDL_Haptic) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Checks to see if effect is supported by haptic."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to check on."] + #[doc = " \\param effect Effect to check to see if it is supported."] + #[doc = " \\return SDL_TRUE if effect is supported, SDL_FALSE if it isn't or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticQuery"] + #[doc = " \\sa SDL_HapticNewEffect"] + pub fn SDL_HapticEffectSupported( + haptic: *mut SDL_Haptic, + effect: *mut SDL_HapticEffect, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Creates a new haptic effect on the device."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to create the effect on."] + #[doc = " \\param effect Properties of the effect to create."] + #[doc = " \\return The identifier of the effect on success or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticUpdateEffect"] + #[doc = " \\sa SDL_HapticRunEffect"] + #[doc = " \\sa SDL_HapticDestroyEffect"] + pub fn SDL_HapticNewEffect( + haptic: *mut SDL_Haptic, + effect: *mut SDL_HapticEffect, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Updates the properties of an effect."] + #[doc = ""] + #[doc = " Can be used dynamically, although behavior when dynamically changing"] + #[doc = " direction may be strange. Specifically the effect may reupload itself"] + #[doc = " and start playing from the start. You cannot change the type either when"] + #[doc = " running SDL_HapticUpdateEffect()."] + #[doc = ""] + #[doc = " \\param haptic Haptic device that has the effect."] + #[doc = " \\param effect Identifier of the effect to update."] + #[doc = " \\param data New effect properties to use."] + #[doc = " \\return 0 on success or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticNewEffect"] + #[doc = " \\sa SDL_HapticRunEffect"] + #[doc = " \\sa SDL_HapticDestroyEffect"] + pub fn SDL_HapticUpdateEffect( + haptic: *mut SDL_Haptic, + effect: libc::c_int, + data: *mut SDL_HapticEffect, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Runs the haptic effect on its associated haptic device."] + #[doc = ""] + #[doc = " If iterations are ::SDL_HAPTIC_INFINITY, it'll run the effect over and over"] + #[doc = " repeating the envelope (attack and fade) every time. If you only want the"] + #[doc = " effect to last forever, set ::SDL_HAPTIC_INFINITY in the effect's length"] + #[doc = " parameter."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to run the effect on."] + #[doc = " \\param effect Identifier of the haptic effect to run."] + #[doc = " \\param iterations Number of iterations to run the effect. Use"] + #[doc = " ::SDL_HAPTIC_INFINITY for infinity."] + #[doc = " \\return 0 on success or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticStopEffect"] + #[doc = " \\sa SDL_HapticDestroyEffect"] + #[doc = " \\sa SDL_HapticGetEffectStatus"] + pub fn SDL_HapticRunEffect( + haptic: *mut SDL_Haptic, + effect: libc::c_int, + iterations: Uint32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Stops the haptic effect on its associated haptic device."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to stop the effect on."] + #[doc = " \\param effect Identifier of the effect to stop."] + #[doc = " \\return 0 on success or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticRunEffect"] + #[doc = " \\sa SDL_HapticDestroyEffect"] + pub fn SDL_HapticStopEffect(haptic: *mut SDL_Haptic, effect: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Destroys a haptic effect on the device."] + #[doc = ""] + #[doc = " This will stop the effect if it's running. Effects are automatically"] + #[doc = " destroyed when the device is closed."] + #[doc = ""] + #[doc = " \\param haptic Device to destroy the effect on."] + #[doc = " \\param effect Identifier of the effect to destroy."] + #[doc = ""] + #[doc = " \\sa SDL_HapticNewEffect"] + pub fn SDL_HapticDestroyEffect(haptic: *mut SDL_Haptic, effect: libc::c_int); +} +extern "C" { + #[doc = " \\brief Gets the status of the current effect on the haptic device."] + #[doc = ""] + #[doc = " Device must support the ::SDL_HAPTIC_STATUS feature."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to query the effect status on."] + #[doc = " \\param effect Identifier of the effect to query its status."] + #[doc = " \\return 0 if it isn't playing, 1 if it is playing or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticRunEffect"] + #[doc = " \\sa SDL_HapticStopEffect"] + pub fn SDL_HapticGetEffectStatus(haptic: *mut SDL_Haptic, effect: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Sets the global gain of the device."] + #[doc = ""] + #[doc = " Device must support the ::SDL_HAPTIC_GAIN feature."] + #[doc = ""] + #[doc = " The user may specify the maximum gain by setting the environment variable"] + #[doc = " SDL_HAPTIC_GAIN_MAX which should be between 0 and 100. All calls to"] + #[doc = " SDL_HapticSetGain() will scale linearly using SDL_HAPTIC_GAIN_MAX as the"] + #[doc = " maximum."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to set the gain on."] + #[doc = " \\param gain Value to set the gain to, should be between 0 and 100."] + #[doc = " \\return 0 on success or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticQuery"] + pub fn SDL_HapticSetGain(haptic: *mut SDL_Haptic, gain: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Sets the global autocenter of the device."] + #[doc = ""] + #[doc = " Autocenter should be between 0 and 100. Setting it to 0 will disable"] + #[doc = " autocentering."] + #[doc = ""] + #[doc = " Device must support the ::SDL_HAPTIC_AUTOCENTER feature."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to set autocentering on."] + #[doc = " \\param autocenter Value to set autocenter to, 0 disables autocentering."] + #[doc = " \\return 0 on success or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticQuery"] + pub fn SDL_HapticSetAutocenter(haptic: *mut SDL_Haptic, autocenter: libc::c_int) + -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Pauses a haptic device."] + #[doc = ""] + #[doc = " Device must support the ::SDL_HAPTIC_PAUSE feature. Call"] + #[doc = " SDL_HapticUnpause() to resume playback."] + #[doc = ""] + #[doc = " Do not modify the effects nor add new ones while the device is paused."] + #[doc = " That can cause all sorts of weird errors."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to pause."] + #[doc = " \\return 0 on success or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticUnpause"] + pub fn SDL_HapticPause(haptic: *mut SDL_Haptic) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Unpauses a haptic device."] + #[doc = ""] + #[doc = " Call to unpause after SDL_HapticPause()."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to unpause."] + #[doc = " \\return 0 on success or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticPause"] + pub fn SDL_HapticUnpause(haptic: *mut SDL_Haptic) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Stops all the currently playing effects on a haptic device."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to stop."] + #[doc = " \\return 0 on success or -1 on error."] + pub fn SDL_HapticStopAll(haptic: *mut SDL_Haptic) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Checks to see if rumble is supported on a haptic device."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to check to see if it supports rumble."] + #[doc = " \\return SDL_TRUE if effect is supported, SDL_FALSE if it isn't or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticRumbleInit"] + #[doc = " \\sa SDL_HapticRumblePlay"] + #[doc = " \\sa SDL_HapticRumbleStop"] + pub fn SDL_HapticRumbleSupported(haptic: *mut SDL_Haptic) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Initializes the haptic device for simple rumble playback."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to initialize for simple rumble playback."] + #[doc = " \\return 0 on success or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticOpen"] + #[doc = " \\sa SDL_HapticRumbleSupported"] + #[doc = " \\sa SDL_HapticRumblePlay"] + #[doc = " \\sa SDL_HapticRumbleStop"] + pub fn SDL_HapticRumbleInit(haptic: *mut SDL_Haptic) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Runs simple rumble on a haptic device"] + #[doc = ""] + #[doc = " \\param haptic Haptic device to play rumble effect on."] + #[doc = " \\param strength Strength of the rumble to play as a 0-1 float value."] + #[doc = " \\param length Length of the rumble to play in milliseconds."] + #[doc = " \\return 0 on success or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticRumbleSupported"] + #[doc = " \\sa SDL_HapticRumbleInit"] + #[doc = " \\sa SDL_HapticRumbleStop"] + pub fn SDL_HapticRumblePlay( + haptic: *mut SDL_Haptic, + strength: f32, + length: Uint32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Stops the simple rumble on a haptic device."] + #[doc = ""] + #[doc = " \\param haptic Haptic to stop the rumble on."] + #[doc = " \\return 0 on success or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticRumbleSupported"] + #[doc = " \\sa SDL_HapticRumbleInit"] + #[doc = " \\sa SDL_HapticRumblePlay"] + pub fn SDL_HapticRumbleStop(haptic: *mut SDL_Haptic) -> libc::c_int; +} +#[repr(u32)] +#[doc = " \\brief An enumeration of hint priorities"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_HintPriority { + SDL_HINT_DEFAULT = 0, + SDL_HINT_NORMAL = 1, + SDL_HINT_OVERRIDE = 2, +} +extern "C" { + #[doc = " \\brief Set a hint with a specific priority"] + #[doc = ""] + #[doc = " The priority controls the behavior when setting a hint that already"] + #[doc = " has a value. Hints will replace existing hints of their priority and"] + #[doc = " lower. Environment variables are considered to have override priority."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the hint was set, SDL_FALSE otherwise"] + pub fn SDL_SetHintWithPriority( + name: *const libc::c_char, + value: *const libc::c_char, + priority: SDL_HintPriority, + ) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Set a hint with normal priority"] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the hint was set, SDL_FALSE otherwise"] + pub fn SDL_SetHint(name: *const libc::c_char, value: *const libc::c_char) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Get a hint"] + #[doc = ""] + #[doc = " \\return The string value of a hint variable."] + pub fn SDL_GetHint(name: *const libc::c_char) -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Get a hint"] + #[doc = ""] + #[doc = " \\return The boolean value of a hint variable."] + pub fn SDL_GetHintBoolean(name: *const libc::c_char, default_value: SDL_bool) -> SDL_bool; +} +#[doc = " \\brief type definition of the hint callback function."] +pub type SDL_HintCallback = ::core::option::Option< + unsafe extern "C" fn( + userdata: *mut libc::c_void, + name: *const libc::c_char, + oldValue: *const libc::c_char, + newValue: *const libc::c_char, + ), +>; +extern "C" { + #[doc = " \\brief Add a function to watch a particular hint"] + #[doc = ""] + #[doc = " \\param name The hint to watch"] + #[doc = " \\param callback The function to call when the hint value changes"] + #[doc = " \\param userdata A pointer to pass to the callback function"] + pub fn SDL_AddHintCallback( + name: *const libc::c_char, + callback: SDL_HintCallback, + userdata: *mut libc::c_void, + ); +} +extern "C" { + #[doc = " \\brief Remove a function watching a particular hint"] + #[doc = ""] + #[doc = " \\param name The hint being watched"] + #[doc = " \\param callback The function being called when the hint value changes"] + #[doc = " \\param userdata A pointer being passed to the callback function"] + pub fn SDL_DelHintCallback( + name: *const libc::c_char, + callback: SDL_HintCallback, + userdata: *mut libc::c_void, + ); +} +extern "C" { + #[doc = " \\brief Clear all hints"] + #[doc = ""] + #[doc = " This function is called during SDL_Quit() to free stored hints."] + pub fn SDL_ClearHints(); +} +extern "C" { + #[doc = " This function dynamically loads a shared object and returns a pointer"] + #[doc = " to the object handle (or NULL if there was an error)."] + #[doc = " The 'sofile' parameter is a system dependent name of the object file."] + pub fn SDL_LoadObject(sofile: *const libc::c_char) -> *mut libc::c_void; +} +extern "C" { + #[doc = " Given an object handle, this function looks up the address of the"] + #[doc = " named function in the shared object and returns it. This address"] + #[doc = " is no longer valid after calling SDL_UnloadObject()."] + pub fn SDL_LoadFunction( + handle: *mut libc::c_void, + name: *const libc::c_char, + ) -> *mut libc::c_void; +} +extern "C" { + #[doc = " Unload a shared object from memory."] + pub fn SDL_UnloadObject(handle: *mut libc::c_void); +} +#[repr(u32)] +#[doc = " \\brief The predefined log categories"] +#[doc = ""] +#[doc = " By default the application category is enabled at the INFO level,"] +#[doc = " the assert category is enabled at the WARN level, test is enabled"] +#[doc = " at the VERBOSE level and all other categories are enabled at the"] +#[doc = " CRITICAL level."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_LogCategory { + SDL_LOG_CATEGORY_APPLICATION = 0, + SDL_LOG_CATEGORY_ERROR = 1, + SDL_LOG_CATEGORY_ASSERT = 2, + SDL_LOG_CATEGORY_SYSTEM = 3, + SDL_LOG_CATEGORY_AUDIO = 4, + SDL_LOG_CATEGORY_VIDEO = 5, + SDL_LOG_CATEGORY_RENDER = 6, + SDL_LOG_CATEGORY_INPUT = 7, + SDL_LOG_CATEGORY_TEST = 8, + SDL_LOG_CATEGORY_RESERVED1 = 9, + SDL_LOG_CATEGORY_RESERVED2 = 10, + SDL_LOG_CATEGORY_RESERVED3 = 11, + SDL_LOG_CATEGORY_RESERVED4 = 12, + SDL_LOG_CATEGORY_RESERVED5 = 13, + SDL_LOG_CATEGORY_RESERVED6 = 14, + SDL_LOG_CATEGORY_RESERVED7 = 15, + SDL_LOG_CATEGORY_RESERVED8 = 16, + SDL_LOG_CATEGORY_RESERVED9 = 17, + SDL_LOG_CATEGORY_RESERVED10 = 18, + SDL_LOG_CATEGORY_CUSTOM = 19, +} +#[repr(u32)] +#[doc = " \\brief The predefined log priorities"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_LogPriority { + SDL_LOG_PRIORITY_VERBOSE = 1, + SDL_LOG_PRIORITY_DEBUG = 2, + SDL_LOG_PRIORITY_INFO = 3, + SDL_LOG_PRIORITY_WARN = 4, + SDL_LOG_PRIORITY_ERROR = 5, + SDL_LOG_PRIORITY_CRITICAL = 6, + SDL_NUM_LOG_PRIORITIES = 7, +} +extern "C" { + #[doc = " \\brief Set the priority of all log categories"] + pub fn SDL_LogSetAllPriority(priority: SDL_LogPriority); +} +extern "C" { + #[doc = " \\brief Set the priority of a particular log category"] + pub fn SDL_LogSetPriority(category: libc::c_int, priority: SDL_LogPriority); +} +extern "C" { + #[doc = " \\brief Get the priority of a particular log category"] + pub fn SDL_LogGetPriority(category: libc::c_int) -> SDL_LogPriority; +} +extern "C" { + #[doc = " \\brief Reset all priorities to default."] + #[doc = ""] + #[doc = " \\note This is called in SDL_Quit()."] + pub fn SDL_LogResetPriorities(); +} +extern "C" { + #[doc = " \\brief Log a message with SDL_LOG_CATEGORY_APPLICATION and SDL_LOG_PRIORITY_INFO"] + pub fn SDL_Log(fmt: *const libc::c_char, ...); +} +extern "C" { + #[doc = " \\brief Log a message with SDL_LOG_PRIORITY_VERBOSE"] + pub fn SDL_LogVerbose(category: libc::c_int, fmt: *const libc::c_char, ...); +} +extern "C" { + #[doc = " \\brief Log a message with SDL_LOG_PRIORITY_DEBUG"] + pub fn SDL_LogDebug(category: libc::c_int, fmt: *const libc::c_char, ...); +} +extern "C" { + #[doc = " \\brief Log a message with SDL_LOG_PRIORITY_INFO"] + pub fn SDL_LogInfo(category: libc::c_int, fmt: *const libc::c_char, ...); +} +extern "C" { + #[doc = " \\brief Log a message with SDL_LOG_PRIORITY_WARN"] + pub fn SDL_LogWarn(category: libc::c_int, fmt: *const libc::c_char, ...); +} +extern "C" { + #[doc = " \\brief Log a message with SDL_LOG_PRIORITY_ERROR"] + pub fn SDL_LogError(category: libc::c_int, fmt: *const libc::c_char, ...); +} +extern "C" { + #[doc = " \\brief Log a message with SDL_LOG_PRIORITY_CRITICAL"] + pub fn SDL_LogCritical(category: libc::c_int, fmt: *const libc::c_char, ...); +} +extern "C" { + #[doc = " \\brief Log a message with the specified category and priority."] + pub fn SDL_LogMessage( + category: libc::c_int, + priority: SDL_LogPriority, + fmt: *const libc::c_char, + ... + ); +} +extern "C" { + #[doc = " \\brief Log a message with the specified category and priority."] + pub fn SDL_LogMessageV( + category: libc::c_int, + priority: SDL_LogPriority, + fmt: *const libc::c_char, + ap: *mut __va_list_tag, + ); +} +#[doc = " \\brief The prototype for the log output function"] +pub type SDL_LogOutputFunction = ::core::option::Option< + unsafe extern "C" fn( + userdata: *mut libc::c_void, + category: libc::c_int, + priority: SDL_LogPriority, + message: *const libc::c_char, + ), +>; +extern "C" { + #[doc = " \\brief Get the current log output function."] + pub fn SDL_LogGetOutputFunction( + callback: *mut SDL_LogOutputFunction, + userdata: *mut *mut libc::c_void, + ); +} +extern "C" { + #[doc = " \\brief This function allows you to replace the default log output"] + #[doc = " function with one of your own."] + pub fn SDL_LogSetOutputFunction(callback: SDL_LogOutputFunction, userdata: *mut libc::c_void); +} +#[repr(u32)] +#[doc = " \\brief SDL_MessageBox flags. If supported will display warning icon, etc."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_MessageBoxFlags { + #[doc = "< error dialog"] + SDL_MESSAGEBOX_ERROR = 16, + #[doc = "< warning dialog"] + SDL_MESSAGEBOX_WARNING = 32, + #[doc = "< informational dialog"] + SDL_MESSAGEBOX_INFORMATION = 64, + #[doc = "< buttons placed left to right"] + SDL_MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT = 128, + #[doc = "< buttons placed right to left"] + SDL_MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT = 256, +} +#[repr(u32)] +#[doc = " \\brief Flags for SDL_MessageBoxButtonData."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_MessageBoxButtonFlags { + #[doc = "< Marks the default button when return is hit"] + SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT = 1, + #[doc = "< Marks the default button when escape is hit"] + SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT = 2, +} +#[doc = " \\brief Individual button data."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_MessageBoxButtonData { + #[doc = "< ::SDL_MessageBoxButtonFlags"] + pub flags: Uint32, + #[doc = "< User defined button id (value returned via SDL_ShowMessageBox)"] + pub buttonid: libc::c_int, + #[doc = "< The UTF-8 button text"] + pub text: *const libc::c_char, +} +#[test] +fn bindgen_test_layout_SDL_MessageBoxButtonData() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_MessageBoxButtonData)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_MessageBoxButtonData)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).flags as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxButtonData), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).buttonid as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxButtonData), + "::", + stringify!(buttonid) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).text as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxButtonData), + "::", + stringify!(text) + ) + ); +} +#[doc = " \\brief RGB value used in a message box color scheme"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_MessageBoxColor { + pub r: Uint8, + pub g: Uint8, + pub b: Uint8, +} +#[test] +fn bindgen_test_layout_SDL_MessageBoxColor() { + assert_eq!( + ::core::mem::size_of::(), + 3usize, + concat!("Size of: ", stringify!(SDL_MessageBoxColor)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(SDL_MessageBoxColor)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).r as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxColor), + "::", + stringify!(r) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).g as *const _ as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxColor), + "::", + stringify!(g) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).b as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxColor), + "::", + stringify!(b) + ) + ); +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_MessageBoxColorType { + SDL_MESSAGEBOX_COLOR_BACKGROUND = 0, + SDL_MESSAGEBOX_COLOR_TEXT = 1, + SDL_MESSAGEBOX_COLOR_BUTTON_BORDER = 2, + SDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND = 3, + SDL_MESSAGEBOX_COLOR_BUTTON_SELECTED = 4, + SDL_MESSAGEBOX_COLOR_MAX = 5, +} +#[doc = " \\brief A set of colors to use for message box dialogs"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_MessageBoxColorScheme { + pub colors: [SDL_MessageBoxColor; 5usize], +} +#[test] +fn bindgen_test_layout_SDL_MessageBoxColorScheme() { + assert_eq!( + ::core::mem::size_of::(), + 15usize, + concat!("Size of: ", stringify!(SDL_MessageBoxColorScheme)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(SDL_MessageBoxColorScheme)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).colors as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxColorScheme), + "::", + stringify!(colors) + ) + ); +} +#[doc = " \\brief MessageBox structure containing title, text, window, etc."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_MessageBoxData { + #[doc = "< ::SDL_MessageBoxFlags"] + pub flags: Uint32, + #[doc = "< Parent window, can be NULL"] + pub window: *mut SDL_Window, + #[doc = "< UTF-8 title"] + pub title: *const libc::c_char, + #[doc = "< UTF-8 message text"] + pub message: *const libc::c_char, + pub numbuttons: libc::c_int, + pub buttons: *const SDL_MessageBoxButtonData, + #[doc = "< ::SDL_MessageBoxColorScheme, can be NULL to use system settings"] + pub colorScheme: *const SDL_MessageBoxColorScheme, +} +#[test] +fn bindgen_test_layout_SDL_MessageBoxData() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(SDL_MessageBoxData)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_MessageBoxData)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).flags as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxData), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxData), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).title as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxData), + "::", + stringify!(title) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).message as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxData), + "::", + stringify!(message) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).numbuttons as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxData), + "::", + stringify!(numbuttons) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).buttons as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxData), + "::", + stringify!(buttons) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).colorScheme as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxData), + "::", + stringify!(colorScheme) + ) + ); +} +extern "C" { + #[doc = " \\brief Create a modal message box."] + #[doc = ""] + #[doc = " \\param messageboxdata The SDL_MessageBoxData structure with title, text, etc."] + #[doc = " \\param buttonid The pointer to which user id of hit button should be copied."] + #[doc = ""] + #[doc = " \\return -1 on error, otherwise 0 and buttonid contains user id of button"] + #[doc = " hit or -1 if dialog was closed."] + #[doc = ""] + #[doc = " \\note This function should be called on the thread that created the parent"] + #[doc = " window, or on the main thread if the messagebox has no parent. It will"] + #[doc = " block execution of that thread until the user clicks a button or"] + #[doc = " closes the messagebox."] + pub fn SDL_ShowMessageBox( + messageboxdata: *const SDL_MessageBoxData, + buttonid: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Create a simple modal message box"] + #[doc = ""] + #[doc = " \\param flags ::SDL_MessageBoxFlags"] + #[doc = " \\param title UTF-8 title text"] + #[doc = " \\param message UTF-8 message text"] + #[doc = " \\param window The parent window, or NULL for no parent"] + #[doc = ""] + #[doc = " \\return 0 on success, -1 on error"] + #[doc = ""] + #[doc = " \\sa SDL_ShowMessageBox"] + pub fn SDL_ShowSimpleMessageBox( + flags: Uint32, + title: *const libc::c_char, + message: *const libc::c_char, + window: *mut SDL_Window, + ) -> libc::c_int; +} +#[doc = " \\brief A handle to a CAMetalLayer-backed NSView (macOS) or UIView (iOS/tvOS)."] +#[doc = ""] +#[doc = " \\note This can be cast directly to an NSView or UIView."] +pub type SDL_MetalView = *mut libc::c_void; +extern "C" { + #[doc = " \\brief Create a CAMetalLayer-backed NSView/UIView and attach it to the"] + #[doc = " specified window."] + #[doc = ""] + #[doc = " On macOS, this does *not* associate a MTLDevice with the CAMetalLayer on its"] + #[doc = " own. It is up to user code to do that."] + #[doc = ""] + #[doc = " The returned handle can be casted directly to a NSView or UIView."] + #[doc = " To access the backing CAMetalLayer, call SDL_Metal_GetLayer()."] + #[doc = ""] + #[doc = " \\note \\a window must be created with the SDL_WINDOW_METAL flag."] + #[doc = ""] + #[doc = " \\sa SDL_Metal_DestroyView"] + #[doc = " \\sa SDL_Metal_GetLayer"] + pub fn SDL_Metal_CreateView(window: *mut SDL_Window) -> SDL_MetalView; +} +extern "C" { + #[doc = " \\brief Destroy an existing SDL_MetalView object."] + #[doc = ""] + #[doc = " This should be called before SDL_DestroyWindow, if SDL_Metal_CreateView was"] + #[doc = " called after SDL_CreateWindow."] + #[doc = ""] + #[doc = " \\sa SDL_Metal_CreateView"] + pub fn SDL_Metal_DestroyView(view: SDL_MetalView); +} +extern "C" { + #[doc = " \\brief Get a pointer to the backing CAMetalLayer for the given view."] + #[doc = ""] + #[doc = " \\sa SDL_MetalCreateView"] + pub fn SDL_Metal_GetLayer(view: SDL_MetalView) -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Get the size of a window's underlying drawable in pixels (for use"] + #[doc = " with setting viewport, scissor & etc)."] + #[doc = ""] + #[doc = " \\param window SDL_Window from which the drawable size should be queried"] + #[doc = " \\param w Pointer to variable for storing the width in pixels,"] + #[doc = " may be NULL"] + #[doc = " \\param h Pointer to variable for storing the height in pixels,"] + #[doc = " may be NULL"] + #[doc = ""] + #[doc = " This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI"] + #[doc = " drawable, i.e. the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a"] + #[doc = " platform with high-DPI support (Apple calls this \"Retina\"), and not disabled"] + #[doc = " by the \\c SDL_HINT_VIDEO_HIGHDPI_DISABLED hint."] + #[doc = ""] + #[doc = " \\note On macOS high-DPI support must be enabled for an application by"] + #[doc = " setting NSHighResolutionCapable to true in its Info.plist."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowSize()"] + #[doc = " \\sa SDL_CreateWindow()"] + pub fn SDL_Metal_GetDrawableSize( + window: *mut SDL_Window, + w: *mut libc::c_int, + h: *mut libc::c_int, + ); +} +#[repr(u32)] +#[doc = " \\brief The basic state for the system's power supply."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_PowerState { + #[doc = "< cannot determine power status"] + SDL_POWERSTATE_UNKNOWN = 0, + #[doc = "< Not plugged in, running on the battery"] + SDL_POWERSTATE_ON_BATTERY = 1, + #[doc = "< Plugged in, no battery available"] + SDL_POWERSTATE_NO_BATTERY = 2, + #[doc = "< Plugged in, charging battery"] + SDL_POWERSTATE_CHARGING = 3, + #[doc = "< Plugged in, battery charged"] + SDL_POWERSTATE_CHARGED = 4, +} +extern "C" { + #[doc = " \\brief Get the current power supply details."] + #[doc = ""] + #[doc = " \\param secs Seconds of battery life left. You can pass a NULL here if"] + #[doc = " you don't care. Will return -1 if we can't determine a"] + #[doc = " value, or we're not running on a battery."] + #[doc = ""] + #[doc = " \\param pct Percentage of battery life left, between 0 and 100. You can"] + #[doc = " pass a NULL here if you don't care. Will return -1 if we"] + #[doc = " can't determine a value, or we're not running on a battery."] + #[doc = ""] + #[doc = " \\return The state of the battery (if any)."] + pub fn SDL_GetPowerInfo(secs: *mut libc::c_int, pct: *mut libc::c_int) -> SDL_PowerState; +} +#[repr(u32)] +#[doc = " \\brief Flags used when creating a rendering context"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_RendererFlags { + #[doc = "< The renderer is a software fallback"] + SDL_RENDERER_SOFTWARE = 1, + #[doc = "< The renderer uses hardware"] + #[doc = "acceleration"] + SDL_RENDERER_ACCELERATED = 2, + #[doc = "< Present is synchronized"] + #[doc = "with the refresh rate"] + SDL_RENDERER_PRESENTVSYNC = 4, + #[doc = "< The renderer supports"] + #[doc = "rendering to texture"] + SDL_RENDERER_TARGETTEXTURE = 8, +} +#[doc = " \\brief Information on the capabilities of a render driver or context."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_RendererInfo { + #[doc = "< The name of the renderer"] + pub name: *const libc::c_char, + #[doc = "< Supported ::SDL_RendererFlags"] + pub flags: Uint32, + #[doc = "< The number of available texture formats"] + pub num_texture_formats: Uint32, + #[doc = "< The available texture formats"] + pub texture_formats: [Uint32; 16usize], + #[doc = "< The maximum texture width"] + pub max_texture_width: libc::c_int, + #[doc = "< The maximum texture height"] + pub max_texture_height: libc::c_int, +} +#[test] +fn bindgen_test_layout_SDL_RendererInfo() { + assert_eq!( + ::core::mem::size_of::(), + 88usize, + concat!("Size of: ", stringify!(SDL_RendererInfo)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_RendererInfo)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).name as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_RendererInfo), + "::", + stringify!(name) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).flags as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_RendererInfo), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).num_texture_formats as *const _ as usize + }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_RendererInfo), + "::", + stringify!(num_texture_formats) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).texture_formats as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_RendererInfo), + "::", + stringify!(texture_formats) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).max_texture_width as *const _ as usize + }, + 80usize, + concat!( + "Offset of field: ", + stringify!(SDL_RendererInfo), + "::", + stringify!(max_texture_width) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).max_texture_height as *const _ as usize + }, + 84usize, + concat!( + "Offset of field: ", + stringify!(SDL_RendererInfo), + "::", + stringify!(max_texture_height) + ) + ); +} +#[repr(u32)] +#[doc = " \\brief The scaling mode for a texture."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_ScaleMode { + #[doc = "< nearest pixel sampling"] + SDL_ScaleModeNearest = 0, + #[doc = "< linear filtering"] + SDL_ScaleModeLinear = 1, + #[doc = "< anisotropic filtering"] + SDL_ScaleModeBest = 2, +} +#[repr(u32)] +#[doc = " \\brief The access pattern allowed for a texture."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_TextureAccess { + #[doc = "< Changes rarely, not lockable"] + SDL_TEXTUREACCESS_STATIC = 0, + #[doc = "< Changes frequently, lockable"] + SDL_TEXTUREACCESS_STREAMING = 1, + #[doc = "< Texture can be used as a render target"] + SDL_TEXTUREACCESS_TARGET = 2, +} +#[repr(u32)] +#[doc = " \\brief The texture channel modulation used in SDL_RenderCopy()."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_TextureModulate { + #[doc = "< No modulation"] + SDL_TEXTUREMODULATE_NONE = 0, + #[doc = "< srcC = srcC * color"] + SDL_TEXTUREMODULATE_COLOR = 1, + #[doc = "< srcA = srcA * alpha"] + SDL_TEXTUREMODULATE_ALPHA = 2, +} +#[repr(u32)] +#[doc = " \\brief Flip constants for SDL_RenderCopyEx"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_RendererFlip { + #[doc = "< Do not flip"] + SDL_FLIP_NONE = 0, + #[doc = "< flip horizontally"] + SDL_FLIP_HORIZONTAL = 1, + #[doc = "< flip vertically"] + SDL_FLIP_VERTICAL = 2, +} +#[doc = " \\brief A structure representing rendering state"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Renderer { + _unused: [u8; 0], +} +#[doc = " \\brief An efficient driver-specific representation of pixel data"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Texture { + _unused: [u8; 0], +} +extern "C" { + #[doc = " \\brief Get the number of 2D rendering drivers available for the current"] + #[doc = " display."] + #[doc = ""] + #[doc = " A render driver is a set of code that handles rendering and texture"] + #[doc = " management on a particular display. Normally there is only one, but"] + #[doc = " some drivers may have several available with different capabilities."] + #[doc = ""] + #[doc = " \\sa SDL_GetRenderDriverInfo()"] + #[doc = " \\sa SDL_CreateRenderer()"] + pub fn SDL_GetNumRenderDrivers() -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get information about a specific 2D rendering driver for the current"] + #[doc = " display."] + #[doc = ""] + #[doc = " \\param index The index of the driver to query information about."] + #[doc = " \\param info A pointer to an SDL_RendererInfo struct to be filled with"] + #[doc = " information on the rendering driver."] + #[doc = ""] + #[doc = " \\return 0 on success, -1 if the index was out of range."] + #[doc = ""] + #[doc = " \\sa SDL_CreateRenderer()"] + pub fn SDL_GetRenderDriverInfo(index: libc::c_int, info: *mut SDL_RendererInfo) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Create a window and default renderer"] + #[doc = ""] + #[doc = " \\param width The width of the window"] + #[doc = " \\param height The height of the window"] + #[doc = " \\param window_flags The flags used to create the window"] + #[doc = " \\param window A pointer filled with the window, or NULL on error"] + #[doc = " \\param renderer A pointer filled with the renderer, or NULL on error"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_CreateWindowAndRenderer( + width: libc::c_int, + height: libc::c_int, + window_flags: Uint32, + window: *mut *mut SDL_Window, + renderer: *mut *mut SDL_Renderer, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Create a 2D rendering context for a window."] + #[doc = ""] + #[doc = " \\param window The window where rendering is displayed."] + #[doc = " \\param index The index of the rendering driver to initialize, or -1 to"] + #[doc = " initialize the first one supporting the requested flags."] + #[doc = " \\param flags ::SDL_RendererFlags."] + #[doc = ""] + #[doc = " \\return A valid rendering context or NULL if there was an error."] + #[doc = ""] + #[doc = " \\sa SDL_CreateSoftwareRenderer()"] + #[doc = " \\sa SDL_GetRendererInfo()"] + #[doc = " \\sa SDL_DestroyRenderer()"] + pub fn SDL_CreateRenderer( + window: *mut SDL_Window, + index: libc::c_int, + flags: Uint32, + ) -> *mut SDL_Renderer; +} +extern "C" { + #[doc = " \\brief Create a 2D software rendering context for a surface."] + #[doc = ""] + #[doc = " \\param surface The surface where rendering is done."] + #[doc = ""] + #[doc = " \\return A valid rendering context or NULL if there was an error."] + #[doc = ""] + #[doc = " \\sa SDL_CreateRenderer()"] + #[doc = " \\sa SDL_DestroyRenderer()"] + pub fn SDL_CreateSoftwareRenderer(surface: *mut SDL_Surface) -> *mut SDL_Renderer; +} +extern "C" { + #[doc = " \\brief Get the renderer associated with a window."] + pub fn SDL_GetRenderer(window: *mut SDL_Window) -> *mut SDL_Renderer; +} +extern "C" { + #[doc = " \\brief Get information about a rendering context."] + pub fn SDL_GetRendererInfo( + renderer: *mut SDL_Renderer, + info: *mut SDL_RendererInfo, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the output size in pixels of a rendering context."] + pub fn SDL_GetRendererOutputSize( + renderer: *mut SDL_Renderer, + w: *mut libc::c_int, + h: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Create a texture for a rendering context."] + #[doc = ""] + #[doc = " \\param renderer The renderer."] + #[doc = " \\param format The format of the texture."] + #[doc = " \\param access One of the enumerated values in ::SDL_TextureAccess."] + #[doc = " \\param w The width of the texture in pixels."] + #[doc = " \\param h The height of the texture in pixels."] + #[doc = ""] + #[doc = " \\return The created texture is returned, or NULL if no rendering context was"] + #[doc = " active, the format was unsupported, or the width or height were out"] + #[doc = " of range."] + #[doc = ""] + #[doc = " \\note The contents of the texture are not defined at creation."] + #[doc = ""] + #[doc = " \\sa SDL_QueryTexture()"] + #[doc = " \\sa SDL_UpdateTexture()"] + #[doc = " \\sa SDL_DestroyTexture()"] + pub fn SDL_CreateTexture( + renderer: *mut SDL_Renderer, + format: Uint32, + access: libc::c_int, + w: libc::c_int, + h: libc::c_int, + ) -> *mut SDL_Texture; +} +extern "C" { + #[doc = " \\brief Create a texture from an existing surface."] + #[doc = ""] + #[doc = " \\param renderer The renderer."] + #[doc = " \\param surface The surface containing pixel data used to fill the texture."] + #[doc = ""] + #[doc = " \\return The created texture is returned, or NULL on error."] + #[doc = ""] + #[doc = " \\note The surface is not modified or freed by this function."] + #[doc = ""] + #[doc = " \\sa SDL_QueryTexture()"] + #[doc = " \\sa SDL_DestroyTexture()"] + pub fn SDL_CreateTextureFromSurface( + renderer: *mut SDL_Renderer, + surface: *mut SDL_Surface, + ) -> *mut SDL_Texture; +} +extern "C" { + #[doc = " \\brief Query the attributes of a texture"] + #[doc = ""] + #[doc = " \\param texture A texture to be queried."] + #[doc = " \\param format A pointer filled in with the raw format of the texture. The"] + #[doc = " actual format may differ, but pixel transfers will use this"] + #[doc = " format."] + #[doc = " \\param access A pointer filled in with the actual access to the texture."] + #[doc = " \\param w A pointer filled in with the width of the texture in pixels."] + #[doc = " \\param h A pointer filled in with the height of the texture in pixels."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid."] + pub fn SDL_QueryTexture( + texture: *mut SDL_Texture, + format: *mut Uint32, + access: *mut libc::c_int, + w: *mut libc::c_int, + h: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set an additional color value used in render copy operations."] + #[doc = ""] + #[doc = " \\param texture The texture to update."] + #[doc = " \\param r The red color value multiplied into copy operations."] + #[doc = " \\param g The green color value multiplied into copy operations."] + #[doc = " \\param b The blue color value multiplied into copy operations."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid or color modulation"] + #[doc = " is not supported."] + #[doc = ""] + #[doc = " \\sa SDL_GetTextureColorMod()"] + pub fn SDL_SetTextureColorMod( + texture: *mut SDL_Texture, + r: Uint8, + g: Uint8, + b: Uint8, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the additional color value used in render copy operations."] + #[doc = ""] + #[doc = " \\param texture The texture to query."] + #[doc = " \\param r A pointer filled in with the current red color value."] + #[doc = " \\param g A pointer filled in with the current green color value."] + #[doc = " \\param b A pointer filled in with the current blue color value."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid."] + #[doc = ""] + #[doc = " \\sa SDL_SetTextureColorMod()"] + pub fn SDL_GetTextureColorMod( + texture: *mut SDL_Texture, + r: *mut Uint8, + g: *mut Uint8, + b: *mut Uint8, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set an additional alpha value used in render copy operations."] + #[doc = ""] + #[doc = " \\param texture The texture to update."] + #[doc = " \\param alpha The alpha value multiplied into copy operations."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid or alpha modulation"] + #[doc = " is not supported."] + #[doc = ""] + #[doc = " \\sa SDL_GetTextureAlphaMod()"] + pub fn SDL_SetTextureAlphaMod(texture: *mut SDL_Texture, alpha: Uint8) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the additional alpha value used in render copy operations."] + #[doc = ""] + #[doc = " \\param texture The texture to query."] + #[doc = " \\param alpha A pointer filled in with the current alpha value."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid."] + #[doc = ""] + #[doc = " \\sa SDL_SetTextureAlphaMod()"] + pub fn SDL_GetTextureAlphaMod(texture: *mut SDL_Texture, alpha: *mut Uint8) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set the blend mode used for texture copy operations."] + #[doc = ""] + #[doc = " \\param texture The texture to update."] + #[doc = " \\param blendMode ::SDL_BlendMode to use for texture blending."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid or the blend mode is"] + #[doc = " not supported."] + #[doc = ""] + #[doc = " \\note If the blend mode is not supported, the closest supported mode is"] + #[doc = " chosen."] + #[doc = ""] + #[doc = " \\sa SDL_GetTextureBlendMode()"] + pub fn SDL_SetTextureBlendMode( + texture: *mut SDL_Texture, + blendMode: SDL_BlendMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the blend mode used for texture copy operations."] + #[doc = ""] + #[doc = " \\param texture The texture to query."] + #[doc = " \\param blendMode A pointer filled in with the current blend mode."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid."] + #[doc = ""] + #[doc = " \\sa SDL_SetTextureBlendMode()"] + pub fn SDL_GetTextureBlendMode( + texture: *mut SDL_Texture, + blendMode: *mut SDL_BlendMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set the scale mode used for texture scale operations."] + #[doc = ""] + #[doc = " \\param texture The texture to update."] + #[doc = " \\param scaleMode ::SDL_ScaleMode to use for texture scaling."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid."] + #[doc = ""] + #[doc = " \\note If the scale mode is not supported, the closest supported mode is"] + #[doc = " chosen."] + #[doc = ""] + #[doc = " \\sa SDL_GetTextureScaleMode()"] + pub fn SDL_SetTextureScaleMode( + texture: *mut SDL_Texture, + scaleMode: SDL_ScaleMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the scale mode used for texture scale operations."] + #[doc = ""] + #[doc = " \\param texture The texture to query."] + #[doc = " \\param scaleMode A pointer filled in with the current scale mode."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid."] + #[doc = ""] + #[doc = " \\sa SDL_SetTextureScaleMode()"] + pub fn SDL_GetTextureScaleMode( + texture: *mut SDL_Texture, + scaleMode: *mut SDL_ScaleMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Update the given texture rectangle with new pixel data."] + #[doc = ""] + #[doc = " \\param texture The texture to update"] + #[doc = " \\param rect A pointer to the rectangle of pixels to update, or NULL to"] + #[doc = " update the entire texture."] + #[doc = " \\param pixels The raw pixel data in the format of the texture."] + #[doc = " \\param pitch The number of bytes in a row of pixel data, including padding between lines."] + #[doc = ""] + #[doc = " The pixel data must be in the format of the texture. The pixel format can be"] + #[doc = " queried with SDL_QueryTexture."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid."] + #[doc = ""] + #[doc = " \\note This is a fairly slow function."] + pub fn SDL_UpdateTexture( + texture: *mut SDL_Texture, + rect: *const SDL_Rect, + pixels: *const libc::c_void, + pitch: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Update a rectangle within a planar YV12 or IYUV texture with new pixel data."] + #[doc = ""] + #[doc = " \\param texture The texture to update"] + #[doc = " \\param rect A pointer to the rectangle of pixels to update, or NULL to"] + #[doc = " update the entire texture."] + #[doc = " \\param Yplane The raw pixel data for the Y plane."] + #[doc = " \\param Ypitch The number of bytes between rows of pixel data for the Y plane."] + #[doc = " \\param Uplane The raw pixel data for the U plane."] + #[doc = " \\param Upitch The number of bytes between rows of pixel data for the U plane."] + #[doc = " \\param Vplane The raw pixel data for the V plane."] + #[doc = " \\param Vpitch The number of bytes between rows of pixel data for the V plane."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid."] + #[doc = ""] + #[doc = " \\note You can use SDL_UpdateTexture() as long as your pixel data is"] + #[doc = " a contiguous block of Y and U/V planes in the proper order, but"] + #[doc = " this function is available if your pixel data is not contiguous."] + pub fn SDL_UpdateYUVTexture( + texture: *mut SDL_Texture, + rect: *const SDL_Rect, + Yplane: *const Uint8, + Ypitch: libc::c_int, + Uplane: *const Uint8, + Upitch: libc::c_int, + Vplane: *const Uint8, + Vpitch: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Lock a portion of the texture for write-only pixel access."] + #[doc = ""] + #[doc = " \\param texture The texture to lock for access, which was created with"] + #[doc = " ::SDL_TEXTUREACCESS_STREAMING."] + #[doc = " \\param rect A pointer to the rectangle to lock for access. If the rect"] + #[doc = " is NULL, the entire texture will be locked."] + #[doc = " \\param pixels This is filled in with a pointer to the locked pixels,"] + #[doc = " appropriately offset by the locked area."] + #[doc = " \\param pitch This is filled in with the pitch of the locked pixels."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid or was not created with ::SDL_TEXTUREACCESS_STREAMING."] + #[doc = ""] + #[doc = " \\sa SDL_UnlockTexture()"] + pub fn SDL_LockTexture( + texture: *mut SDL_Texture, + rect: *const SDL_Rect, + pixels: *mut *mut libc::c_void, + pitch: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Lock a portion of the texture for write-only pixel access."] + #[doc = " Expose it as a SDL surface."] + #[doc = ""] + #[doc = " \\param texture The texture to lock for access, which was created with"] + #[doc = " ::SDL_TEXTUREACCESS_STREAMING."] + #[doc = " \\param rect A pointer to the rectangle to lock for access. If the rect"] + #[doc = " is NULL, the entire texture will be locked."] + #[doc = " \\param surface This is filled in with a SDL surface representing the locked area"] + #[doc = " Surface is freed internally after calling SDL_UnlockTexture or SDL_DestroyTexture."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid or was not created with ::SDL_TEXTUREACCESS_STREAMING."] + #[doc = ""] + #[doc = " \\sa SDL_UnlockTexture()"] + pub fn SDL_LockTextureToSurface( + texture: *mut SDL_Texture, + rect: *const SDL_Rect, + surface: *mut *mut SDL_Surface, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Unlock a texture, uploading the changes to video memory, if needed."] + #[doc = " If SDL_LockTextureToSurface() was called for locking, the SDL surface is freed."] + #[doc = ""] + #[doc = " \\sa SDL_LockTexture()"] + #[doc = " \\sa SDL_LockTextureToSurface()"] + pub fn SDL_UnlockTexture(texture: *mut SDL_Texture); +} +extern "C" { + #[doc = " \\brief Determines whether a window supports the use of render targets"] + #[doc = ""] + #[doc = " \\param renderer The renderer that will be checked"] + #[doc = ""] + #[doc = " \\return SDL_TRUE if supported, SDL_FALSE if not."] + pub fn SDL_RenderTargetSupported(renderer: *mut SDL_Renderer) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Set a texture as the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer."] + #[doc = " \\param texture The targeted texture, which must be created with the SDL_TEXTUREACCESS_TARGET flag, or NULL for the default render target"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + #[doc = ""] + #[doc = " \\sa SDL_GetRenderTarget()"] + pub fn SDL_SetRenderTarget( + renderer: *mut SDL_Renderer, + texture: *mut SDL_Texture, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the current render target or NULL for the default render target."] + #[doc = ""] + #[doc = " \\return The current render target"] + #[doc = ""] + #[doc = " \\sa SDL_SetRenderTarget()"] + pub fn SDL_GetRenderTarget(renderer: *mut SDL_Renderer) -> *mut SDL_Texture; +} +extern "C" { + #[doc = " \\brief Set device independent resolution for rendering"] + #[doc = ""] + #[doc = " \\param renderer The renderer for which resolution should be set."] + #[doc = " \\param w The width of the logical resolution"] + #[doc = " \\param h The height of the logical resolution"] + #[doc = ""] + #[doc = " This function uses the viewport and scaling functionality to allow a fixed logical"] + #[doc = " resolution for rendering, regardless of the actual output resolution. If the actual"] + #[doc = " output resolution doesn't have the same aspect ratio the output rendering will be"] + #[doc = " centered within the output display."] + #[doc = ""] + #[doc = " If the output display is a window, mouse events in the window will be filtered"] + #[doc = " and scaled so they seem to arrive within the logical resolution."] + #[doc = ""] + #[doc = " \\note If this function results in scaling or subpixel drawing by the"] + #[doc = " rendering backend, it will be handled using the appropriate"] + #[doc = " quality hints."] + #[doc = ""] + #[doc = " \\sa SDL_RenderGetLogicalSize()"] + #[doc = " \\sa SDL_RenderSetScale()"] + #[doc = " \\sa SDL_RenderSetViewport()"] + pub fn SDL_RenderSetLogicalSize( + renderer: *mut SDL_Renderer, + w: libc::c_int, + h: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get device independent resolution for rendering"] + #[doc = ""] + #[doc = " \\param renderer The renderer from which resolution should be queried."] + #[doc = " \\param w A pointer filled with the width of the logical resolution"] + #[doc = " \\param h A pointer filled with the height of the logical resolution"] + #[doc = ""] + #[doc = " \\sa SDL_RenderSetLogicalSize()"] + pub fn SDL_RenderGetLogicalSize( + renderer: *mut SDL_Renderer, + w: *mut libc::c_int, + h: *mut libc::c_int, + ); +} +extern "C" { + #[doc = " \\brief Set whether to force integer scales for resolution-independent rendering"] + #[doc = ""] + #[doc = " \\param renderer The renderer for which integer scaling should be set."] + #[doc = " \\param enable Enable or disable integer scaling"] + #[doc = ""] + #[doc = " This function restricts the logical viewport to integer values - that is, when"] + #[doc = " a resolution is between two multiples of a logical size, the viewport size is"] + #[doc = " rounded down to the lower multiple."] + #[doc = ""] + #[doc = " \\sa SDL_RenderSetLogicalSize()"] + pub fn SDL_RenderSetIntegerScale(renderer: *mut SDL_Renderer, enable: SDL_bool) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get whether integer scales are forced for resolution-independent rendering"] + #[doc = ""] + #[doc = " \\param renderer The renderer from which integer scaling should be queried."] + #[doc = ""] + #[doc = " \\sa SDL_RenderSetIntegerScale()"] + pub fn SDL_RenderGetIntegerScale(renderer: *mut SDL_Renderer) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Set the drawing area for rendering on the current target."] + #[doc = ""] + #[doc = " \\param renderer The renderer for which the drawing area should be set."] + #[doc = " \\param rect The rectangle representing the drawing area, or NULL to set the viewport to the entire target."] + #[doc = ""] + #[doc = " The x,y of the viewport rect represents the origin for rendering."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + #[doc = ""] + #[doc = " \\note If the window associated with the renderer is resized, the viewport is automatically reset."] + #[doc = ""] + #[doc = " \\sa SDL_RenderGetViewport()"] + #[doc = " \\sa SDL_RenderSetLogicalSize()"] + pub fn SDL_RenderSetViewport(renderer: *mut SDL_Renderer, rect: *const SDL_Rect) + -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the drawing area for the current target."] + #[doc = ""] + #[doc = " \\sa SDL_RenderSetViewport()"] + pub fn SDL_RenderGetViewport(renderer: *mut SDL_Renderer, rect: *mut SDL_Rect); +} +extern "C" { + #[doc = " \\brief Set the clip rectangle for the current target."] + #[doc = ""] + #[doc = " \\param renderer The renderer for which clip rectangle should be set."] + #[doc = " \\param rect A pointer to the rectangle to set as the clip rectangle,"] + #[doc = " relative to the viewport, or NULL to disable clipping."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + #[doc = ""] + #[doc = " \\sa SDL_RenderGetClipRect()"] + pub fn SDL_RenderSetClipRect(renderer: *mut SDL_Renderer, rect: *const SDL_Rect) + -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the clip rectangle for the current target."] + #[doc = ""] + #[doc = " \\param renderer The renderer from which clip rectangle should be queried."] + #[doc = " \\param rect A pointer filled in with the current clip rectangle, or"] + #[doc = " an empty rectangle if clipping is disabled."] + #[doc = ""] + #[doc = " \\sa SDL_RenderSetClipRect()"] + pub fn SDL_RenderGetClipRect(renderer: *mut SDL_Renderer, rect: *mut SDL_Rect); +} +extern "C" { + #[doc = " \\brief Get whether clipping is enabled on the given renderer."] + #[doc = ""] + #[doc = " \\param renderer The renderer from which clip state should be queried."] + #[doc = ""] + #[doc = " \\sa SDL_RenderGetClipRect()"] + pub fn SDL_RenderIsClipEnabled(renderer: *mut SDL_Renderer) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Set the drawing scale for rendering on the current target."] + #[doc = ""] + #[doc = " \\param renderer The renderer for which the drawing scale should be set."] + #[doc = " \\param scaleX The horizontal scaling factor"] + #[doc = " \\param scaleY The vertical scaling factor"] + #[doc = ""] + #[doc = " The drawing coordinates are scaled by the x/y scaling factors"] + #[doc = " before they are used by the renderer. This allows resolution"] + #[doc = " independent drawing with a single coordinate system."] + #[doc = ""] + #[doc = " \\note If this results in scaling or subpixel drawing by the"] + #[doc = " rendering backend, it will be handled using the appropriate"] + #[doc = " quality hints. For best results use integer scaling factors."] + #[doc = ""] + #[doc = " \\sa SDL_RenderGetScale()"] + #[doc = " \\sa SDL_RenderSetLogicalSize()"] + pub fn SDL_RenderSetScale(renderer: *mut SDL_Renderer, scaleX: f32, scaleY: f32) + -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the drawing scale for the current target."] + #[doc = ""] + #[doc = " \\param renderer The renderer from which drawing scale should be queried."] + #[doc = " \\param scaleX A pointer filled in with the horizontal scaling factor"] + #[doc = " \\param scaleY A pointer filled in with the vertical scaling factor"] + #[doc = ""] + #[doc = " \\sa SDL_RenderSetScale()"] + pub fn SDL_RenderGetScale(renderer: *mut SDL_Renderer, scaleX: *mut f32, scaleY: *mut f32); +} +extern "C" { + #[doc = " \\brief Set the color used for drawing operations (Rect, Line and Clear)."] + #[doc = ""] + #[doc = " \\param renderer The renderer for which drawing color should be set."] + #[doc = " \\param r The red value used to draw on the rendering target."] + #[doc = " \\param g The green value used to draw on the rendering target."] + #[doc = " \\param b The blue value used to draw on the rendering target."] + #[doc = " \\param a The alpha value used to draw on the rendering target, usually"] + #[doc = " ::SDL_ALPHA_OPAQUE (255)."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_SetRenderDrawColor( + renderer: *mut SDL_Renderer, + r: Uint8, + g: Uint8, + b: Uint8, + a: Uint8, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the color used for drawing operations (Rect, Line and Clear)."] + #[doc = ""] + #[doc = " \\param renderer The renderer from which drawing color should be queried."] + #[doc = " \\param r A pointer to the red value used to draw on the rendering target."] + #[doc = " \\param g A pointer to the green value used to draw on the rendering target."] + #[doc = " \\param b A pointer to the blue value used to draw on the rendering target."] + #[doc = " \\param a A pointer to the alpha value used to draw on the rendering target,"] + #[doc = " usually ::SDL_ALPHA_OPAQUE (255)."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_GetRenderDrawColor( + renderer: *mut SDL_Renderer, + r: *mut Uint8, + g: *mut Uint8, + b: *mut Uint8, + a: *mut Uint8, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set the blend mode used for drawing operations (Fill and Line)."] + #[doc = ""] + #[doc = " \\param renderer The renderer for which blend mode should be set."] + #[doc = " \\param blendMode ::SDL_BlendMode to use for blending."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + #[doc = ""] + #[doc = " \\note If the blend mode is not supported, the closest supported mode is"] + #[doc = " chosen."] + #[doc = ""] + #[doc = " \\sa SDL_GetRenderDrawBlendMode()"] + pub fn SDL_SetRenderDrawBlendMode( + renderer: *mut SDL_Renderer, + blendMode: SDL_BlendMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the blend mode used for drawing operations."] + #[doc = ""] + #[doc = " \\param renderer The renderer from which blend mode should be queried."] + #[doc = " \\param blendMode A pointer filled in with the current blend mode."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + #[doc = ""] + #[doc = " \\sa SDL_SetRenderDrawBlendMode()"] + pub fn SDL_GetRenderDrawBlendMode( + renderer: *mut SDL_Renderer, + blendMode: *mut SDL_BlendMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Clear the current rendering target with the drawing color"] + #[doc = ""] + #[doc = " This function clears the entire rendering target, ignoring the viewport and"] + #[doc = " the clip rectangle."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderClear(renderer: *mut SDL_Renderer) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw a point on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw a point."] + #[doc = " \\param x The x coordinate of the point."] + #[doc = " \\param y The y coordinate of the point."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawPoint( + renderer: *mut SDL_Renderer, + x: libc::c_int, + y: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw multiple points on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw multiple points."] + #[doc = " \\param points The points to draw"] + #[doc = " \\param count The number of points to draw"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawPoints( + renderer: *mut SDL_Renderer, + points: *const SDL_Point, + count: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw a line on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw a line."] + #[doc = " \\param x1 The x coordinate of the start point."] + #[doc = " \\param y1 The y coordinate of the start point."] + #[doc = " \\param x2 The x coordinate of the end point."] + #[doc = " \\param y2 The y coordinate of the end point."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawLine( + renderer: *mut SDL_Renderer, + x1: libc::c_int, + y1: libc::c_int, + x2: libc::c_int, + y2: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw a series of connected lines on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw multiple lines."] + #[doc = " \\param points The points along the lines"] + #[doc = " \\param count The number of points, drawing count-1 lines"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawLines( + renderer: *mut SDL_Renderer, + points: *const SDL_Point, + count: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw a rectangle on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw a rectangle."] + #[doc = " \\param rect A pointer to the destination rectangle, or NULL to outline the entire rendering target."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawRect(renderer: *mut SDL_Renderer, rect: *const SDL_Rect) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw some number of rectangles on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw multiple rectangles."] + #[doc = " \\param rects A pointer to an array of destination rectangles."] + #[doc = " \\param count The number of rectangles."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawRects( + renderer: *mut SDL_Renderer, + rects: *const SDL_Rect, + count: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Fill a rectangle on the current rendering target with the drawing color."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should fill a rectangle."] + #[doc = " \\param rect A pointer to the destination rectangle, or NULL for the entire"] + #[doc = " rendering target."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderFillRect(renderer: *mut SDL_Renderer, rect: *const SDL_Rect) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Fill some number of rectangles on the current rendering target with the drawing color."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should fill multiple rectangles."] + #[doc = " \\param rects A pointer to an array of destination rectangles."] + #[doc = " \\param count The number of rectangles."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderFillRects( + renderer: *mut SDL_Renderer, + rects: *const SDL_Rect, + count: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Copy a portion of the texture to the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should copy parts of a texture."] + #[doc = " \\param texture The source texture."] + #[doc = " \\param srcrect A pointer to the source rectangle, or NULL for the entire"] + #[doc = " texture."] + #[doc = " \\param dstrect A pointer to the destination rectangle, or NULL for the"] + #[doc = " entire rendering target."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderCopy( + renderer: *mut SDL_Renderer, + texture: *mut SDL_Texture, + srcrect: *const SDL_Rect, + dstrect: *const SDL_Rect, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Copy a portion of the source texture to the current rendering target, rotating it by angle around the given center"] + #[doc = ""] + #[doc = " \\param renderer The renderer which should copy parts of a texture."] + #[doc = " \\param texture The source texture."] + #[doc = " \\param srcrect A pointer to the source rectangle, or NULL for the entire"] + #[doc = " texture."] + #[doc = " \\param dstrect A pointer to the destination rectangle, or NULL for the"] + #[doc = " entire rendering target."] + #[doc = " \\param angle An angle in degrees that indicates the rotation that will be applied to dstrect, rotating it in a clockwise direction"] + #[doc = " \\param center A pointer to a point indicating the point around which dstrect will be rotated (if NULL, rotation will be done around dstrect.w/2, dstrect.h/2)."] + #[doc = " \\param flip An SDL_RendererFlip value stating which flipping actions should be performed on the texture"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderCopyEx( + renderer: *mut SDL_Renderer, + texture: *mut SDL_Texture, + srcrect: *const SDL_Rect, + dstrect: *const SDL_Rect, + angle: f64, + center: *const SDL_Point, + flip: SDL_RendererFlip, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw a point on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw a point."] + #[doc = " \\param x The x coordinate of the point."] + #[doc = " \\param y The y coordinate of the point."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawPointF(renderer: *mut SDL_Renderer, x: f32, y: f32) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw multiple points on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw multiple points."] + #[doc = " \\param points The points to draw"] + #[doc = " \\param count The number of points to draw"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawPointsF( + renderer: *mut SDL_Renderer, + points: *const SDL_FPoint, + count: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw a line on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw a line."] + #[doc = " \\param x1 The x coordinate of the start point."] + #[doc = " \\param y1 The y coordinate of the start point."] + #[doc = " \\param x2 The x coordinate of the end point."] + #[doc = " \\param y2 The y coordinate of the end point."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawLineF( + renderer: *mut SDL_Renderer, + x1: f32, + y1: f32, + x2: f32, + y2: f32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw a series of connected lines on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw multiple lines."] + #[doc = " \\param points The points along the lines"] + #[doc = " \\param count The number of points, drawing count-1 lines"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawLinesF( + renderer: *mut SDL_Renderer, + points: *const SDL_FPoint, + count: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw a rectangle on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw a rectangle."] + #[doc = " \\param rect A pointer to the destination rectangle, or NULL to outline the entire rendering target."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawRectF(renderer: *mut SDL_Renderer, rect: *const SDL_FRect) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw some number of rectangles on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw multiple rectangles."] + #[doc = " \\param rects A pointer to an array of destination rectangles."] + #[doc = " \\param count The number of rectangles."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawRectsF( + renderer: *mut SDL_Renderer, + rects: *const SDL_FRect, + count: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Fill a rectangle on the current rendering target with the drawing color."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should fill a rectangle."] + #[doc = " \\param rect A pointer to the destination rectangle, or NULL for the entire"] + #[doc = " rendering target."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderFillRectF(renderer: *mut SDL_Renderer, rect: *const SDL_FRect) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Fill some number of rectangles on the current rendering target with the drawing color."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should fill multiple rectangles."] + #[doc = " \\param rects A pointer to an array of destination rectangles."] + #[doc = " \\param count The number of rectangles."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderFillRectsF( + renderer: *mut SDL_Renderer, + rects: *const SDL_FRect, + count: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Copy a portion of the texture to the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should copy parts of a texture."] + #[doc = " \\param texture The source texture."] + #[doc = " \\param srcrect A pointer to the source rectangle, or NULL for the entire"] + #[doc = " texture."] + #[doc = " \\param dstrect A pointer to the destination rectangle, or NULL for the"] + #[doc = " entire rendering target."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderCopyF( + renderer: *mut SDL_Renderer, + texture: *mut SDL_Texture, + srcrect: *const SDL_Rect, + dstrect: *const SDL_FRect, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Copy a portion of the source texture to the current rendering target, rotating it by angle around the given center"] + #[doc = ""] + #[doc = " \\param renderer The renderer which should copy parts of a texture."] + #[doc = " \\param texture The source texture."] + #[doc = " \\param srcrect A pointer to the source rectangle, or NULL for the entire"] + #[doc = " texture."] + #[doc = " \\param dstrect A pointer to the destination rectangle, or NULL for the"] + #[doc = " entire rendering target."] + #[doc = " \\param angle An angle in degrees that indicates the rotation that will be applied to dstrect, rotating it in a clockwise direction"] + #[doc = " \\param center A pointer to a point indicating the point around which dstrect will be rotated (if NULL, rotation will be done around dstrect.w/2, dstrect.h/2)."] + #[doc = " \\param flip An SDL_RendererFlip value stating which flipping actions should be performed on the texture"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderCopyExF( + renderer: *mut SDL_Renderer, + texture: *mut SDL_Texture, + srcrect: *const SDL_Rect, + dstrect: *const SDL_FRect, + angle: f64, + center: *const SDL_FPoint, + flip: SDL_RendererFlip, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Read pixels from the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer from which pixels should be read."] + #[doc = " \\param rect A pointer to the rectangle to read, or NULL for the entire"] + #[doc = " render target."] + #[doc = " \\param format The desired format of the pixel data, or 0 to use the format"] + #[doc = " of the rendering target"] + #[doc = " \\param pixels A pointer to be filled in with the pixel data"] + #[doc = " \\param pitch The pitch of the pixels parameter."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if pixel reading is not supported."] + #[doc = ""] + #[doc = " \\warning This is a very slow operation, and should not be used frequently."] + pub fn SDL_RenderReadPixels( + renderer: *mut SDL_Renderer, + rect: *const SDL_Rect, + format: Uint32, + pixels: *mut libc::c_void, + pitch: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Update the screen with rendering performed."] + pub fn SDL_RenderPresent(renderer: *mut SDL_Renderer); +} +extern "C" { + #[doc = " \\brief Destroy the specified texture."] + #[doc = ""] + #[doc = " \\sa SDL_CreateTexture()"] + #[doc = " \\sa SDL_CreateTextureFromSurface()"] + pub fn SDL_DestroyTexture(texture: *mut SDL_Texture); +} +extern "C" { + #[doc = " \\brief Destroy the rendering context for a window and free associated"] + #[doc = " textures."] + #[doc = ""] + #[doc = " \\sa SDL_CreateRenderer()"] + pub fn SDL_DestroyRenderer(renderer: *mut SDL_Renderer); +} +extern "C" { + #[doc = " \\brief Force the rendering context to flush any pending commands to the"] + #[doc = " underlying rendering API."] + #[doc = ""] + #[doc = " You do not need to (and in fact, shouldn't) call this function unless"] + #[doc = " you are planning to call into OpenGL/Direct3D/Metal/whatever directly"] + #[doc = " in addition to using an SDL_Renderer."] + #[doc = ""] + #[doc = " This is for a very-specific case: if you are using SDL's render API,"] + #[doc = " you asked for a specific renderer backend (OpenGL, Direct3D, etc),"] + #[doc = " you set SDL_HINT_RENDER_BATCHING to \"1\", and you plan to make"] + #[doc = " OpenGL/D3D/whatever calls in addition to SDL render API calls. If all of"] + #[doc = " this applies, you should call SDL_RenderFlush() between calls to SDL's"] + #[doc = " render API and the low-level API you're using in cooperation."] + #[doc = ""] + #[doc = " In all other cases, you can ignore this function. This is only here to"] + #[doc = " get maximum performance out of a specific situation. In all other cases,"] + #[doc = " SDL will do the right thing, perhaps at a performance loss."] + #[doc = ""] + #[doc = " This function is first available in SDL 2.0.10, and is not needed in"] + #[doc = " 2.0.9 and earlier, as earlier versions did not queue rendering commands"] + #[doc = " at all, instead flushing them to the OS immediately."] + pub fn SDL_RenderFlush(renderer: *mut SDL_Renderer) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Bind the texture to the current OpenGL/ES/ES2 context for use with"] + #[doc = " OpenGL instructions."] + #[doc = ""] + #[doc = " \\param texture The SDL texture to bind"] + #[doc = " \\param texw A pointer to a float that will be filled with the texture width"] + #[doc = " \\param texh A pointer to a float that will be filled with the texture height"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the operation is not supported"] + pub fn SDL_GL_BindTexture( + texture: *mut SDL_Texture, + texw: *mut f32, + texh: *mut f32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Unbind a texture from the current OpenGL/ES/ES2 context."] + #[doc = ""] + #[doc = " \\param texture The SDL texture to unbind"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the operation is not supported"] + pub fn SDL_GL_UnbindTexture(texture: *mut SDL_Texture) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the CAMetalLayer associated with the given Metal renderer"] + #[doc = ""] + #[doc = " \\param renderer The renderer to query"] + #[doc = ""] + #[doc = " \\return CAMetalLayer* on success, or NULL if the renderer isn't a Metal renderer"] + #[doc = ""] + #[doc = " \\sa SDL_RenderGetMetalCommandEncoder()"] + pub fn SDL_RenderGetMetalLayer(renderer: *mut SDL_Renderer) -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Get the Metal command encoder for the current frame"] + #[doc = ""] + #[doc = " \\param renderer The renderer to query"] + #[doc = ""] + #[doc = " \\return id on success, or NULL if the renderer isn't a Metal renderer"] + #[doc = ""] + #[doc = " \\sa SDL_RenderGetMetalLayer()"] + pub fn SDL_RenderGetMetalCommandEncoder(renderer: *mut SDL_Renderer) -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Create a window that can be shaped with the specified position, dimensions, and flags."] + #[doc = ""] + #[doc = " \\param title The title of the window, in UTF-8 encoding."] + #[doc = " \\param x The x position of the window, ::SDL_WINDOWPOS_CENTERED, or"] + #[doc = " ::SDL_WINDOWPOS_UNDEFINED."] + #[doc = " \\param y The y position of the window, ::SDL_WINDOWPOS_CENTERED, or"] + #[doc = " ::SDL_WINDOWPOS_UNDEFINED."] + #[doc = " \\param w The width of the window."] + #[doc = " \\param h The height of the window."] + #[doc = " \\param flags The flags for the window, a mask of SDL_WINDOW_BORDERLESS with any of the following:"] + #[doc = " ::SDL_WINDOW_OPENGL, ::SDL_WINDOW_INPUT_GRABBED,"] + #[doc = " ::SDL_WINDOW_HIDDEN, ::SDL_WINDOW_RESIZABLE,"] + #[doc = " ::SDL_WINDOW_MAXIMIZED, ::SDL_WINDOW_MINIMIZED,"] + #[doc = " ::SDL_WINDOW_BORDERLESS is always set, and ::SDL_WINDOW_FULLSCREEN is always unset."] + #[doc = ""] + #[doc = " \\return The window created, or NULL if window creation failed."] + #[doc = ""] + #[doc = " \\sa SDL_DestroyWindow()"] + pub fn SDL_CreateShapedWindow( + title: *const libc::c_char, + x: libc::c_uint, + y: libc::c_uint, + w: libc::c_uint, + h: libc::c_uint, + flags: Uint32, + ) -> *mut SDL_Window; +} +extern "C" { + #[doc = " \\brief Return whether the given window is a shaped window."] + #[doc = ""] + #[doc = " \\param window The window to query for being shaped."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the window is a window that can be shaped, SDL_FALSE if the window is unshaped or NULL."] + #[doc = ""] + #[doc = " \\sa SDL_CreateShapedWindow"] + pub fn SDL_IsShapedWindow(window: *const SDL_Window) -> SDL_bool; +} +#[repr(u32)] +#[doc = " \\brief An enum denoting the specific type of contents present in an SDL_WindowShapeParams union."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum WindowShapeMode { + #[doc = " \\brief The default mode, a binarized alpha cutoff of 1."] + ShapeModeDefault = 0, + #[doc = " \\brief A binarized alpha cutoff with a given integer value."] + ShapeModeBinarizeAlpha = 1, + #[doc = " \\brief A binarized alpha cutoff with a given integer value, but with the opposite comparison."] + ShapeModeReverseBinarizeAlpha = 2, + #[doc = " \\brief A color key is applied."] + ShapeModeColorKey = 3, +} +#[doc = " \\brief A union containing parameters for shaped windows."] +#[repr(C)] +#[derive(Copy, Clone)] +pub union SDL_WindowShapeParams { + #[doc = " \\brief A cutoff alpha value for binarization of the window shape's alpha channel."] + pub binarizationCutoff: Uint8, + pub colorKey: SDL_Color, + _bindgen_union_align: [u8; 4usize], +} +#[test] +fn bindgen_test_layout_SDL_WindowShapeParams() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(SDL_WindowShapeParams)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(SDL_WindowShapeParams)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).binarizationCutoff as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowShapeParams), + "::", + stringify!(binarizationCutoff) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).colorKey as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowShapeParams), + "::", + stringify!(colorKey) + ) + ); +} +#[doc = " \\brief A struct that tags the SDL_WindowShapeParams union with an enum describing the type of its contents."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_WindowShapeMode { + #[doc = " \\brief The mode of these window-shape parameters."] + pub mode: WindowShapeMode, + #[doc = " \\brief Window-shape parameters."] + pub parameters: SDL_WindowShapeParams, +} +#[test] +fn bindgen_test_layout_SDL_WindowShapeMode() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(SDL_WindowShapeMode)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_WindowShapeMode)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).mode as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowShapeMode), + "::", + stringify!(mode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).parameters as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowShapeMode), + "::", + stringify!(parameters) + ) + ); +} +extern "C" { + #[doc = " \\brief Set the shape and parameters of a shaped window."] + #[doc = ""] + #[doc = " \\param window The shaped window whose parameters should be set."] + #[doc = " \\param shape A surface encoding the desired shape for the window."] + #[doc = " \\param shape_mode The parameters to set for the shaped window."] + #[doc = ""] + #[doc = " \\return 0 on success, SDL_INVALID_SHAPE_ARGUMENT on an invalid shape argument, or SDL_NONSHAPEABLE_WINDOW"] + #[doc = " if the SDL_Window given does not reference a valid shaped window."] + #[doc = ""] + #[doc = " \\sa SDL_WindowShapeMode"] + #[doc = " \\sa SDL_GetShapedWindowMode."] + pub fn SDL_SetWindowShape( + window: *mut SDL_Window, + shape: *mut SDL_Surface, + shape_mode: *mut SDL_WindowShapeMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the shape parameters of a shaped window."] + #[doc = ""] + #[doc = " \\param window The shaped window whose parameters should be retrieved."] + #[doc = " \\param shape_mode An empty shape-mode structure to fill, or NULL to check whether the window has a shape."] + #[doc = ""] + #[doc = " \\return 0 if the window has a shape and, provided shape_mode was not NULL, shape_mode has been filled with the mode"] + #[doc = " data, SDL_NONSHAPEABLE_WINDOW if the SDL_Window given is not a shaped window, or SDL_WINDOW_LACKS_SHAPE if"] + #[doc = " the SDL_Window given is a shapeable window currently lacking a shape."] + #[doc = ""] + #[doc = " \\sa SDL_WindowShapeMode"] + #[doc = " \\sa SDL_SetWindowShape"] + pub fn SDL_GetShapedWindowMode( + window: *mut SDL_Window, + shape_mode: *mut SDL_WindowShapeMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = "\\brief Sets the UNIX nice value for a thread, using setpriority() if possible, and RealtimeKit if available."] + #[doc = ""] + #[doc = "\\return 0 on success, or -1 on error."] + pub fn SDL_LinuxSetThreadPriority(threadID: Sint64, priority: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = "\\brief Return true if the current device is a tablet."] + pub fn SDL_IsTablet() -> SDL_bool; +} +extern "C" { + pub fn SDL_OnApplicationWillTerminate(); +} +extern "C" { + pub fn SDL_OnApplicationDidReceiveMemoryWarning(); +} +extern "C" { + pub fn SDL_OnApplicationWillResignActive(); +} +extern "C" { + pub fn SDL_OnApplicationDidEnterBackground(); +} +extern "C" { + pub fn SDL_OnApplicationWillEnterForeground(); +} +extern "C" { + pub fn SDL_OnApplicationDidBecomeActive(); +} +extern "C" { + #[doc = " \\brief Get the number of milliseconds since the SDL library initialization."] + #[doc = ""] + #[doc = " \\note This value wraps if the program runs for more than ~49 days."] + pub fn SDL_GetTicks() -> Uint32; +} +extern "C" { + #[doc = " \\brief Get the current value of the high resolution counter"] + pub fn SDL_GetPerformanceCounter() -> Uint64; +} +extern "C" { + #[doc = " \\brief Get the count per second of the high resolution counter"] + pub fn SDL_GetPerformanceFrequency() -> Uint64; +} +extern "C" { + #[doc = " \\brief Wait a specified number of milliseconds before returning."] + pub fn SDL_Delay(ms: Uint32); +} +#[doc = " Function prototype for the timer callback function."] +#[doc = ""] +#[doc = " The callback function is passed the current timer interval and returns"] +#[doc = " the next timer interval. If the returned value is the same as the one"] +#[doc = " passed in, the periodic alarm continues, otherwise a new alarm is"] +#[doc = " scheduled. If the callback returns 0, the periodic alarm is cancelled."] +pub type SDL_TimerCallback = ::core::option::Option< + unsafe extern "C" fn(interval: Uint32, param: *mut libc::c_void) -> Uint32, +>; +#[doc = " Definition of the timer ID type."] +pub type SDL_TimerID = libc::c_int; +extern "C" { + #[doc = " \\brief Add a new timer to the pool of timers already running."] + #[doc = ""] + #[doc = " \\return A timer ID, or 0 when an error occurs."] + pub fn SDL_AddTimer( + interval: Uint32, + callback: SDL_TimerCallback, + param: *mut libc::c_void, + ) -> SDL_TimerID; +} +extern "C" { + #[doc = " \\brief Remove a timer knowing its ID."] + #[doc = ""] + #[doc = " \\return A boolean value indicating success or failure."] + #[doc = ""] + #[doc = " \\warning It is not safe to remove a timer multiple times."] + pub fn SDL_RemoveTimer(id: SDL_TimerID) -> SDL_bool; +} +#[doc = " \\brief Information the version of SDL in use."] +#[doc = ""] +#[doc = " Represents the library's version as three levels: major revision"] +#[doc = " (increments with massive changes, additions, and enhancements),"] +#[doc = " minor revision (increments with backwards-compatible changes to the"] +#[doc = " major revision), and patchlevel (increments with fixes to the minor"] +#[doc = " revision)."] +#[doc = ""] +#[doc = " \\sa SDL_VERSION"] +#[doc = " \\sa SDL_GetVersion"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_version { + #[doc = "< major version"] + pub major: Uint8, + #[doc = "< minor version"] + pub minor: Uint8, + #[doc = "< update version"] + pub patch: Uint8, +} +#[test] +fn bindgen_test_layout_SDL_version() { + assert_eq!( + ::core::mem::size_of::(), + 3usize, + concat!("Size of: ", stringify!(SDL_version)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(SDL_version)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).major as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_version), + "::", + stringify!(major) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).minor as *const _ as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(SDL_version), + "::", + stringify!(minor) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).patch as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(SDL_version), + "::", + stringify!(patch) + ) + ); +} +extern "C" { + #[doc = " \\brief Get the version of SDL that is linked against your program."] + #[doc = ""] + #[doc = " If you are linking to SDL dynamically, then it is possible that the"] + #[doc = " current version will be different than the version you compiled against."] + #[doc = " This function returns the current version, while SDL_VERSION() is a"] + #[doc = " macro that tells you what version you compiled with."] + #[doc = ""] + #[doc = " \\code"] + #[doc = " SDL_version compiled;"] + #[doc = " SDL_version linked;"] + #[doc = ""] + #[doc = " SDL_VERSION(&compiled);"] + #[doc = " SDL_GetVersion(&linked);"] + #[doc = " printf(\"We compiled against SDL version %d.%d.%d ...\\n\","] + #[doc = " compiled.major, compiled.minor, compiled.patch);"] + #[doc = " printf(\"But we linked against SDL version %d.%d.%d.\\n\","] + #[doc = " linked.major, linked.minor, linked.patch);"] + #[doc = " \\endcode"] + #[doc = ""] + #[doc = " This function may be called safely at any time, even before SDL_Init()."] + #[doc = ""] + #[doc = " \\sa SDL_VERSION"] + pub fn SDL_GetVersion(ver: *mut SDL_version); +} +extern "C" { + #[doc = " \\brief Get the code revision of SDL that is linked against your program."] + #[doc = ""] + #[doc = " Returns an arbitrary string (a hash value) uniquely identifying the"] + #[doc = " exact revision of the SDL library in use, and is only useful in comparing"] + #[doc = " against other revisions. It is NOT an incrementing number."] + pub fn SDL_GetRevision() -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Get the revision number of SDL that is linked against your program."] + #[doc = ""] + #[doc = " Returns a number uniquely identifying the exact revision of the SDL"] + #[doc = " library in use. It is an incrementing number based on commits to"] + #[doc = " hg.libsdl.org."] + pub fn SDL_GetRevisionNumber() -> libc::c_int; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Locale { + #[doc = "< A language name, like \"en\" for English."] + pub language: *const libc::c_char, + #[doc = "< A country, like \"US\" for America. Can be NULL."] + pub country: *const libc::c_char, +} +#[test] +fn bindgen_test_layout_SDL_Locale() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_Locale)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_Locale)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).language as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Locale), + "::", + stringify!(language) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).country as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_Locale), + "::", + stringify!(country) + ) + ); +} +extern "C" { + #[doc = " \\brief Report the user's preferred locale."] + #[doc = ""] + #[doc = " This returns an array of SDL_Locale structs, the final item zeroed out."] + #[doc = " When the caller is done with this array, it should call SDL_free() on"] + #[doc = " the returned value; all the memory involved is allocated in a single"] + #[doc = " block, so a single SDL_free() will suffice."] + #[doc = ""] + #[doc = " Returned language strings are in the format xx, where 'xx' is an ISO-639"] + #[doc = " language specifier (such as \"en\" for English, \"de\" for German, etc)."] + #[doc = " Country strings are in the format YY, where \"YY\" is an ISO-3166 country"] + #[doc = " code (such as \"US\" for the United States, \"CA\" for Canada, etc). Country"] + #[doc = " might be NULL if there's no specific guidance on them (so you might get"] + #[doc = " { \"en\", \"US\" } for American English, but { \"en\", NULL } means \"English"] + #[doc = " language, generically\"). Language strings are never NULL, except to"] + #[doc = " terminate the array."] + #[doc = ""] + #[doc = " Please note that not all of these strings are 2 characters; some are"] + #[doc = " three or more."] + #[doc = ""] + #[doc = " The returned list of locales are in the order of the user's preference."] + #[doc = " For example, a German citizen that is fluent in US English and knows"] + #[doc = " enough Japanese to navigate around Tokyo might have a list like:"] + #[doc = " { \"de\", \"en_US\", \"jp\", NULL }. Someone from England might prefer British"] + #[doc = " English (where \"color\" is spelled \"colour\", etc), but will settle for"] + #[doc = " anything like it: { \"en_GB\", \"en\", NULL }."] + #[doc = ""] + #[doc = " This function returns NULL on error, including when the platform does not"] + #[doc = " supply this information at all."] + #[doc = ""] + #[doc = " This might be a \"slow\" call that has to query the operating system. It's"] + #[doc = " best to ask for this once and save the results. However, this list can"] + #[doc = " change, usually because the user has changed a system preference outside"] + #[doc = " of your program; SDL will send an SDL_LOCALECHANGED event in this case,"] + #[doc = " if possible, and you can call this function again to get an updated copy"] + #[doc = " of preferred locales."] + #[doc = ""] + #[doc = " \\return array of locales, terminated with a locale with a NULL language"] + #[doc = " field. Will return NULL on error."] + pub fn SDL_GetPreferredLocales() -> *mut SDL_Locale; +} +extern "C" { + #[doc = " \\brief Open an URL / URI in the browser or other"] + #[doc = ""] + #[doc = " Open a URL in a separate, system-provided application. How this works will"] + #[doc = " vary wildly depending on the platform. This will likely launch what"] + #[doc = " makes sense to handle a specific URL's protocol (a web browser for http://,"] + #[doc = " etc), but it might also be able to launch file managers for directories"] + #[doc = " and other things."] + #[doc = ""] + #[doc = " What happens when you open a URL varies wildly as well: your game window"] + #[doc = " may lose focus (and may or may not lose focus if your game was fullscreen"] + #[doc = " or grabbing input at the time). On mobile devices, your app will likely"] + #[doc = " move to the background or your process might be paused. Any given platform"] + #[doc = " may or may not handle a given URL."] + #[doc = ""] + #[doc = " If this is unimplemented (or simply unavailable) for a platform, this will"] + #[doc = " fail with an error. A successful result does not mean the URL loaded, just"] + #[doc = " that we launched something to handle it (or at least believe we did)."] + #[doc = ""] + #[doc = " All this to say: this function can be useful, but you should definitely"] + #[doc = " test it on every platform you target."] + #[doc = ""] + #[doc = " \\param url A valid URL to open."] + #[doc = " \\return 0 on success, or -1 on error."] + pub fn SDL_OpenURL(url: *const libc::c_char) -> libc::c_int; +} +extern "C" { + #[doc = " This function initializes the subsystems specified by \\c flags"] + pub fn SDL_Init(flags: Uint32) -> libc::c_int; +} +extern "C" { + #[doc = " This function initializes specific SDL subsystems"] + #[doc = ""] + #[doc = " Subsystem initialization is ref-counted, you must call"] + #[doc = " SDL_QuitSubSystem() for each SDL_InitSubSystem() to correctly"] + #[doc = " shutdown a subsystem manually (or call SDL_Quit() to force shutdown)."] + #[doc = " If a subsystem is already loaded then this call will"] + #[doc = " increase the ref-count and return."] + pub fn SDL_InitSubSystem(flags: Uint32) -> libc::c_int; +} +extern "C" { + #[doc = " This function cleans up specific SDL subsystems"] + pub fn SDL_QuitSubSystem(flags: Uint32); +} +extern "C" { + #[doc = " This function returns a mask of the specified subsystems which have"] + #[doc = " previously been initialized."] + #[doc = ""] + #[doc = " If \\c flags is 0, it returns a mask of all initialized subsystems."] + pub fn SDL_WasInit(flags: Uint32) -> Uint32; +} +extern "C" { + #[doc = " This function cleans up all initialized subsystems. You should"] + #[doc = " call it upon all exit conditions."] + pub fn SDL_Quit(); +} +pub type XID = libc::c_ulong; +pub type Mask = libc::c_ulong; +pub type Atom = libc::c_ulong; +pub type VisualID = libc::c_ulong; +pub type Time = libc::c_ulong; +pub type Window = XID; +pub type Drawable = XID; +pub type Font = XID; +pub type Pixmap = XID; +pub type Cursor = XID; +pub type Colormap = XID; +pub type GContext = XID; +pub type KeySym = XID; +pub type KeyCode = libc::c_uchar; +extern "C" { + pub fn _Xmblen(str: *mut libc::c_char, len: libc::c_int) -> libc::c_int; +} +pub type XPointer = *mut libc::c_char; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XExtData { + pub number: libc::c_int, + pub next: *mut _XExtData, + pub free_private: + ::core::option::Option libc::c_int>, + pub private_data: XPointer, +} +#[test] +fn bindgen_test_layout__XExtData() { + assert_eq!( + ::core::mem::size_of::<_XExtData>(), + 32usize, + concat!("Size of: ", stringify!(_XExtData)) + ); + assert_eq!( + ::core::mem::align_of::<_XExtData>(), + 8usize, + concat!("Alignment of ", stringify!(_XExtData)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XExtData>())).number as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XExtData), + "::", + stringify!(number) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XExtData>())).next as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_XExtData), + "::", + stringify!(next) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XExtData>())).free_private as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_XExtData), + "::", + stringify!(free_private) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XExtData>())).private_data as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_XExtData), + "::", + stringify!(private_data) + ) + ); +} +pub type XExtData = _XExtData; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XExtCodes { + pub extension: libc::c_int, + pub major_opcode: libc::c_int, + pub first_event: libc::c_int, + pub first_error: libc::c_int, +} +#[test] +fn bindgen_test_layout_XExtCodes() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XExtCodes)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(XExtCodes)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).extension as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XExtCodes), + "::", + stringify!(extension) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).major_opcode as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XExtCodes), + "::", + stringify!(major_opcode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).first_event as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XExtCodes), + "::", + stringify!(first_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).first_error as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(XExtCodes), + "::", + stringify!(first_error) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XPixmapFormatValues { + pub depth: libc::c_int, + pub bits_per_pixel: libc::c_int, + pub scanline_pad: libc::c_int, +} +#[test] +fn bindgen_test_layout_XPixmapFormatValues() { + assert_eq!( + ::core::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(XPixmapFormatValues)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(XPixmapFormatValues)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).depth as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XPixmapFormatValues), + "::", + stringify!(depth) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).bits_per_pixel as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XPixmapFormatValues), + "::", + stringify!(bits_per_pixel) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).scanline_pad as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XPixmapFormatValues), + "::", + stringify!(scanline_pad) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XGCValues { + pub function: libc::c_int, + pub plane_mask: libc::c_ulong, + pub foreground: libc::c_ulong, + pub background: libc::c_ulong, + pub line_width: libc::c_int, + pub line_style: libc::c_int, + pub cap_style: libc::c_int, + pub join_style: libc::c_int, + pub fill_style: libc::c_int, + pub fill_rule: libc::c_int, + pub arc_mode: libc::c_int, + pub tile: Pixmap, + pub stipple: Pixmap, + pub ts_x_origin: libc::c_int, + pub ts_y_origin: libc::c_int, + pub font: Font, + pub subwindow_mode: libc::c_int, + pub graphics_exposures: libc::c_int, + pub clip_x_origin: libc::c_int, + pub clip_y_origin: libc::c_int, + pub clip_mask: Pixmap, + pub dash_offset: libc::c_int, + pub dashes: libc::c_char, +} +#[test] +fn bindgen_test_layout_XGCValues() { + assert_eq!( + ::core::mem::size_of::(), + 128usize, + concat!("Size of: ", stringify!(XGCValues)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XGCValues)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).function as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(function) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).plane_mask as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(plane_mask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).foreground as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(foreground) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).background as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(background) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).line_width as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(line_width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).line_style as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(line_style) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).cap_style as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(cap_style) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).join_style as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(join_style) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fill_style as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(fill_style) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fill_rule as *const _ as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(fill_rule) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).arc_mode as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(arc_mode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).tile as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(tile) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).stipple as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(stipple) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ts_x_origin as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(ts_x_origin) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ts_y_origin as *const _ as usize }, + 84usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(ts_y_origin) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).font as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(font) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).subwindow_mode as *const _ as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(subwindow_mode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).graphics_exposures as *const _ as usize }, + 100usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(graphics_exposures) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).clip_x_origin as *const _ as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(clip_x_origin) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).clip_y_origin as *const _ as usize }, + 108usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(clip_y_origin) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).clip_mask as *const _ as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(clip_mask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).dash_offset as *const _ as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(dash_offset) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).dashes as *const _ as usize }, + 124usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(dashes) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XGC { + _unused: [u8; 0], +} +pub type GC = *mut _XGC; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct Visual { + pub ext_data: *mut XExtData, + pub visualid: VisualID, + pub class: libc::c_int, + pub red_mask: libc::c_ulong, + pub green_mask: libc::c_ulong, + pub blue_mask: libc::c_ulong, + pub bits_per_rgb: libc::c_int, + pub map_entries: libc::c_int, +} +#[test] +fn bindgen_test_layout_Visual() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(Visual)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(Visual)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ext_data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Visual), + "::", + stringify!(ext_data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).visualid as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Visual), + "::", + stringify!(visualid) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).class as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(Visual), + "::", + stringify!(class) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).red_mask as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(Visual), + "::", + stringify!(red_mask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).green_mask as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(Visual), + "::", + stringify!(green_mask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).blue_mask as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(Visual), + "::", + stringify!(blue_mask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).bits_per_rgb as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(Visual), + "::", + stringify!(bits_per_rgb) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).map_entries as *const _ as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(Visual), + "::", + stringify!(map_entries) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct Depth { + pub depth: libc::c_int, + pub nvisuals: libc::c_int, + pub visuals: *mut Visual, +} +#[test] +fn bindgen_test_layout_Depth() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(Depth)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(Depth)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).depth as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Depth), + "::", + stringify!(depth) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).nvisuals as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Depth), + "::", + stringify!(nvisuals) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).visuals as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Depth), + "::", + stringify!(visuals) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XDisplay { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct Screen { + pub ext_data: *mut XExtData, + pub display: *mut _XDisplay, + pub root: Window, + pub width: libc::c_int, + pub height: libc::c_int, + pub mwidth: libc::c_int, + pub mheight: libc::c_int, + pub ndepths: libc::c_int, + pub depths: *mut Depth, + pub root_depth: libc::c_int, + pub root_visual: *mut Visual, + pub default_gc: GC, + pub cmap: Colormap, + pub white_pixel: libc::c_ulong, + pub black_pixel: libc::c_ulong, + pub max_maps: libc::c_int, + pub min_maps: libc::c_int, + pub backing_store: libc::c_int, + pub save_unders: libc::c_int, + pub root_input_mask: libc::c_long, +} +#[test] +fn bindgen_test_layout_Screen() { + assert_eq!( + ::core::mem::size_of::(), + 128usize, + concat!("Size of: ", stringify!(Screen)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(Screen)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ext_data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(ext_data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).root as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).height as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).mwidth as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(mwidth) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).mheight as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(mheight) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ndepths as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(ndepths) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).depths as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(depths) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).root_depth as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(root_depth) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).root_visual as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(root_visual) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).default_gc as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(default_gc) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).cmap as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(cmap) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).white_pixel as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(white_pixel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).black_pixel as *const _ as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(black_pixel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).max_maps as *const _ as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(max_maps) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).min_maps as *const _ as usize }, + 108usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(min_maps) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).backing_store as *const _ as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(backing_store) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).save_unders as *const _ as usize }, + 116usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(save_unders) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).root_input_mask as *const _ as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(root_input_mask) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ScreenFormat { + pub ext_data: *mut XExtData, + pub depth: libc::c_int, + pub bits_per_pixel: libc::c_int, + pub scanline_pad: libc::c_int, +} +#[test] +fn bindgen_test_layout_ScreenFormat() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(ScreenFormat)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ScreenFormat)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ext_data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ScreenFormat), + "::", + stringify!(ext_data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).depth as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ScreenFormat), + "::", + stringify!(depth) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).bits_per_pixel as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(ScreenFormat), + "::", + stringify!(bits_per_pixel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).scanline_pad as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ScreenFormat), + "::", + stringify!(scanline_pad) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XSetWindowAttributes { + pub background_pixmap: Pixmap, + pub background_pixel: libc::c_ulong, + pub border_pixmap: Pixmap, + pub border_pixel: libc::c_ulong, + pub bit_gravity: libc::c_int, + pub win_gravity: libc::c_int, + pub backing_store: libc::c_int, + pub backing_planes: libc::c_ulong, + pub backing_pixel: libc::c_ulong, + pub save_under: libc::c_int, + pub event_mask: libc::c_long, + pub do_not_propagate_mask: libc::c_long, + pub override_redirect: libc::c_int, + pub colormap: Colormap, + pub cursor: Cursor, +} +#[test] +fn bindgen_test_layout_XSetWindowAttributes() { + assert_eq!( + ::core::mem::size_of::(), + 112usize, + concat!("Size of: ", stringify!(XSetWindowAttributes)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XSetWindowAttributes)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).background_pixmap as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(background_pixmap) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).background_pixel as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(background_pixel) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).border_pixmap as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(border_pixmap) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).border_pixel as *const _ as usize + }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(border_pixel) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).bit_gravity as *const _ as usize + }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(bit_gravity) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).win_gravity as *const _ as usize + }, + 36usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(win_gravity) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).backing_store as *const _ as usize + }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(backing_store) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).backing_planes as *const _ as usize + }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(backing_planes) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).backing_pixel as *const _ as usize + }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(backing_pixel) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).save_under as *const _ as usize + }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(save_under) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).event_mask as *const _ as usize + }, + 72usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(event_mask) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).do_not_propagate_mask as *const _ + as usize + }, + 80usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(do_not_propagate_mask) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).override_redirect as *const _ as usize + }, + 88usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(override_redirect) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).colormap as *const _ as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(colormap) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).cursor as *const _ as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(cursor) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XWindowAttributes { + pub x: libc::c_int, + pub y: libc::c_int, + pub width: libc::c_int, + pub height: libc::c_int, + pub border_width: libc::c_int, + pub depth: libc::c_int, + pub visual: *mut Visual, + pub root: Window, + pub class: libc::c_int, + pub bit_gravity: libc::c_int, + pub win_gravity: libc::c_int, + pub backing_store: libc::c_int, + pub backing_planes: libc::c_ulong, + pub backing_pixel: libc::c_ulong, + pub save_under: libc::c_int, + pub colormap: Colormap, + pub map_installed: libc::c_int, + pub map_state: libc::c_int, + pub all_event_masks: libc::c_long, + pub your_event_mask: libc::c_long, + pub do_not_propagate_mask: libc::c_long, + pub override_redirect: libc::c_int, + pub screen: *mut Screen, +} +#[test] +fn bindgen_test_layout_XWindowAttributes() { + assert_eq!( + ::core::mem::size_of::(), + 136usize, + concat!("Size of: ", stringify!(XWindowAttributes)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XWindowAttributes)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).height as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).border_width as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(border_width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).depth as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(depth) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).visual as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(visual) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).root as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).class as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(class) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).bit_gravity as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(bit_gravity) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).win_gravity as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(win_gravity) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).backing_store as *const _ as usize + }, + 52usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(backing_store) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).backing_planes as *const _ as usize + }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(backing_planes) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).backing_pixel as *const _ as usize + }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(backing_pixel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).save_under as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(save_under) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).colormap as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(colormap) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).map_installed as *const _ as usize + }, + 88usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(map_installed) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).map_state as *const _ as usize }, + 92usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(map_state) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).all_event_masks as *const _ as usize + }, + 96usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(all_event_masks) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).your_event_mask as *const _ as usize + }, + 104usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(your_event_mask) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).do_not_propagate_mask as *const _ + as usize + }, + 112usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(do_not_propagate_mask) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).override_redirect as *const _ as usize + }, + 120usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(override_redirect) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).screen as *const _ as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(screen) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XHostAddress { + pub family: libc::c_int, + pub length: libc::c_int, + pub address: *mut libc::c_char, +} +#[test] +fn bindgen_test_layout_XHostAddress() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XHostAddress)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XHostAddress)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).family as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XHostAddress), + "::", + stringify!(family) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).length as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XHostAddress), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).address as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XHostAddress), + "::", + stringify!(address) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XServerInterpretedAddress { + pub typelength: libc::c_int, + pub valuelength: libc::c_int, + pub type_: *mut libc::c_char, + pub value: *mut libc::c_char, +} +#[test] +fn bindgen_test_layout_XServerInterpretedAddress() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(XServerInterpretedAddress)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XServerInterpretedAddress)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).typelength as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XServerInterpretedAddress), + "::", + stringify!(typelength) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).valuelength as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XServerInterpretedAddress), + "::", + stringify!(valuelength) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).type_ as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XServerInterpretedAddress), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).value as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XServerInterpretedAddress), + "::", + stringify!(value) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XImage { + pub width: libc::c_int, + pub height: libc::c_int, + pub xoffset: libc::c_int, + pub format: libc::c_int, + pub data: *mut libc::c_char, + pub byte_order: libc::c_int, + pub bitmap_unit: libc::c_int, + pub bitmap_bit_order: libc::c_int, + pub bitmap_pad: libc::c_int, + pub depth: libc::c_int, + pub bytes_per_line: libc::c_int, + pub bits_per_pixel: libc::c_int, + pub red_mask: libc::c_ulong, + pub green_mask: libc::c_ulong, + pub blue_mask: libc::c_ulong, + pub obdata: XPointer, + pub f: _XImage_funcs, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XImage_funcs { + pub create_image: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut _XDisplay, + arg2: *mut Visual, + arg3: libc::c_uint, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *mut libc::c_char, + arg7: libc::c_uint, + arg8: libc::c_uint, + arg9: libc::c_int, + arg10: libc::c_int, + ) -> *mut _XImage, + >, + pub destroy_image: + ::core::option::Option libc::c_int>, + pub get_pixel: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut _XImage, + arg2: libc::c_int, + arg3: libc::c_int, + ) -> libc::c_ulong, + >, + pub put_pixel: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut _XImage, + arg2: libc::c_int, + arg3: libc::c_int, + arg4: libc::c_ulong, + ) -> libc::c_int, + >, + pub sub_image: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut _XImage, + arg2: libc::c_int, + arg3: libc::c_int, + arg4: libc::c_uint, + arg5: libc::c_uint, + ) -> *mut _XImage, + >, + pub add_pixel: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut _XImage, arg2: libc::c_long) -> libc::c_int, + >, +} +#[test] +fn bindgen_test_layout__XImage_funcs() { + assert_eq!( + ::core::mem::size_of::<_XImage_funcs>(), + 48usize, + concat!("Size of: ", stringify!(_XImage_funcs)) + ); + assert_eq!( + ::core::mem::align_of::<_XImage_funcs>(), + 8usize, + concat!("Alignment of ", stringify!(_XImage_funcs)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage_funcs>())).create_image as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XImage_funcs), + "::", + stringify!(create_image) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage_funcs>())).destroy_image as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_XImage_funcs), + "::", + stringify!(destroy_image) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage_funcs>())).get_pixel as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_XImage_funcs), + "::", + stringify!(get_pixel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage_funcs>())).put_pixel as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_XImage_funcs), + "::", + stringify!(put_pixel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage_funcs>())).sub_image as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_XImage_funcs), + "::", + stringify!(sub_image) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage_funcs>())).add_pixel as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_XImage_funcs), + "::", + stringify!(add_pixel) + ) + ); +} +#[test] +fn bindgen_test_layout__XImage() { + assert_eq!( + ::core::mem::size_of::<_XImage>(), + 136usize, + concat!("Size of: ", stringify!(_XImage)) + ); + assert_eq!( + ::core::mem::align_of::<_XImage>(), + 8usize, + concat!("Alignment of ", stringify!(_XImage)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).width as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).height as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).xoffset as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(xoffset) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).format as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(format) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).data as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).byte_order as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(byte_order) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).bitmap_unit as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(bitmap_unit) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).bitmap_bit_order as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(bitmap_bit_order) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).bitmap_pad as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(bitmap_pad) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).depth as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(depth) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).bytes_per_line as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(bytes_per_line) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).bits_per_pixel as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(bits_per_pixel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).red_mask as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(red_mask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).green_mask as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(green_mask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).blue_mask as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(blue_mask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).obdata as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(obdata) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).f as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(f) + ) + ); +} +pub type XImage = _XImage; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XWindowChanges { + pub x: libc::c_int, + pub y: libc::c_int, + pub width: libc::c_int, + pub height: libc::c_int, + pub border_width: libc::c_int, + pub sibling: Window, + pub stack_mode: libc::c_int, +} +#[test] +fn bindgen_test_layout_XWindowChanges() { + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(XWindowChanges)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XWindowChanges)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XWindowChanges), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XWindowChanges), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XWindowChanges), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).height as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(XWindowChanges), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).border_width as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XWindowChanges), + "::", + stringify!(border_width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).sibling as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XWindowChanges), + "::", + stringify!(sibling) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).stack_mode as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XWindowChanges), + "::", + stringify!(stack_mode) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XColor { + pub pixel: libc::c_ulong, + pub red: libc::c_ushort, + pub green: libc::c_ushort, + pub blue: libc::c_ushort, + pub flags: libc::c_char, + pub pad: libc::c_char, +} +#[test] +fn bindgen_test_layout_XColor() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XColor)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XColor)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).pixel as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XColor), + "::", + stringify!(pixel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).red as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XColor), + "::", + stringify!(red) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).green as *const _ as usize }, + 10usize, + concat!( + "Offset of field: ", + stringify!(XColor), + "::", + stringify!(green) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).blue as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(XColor), + "::", + stringify!(blue) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).flags as *const _ as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(XColor), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).pad as *const _ as usize }, + 15usize, + concat!( + "Offset of field: ", + stringify!(XColor), + "::", + stringify!(pad) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XSegment { + pub x1: libc::c_short, + pub y1: libc::c_short, + pub x2: libc::c_short, + pub y2: libc::c_short, +} +#[test] +fn bindgen_test_layout_XSegment() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(XSegment)) + ); + assert_eq!( + ::core::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(XSegment)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x1 as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XSegment), + "::", + stringify!(x1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y1 as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(XSegment), + "::", + stringify!(y1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x2 as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XSegment), + "::", + stringify!(x2) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y2 as *const _ as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(XSegment), + "::", + stringify!(y2) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XPoint { + pub x: libc::c_short, + pub y: libc::c_short, +} +#[test] +fn bindgen_test_layout_XPoint() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(XPoint)) + ); + assert_eq!( + ::core::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(XPoint)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 0usize, + concat!("Offset of field: ", stringify!(XPoint), "::", stringify!(x)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 2usize, + concat!("Offset of field: ", stringify!(XPoint), "::", stringify!(y)) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XRectangle { + pub x: libc::c_short, + pub y: libc::c_short, + pub width: libc::c_ushort, + pub height: libc::c_ushort, +} +#[test] +fn bindgen_test_layout_XRectangle() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(XRectangle)) + ); + assert_eq!( + ::core::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(XRectangle)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XRectangle), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(XRectangle), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XRectangle), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).height as *const _ as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(XRectangle), + "::", + stringify!(height) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XArc { + pub x: libc::c_short, + pub y: libc::c_short, + pub width: libc::c_ushort, + pub height: libc::c_ushort, + pub angle1: libc::c_short, + pub angle2: libc::c_short, +} +#[test] +fn bindgen_test_layout_XArc() { + assert_eq!( + ::core::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(XArc)) + ); + assert_eq!( + ::core::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(XArc)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 0usize, + concat!("Offset of field: ", stringify!(XArc), "::", stringify!(x)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 2usize, + concat!("Offset of field: ", stringify!(XArc), "::", stringify!(y)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XArc), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).height as *const _ as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(XArc), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).angle1 as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XArc), + "::", + stringify!(angle1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).angle2 as *const _ as usize }, + 10usize, + concat!( + "Offset of field: ", + stringify!(XArc), + "::", + stringify!(angle2) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XKeyboardControl { + pub key_click_percent: libc::c_int, + pub bell_percent: libc::c_int, + pub bell_pitch: libc::c_int, + pub bell_duration: libc::c_int, + pub led: libc::c_int, + pub led_mode: libc::c_int, + pub key: libc::c_int, + pub auto_repeat_mode: libc::c_int, +} +#[test] +fn bindgen_test_layout_XKeyboardControl() { + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(XKeyboardControl)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(XKeyboardControl)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).key_click_percent as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardControl), + "::", + stringify!(key_click_percent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).bell_percent as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardControl), + "::", + stringify!(bell_percent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).bell_pitch as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardControl), + "::", + stringify!(bell_pitch) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).bell_duration as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardControl), + "::", + stringify!(bell_duration) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).led as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardControl), + "::", + stringify!(led) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).led_mode as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardControl), + "::", + stringify!(led_mode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).key as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardControl), + "::", + stringify!(key) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).auto_repeat_mode as *const _ as usize + }, + 28usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardControl), + "::", + stringify!(auto_repeat_mode) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XKeyboardState { + pub key_click_percent: libc::c_int, + pub bell_percent: libc::c_int, + pub bell_pitch: libc::c_uint, + pub bell_duration: libc::c_uint, + pub led_mask: libc::c_ulong, + pub global_auto_repeat: libc::c_int, + pub auto_repeats: [libc::c_char; 32usize], +} +#[test] +fn bindgen_test_layout_XKeyboardState() { + assert_eq!( + ::core::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(XKeyboardState)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XKeyboardState)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).key_click_percent as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardState), + "::", + stringify!(key_click_percent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).bell_percent as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardState), + "::", + stringify!(bell_percent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).bell_pitch as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardState), + "::", + stringify!(bell_pitch) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).bell_duration as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardState), + "::", + stringify!(bell_duration) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).led_mask as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardState), + "::", + stringify!(led_mask) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).global_auto_repeat as *const _ as usize + }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardState), + "::", + stringify!(global_auto_repeat) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).auto_repeats as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardState), + "::", + stringify!(auto_repeats) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XTimeCoord { + pub time: Time, + pub x: libc::c_short, + pub y: libc::c_short, +} +#[test] +fn bindgen_test_layout_XTimeCoord() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XTimeCoord)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XTimeCoord)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).time as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XTimeCoord), + "::", + stringify!(time) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XTimeCoord), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 10usize, + concat!( + "Offset of field: ", + stringify!(XTimeCoord), + "::", + stringify!(y) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XModifierKeymap { + pub max_keypermod: libc::c_int, + pub modifiermap: *mut KeyCode, +} +#[test] +fn bindgen_test_layout_XModifierKeymap() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XModifierKeymap)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XModifierKeymap)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).max_keypermod as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XModifierKeymap), + "::", + stringify!(max_keypermod) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).modifiermap as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XModifierKeymap), + "::", + stringify!(modifiermap) + ) + ); +} +pub type Display = _XDisplay; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XPrivate { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XrmHashBucketRec { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _bindgen_ty_1 { + pub ext_data: *mut XExtData, + pub private1: *mut _XPrivate, + pub fd: libc::c_int, + pub private2: libc::c_int, + pub proto_major_version: libc::c_int, + pub proto_minor_version: libc::c_int, + pub vendor: *mut libc::c_char, + pub private3: XID, + pub private4: XID, + pub private5: XID, + pub private6: libc::c_int, + pub resource_alloc: ::core::option::Option XID>, + pub byte_order: libc::c_int, + pub bitmap_unit: libc::c_int, + pub bitmap_pad: libc::c_int, + pub bitmap_bit_order: libc::c_int, + pub nformats: libc::c_int, + pub pixmap_format: *mut ScreenFormat, + pub private8: libc::c_int, + pub release: libc::c_int, + pub private9: *mut _XPrivate, + pub private10: *mut _XPrivate, + pub qlen: libc::c_int, + pub last_request_read: libc::c_ulong, + pub request: libc::c_ulong, + pub private11: XPointer, + pub private12: XPointer, + pub private13: XPointer, + pub private14: XPointer, + pub max_request_size: libc::c_uint, + pub db: *mut _XrmHashBucketRec, + pub private15: + ::core::option::Option libc::c_int>, + pub display_name: *mut libc::c_char, + pub default_screen: libc::c_int, + pub nscreens: libc::c_int, + pub screens: *mut Screen, + pub motion_buffer: libc::c_ulong, + pub private16: libc::c_ulong, + pub min_keycode: libc::c_int, + pub max_keycode: libc::c_int, + pub private17: XPointer, + pub private18: XPointer, + pub private19: libc::c_int, + pub xdefaults: *mut libc::c_char, +} +#[test] +fn bindgen_test_layout__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::<_bindgen_ty_1>(), + 296usize, + concat!("Size of: ", stringify!(_bindgen_ty_1)) + ); + assert_eq!( + ::core::mem::align_of::<_bindgen_ty_1>(), + 8usize, + concat!("Alignment of ", stringify!(_bindgen_ty_1)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).ext_data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(ext_data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private1 as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).fd as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(fd) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private2 as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private2) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_bindgen_ty_1>())).proto_major_version as *const _ as usize + }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(proto_major_version) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_bindgen_ty_1>())).proto_minor_version as *const _ as usize + }, + 28usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(proto_minor_version) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).vendor as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(vendor) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private3 as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private3) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private4 as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private4) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private5 as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private5) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private6 as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private6) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).resource_alloc as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(resource_alloc) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).byte_order as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(byte_order) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).bitmap_unit as *const _ as usize }, + 84usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(bitmap_unit) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).bitmap_pad as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(bitmap_pad) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).bitmap_bit_order as *const _ as usize }, + 92usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(bitmap_bit_order) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).nformats as *const _ as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(nformats) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).pixmap_format as *const _ as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(pixmap_format) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private8 as *const _ as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private8) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).release as *const _ as usize }, + 116usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(release) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private9 as *const _ as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private9) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private10 as *const _ as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private10) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).qlen as *const _ as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(qlen) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_bindgen_ty_1>())).last_request_read as *const _ as usize + }, + 144usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(last_request_read) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).request as *const _ as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(request) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private11 as *const _ as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private11) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private12 as *const _ as usize }, + 168usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private12) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private13 as *const _ as usize }, + 176usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private13) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private14 as *const _ as usize }, + 184usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private14) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).max_request_size as *const _ as usize }, + 192usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(max_request_size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).db as *const _ as usize }, + 200usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(db) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private15 as *const _ as usize }, + 208usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private15) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).display_name as *const _ as usize }, + 216usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(display_name) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).default_screen as *const _ as usize }, + 224usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(default_screen) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).nscreens as *const _ as usize }, + 228usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(nscreens) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).screens as *const _ as usize }, + 232usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(screens) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).motion_buffer as *const _ as usize }, + 240usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(motion_buffer) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private16 as *const _ as usize }, + 248usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private16) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).min_keycode as *const _ as usize }, + 256usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(min_keycode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).max_keycode as *const _ as usize }, + 260usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(max_keycode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private17 as *const _ as usize }, + 264usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private17) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private18 as *const _ as usize }, + 272usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private18) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private19 as *const _ as usize }, + 280usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private19) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).xdefaults as *const _ as usize }, + 288usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(xdefaults) + ) + ); +} +pub type _XPrivDisplay = *mut _bindgen_ty_1; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XKeyEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub root: Window, + pub subwindow: Window, + pub time: Time, + pub x: libc::c_int, + pub y: libc::c_int, + pub x_root: libc::c_int, + pub y_root: libc::c_int, + pub state: libc::c_uint, + pub keycode: libc::c_uint, + pub same_screen: libc::c_int, +} +#[test] +fn bindgen_test_layout_XKeyEvent() { + assert_eq!( + ::core::mem::size_of::(), + 96usize, + concat!("Size of: ", stringify!(XKeyEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XKeyEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).root as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).subwindow as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(subwindow) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).time as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(time) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 68usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x_root as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(x_root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y_root as *const _ as usize }, + 76usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(y_root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(state) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).keycode as *const _ as usize }, + 84usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(keycode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).same_screen as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(same_screen) + ) + ); +} +pub type XKeyPressedEvent = XKeyEvent; +pub type XKeyReleasedEvent = XKeyEvent; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XButtonEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub root: Window, + pub subwindow: Window, + pub time: Time, + pub x: libc::c_int, + pub y: libc::c_int, + pub x_root: libc::c_int, + pub y_root: libc::c_int, + pub state: libc::c_uint, + pub button: libc::c_uint, + pub same_screen: libc::c_int, +} +#[test] +fn bindgen_test_layout_XButtonEvent() { + assert_eq!( + ::core::mem::size_of::(), + 96usize, + concat!("Size of: ", stringify!(XButtonEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XButtonEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).root as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).subwindow as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(subwindow) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).time as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(time) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 68usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x_root as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(x_root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y_root as *const _ as usize }, + 76usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(y_root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(state) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).button as *const _ as usize }, + 84usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(button) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).same_screen as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(same_screen) + ) + ); +} +pub type XButtonPressedEvent = XButtonEvent; +pub type XButtonReleasedEvent = XButtonEvent; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XMotionEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub root: Window, + pub subwindow: Window, + pub time: Time, + pub x: libc::c_int, + pub y: libc::c_int, + pub x_root: libc::c_int, + pub y_root: libc::c_int, + pub state: libc::c_uint, + pub is_hint: libc::c_char, + pub same_screen: libc::c_int, +} +#[test] +fn bindgen_test_layout_XMotionEvent() { + assert_eq!( + ::core::mem::size_of::(), + 96usize, + concat!("Size of: ", stringify!(XMotionEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XMotionEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).root as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).subwindow as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(subwindow) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).time as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(time) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 68usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x_root as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(x_root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y_root as *const _ as usize }, + 76usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(y_root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(state) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).is_hint as *const _ as usize }, + 84usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(is_hint) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).same_screen as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(same_screen) + ) + ); +} +pub type XPointerMovedEvent = XMotionEvent; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XCrossingEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub root: Window, + pub subwindow: Window, + pub time: Time, + pub x: libc::c_int, + pub y: libc::c_int, + pub x_root: libc::c_int, + pub y_root: libc::c_int, + pub mode: libc::c_int, + pub detail: libc::c_int, + pub same_screen: libc::c_int, + pub focus: libc::c_int, + pub state: libc::c_uint, +} +#[test] +fn bindgen_test_layout_XCrossingEvent() { + assert_eq!( + ::core::mem::size_of::(), + 104usize, + concat!("Size of: ", stringify!(XCrossingEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XCrossingEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).root as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).subwindow as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(subwindow) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).time as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(time) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 68usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x_root as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(x_root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y_root as *const _ as usize }, + 76usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(y_root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).mode as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(mode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).detail as *const _ as usize }, + 84usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(detail) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).same_screen as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(same_screen) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).focus as *const _ as usize }, + 92usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(focus) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(state) + ) + ); +} +pub type XEnterWindowEvent = XCrossingEvent; +pub type XLeaveWindowEvent = XCrossingEvent; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XFocusChangeEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub mode: libc::c_int, + pub detail: libc::c_int, +} +#[test] +fn bindgen_test_layout_XFocusChangeEvent() { + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(XFocusChangeEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XFocusChangeEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XFocusChangeEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XFocusChangeEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XFocusChangeEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XFocusChangeEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XFocusChangeEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).mode as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XFocusChangeEvent), + "::", + stringify!(mode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).detail as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(XFocusChangeEvent), + "::", + stringify!(detail) + ) + ); +} +pub type XFocusInEvent = XFocusChangeEvent; +pub type XFocusOutEvent = XFocusChangeEvent; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XKeymapEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub key_vector: [libc::c_char; 32usize], +} +#[test] +fn bindgen_test_layout_XKeymapEvent() { + assert_eq!( + ::core::mem::size_of::(), + 72usize, + concat!("Size of: ", stringify!(XKeymapEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XKeymapEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XKeymapEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XKeymapEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XKeymapEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XKeymapEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XKeymapEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).key_vector as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XKeymapEvent), + "::", + stringify!(key_vector) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XExposeEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub x: libc::c_int, + pub y: libc::c_int, + pub width: libc::c_int, + pub height: libc::c_int, + pub count: libc::c_int, +} +#[test] +fn bindgen_test_layout_XExposeEvent() { + assert_eq!( + ::core::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(XExposeEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XExposeEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XExposeEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XExposeEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XExposeEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XExposeEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XExposeEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XExposeEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(XExposeEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XExposeEvent), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).height as *const _ as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(XExposeEvent), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).count as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XExposeEvent), + "::", + stringify!(count) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XGraphicsExposeEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub drawable: Drawable, + pub x: libc::c_int, + pub y: libc::c_int, + pub width: libc::c_int, + pub height: libc::c_int, + pub count: libc::c_int, + pub major_code: libc::c_int, + pub minor_code: libc::c_int, +} +#[test] +fn bindgen_test_layout_XGraphicsExposeEvent() { + assert_eq!( + ::core::mem::size_of::(), + 72usize, + concat!("Size of: ", stringify!(XGraphicsExposeEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XGraphicsExposeEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).send_event as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).drawable as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(drawable) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).height as *const _ as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).count as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(count) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).major_code as *const _ as usize + }, + 60usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(major_code) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).minor_code as *const _ as usize + }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(minor_code) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XNoExposeEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub drawable: Drawable, + pub major_code: libc::c_int, + pub minor_code: libc::c_int, +} +#[test] +fn bindgen_test_layout_XNoExposeEvent() { + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(XNoExposeEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XNoExposeEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XNoExposeEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XNoExposeEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XNoExposeEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XNoExposeEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).drawable as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XNoExposeEvent), + "::", + stringify!(drawable) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).major_code as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XNoExposeEvent), + "::", + stringify!(major_code) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).minor_code as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(XNoExposeEvent), + "::", + stringify!(minor_code) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XVisibilityEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub state: libc::c_int, +} +#[test] +fn bindgen_test_layout_XVisibilityEvent() { + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(XVisibilityEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XVisibilityEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XVisibilityEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XVisibilityEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XVisibilityEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XVisibilityEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XVisibilityEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XVisibilityEvent), + "::", + stringify!(state) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XCreateWindowEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub parent: Window, + pub window: Window, + pub x: libc::c_int, + pub y: libc::c_int, + pub width: libc::c_int, + pub height: libc::c_int, + pub border_width: libc::c_int, + pub override_redirect: libc::c_int, +} +#[test] +fn bindgen_test_layout_XCreateWindowEvent() { + assert_eq!( + ::core::mem::size_of::(), + 72usize, + concat!("Size of: ", stringify!(XCreateWindowEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XCreateWindowEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).parent as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(parent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).height as *const _ as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).border_width as *const _ as usize + }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(border_width) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).override_redirect as *const _ as usize + }, + 68usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(override_redirect) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XDestroyWindowEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub event: Window, + pub window: Window, +} +#[test] +fn bindgen_test_layout_XDestroyWindowEvent() { + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(XDestroyWindowEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XDestroyWindowEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XDestroyWindowEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XDestroyWindowEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XDestroyWindowEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XDestroyWindowEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).event as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XDestroyWindowEvent), + "::", + stringify!(event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XDestroyWindowEvent), + "::", + stringify!(window) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XUnmapEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub event: Window, + pub window: Window, + pub from_configure: libc::c_int, +} +#[test] +fn bindgen_test_layout_XUnmapEvent() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(XUnmapEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XUnmapEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XUnmapEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XUnmapEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XUnmapEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XUnmapEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).event as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XUnmapEvent), + "::", + stringify!(event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XUnmapEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).from_configure as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XUnmapEvent), + "::", + stringify!(from_configure) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XMapEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub event: Window, + pub window: Window, + pub override_redirect: libc::c_int, +} +#[test] +fn bindgen_test_layout_XMapEvent() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(XMapEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XMapEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XMapEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XMapEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XMapEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XMapEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).event as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XMapEvent), + "::", + stringify!(event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XMapEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).override_redirect as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XMapEvent), + "::", + stringify!(override_redirect) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XMapRequestEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub parent: Window, + pub window: Window, +} +#[test] +fn bindgen_test_layout_XMapRequestEvent() { + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(XMapRequestEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XMapRequestEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XMapRequestEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XMapRequestEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XMapRequestEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XMapRequestEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).parent as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XMapRequestEvent), + "::", + stringify!(parent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XMapRequestEvent), + "::", + stringify!(window) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XReparentEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub event: Window, + pub window: Window, + pub parent: Window, + pub x: libc::c_int, + pub y: libc::c_int, + pub override_redirect: libc::c_int, +} +#[test] +fn bindgen_test_layout_XReparentEvent() { + assert_eq!( + ::core::mem::size_of::(), + 72usize, + concat!("Size of: ", stringify!(XReparentEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XReparentEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XReparentEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XReparentEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XReparentEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XReparentEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).event as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XReparentEvent), + "::", + stringify!(event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XReparentEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).parent as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XReparentEvent), + "::", + stringify!(parent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XReparentEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(XReparentEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).override_redirect as *const _ as usize + }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XReparentEvent), + "::", + stringify!(override_redirect) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XConfigureEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub event: Window, + pub window: Window, + pub x: libc::c_int, + pub y: libc::c_int, + pub width: libc::c_int, + pub height: libc::c_int, + pub border_width: libc::c_int, + pub above: Window, + pub override_redirect: libc::c_int, +} +#[test] +fn bindgen_test_layout_XConfigureEvent() { + assert_eq!( + ::core::mem::size_of::(), + 88usize, + concat!("Size of: ", stringify!(XConfigureEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XConfigureEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).event as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).height as *const _ as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).border_width as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(border_width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).above as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(above) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).override_redirect as *const _ as usize + }, + 80usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(override_redirect) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XGravityEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub event: Window, + pub window: Window, + pub x: libc::c_int, + pub y: libc::c_int, +} +#[test] +fn bindgen_test_layout_XGravityEvent() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(XGravityEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XGravityEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XGravityEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XGravityEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XGravityEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XGravityEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).event as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XGravityEvent), + "::", + stringify!(event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XGravityEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XGravityEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(XGravityEvent), + "::", + stringify!(y) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XResizeRequestEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub width: libc::c_int, + pub height: libc::c_int, +} +#[test] +fn bindgen_test_layout_XResizeRequestEvent() { + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(XResizeRequestEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XResizeRequestEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XResizeRequestEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XResizeRequestEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XResizeRequestEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XResizeRequestEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XResizeRequestEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XResizeRequestEvent), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).height as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(XResizeRequestEvent), + "::", + stringify!(height) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XConfigureRequestEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub parent: Window, + pub window: Window, + pub x: libc::c_int, + pub y: libc::c_int, + pub width: libc::c_int, + pub height: libc::c_int, + pub border_width: libc::c_int, + pub above: Window, + pub detail: libc::c_int, + pub value_mask: libc::c_ulong, +} +#[test] +fn bindgen_test_layout_XConfigureRequestEvent() { + assert_eq!( + ::core::mem::size_of::(), + 96usize, + concat!("Size of: ", stringify!(XConfigureRequestEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XConfigureRequestEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).send_event as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).parent as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(parent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).height as *const _ as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).border_width as *const _ as usize + }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(border_width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).above as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(above) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).detail as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(detail) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).value_mask as *const _ as usize + }, + 88usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(value_mask) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XCirculateEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub event: Window, + pub window: Window, + pub place: libc::c_int, +} +#[test] +fn bindgen_test_layout_XCirculateEvent() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(XCirculateEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XCirculateEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XCirculateEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XCirculateEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XCirculateEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XCirculateEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).event as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XCirculateEvent), + "::", + stringify!(event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XCirculateEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).place as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XCirculateEvent), + "::", + stringify!(place) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XCirculateRequestEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub parent: Window, + pub window: Window, + pub place: libc::c_int, +} +#[test] +fn bindgen_test_layout_XCirculateRequestEvent() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(XCirculateRequestEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XCirculateRequestEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XCirculateRequestEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XCirculateRequestEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).send_event as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XCirculateRequestEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XCirculateRequestEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).parent as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XCirculateRequestEvent), + "::", + stringify!(parent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XCirculateRequestEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).place as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XCirculateRequestEvent), + "::", + stringify!(place) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XPropertyEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub atom: Atom, + pub time: Time, + pub state: libc::c_int, +} +#[test] +fn bindgen_test_layout_XPropertyEvent() { + assert_eq!( + ::core::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(XPropertyEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XPropertyEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XPropertyEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XPropertyEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XPropertyEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XPropertyEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XPropertyEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).atom as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XPropertyEvent), + "::", + stringify!(atom) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).time as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XPropertyEvent), + "::", + stringify!(time) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XPropertyEvent), + "::", + stringify!(state) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XSelectionClearEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub selection: Atom, + pub time: Time, +} +#[test] +fn bindgen_test_layout_XSelectionClearEvent() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(XSelectionClearEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XSelectionClearEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XSelectionClearEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XSelectionClearEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).send_event as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XSelectionClearEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XSelectionClearEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XSelectionClearEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).selection as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XSelectionClearEvent), + "::", + stringify!(selection) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).time as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XSelectionClearEvent), + "::", + stringify!(time) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XSelectionRequestEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub owner: Window, + pub requestor: Window, + pub selection: Atom, + pub target: Atom, + pub property: Atom, + pub time: Time, +} +#[test] +fn bindgen_test_layout_XSelectionRequestEvent() { + assert_eq!( + ::core::mem::size_of::(), + 80usize, + concat!("Size of: ", stringify!(XSelectionRequestEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XSelectionRequestEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XSelectionRequestEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XSelectionRequestEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).send_event as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XSelectionRequestEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XSelectionRequestEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).owner as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XSelectionRequestEvent), + "::", + stringify!(owner) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).requestor as *const _ as usize + }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XSelectionRequestEvent), + "::", + stringify!(requestor) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).selection as *const _ as usize + }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XSelectionRequestEvent), + "::", + stringify!(selection) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).target as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XSelectionRequestEvent), + "::", + stringify!(target) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).property as *const _ as usize + }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XSelectionRequestEvent), + "::", + stringify!(property) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).time as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(XSelectionRequestEvent), + "::", + stringify!(time) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XSelectionEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub requestor: Window, + pub selection: Atom, + pub target: Atom, + pub property: Atom, + pub time: Time, +} +#[test] +fn bindgen_test_layout_XSelectionEvent() { + assert_eq!( + ::core::mem::size_of::(), + 72usize, + concat!("Size of: ", stringify!(XSelectionEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XSelectionEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XSelectionEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XSelectionEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XSelectionEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XSelectionEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).requestor as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XSelectionEvent), + "::", + stringify!(requestor) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).selection as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XSelectionEvent), + "::", + stringify!(selection) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).target as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XSelectionEvent), + "::", + stringify!(target) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).property as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XSelectionEvent), + "::", + stringify!(property) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).time as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XSelectionEvent), + "::", + stringify!(time) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XColormapEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub colormap: Colormap, + pub new: libc::c_int, + pub state: libc::c_int, +} +#[test] +fn bindgen_test_layout_XColormapEvent() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(XColormapEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XColormapEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XColormapEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XColormapEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XColormapEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XColormapEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XColormapEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).colormap as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XColormapEvent), + "::", + stringify!(colormap) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).new as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XColormapEvent), + "::", + stringify!(new) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(XColormapEvent), + "::", + stringify!(state) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XClientMessageEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub message_type: Atom, + pub format: libc::c_int, + pub data: XClientMessageEvent__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union XClientMessageEvent__bindgen_ty_1 { + pub b: [libc::c_char; 20usize], + pub s: [libc::c_short; 10usize], + pub l: [libc::c_long; 5usize], + _bindgen_union_align: [u64; 5usize], +} +#[test] +fn bindgen_test_layout_XClientMessageEvent__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(XClientMessageEvent__bindgen_ty_1)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(XClientMessageEvent__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).b as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XClientMessageEvent__bindgen_ty_1), + "::", + stringify!(b) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).s as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XClientMessageEvent__bindgen_ty_1), + "::", + stringify!(s) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).l as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XClientMessageEvent__bindgen_ty_1), + "::", + stringify!(l) + ) + ); +} +#[test] +fn bindgen_test_layout_XClientMessageEvent() { + assert_eq!( + ::core::mem::size_of::(), + 96usize, + concat!("Size of: ", stringify!(XClientMessageEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XClientMessageEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XClientMessageEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XClientMessageEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XClientMessageEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XClientMessageEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XClientMessageEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).message_type as *const _ as usize + }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XClientMessageEvent), + "::", + stringify!(message_type) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).format as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XClientMessageEvent), + "::", + stringify!(format) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).data as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XClientMessageEvent), + "::", + stringify!(data) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XMappingEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub request: libc::c_int, + pub first_keycode: libc::c_int, + pub count: libc::c_int, +} +#[test] +fn bindgen_test_layout_XMappingEvent() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(XMappingEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XMappingEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XMappingEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XMappingEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XMappingEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XMappingEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XMappingEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).request as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XMappingEvent), + "::", + stringify!(request) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).first_keycode as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(XMappingEvent), + "::", + stringify!(first_keycode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).count as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XMappingEvent), + "::", + stringify!(count) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XErrorEvent { + pub type_: libc::c_int, + pub display: *mut Display, + pub resourceid: XID, + pub serial: libc::c_ulong, + pub error_code: libc::c_uchar, + pub request_code: libc::c_uchar, + pub minor_code: libc::c_uchar, +} +#[test] +fn bindgen_test_layout_XErrorEvent() { + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(XErrorEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XErrorEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XErrorEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XErrorEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).resourceid as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XErrorEvent), + "::", + stringify!(resourceid) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XErrorEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).error_code as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XErrorEvent), + "::", + stringify!(error_code) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).request_code as *const _ as usize }, + 33usize, + concat!( + "Offset of field: ", + stringify!(XErrorEvent), + "::", + stringify!(request_code) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).minor_code as *const _ as usize }, + 34usize, + concat!( + "Offset of field: ", + stringify!(XErrorEvent), + "::", + stringify!(minor_code) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XAnyEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, +} +#[test] +fn bindgen_test_layout_XAnyEvent() { + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(XAnyEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XAnyEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XAnyEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XAnyEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XAnyEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XAnyEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XAnyEvent), + "::", + stringify!(window) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XGenericEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub extension: libc::c_int, + pub evtype: libc::c_int, +} +#[test] +fn bindgen_test_layout_XGenericEvent() { + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(XGenericEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XGenericEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XGenericEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XGenericEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XGenericEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XGenericEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).extension as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XGenericEvent), + "::", + stringify!(extension) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).evtype as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(XGenericEvent), + "::", + stringify!(evtype) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XGenericEventCookie { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub extension: libc::c_int, + pub evtype: libc::c_int, + pub cookie: libc::c_uint, + pub data: *mut libc::c_void, +} +#[test] +fn bindgen_test_layout_XGenericEventCookie() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(XGenericEventCookie)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XGenericEventCookie)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XGenericEventCookie), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XGenericEventCookie), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XGenericEventCookie), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XGenericEventCookie), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).extension as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XGenericEventCookie), + "::", + stringify!(extension) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).evtype as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(XGenericEventCookie), + "::", + stringify!(evtype) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).cookie as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XGenericEventCookie), + "::", + stringify!(cookie) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).data as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XGenericEventCookie), + "::", + stringify!(data) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union _XEvent { + pub type_: libc::c_int, + pub xany: XAnyEvent, + pub xkey: XKeyEvent, + pub xbutton: XButtonEvent, + pub xmotion: XMotionEvent, + pub xcrossing: XCrossingEvent, + pub xfocus: XFocusChangeEvent, + pub xexpose: XExposeEvent, + pub xgraphicsexpose: XGraphicsExposeEvent, + pub xnoexpose: XNoExposeEvent, + pub xvisibility: XVisibilityEvent, + pub xcreatewindow: XCreateWindowEvent, + pub xdestroywindow: XDestroyWindowEvent, + pub xunmap: XUnmapEvent, + pub xmap: XMapEvent, + pub xmaprequest: XMapRequestEvent, + pub xreparent: XReparentEvent, + pub xconfigure: XConfigureEvent, + pub xgravity: XGravityEvent, + pub xresizerequest: XResizeRequestEvent, + pub xconfigurerequest: XConfigureRequestEvent, + pub xcirculate: XCirculateEvent, + pub xcirculaterequest: XCirculateRequestEvent, + pub xproperty: XPropertyEvent, + pub xselectionclear: XSelectionClearEvent, + pub xselectionrequest: XSelectionRequestEvent, + pub xselection: XSelectionEvent, + pub xcolormap: XColormapEvent, + pub xclient: XClientMessageEvent, + pub xmapping: XMappingEvent, + pub xerror: XErrorEvent, + pub xkeymap: XKeymapEvent, + pub xgeneric: XGenericEvent, + pub xcookie: XGenericEventCookie, + pub pad: [libc::c_long; 24usize], + _bindgen_union_align: [u64; 24usize], +} +#[test] +fn bindgen_test_layout__XEvent() { + assert_eq!( + ::core::mem::size_of::<_XEvent>(), + 192usize, + concat!("Size of: ", stringify!(_XEvent)) + ); + assert_eq!( + ::core::mem::align_of::<_XEvent>(), + 8usize, + concat!("Alignment of ", stringify!(_XEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xany as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xany) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xkey as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xkey) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xbutton as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xbutton) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xmotion as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xmotion) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xcrossing as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xcrossing) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xfocus as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xfocus) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xexpose as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xexpose) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xgraphicsexpose as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xgraphicsexpose) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xnoexpose as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xnoexpose) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xvisibility as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xvisibility) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xcreatewindow as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xcreatewindow) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xdestroywindow as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xdestroywindow) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xunmap as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xunmap) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xmap as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xmap) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xmaprequest as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xmaprequest) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xreparent as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xreparent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xconfigure as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xconfigure) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xgravity as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xgravity) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xresizerequest as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xresizerequest) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xconfigurerequest as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xconfigurerequest) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xcirculate as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xcirculate) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xcirculaterequest as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xcirculaterequest) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xproperty as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xproperty) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xselectionclear as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xselectionclear) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xselectionrequest as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xselectionrequest) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xselection as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xselection) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xcolormap as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xcolormap) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xclient as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xclient) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xmapping as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xmapping) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xerror as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xerror) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xkeymap as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xkeymap) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xgeneric as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xgeneric) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xcookie as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xcookie) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).pad as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(pad) + ) + ); +} +pub type XEvent = _XEvent; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XCharStruct { + pub lbearing: libc::c_short, + pub rbearing: libc::c_short, + pub width: libc::c_short, + pub ascent: libc::c_short, + pub descent: libc::c_short, + pub attributes: libc::c_ushort, +} +#[test] +fn bindgen_test_layout_XCharStruct() { + assert_eq!( + ::core::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(XCharStruct)) + ); + assert_eq!( + ::core::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(XCharStruct)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).lbearing as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XCharStruct), + "::", + stringify!(lbearing) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).rbearing as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(XCharStruct), + "::", + stringify!(rbearing) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XCharStruct), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ascent as *const _ as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(XCharStruct), + "::", + stringify!(ascent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).descent as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XCharStruct), + "::", + stringify!(descent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).attributes as *const _ as usize }, + 10usize, + concat!( + "Offset of field: ", + stringify!(XCharStruct), + "::", + stringify!(attributes) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XFontProp { + pub name: Atom, + pub card32: libc::c_ulong, +} +#[test] +fn bindgen_test_layout_XFontProp() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XFontProp)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XFontProp)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).name as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XFontProp), + "::", + stringify!(name) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).card32 as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XFontProp), + "::", + stringify!(card32) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XFontStruct { + pub ext_data: *mut XExtData, + pub fid: Font, + pub direction: libc::c_uint, + pub min_char_or_byte2: libc::c_uint, + pub max_char_or_byte2: libc::c_uint, + pub min_byte1: libc::c_uint, + pub max_byte1: libc::c_uint, + pub all_chars_exist: libc::c_int, + pub default_char: libc::c_uint, + pub n_properties: libc::c_int, + pub properties: *mut XFontProp, + pub min_bounds: XCharStruct, + pub max_bounds: XCharStruct, + pub per_char: *mut XCharStruct, + pub ascent: libc::c_int, + pub descent: libc::c_int, +} +#[test] +fn bindgen_test_layout_XFontStruct() { + assert_eq!( + ::core::mem::size_of::(), + 96usize, + concat!("Size of: ", stringify!(XFontStruct)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XFontStruct)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ext_data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(ext_data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fid as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(fid) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).direction as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(direction) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).min_char_or_byte2 as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(min_char_or_byte2) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).max_char_or_byte2 as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(max_char_or_byte2) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).min_byte1 as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(min_byte1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).max_byte1 as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(max_byte1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).all_chars_exist as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(all_chars_exist) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).default_char as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(default_char) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).n_properties as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(n_properties) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).properties as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(properties) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).min_bounds as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(min_bounds) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).max_bounds as *const _ as usize }, + 68usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(max_bounds) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).per_char as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(per_char) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ascent as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(ascent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).descent as *const _ as usize }, + 92usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(descent) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XTextItem { + pub chars: *mut libc::c_char, + pub nchars: libc::c_int, + pub delta: libc::c_int, + pub font: Font, +} +#[test] +fn bindgen_test_layout_XTextItem() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(XTextItem)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XTextItem)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).chars as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XTextItem), + "::", + stringify!(chars) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).nchars as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XTextItem), + "::", + stringify!(nchars) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).delta as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(XTextItem), + "::", + stringify!(delta) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).font as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XTextItem), + "::", + stringify!(font) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XChar2b { + pub byte1: libc::c_uchar, + pub byte2: libc::c_uchar, +} +#[test] +fn bindgen_test_layout_XChar2b() { + assert_eq!( + ::core::mem::size_of::(), + 2usize, + concat!("Size of: ", stringify!(XChar2b)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(XChar2b)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).byte1 as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XChar2b), + "::", + stringify!(byte1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).byte2 as *const _ as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(XChar2b), + "::", + stringify!(byte2) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XTextItem16 { + pub chars: *mut XChar2b, + pub nchars: libc::c_int, + pub delta: libc::c_int, + pub font: Font, +} +#[test] +fn bindgen_test_layout_XTextItem16() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(XTextItem16)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XTextItem16)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).chars as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XTextItem16), + "::", + stringify!(chars) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).nchars as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XTextItem16), + "::", + stringify!(nchars) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).delta as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(XTextItem16), + "::", + stringify!(delta) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).font as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XTextItem16), + "::", + stringify!(font) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union XEDataObject { + pub display: *mut Display, + pub gc: GC, + pub visual: *mut Visual, + pub screen: *mut Screen, + pub pixmap_format: *mut ScreenFormat, + pub font: *mut XFontStruct, + _bindgen_union_align: u64, +} +#[test] +fn bindgen_test_layout_XEDataObject() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(XEDataObject)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XEDataObject)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XEDataObject), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).gc as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XEDataObject), + "::", + stringify!(gc) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).visual as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XEDataObject), + "::", + stringify!(visual) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).screen as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XEDataObject), + "::", + stringify!(screen) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).pixmap_format as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XEDataObject), + "::", + stringify!(pixmap_format) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).font as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XEDataObject), + "::", + stringify!(font) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XFontSetExtents { + pub max_ink_extent: XRectangle, + pub max_logical_extent: XRectangle, +} +#[test] +fn bindgen_test_layout_XFontSetExtents() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XFontSetExtents)) + ); + assert_eq!( + ::core::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(XFontSetExtents)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).max_ink_extent as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XFontSetExtents), + "::", + stringify!(max_ink_extent) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).max_logical_extent as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XFontSetExtents), + "::", + stringify!(max_logical_extent) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XOM { + _unused: [u8; 0], +} +pub type XOM = *mut _XOM; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XOC { + _unused: [u8; 0], +} +pub type XOC = *mut _XOC; +pub type XFontSet = *mut _XOC; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XmbTextItem { + pub chars: *mut libc::c_char, + pub nchars: libc::c_int, + pub delta: libc::c_int, + pub font_set: XFontSet, +} +#[test] +fn bindgen_test_layout_XmbTextItem() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(XmbTextItem)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XmbTextItem)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).chars as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XmbTextItem), + "::", + stringify!(chars) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).nchars as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XmbTextItem), + "::", + stringify!(nchars) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).delta as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(XmbTextItem), + "::", + stringify!(delta) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).font_set as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XmbTextItem), + "::", + stringify!(font_set) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XwcTextItem { + pub chars: *mut wchar_t, + pub nchars: libc::c_int, + pub delta: libc::c_int, + pub font_set: XFontSet, +} +#[test] +fn bindgen_test_layout_XwcTextItem() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(XwcTextItem)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XwcTextItem)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).chars as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XwcTextItem), + "::", + stringify!(chars) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).nchars as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XwcTextItem), + "::", + stringify!(nchars) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).delta as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(XwcTextItem), + "::", + stringify!(delta) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).font_set as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XwcTextItem), + "::", + stringify!(font_set) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XOMCharSetList { + pub charset_count: libc::c_int, + pub charset_list: *mut *mut libc::c_char, +} +#[test] +fn bindgen_test_layout_XOMCharSetList() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XOMCharSetList)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XOMCharSetList)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).charset_count as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XOMCharSetList), + "::", + stringify!(charset_count) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).charset_list as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XOMCharSetList), + "::", + stringify!(charset_list) + ) + ); +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum XOrientation { + XOMOrientation_LTR_TTB = 0, + XOMOrientation_RTL_TTB = 1, + XOMOrientation_TTB_LTR = 2, + XOMOrientation_TTB_RTL = 3, + XOMOrientation_Context = 4, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XOMOrientation { + pub num_orientation: libc::c_int, + pub orientation: *mut XOrientation, +} +#[test] +fn bindgen_test_layout_XOMOrientation() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XOMOrientation)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XOMOrientation)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).num_orientation as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XOMOrientation), + "::", + stringify!(num_orientation) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).orientation as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XOMOrientation), + "::", + stringify!(orientation) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XOMFontInfo { + pub num_font: libc::c_int, + pub font_struct_list: *mut *mut XFontStruct, + pub font_name_list: *mut *mut libc::c_char, +} +#[test] +fn bindgen_test_layout_XOMFontInfo() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(XOMFontInfo)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XOMFontInfo)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).num_font as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XOMFontInfo), + "::", + stringify!(num_font) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).font_struct_list as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XOMFontInfo), + "::", + stringify!(font_struct_list) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).font_name_list as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XOMFontInfo), + "::", + stringify!(font_name_list) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XIM { + _unused: [u8; 0], +} +pub type XIM = *mut _XIM; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XIC { + _unused: [u8; 0], +} +pub type XIC = *mut _XIC; +pub type XIMProc = + ::core::option::Option; +pub type XICProc = ::core::option::Option< + unsafe extern "C" fn(arg1: XIC, arg2: XPointer, arg3: XPointer) -> libc::c_int, +>; +pub type XIDProc = ::core::option::Option< + unsafe extern "C" fn(arg1: *mut Display, arg2: XPointer, arg3: XPointer), +>; +pub type XIMStyle = libc::c_ulong; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XIMStyles { + pub count_styles: libc::c_ushort, + pub supported_styles: *mut XIMStyle, +} +#[test] +fn bindgen_test_layout_XIMStyles() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XIMStyles)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XIMStyles)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).count_styles as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XIMStyles), + "::", + stringify!(count_styles) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).supported_styles as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XIMStyles), + "::", + stringify!(supported_styles) + ) + ); +} +pub type XVaNestedList = *mut libc::c_void; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XIMCallback { + pub client_data: XPointer, + pub callback: XIMProc, +} +#[test] +fn bindgen_test_layout_XIMCallback() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XIMCallback)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XIMCallback)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).client_data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XIMCallback), + "::", + stringify!(client_data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).callback as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XIMCallback), + "::", + stringify!(callback) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XICCallback { + pub client_data: XPointer, + pub callback: XICProc, +} +#[test] +fn bindgen_test_layout_XICCallback() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XICCallback)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XICCallback)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).client_data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XICCallback), + "::", + stringify!(client_data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).callback as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XICCallback), + "::", + stringify!(callback) + ) + ); +} +pub type XIMFeedback = libc::c_ulong; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XIMText { + pub length: libc::c_ushort, + pub feedback: *mut XIMFeedback, + pub encoding_is_wchar: libc::c_int, + pub string: _XIMText__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union _XIMText__bindgen_ty_1 { + pub multi_byte: *mut libc::c_char, + pub wide_char: *mut wchar_t, + _bindgen_union_align: u64, +} +#[test] +fn bindgen_test_layout__XIMText__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::<_XIMText__bindgen_ty_1>(), + 8usize, + concat!("Size of: ", stringify!(_XIMText__bindgen_ty_1)) + ); + assert_eq!( + ::core::mem::align_of::<_XIMText__bindgen_ty_1>(), + 8usize, + concat!("Alignment of ", stringify!(_XIMText__bindgen_ty_1)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMText__bindgen_ty_1>())).multi_byte as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMText__bindgen_ty_1), + "::", + stringify!(multi_byte) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMText__bindgen_ty_1>())).wide_char as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMText__bindgen_ty_1), + "::", + stringify!(wide_char) + ) + ); +} +#[test] +fn bindgen_test_layout__XIMText() { + assert_eq!( + ::core::mem::size_of::<_XIMText>(), + 32usize, + concat!("Size of: ", stringify!(_XIMText)) + ); + assert_eq!( + ::core::mem::align_of::<_XIMText>(), + 8usize, + concat!("Alignment of ", stringify!(_XIMText)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XIMText>())).length as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMText), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XIMText>())).feedback as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_XIMText), + "::", + stringify!(feedback) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XIMText>())).encoding_is_wchar as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_XIMText), + "::", + stringify!(encoding_is_wchar) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XIMText>())).string as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_XIMText), + "::", + stringify!(string) + ) + ); +} +pub type XIMText = _XIMText; +pub type XIMPreeditState = libc::c_ulong; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XIMPreeditStateNotifyCallbackStruct { + pub state: XIMPreeditState, +} +#[test] +fn bindgen_test_layout__XIMPreeditStateNotifyCallbackStruct() { + assert_eq!( + ::core::mem::size_of::<_XIMPreeditStateNotifyCallbackStruct>(), + 8usize, + concat!( + "Size of: ", + stringify!(_XIMPreeditStateNotifyCallbackStruct) + ) + ); + assert_eq!( + ::core::mem::align_of::<_XIMPreeditStateNotifyCallbackStruct>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_XIMPreeditStateNotifyCallbackStruct) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMPreeditStateNotifyCallbackStruct>())).state as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMPreeditStateNotifyCallbackStruct), + "::", + stringify!(state) + ) + ); +} +pub type XIMPreeditStateNotifyCallbackStruct = _XIMPreeditStateNotifyCallbackStruct; +pub type XIMResetState = libc::c_ulong; +pub type XIMStringConversionFeedback = libc::c_ulong; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XIMStringConversionText { + pub length: libc::c_ushort, + pub feedback: *mut XIMStringConversionFeedback, + pub encoding_is_wchar: libc::c_int, + pub string: _XIMStringConversionText__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union _XIMStringConversionText__bindgen_ty_1 { + pub mbs: *mut libc::c_char, + pub wcs: *mut wchar_t, + _bindgen_union_align: u64, +} +#[test] +fn bindgen_test_layout__XIMStringConversionText__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::<_XIMStringConversionText__bindgen_ty_1>(), + 8usize, + concat!( + "Size of: ", + stringify!(_XIMStringConversionText__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::<_XIMStringConversionText__bindgen_ty_1>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_XIMStringConversionText__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStringConversionText__bindgen_ty_1>())).mbs as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMStringConversionText__bindgen_ty_1), + "::", + stringify!(mbs) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStringConversionText__bindgen_ty_1>())).wcs as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMStringConversionText__bindgen_ty_1), + "::", + stringify!(wcs) + ) + ); +} +#[test] +fn bindgen_test_layout__XIMStringConversionText() { + assert_eq!( + ::core::mem::size_of::<_XIMStringConversionText>(), + 32usize, + concat!("Size of: ", stringify!(_XIMStringConversionText)) + ); + assert_eq!( + ::core::mem::align_of::<_XIMStringConversionText>(), + 8usize, + concat!("Alignment of ", stringify!(_XIMStringConversionText)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStringConversionText>())).length as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMStringConversionText), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStringConversionText>())).feedback as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_XIMStringConversionText), + "::", + stringify!(feedback) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStringConversionText>())).encoding_is_wchar as *const _ + as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_XIMStringConversionText), + "::", + stringify!(encoding_is_wchar) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStringConversionText>())).string as *const _ as usize + }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_XIMStringConversionText), + "::", + stringify!(string) + ) + ); +} +pub type XIMStringConversionText = _XIMStringConversionText; +pub type XIMStringConversionPosition = libc::c_ushort; +pub type XIMStringConversionType = libc::c_ushort; +pub type XIMStringConversionOperation = libc::c_ushort; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum XIMCaretDirection { + XIMForwardChar = 0, + XIMBackwardChar = 1, + XIMForwardWord = 2, + XIMBackwardWord = 3, + XIMCaretUp = 4, + XIMCaretDown = 5, + XIMNextLine = 6, + XIMPreviousLine = 7, + XIMLineStart = 8, + XIMLineEnd = 9, + XIMAbsolutePosition = 10, + XIMDontChange = 11, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XIMStringConversionCallbackStruct { + pub position: XIMStringConversionPosition, + pub direction: XIMCaretDirection, + pub operation: XIMStringConversionOperation, + pub factor: libc::c_ushort, + pub text: *mut XIMStringConversionText, +} +#[test] +fn bindgen_test_layout__XIMStringConversionCallbackStruct() { + assert_eq!( + ::core::mem::size_of::<_XIMStringConversionCallbackStruct>(), + 24usize, + concat!("Size of: ", stringify!(_XIMStringConversionCallbackStruct)) + ); + assert_eq!( + ::core::mem::align_of::<_XIMStringConversionCallbackStruct>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_XIMStringConversionCallbackStruct) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStringConversionCallbackStruct>())).position as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMStringConversionCallbackStruct), + "::", + stringify!(position) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStringConversionCallbackStruct>())).direction as *const _ + as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_XIMStringConversionCallbackStruct), + "::", + stringify!(direction) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStringConversionCallbackStruct>())).operation as *const _ + as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_XIMStringConversionCallbackStruct), + "::", + stringify!(operation) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStringConversionCallbackStruct>())).factor as *const _ + as usize + }, + 10usize, + concat!( + "Offset of field: ", + stringify!(_XIMStringConversionCallbackStruct), + "::", + stringify!(factor) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStringConversionCallbackStruct>())).text as *const _ + as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_XIMStringConversionCallbackStruct), + "::", + stringify!(text) + ) + ); +} +pub type XIMStringConversionCallbackStruct = _XIMStringConversionCallbackStruct; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XIMPreeditDrawCallbackStruct { + pub caret: libc::c_int, + pub chg_first: libc::c_int, + pub chg_length: libc::c_int, + pub text: *mut XIMText, +} +#[test] +fn bindgen_test_layout__XIMPreeditDrawCallbackStruct() { + assert_eq!( + ::core::mem::size_of::<_XIMPreeditDrawCallbackStruct>(), + 24usize, + concat!("Size of: ", stringify!(_XIMPreeditDrawCallbackStruct)) + ); + assert_eq!( + ::core::mem::align_of::<_XIMPreeditDrawCallbackStruct>(), + 8usize, + concat!("Alignment of ", stringify!(_XIMPreeditDrawCallbackStruct)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMPreeditDrawCallbackStruct>())).caret as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMPreeditDrawCallbackStruct), + "::", + stringify!(caret) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMPreeditDrawCallbackStruct>())).chg_first as *const _ + as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_XIMPreeditDrawCallbackStruct), + "::", + stringify!(chg_first) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMPreeditDrawCallbackStruct>())).chg_length as *const _ + as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_XIMPreeditDrawCallbackStruct), + "::", + stringify!(chg_length) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMPreeditDrawCallbackStruct>())).text as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_XIMPreeditDrawCallbackStruct), + "::", + stringify!(text) + ) + ); +} +pub type XIMPreeditDrawCallbackStruct = _XIMPreeditDrawCallbackStruct; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum XIMCaretStyle { + XIMIsInvisible = 0, + XIMIsPrimary = 1, + XIMIsSecondary = 2, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XIMPreeditCaretCallbackStruct { + pub position: libc::c_int, + pub direction: XIMCaretDirection, + pub style: XIMCaretStyle, +} +#[test] +fn bindgen_test_layout__XIMPreeditCaretCallbackStruct() { + assert_eq!( + ::core::mem::size_of::<_XIMPreeditCaretCallbackStruct>(), + 12usize, + concat!("Size of: ", stringify!(_XIMPreeditCaretCallbackStruct)) + ); + assert_eq!( + ::core::mem::align_of::<_XIMPreeditCaretCallbackStruct>(), + 4usize, + concat!("Alignment of ", stringify!(_XIMPreeditCaretCallbackStruct)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMPreeditCaretCallbackStruct>())).position as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMPreeditCaretCallbackStruct), + "::", + stringify!(position) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMPreeditCaretCallbackStruct>())).direction as *const _ + as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_XIMPreeditCaretCallbackStruct), + "::", + stringify!(direction) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMPreeditCaretCallbackStruct>())).style as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_XIMPreeditCaretCallbackStruct), + "::", + stringify!(style) + ) + ); +} +pub type XIMPreeditCaretCallbackStruct = _XIMPreeditCaretCallbackStruct; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum XIMStatusDataType { + XIMTextType = 0, + XIMBitmapType = 1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XIMStatusDrawCallbackStruct { + pub type_: XIMStatusDataType, + pub data: _XIMStatusDrawCallbackStruct__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union _XIMStatusDrawCallbackStruct__bindgen_ty_1 { + pub text: *mut XIMText, + pub bitmap: Pixmap, + _bindgen_union_align: u64, +} +#[test] +fn bindgen_test_layout__XIMStatusDrawCallbackStruct__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::<_XIMStatusDrawCallbackStruct__bindgen_ty_1>(), + 8usize, + concat!( + "Size of: ", + stringify!(_XIMStatusDrawCallbackStruct__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::<_XIMStatusDrawCallbackStruct__bindgen_ty_1>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_XIMStatusDrawCallbackStruct__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStatusDrawCallbackStruct__bindgen_ty_1>())).text as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMStatusDrawCallbackStruct__bindgen_ty_1), + "::", + stringify!(text) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStatusDrawCallbackStruct__bindgen_ty_1>())).bitmap + as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMStatusDrawCallbackStruct__bindgen_ty_1), + "::", + stringify!(bitmap) + ) + ); +} +#[test] +fn bindgen_test_layout__XIMStatusDrawCallbackStruct() { + assert_eq!( + ::core::mem::size_of::<_XIMStatusDrawCallbackStruct>(), + 16usize, + concat!("Size of: ", stringify!(_XIMStatusDrawCallbackStruct)) + ); + assert_eq!( + ::core::mem::align_of::<_XIMStatusDrawCallbackStruct>(), + 8usize, + concat!("Alignment of ", stringify!(_XIMStatusDrawCallbackStruct)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStatusDrawCallbackStruct>())).type_ as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMStatusDrawCallbackStruct), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStatusDrawCallbackStruct>())).data as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_XIMStatusDrawCallbackStruct), + "::", + stringify!(data) + ) + ); +} +pub type XIMStatusDrawCallbackStruct = _XIMStatusDrawCallbackStruct; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XIMHotKeyTrigger { + pub keysym: KeySym, + pub modifier: libc::c_int, + pub modifier_mask: libc::c_int, +} +#[test] +fn bindgen_test_layout__XIMHotKeyTrigger() { + assert_eq!( + ::core::mem::size_of::<_XIMHotKeyTrigger>(), + 16usize, + concat!("Size of: ", stringify!(_XIMHotKeyTrigger)) + ); + assert_eq!( + ::core::mem::align_of::<_XIMHotKeyTrigger>(), + 8usize, + concat!("Alignment of ", stringify!(_XIMHotKeyTrigger)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XIMHotKeyTrigger>())).keysym as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMHotKeyTrigger), + "::", + stringify!(keysym) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XIMHotKeyTrigger>())).modifier as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_XIMHotKeyTrigger), + "::", + stringify!(modifier) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMHotKeyTrigger>())).modifier_mask as *const _ as usize + }, + 12usize, + concat!( + "Offset of field: ", + stringify!(_XIMHotKeyTrigger), + "::", + stringify!(modifier_mask) + ) + ); +} +pub type XIMHotKeyTrigger = _XIMHotKeyTrigger; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XIMHotKeyTriggers { + pub num_hot_key: libc::c_int, + pub key: *mut XIMHotKeyTrigger, +} +#[test] +fn bindgen_test_layout__XIMHotKeyTriggers() { + assert_eq!( + ::core::mem::size_of::<_XIMHotKeyTriggers>(), + 16usize, + concat!("Size of: ", stringify!(_XIMHotKeyTriggers)) + ); + assert_eq!( + ::core::mem::align_of::<_XIMHotKeyTriggers>(), + 8usize, + concat!("Alignment of ", stringify!(_XIMHotKeyTriggers)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XIMHotKeyTriggers>())).num_hot_key as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMHotKeyTriggers), + "::", + stringify!(num_hot_key) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XIMHotKeyTriggers>())).key as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_XIMHotKeyTriggers), + "::", + stringify!(key) + ) + ); +} +pub type XIMHotKeyTriggers = _XIMHotKeyTriggers; +pub type XIMHotKeyState = libc::c_ulong; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XIMValuesList { + pub count_values: libc::c_ushort, + pub supported_values: *mut *mut libc::c_char, +} +#[test] +fn bindgen_test_layout_XIMValuesList() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XIMValuesList)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XIMValuesList)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).count_values as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XIMValuesList), + "::", + stringify!(count_values) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).supported_values as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XIMValuesList), + "::", + stringify!(supported_values) + ) + ); +} +extern "C" { + pub static mut _Xdebug: libc::c_int; +} +extern "C" { + pub fn XLoadQueryFont(arg1: *mut Display, arg2: *const libc::c_char) -> *mut XFontStruct; +} +extern "C" { + pub fn XQueryFont(arg1: *mut Display, arg2: XID) -> *mut XFontStruct; +} +extern "C" { + pub fn XGetMotionEvents( + arg1: *mut Display, + arg2: Window, + arg3: Time, + arg4: Time, + arg5: *mut libc::c_int, + ) -> *mut XTimeCoord; +} +extern "C" { + pub fn XDeleteModifiermapEntry( + arg1: *mut XModifierKeymap, + arg2: KeyCode, + arg3: libc::c_int, + ) -> *mut XModifierKeymap; +} +extern "C" { + pub fn XGetModifierMapping(arg1: *mut Display) -> *mut XModifierKeymap; +} +extern "C" { + pub fn XInsertModifiermapEntry( + arg1: *mut XModifierKeymap, + arg2: KeyCode, + arg3: libc::c_int, + ) -> *mut XModifierKeymap; +} +extern "C" { + pub fn XNewModifiermap(arg1: libc::c_int) -> *mut XModifierKeymap; +} +extern "C" { + pub fn XCreateImage( + arg1: *mut Display, + arg2: *mut Visual, + arg3: libc::c_uint, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *mut libc::c_char, + arg7: libc::c_uint, + arg8: libc::c_uint, + arg9: libc::c_int, + arg10: libc::c_int, + ) -> *mut XImage; +} +extern "C" { + pub fn XInitImage(arg1: *mut XImage) -> libc::c_int; +} +extern "C" { + pub fn XGetImage( + arg1: *mut Display, + arg2: Drawable, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: libc::c_uint, + arg6: libc::c_uint, + arg7: libc::c_ulong, + arg8: libc::c_int, + ) -> *mut XImage; +} +extern "C" { + pub fn XGetSubImage( + arg1: *mut Display, + arg2: Drawable, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: libc::c_uint, + arg6: libc::c_uint, + arg7: libc::c_ulong, + arg8: libc::c_int, + arg9: *mut XImage, + arg10: libc::c_int, + arg11: libc::c_int, + ) -> *mut XImage; +} +extern "C" { + pub fn XOpenDisplay(arg1: *const libc::c_char) -> *mut Display; +} +extern "C" { + pub fn XrmInitialize(); +} +extern "C" { + pub fn XFetchBytes(arg1: *mut Display, arg2: *mut libc::c_int) -> *mut libc::c_char; +} +extern "C" { + pub fn XFetchBuffer( + arg1: *mut Display, + arg2: *mut libc::c_int, + arg3: libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn XGetAtomName(arg1: *mut Display, arg2: Atom) -> *mut libc::c_char; +} +extern "C" { + pub fn XGetAtomNames( + arg1: *mut Display, + arg2: *mut Atom, + arg3: libc::c_int, + arg4: *mut *mut libc::c_char, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetDefault( + arg1: *mut Display, + arg2: *const libc::c_char, + arg3: *const libc::c_char, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn XDisplayName(arg1: *const libc::c_char) -> *mut libc::c_char; +} +extern "C" { + pub fn XKeysymToString(arg1: KeySym) -> *mut libc::c_char; +} +extern "C" { + pub fn XSynchronize( + arg1: *mut Display, + arg2: libc::c_int, + ) -> ::core::option::Option< + unsafe extern "C" fn(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int, + >; +} +extern "C" { + pub fn XSetAfterFunction( + arg1: *mut Display, + arg2: ::core::option::Option libc::c_int>, + ) -> ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut Display, + arg2: ::core::option::Option libc::c_int>, + ) -> libc::c_int, + >; +} +extern "C" { + pub fn XInternAtom(arg1: *mut Display, arg2: *const libc::c_char, arg3: libc::c_int) -> Atom; +} +extern "C" { + pub fn XInternAtoms( + arg1: *mut Display, + arg2: *mut *mut libc::c_char, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: *mut Atom, + ) -> libc::c_int; +} +extern "C" { + pub fn XCopyColormapAndFree(arg1: *mut Display, arg2: Colormap) -> Colormap; +} +extern "C" { + pub fn XCreateColormap( + arg1: *mut Display, + arg2: Window, + arg3: *mut Visual, + arg4: libc::c_int, + ) -> Colormap; +} +extern "C" { + pub fn XCreatePixmapCursor( + arg1: *mut Display, + arg2: Pixmap, + arg3: Pixmap, + arg4: *mut XColor, + arg5: *mut XColor, + arg6: libc::c_uint, + arg7: libc::c_uint, + ) -> Cursor; +} +extern "C" { + pub fn XCreateGlyphCursor( + arg1: *mut Display, + arg2: Font, + arg3: Font, + arg4: libc::c_uint, + arg5: libc::c_uint, + arg6: *const XColor, + arg7: *const XColor, + ) -> Cursor; +} +extern "C" { + pub fn XCreateFontCursor(arg1: *mut Display, arg2: libc::c_uint) -> Cursor; +} +extern "C" { + pub fn XLoadFont(arg1: *mut Display, arg2: *const libc::c_char) -> Font; +} +extern "C" { + pub fn XCreateGC( + arg1: *mut Display, + arg2: Drawable, + arg3: libc::c_ulong, + arg4: *mut XGCValues, + ) -> GC; +} +extern "C" { + pub fn XGContextFromGC(arg1: GC) -> GContext; +} +extern "C" { + pub fn XFlushGC(arg1: *mut Display, arg2: GC); +} +extern "C" { + pub fn XCreatePixmap( + arg1: *mut Display, + arg2: Drawable, + arg3: libc::c_uint, + arg4: libc::c_uint, + arg5: libc::c_uint, + ) -> Pixmap; +} +extern "C" { + pub fn XCreateBitmapFromData( + arg1: *mut Display, + arg2: Drawable, + arg3: *const libc::c_char, + arg4: libc::c_uint, + arg5: libc::c_uint, + ) -> Pixmap; +} +extern "C" { + pub fn XCreatePixmapFromBitmapData( + arg1: *mut Display, + arg2: Drawable, + arg3: *mut libc::c_char, + arg4: libc::c_uint, + arg5: libc::c_uint, + arg6: libc::c_ulong, + arg7: libc::c_ulong, + arg8: libc::c_uint, + ) -> Pixmap; +} +extern "C" { + pub fn XCreateSimpleWindow( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: libc::c_uint, + arg6: libc::c_uint, + arg7: libc::c_uint, + arg8: libc::c_ulong, + arg9: libc::c_ulong, + ) -> Window; +} +extern "C" { + pub fn XGetSelectionOwner(arg1: *mut Display, arg2: Atom) -> Window; +} +extern "C" { + pub fn XCreateWindow( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: libc::c_uint, + arg6: libc::c_uint, + arg7: libc::c_uint, + arg8: libc::c_int, + arg9: libc::c_uint, + arg10: *mut Visual, + arg11: libc::c_ulong, + arg12: *mut XSetWindowAttributes, + ) -> Window; +} +extern "C" { + pub fn XListInstalledColormaps( + arg1: *mut Display, + arg2: Window, + arg3: *mut libc::c_int, + ) -> *mut Colormap; +} +extern "C" { + pub fn XListFonts( + arg1: *mut Display, + arg2: *const libc::c_char, + arg3: libc::c_int, + arg4: *mut libc::c_int, + ) -> *mut *mut libc::c_char; +} +extern "C" { + pub fn XListFontsWithInfo( + arg1: *mut Display, + arg2: *const libc::c_char, + arg3: libc::c_int, + arg4: *mut libc::c_int, + arg5: *mut *mut XFontStruct, + ) -> *mut *mut libc::c_char; +} +extern "C" { + pub fn XGetFontPath(arg1: *mut Display, arg2: *mut libc::c_int) -> *mut *mut libc::c_char; +} +extern "C" { + pub fn XListExtensions(arg1: *mut Display, arg2: *mut libc::c_int) -> *mut *mut libc::c_char; +} +extern "C" { + pub fn XListProperties(arg1: *mut Display, arg2: Window, arg3: *mut libc::c_int) -> *mut Atom; +} +extern "C" { + pub fn XListHosts( + arg1: *mut Display, + arg2: *mut libc::c_int, + arg3: *mut libc::c_int, + ) -> *mut XHostAddress; +} +extern "C" { + pub fn XKeycodeToKeysym(arg1: *mut Display, arg2: KeyCode, arg3: libc::c_int) -> KeySym; +} +extern "C" { + pub fn XLookupKeysym(arg1: *mut XKeyEvent, arg2: libc::c_int) -> KeySym; +} +extern "C" { + pub fn XGetKeyboardMapping( + arg1: *mut Display, + arg2: KeyCode, + arg3: libc::c_int, + arg4: *mut libc::c_int, + ) -> *mut KeySym; +} +extern "C" { + pub fn XStringToKeysym(arg1: *const libc::c_char) -> KeySym; +} +extern "C" { + pub fn XMaxRequestSize(arg1: *mut Display) -> libc::c_long; +} +extern "C" { + pub fn XExtendedMaxRequestSize(arg1: *mut Display) -> libc::c_long; +} +extern "C" { + pub fn XResourceManagerString(arg1: *mut Display) -> *mut libc::c_char; +} +extern "C" { + pub fn XScreenResourceString(arg1: *mut Screen) -> *mut libc::c_char; +} +extern "C" { + pub fn XDisplayMotionBufferSize(arg1: *mut Display) -> libc::c_ulong; +} +extern "C" { + pub fn XVisualIDFromVisual(arg1: *mut Visual) -> VisualID; +} +extern "C" { + pub fn XInitThreads() -> libc::c_int; +} +extern "C" { + pub fn XLockDisplay(arg1: *mut Display); +} +extern "C" { + pub fn XUnlockDisplay(arg1: *mut Display); +} +extern "C" { + pub fn XInitExtension(arg1: *mut Display, arg2: *const libc::c_char) -> *mut XExtCodes; +} +extern "C" { + pub fn XAddExtension(arg1: *mut Display) -> *mut XExtCodes; +} +extern "C" { + pub fn XFindOnExtensionList(arg1: *mut *mut XExtData, arg2: libc::c_int) -> *mut XExtData; +} +extern "C" { + pub fn XEHeadOfExtensionList(arg1: XEDataObject) -> *mut *mut XExtData; +} +extern "C" { + pub fn XRootWindow(arg1: *mut Display, arg2: libc::c_int) -> Window; +} +extern "C" { + pub fn XDefaultRootWindow(arg1: *mut Display) -> Window; +} +extern "C" { + pub fn XRootWindowOfScreen(arg1: *mut Screen) -> Window; +} +extern "C" { + pub fn XDefaultVisual(arg1: *mut Display, arg2: libc::c_int) -> *mut Visual; +} +extern "C" { + pub fn XDefaultVisualOfScreen(arg1: *mut Screen) -> *mut Visual; +} +extern "C" { + pub fn XDefaultGC(arg1: *mut Display, arg2: libc::c_int) -> GC; +} +extern "C" { + pub fn XDefaultGCOfScreen(arg1: *mut Screen) -> GC; +} +extern "C" { + pub fn XBlackPixel(arg1: *mut Display, arg2: libc::c_int) -> libc::c_ulong; +} +extern "C" { + pub fn XWhitePixel(arg1: *mut Display, arg2: libc::c_int) -> libc::c_ulong; +} +extern "C" { + pub fn XAllPlanes() -> libc::c_ulong; +} +extern "C" { + pub fn XBlackPixelOfScreen(arg1: *mut Screen) -> libc::c_ulong; +} +extern "C" { + pub fn XWhitePixelOfScreen(arg1: *mut Screen) -> libc::c_ulong; +} +extern "C" { + pub fn XNextRequest(arg1: *mut Display) -> libc::c_ulong; +} +extern "C" { + pub fn XLastKnownRequestProcessed(arg1: *mut Display) -> libc::c_ulong; +} +extern "C" { + pub fn XServerVendor(arg1: *mut Display) -> *mut libc::c_char; +} +extern "C" { + pub fn XDisplayString(arg1: *mut Display) -> *mut libc::c_char; +} +extern "C" { + pub fn XDefaultColormap(arg1: *mut Display, arg2: libc::c_int) -> Colormap; +} +extern "C" { + pub fn XDefaultColormapOfScreen(arg1: *mut Screen) -> Colormap; +} +extern "C" { + pub fn XDisplayOfScreen(arg1: *mut Screen) -> *mut Display; +} +extern "C" { + pub fn XScreenOfDisplay(arg1: *mut Display, arg2: libc::c_int) -> *mut Screen; +} +extern "C" { + pub fn XDefaultScreenOfDisplay(arg1: *mut Display) -> *mut Screen; +} +extern "C" { + pub fn XEventMaskOfScreen(arg1: *mut Screen) -> libc::c_long; +} +extern "C" { + pub fn XScreenNumberOfScreen(arg1: *mut Screen) -> libc::c_int; +} +pub type XErrorHandler = ::core::option::Option< + unsafe extern "C" fn(arg1: *mut Display, arg2: *mut XErrorEvent) -> libc::c_int, +>; +extern "C" { + pub fn XSetErrorHandler(arg1: XErrorHandler) -> XErrorHandler; +} +pub type XIOErrorHandler = + ::core::option::Option libc::c_int>; +extern "C" { + pub fn XSetIOErrorHandler(arg1: XIOErrorHandler) -> XIOErrorHandler; +} +pub type XIOErrorExitHandler = + ::core::option::Option; +extern "C" { + pub fn XSetIOErrorExitHandler( + arg1: *mut Display, + arg2: XIOErrorExitHandler, + arg3: *mut libc::c_void, + ); +} +extern "C" { + pub fn XListPixmapFormats( + arg1: *mut Display, + arg2: *mut libc::c_int, + ) -> *mut XPixmapFormatValues; +} +extern "C" { + pub fn XListDepths( + arg1: *mut Display, + arg2: libc::c_int, + arg3: *mut libc::c_int, + ) -> *mut libc::c_int; +} +extern "C" { + pub fn XReconfigureWMWindow( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_int, + arg4: libc::c_uint, + arg5: *mut XWindowChanges, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetWMProtocols( + arg1: *mut Display, + arg2: Window, + arg3: *mut *mut Atom, + arg4: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetWMProtocols( + arg1: *mut Display, + arg2: Window, + arg3: *mut Atom, + arg4: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XIconifyWindow(arg1: *mut Display, arg2: Window, arg3: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XWithdrawWindow(arg1: *mut Display, arg2: Window, arg3: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XGetCommand( + arg1: *mut Display, + arg2: Window, + arg3: *mut *mut *mut libc::c_char, + arg4: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetWMColormapWindows( + arg1: *mut Display, + arg2: Window, + arg3: *mut *mut Window, + arg4: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetWMColormapWindows( + arg1: *mut Display, + arg2: Window, + arg3: *mut Window, + arg4: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XFreeStringList(arg1: *mut *mut libc::c_char); +} +extern "C" { + pub fn XSetTransientForHint(arg1: *mut Display, arg2: Window, arg3: Window) -> libc::c_int; +} +extern "C" { + pub fn XActivateScreenSaver(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XAddHost(arg1: *mut Display, arg2: *mut XHostAddress) -> libc::c_int; +} +extern "C" { + pub fn XAddHosts(arg1: *mut Display, arg2: *mut XHostAddress, arg3: libc::c_int) + -> libc::c_int; +} +extern "C" { + pub fn XAddToExtensionList(arg1: *mut *mut _XExtData, arg2: *mut XExtData) -> libc::c_int; +} +extern "C" { + pub fn XAddToSaveSet(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XAllocColor(arg1: *mut Display, arg2: Colormap, arg3: *mut XColor) -> libc::c_int; +} +extern "C" { + pub fn XAllocColorCells( + arg1: *mut Display, + arg2: Colormap, + arg3: libc::c_int, + arg4: *mut libc::c_ulong, + arg5: libc::c_uint, + arg6: *mut libc::c_ulong, + arg7: libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XAllocColorPlanes( + arg1: *mut Display, + arg2: Colormap, + arg3: libc::c_int, + arg4: *mut libc::c_ulong, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: libc::c_int, + arg8: libc::c_int, + arg9: *mut libc::c_ulong, + arg10: *mut libc::c_ulong, + arg11: *mut libc::c_ulong, + ) -> libc::c_int; +} +extern "C" { + pub fn XAllocNamedColor( + arg1: *mut Display, + arg2: Colormap, + arg3: *const libc::c_char, + arg4: *mut XColor, + arg5: *mut XColor, + ) -> libc::c_int; +} +extern "C" { + pub fn XAllowEvents(arg1: *mut Display, arg2: libc::c_int, arg3: Time) -> libc::c_int; +} +extern "C" { + pub fn XAutoRepeatOff(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XAutoRepeatOn(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XBell(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XBitmapBitOrder(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XBitmapPad(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XBitmapUnit(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XCellsOfScreen(arg1: *mut Screen) -> libc::c_int; +} +extern "C" { + pub fn XChangeActivePointerGrab( + arg1: *mut Display, + arg2: libc::c_uint, + arg3: Cursor, + arg4: Time, + ) -> libc::c_int; +} +extern "C" { + pub fn XChangeGC( + arg1: *mut Display, + arg2: GC, + arg3: libc::c_ulong, + arg4: *mut XGCValues, + ) -> libc::c_int; +} +extern "C" { + pub fn XChangeKeyboardControl( + arg1: *mut Display, + arg2: libc::c_ulong, + arg3: *mut XKeyboardControl, + ) -> libc::c_int; +} +extern "C" { + pub fn XChangeKeyboardMapping( + arg1: *mut Display, + arg2: libc::c_int, + arg3: libc::c_int, + arg4: *mut KeySym, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XChangePointerControl( + arg1: *mut Display, + arg2: libc::c_int, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XChangeProperty( + arg1: *mut Display, + arg2: Window, + arg3: Atom, + arg4: Atom, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: *const libc::c_uchar, + arg8: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XChangeSaveSet(arg1: *mut Display, arg2: Window, arg3: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XChangeWindowAttributes( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_ulong, + arg4: *mut XSetWindowAttributes, + ) -> libc::c_int; +} +extern "C" { + pub fn XCheckIfEvent( + arg1: *mut Display, + arg2: *mut XEvent, + arg3: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut Display, + arg2: *mut XEvent, + arg3: XPointer, + ) -> libc::c_int, + >, + arg4: XPointer, + ) -> libc::c_int; +} +extern "C" { + pub fn XCheckMaskEvent( + arg1: *mut Display, + arg2: libc::c_long, + arg3: *mut XEvent, + ) -> libc::c_int; +} +extern "C" { + pub fn XCheckTypedEvent( + arg1: *mut Display, + arg2: libc::c_int, + arg3: *mut XEvent, + ) -> libc::c_int; +} +extern "C" { + pub fn XCheckTypedWindowEvent( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_int, + arg4: *mut XEvent, + ) -> libc::c_int; +} +extern "C" { + pub fn XCheckWindowEvent( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_long, + arg4: *mut XEvent, + ) -> libc::c_int; +} +extern "C" { + pub fn XCirculateSubwindows(arg1: *mut Display, arg2: Window, arg3: libc::c_int) + -> libc::c_int; +} +extern "C" { + pub fn XCirculateSubwindowsDown(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XCirculateSubwindowsUp(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XClearArea( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: libc::c_uint, + arg6: libc::c_uint, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XClearWindow(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XCloseDisplay(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XConfigureWindow( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_uint, + arg4: *mut XWindowChanges, + ) -> libc::c_int; +} +extern "C" { + pub fn XConnectionNumber(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XConvertSelection( + arg1: *mut Display, + arg2: Atom, + arg3: Atom, + arg4: Atom, + arg5: Window, + arg6: Time, + ) -> libc::c_int; +} +extern "C" { + pub fn XCopyArea( + arg1: *mut Display, + arg2: Drawable, + arg3: Drawable, + arg4: GC, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: libc::c_uint, + arg8: libc::c_uint, + arg9: libc::c_int, + arg10: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XCopyGC(arg1: *mut Display, arg2: GC, arg3: libc::c_ulong, arg4: GC) -> libc::c_int; +} +extern "C" { + pub fn XCopyPlane( + arg1: *mut Display, + arg2: Drawable, + arg3: Drawable, + arg4: GC, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: libc::c_uint, + arg8: libc::c_uint, + arg9: libc::c_int, + arg10: libc::c_int, + arg11: libc::c_ulong, + ) -> libc::c_int; +} +extern "C" { + pub fn XDefaultDepth(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XDefaultDepthOfScreen(arg1: *mut Screen) -> libc::c_int; +} +extern "C" { + pub fn XDefaultScreen(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XDefineCursor(arg1: *mut Display, arg2: Window, arg3: Cursor) -> libc::c_int; +} +extern "C" { + pub fn XDeleteProperty(arg1: *mut Display, arg2: Window, arg3: Atom) -> libc::c_int; +} +extern "C" { + pub fn XDestroyWindow(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XDestroySubwindows(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XDoesBackingStore(arg1: *mut Screen) -> libc::c_int; +} +extern "C" { + pub fn XDoesSaveUnders(arg1: *mut Screen) -> libc::c_int; +} +extern "C" { + pub fn XDisableAccessControl(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XDisplayCells(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XDisplayHeight(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XDisplayHeightMM(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XDisplayKeycodes( + arg1: *mut Display, + arg2: *mut libc::c_int, + arg3: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDisplayPlanes(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XDisplayWidth(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XDisplayWidthMM(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XDrawArc( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: libc::c_uint, + arg7: libc::c_uint, + arg8: libc::c_int, + arg9: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawArcs( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: *mut XArc, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawImageString( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *const libc::c_char, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawImageString16( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *const XChar2b, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawLine( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawLines( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: *mut XPoint, + arg5: libc::c_int, + arg6: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawPoint( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawPoints( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: *mut XPoint, + arg5: libc::c_int, + arg6: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawRectangle( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: libc::c_uint, + arg7: libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawRectangles( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: *mut XRectangle, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawSegments( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: *mut XSegment, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawString( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *const libc::c_char, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawString16( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *const XChar2b, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawText( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *mut XTextItem, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawText16( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *mut XTextItem16, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XEnableAccessControl(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XEventsQueued(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XFetchName( + arg1: *mut Display, + arg2: Window, + arg3: *mut *mut libc::c_char, + ) -> libc::c_int; +} +extern "C" { + pub fn XFillArc( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: libc::c_uint, + arg7: libc::c_uint, + arg8: libc::c_int, + arg9: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XFillArcs( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: *mut XArc, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XFillPolygon( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: *mut XPoint, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XFillRectangle( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: libc::c_uint, + arg7: libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XFillRectangles( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: *mut XRectangle, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XFlush(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XForceScreenSaver(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XFree(arg1: *mut libc::c_void) -> libc::c_int; +} +extern "C" { + pub fn XFreeColormap(arg1: *mut Display, arg2: Colormap) -> libc::c_int; +} +extern "C" { + pub fn XFreeColors( + arg1: *mut Display, + arg2: Colormap, + arg3: *mut libc::c_ulong, + arg4: libc::c_int, + arg5: libc::c_ulong, + ) -> libc::c_int; +} +extern "C" { + pub fn XFreeCursor(arg1: *mut Display, arg2: Cursor) -> libc::c_int; +} +extern "C" { + pub fn XFreeExtensionList(arg1: *mut *mut libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn XFreeFont(arg1: *mut Display, arg2: *mut XFontStruct) -> libc::c_int; +} +extern "C" { + pub fn XFreeFontInfo( + arg1: *mut *mut libc::c_char, + arg2: *mut XFontStruct, + arg3: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XFreeFontNames(arg1: *mut *mut libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn XFreeFontPath(arg1: *mut *mut libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn XFreeGC(arg1: *mut Display, arg2: GC) -> libc::c_int; +} +extern "C" { + pub fn XFreeModifiermap(arg1: *mut XModifierKeymap) -> libc::c_int; +} +extern "C" { + pub fn XFreePixmap(arg1: *mut Display, arg2: Pixmap) -> libc::c_int; +} +extern "C" { + pub fn XGeometry( + arg1: *mut Display, + arg2: libc::c_int, + arg3: *const libc::c_char, + arg4: *const libc::c_char, + arg5: libc::c_uint, + arg6: libc::c_uint, + arg7: libc::c_uint, + arg8: libc::c_int, + arg9: libc::c_int, + arg10: *mut libc::c_int, + arg11: *mut libc::c_int, + arg12: *mut libc::c_int, + arg13: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetErrorDatabaseText( + arg1: *mut Display, + arg2: *const libc::c_char, + arg3: *const libc::c_char, + arg4: *const libc::c_char, + arg5: *mut libc::c_char, + arg6: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetErrorText( + arg1: *mut Display, + arg2: libc::c_int, + arg3: *mut libc::c_char, + arg4: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetFontProperty( + arg1: *mut XFontStruct, + arg2: Atom, + arg3: *mut libc::c_ulong, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetGCValues( + arg1: *mut Display, + arg2: GC, + arg3: libc::c_ulong, + arg4: *mut XGCValues, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetGeometry( + arg1: *mut Display, + arg2: Drawable, + arg3: *mut Window, + arg4: *mut libc::c_int, + arg5: *mut libc::c_int, + arg6: *mut libc::c_uint, + arg7: *mut libc::c_uint, + arg8: *mut libc::c_uint, + arg9: *mut libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetIconName( + arg1: *mut Display, + arg2: Window, + arg3: *mut *mut libc::c_char, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetInputFocus( + arg1: *mut Display, + arg2: *mut Window, + arg3: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetKeyboardControl(arg1: *mut Display, arg2: *mut XKeyboardState) -> libc::c_int; +} +extern "C" { + pub fn XGetPointerControl( + arg1: *mut Display, + arg2: *mut libc::c_int, + arg3: *mut libc::c_int, + arg4: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetPointerMapping( + arg1: *mut Display, + arg2: *mut libc::c_uchar, + arg3: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetScreenSaver( + arg1: *mut Display, + arg2: *mut libc::c_int, + arg3: *mut libc::c_int, + arg4: *mut libc::c_int, + arg5: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetTransientForHint(arg1: *mut Display, arg2: Window, arg3: *mut Window) + -> libc::c_int; +} +extern "C" { + pub fn XGetWindowProperty( + arg1: *mut Display, + arg2: Window, + arg3: Atom, + arg4: libc::c_long, + arg5: libc::c_long, + arg6: libc::c_int, + arg7: Atom, + arg8: *mut Atom, + arg9: *mut libc::c_int, + arg10: *mut libc::c_ulong, + arg11: *mut libc::c_ulong, + arg12: *mut *mut libc::c_uchar, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetWindowAttributes( + arg1: *mut Display, + arg2: Window, + arg3: *mut XWindowAttributes, + ) -> libc::c_int; +} +extern "C" { + pub fn XGrabButton( + arg1: *mut Display, + arg2: libc::c_uint, + arg3: libc::c_uint, + arg4: Window, + arg5: libc::c_int, + arg6: libc::c_uint, + arg7: libc::c_int, + arg8: libc::c_int, + arg9: Window, + arg10: Cursor, + ) -> libc::c_int; +} +extern "C" { + pub fn XGrabKey( + arg1: *mut Display, + arg2: libc::c_int, + arg3: libc::c_uint, + arg4: Window, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XGrabKeyboard( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: Time, + ) -> libc::c_int; +} +extern "C" { + pub fn XGrabPointer( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_int, + arg4: libc::c_uint, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: Window, + arg8: Cursor, + arg9: Time, + ) -> libc::c_int; +} +extern "C" { + pub fn XGrabServer(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XHeightMMOfScreen(arg1: *mut Screen) -> libc::c_int; +} +extern "C" { + pub fn XHeightOfScreen(arg1: *mut Screen) -> libc::c_int; +} +extern "C" { + pub fn XIfEvent( + arg1: *mut Display, + arg2: *mut XEvent, + arg3: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut Display, + arg2: *mut XEvent, + arg3: XPointer, + ) -> libc::c_int, + >, + arg4: XPointer, + ) -> libc::c_int; +} +extern "C" { + pub fn XImageByteOrder(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XInstallColormap(arg1: *mut Display, arg2: Colormap) -> libc::c_int; +} +extern "C" { + pub fn XKeysymToKeycode(arg1: *mut Display, arg2: KeySym) -> KeyCode; +} +extern "C" { + pub fn XKillClient(arg1: *mut Display, arg2: XID) -> libc::c_int; +} +extern "C" { + pub fn XLookupColor( + arg1: *mut Display, + arg2: Colormap, + arg3: *const libc::c_char, + arg4: *mut XColor, + arg5: *mut XColor, + ) -> libc::c_int; +} +extern "C" { + pub fn XLowerWindow(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XMapRaised(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XMapSubwindows(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XMapWindow(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XMaskEvent(arg1: *mut Display, arg2: libc::c_long, arg3: *mut XEvent) -> libc::c_int; +} +extern "C" { + pub fn XMaxCmapsOfScreen(arg1: *mut Screen) -> libc::c_int; +} +extern "C" { + pub fn XMinCmapsOfScreen(arg1: *mut Screen) -> libc::c_int; +} +extern "C" { + pub fn XMoveResizeWindow( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: libc::c_uint, + arg6: libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XMoveWindow( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_int, + arg4: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XNextEvent(arg1: *mut Display, arg2: *mut XEvent) -> libc::c_int; +} +extern "C" { + pub fn XNoOp(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XParseColor( + arg1: *mut Display, + arg2: Colormap, + arg3: *const libc::c_char, + arg4: *mut XColor, + ) -> libc::c_int; +} +extern "C" { + pub fn XParseGeometry( + arg1: *const libc::c_char, + arg2: *mut libc::c_int, + arg3: *mut libc::c_int, + arg4: *mut libc::c_uint, + arg5: *mut libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XPeekEvent(arg1: *mut Display, arg2: *mut XEvent) -> libc::c_int; +} +extern "C" { + pub fn XPeekIfEvent( + arg1: *mut Display, + arg2: *mut XEvent, + arg3: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut Display, + arg2: *mut XEvent, + arg3: XPointer, + ) -> libc::c_int, + >, + arg4: XPointer, + ) -> libc::c_int; +} +extern "C" { + pub fn XPending(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XPlanesOfScreen(arg1: *mut Screen) -> libc::c_int; +} +extern "C" { + pub fn XProtocolRevision(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XProtocolVersion(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XPutBackEvent(arg1: *mut Display, arg2: *mut XEvent) -> libc::c_int; +} +extern "C" { + pub fn XPutImage( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: *mut XImage, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: libc::c_int, + arg8: libc::c_int, + arg9: libc::c_uint, + arg10: libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XQLength(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XQueryBestCursor( + arg1: *mut Display, + arg2: Drawable, + arg3: libc::c_uint, + arg4: libc::c_uint, + arg5: *mut libc::c_uint, + arg6: *mut libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XQueryBestSize( + arg1: *mut Display, + arg2: libc::c_int, + arg3: Drawable, + arg4: libc::c_uint, + arg5: libc::c_uint, + arg6: *mut libc::c_uint, + arg7: *mut libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XQueryBestStipple( + arg1: *mut Display, + arg2: Drawable, + arg3: libc::c_uint, + arg4: libc::c_uint, + arg5: *mut libc::c_uint, + arg6: *mut libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XQueryBestTile( + arg1: *mut Display, + arg2: Drawable, + arg3: libc::c_uint, + arg4: libc::c_uint, + arg5: *mut libc::c_uint, + arg6: *mut libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XQueryColor(arg1: *mut Display, arg2: Colormap, arg3: *mut XColor) -> libc::c_int; +} +extern "C" { + pub fn XQueryColors( + arg1: *mut Display, + arg2: Colormap, + arg3: *mut XColor, + arg4: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XQueryExtension( + arg1: *mut Display, + arg2: *const libc::c_char, + arg3: *mut libc::c_int, + arg4: *mut libc::c_int, + arg5: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XQueryKeymap(arg1: *mut Display, arg2: *mut libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn XQueryPointer( + arg1: *mut Display, + arg2: Window, + arg3: *mut Window, + arg4: *mut Window, + arg5: *mut libc::c_int, + arg6: *mut libc::c_int, + arg7: *mut libc::c_int, + arg8: *mut libc::c_int, + arg9: *mut libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XQueryTextExtents( + arg1: *mut Display, + arg2: XID, + arg3: *const libc::c_char, + arg4: libc::c_int, + arg5: *mut libc::c_int, + arg6: *mut libc::c_int, + arg7: *mut libc::c_int, + arg8: *mut XCharStruct, + ) -> libc::c_int; +} +extern "C" { + pub fn XQueryTextExtents16( + arg1: *mut Display, + arg2: XID, + arg3: *const XChar2b, + arg4: libc::c_int, + arg5: *mut libc::c_int, + arg6: *mut libc::c_int, + arg7: *mut libc::c_int, + arg8: *mut XCharStruct, + ) -> libc::c_int; +} +extern "C" { + pub fn XQueryTree( + arg1: *mut Display, + arg2: Window, + arg3: *mut Window, + arg4: *mut Window, + arg5: *mut *mut Window, + arg6: *mut libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XRaiseWindow(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XReadBitmapFile( + arg1: *mut Display, + arg2: Drawable, + arg3: *const libc::c_char, + arg4: *mut libc::c_uint, + arg5: *mut libc::c_uint, + arg6: *mut Pixmap, + arg7: *mut libc::c_int, + arg8: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XReadBitmapFileData( + arg1: *const libc::c_char, + arg2: *mut libc::c_uint, + arg3: *mut libc::c_uint, + arg4: *mut *mut libc::c_uchar, + arg5: *mut libc::c_int, + arg6: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XRebindKeysym( + arg1: *mut Display, + arg2: KeySym, + arg3: *mut KeySym, + arg4: libc::c_int, + arg5: *const libc::c_uchar, + arg6: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XRecolorCursor( + arg1: *mut Display, + arg2: Cursor, + arg3: *mut XColor, + arg4: *mut XColor, + ) -> libc::c_int; +} +extern "C" { + pub fn XRefreshKeyboardMapping(arg1: *mut XMappingEvent) -> libc::c_int; +} +extern "C" { + pub fn XRemoveFromSaveSet(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XRemoveHost(arg1: *mut Display, arg2: *mut XHostAddress) -> libc::c_int; +} +extern "C" { + pub fn XRemoveHosts( + arg1: *mut Display, + arg2: *mut XHostAddress, + arg3: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XReparentWindow( + arg1: *mut Display, + arg2: Window, + arg3: Window, + arg4: libc::c_int, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XResetScreenSaver(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XResizeWindow( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_uint, + arg4: libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XRestackWindows(arg1: *mut Display, arg2: *mut Window, arg3: libc::c_int) + -> libc::c_int; +} +extern "C" { + pub fn XRotateBuffers(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XRotateWindowProperties( + arg1: *mut Display, + arg2: Window, + arg3: *mut Atom, + arg4: libc::c_int, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XScreenCount(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XSelectInput(arg1: *mut Display, arg2: Window, arg3: libc::c_long) -> libc::c_int; +} +extern "C" { + pub fn XSendEvent( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_int, + arg4: libc::c_long, + arg5: *mut XEvent, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetAccessControl(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XSetArcMode(arg1: *mut Display, arg2: GC, arg3: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XSetBackground(arg1: *mut Display, arg2: GC, arg3: libc::c_ulong) -> libc::c_int; +} +extern "C" { + pub fn XSetClipMask(arg1: *mut Display, arg2: GC, arg3: Pixmap) -> libc::c_int; +} +extern "C" { + pub fn XSetClipOrigin( + arg1: *mut Display, + arg2: GC, + arg3: libc::c_int, + arg4: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetClipRectangles( + arg1: *mut Display, + arg2: GC, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: *mut XRectangle, + arg6: libc::c_int, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetCloseDownMode(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XSetCommand( + arg1: *mut Display, + arg2: Window, + arg3: *mut *mut libc::c_char, + arg4: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetDashes( + arg1: *mut Display, + arg2: GC, + arg3: libc::c_int, + arg4: *const libc::c_char, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetFillRule(arg1: *mut Display, arg2: GC, arg3: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XSetFillStyle(arg1: *mut Display, arg2: GC, arg3: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XSetFont(arg1: *mut Display, arg2: GC, arg3: Font) -> libc::c_int; +} +extern "C" { + pub fn XSetFontPath( + arg1: *mut Display, + arg2: *mut *mut libc::c_char, + arg3: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetForeground(arg1: *mut Display, arg2: GC, arg3: libc::c_ulong) -> libc::c_int; +} +extern "C" { + pub fn XSetFunction(arg1: *mut Display, arg2: GC, arg3: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XSetGraphicsExposures(arg1: *mut Display, arg2: GC, arg3: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XSetIconName(arg1: *mut Display, arg2: Window, arg3: *const libc::c_char) + -> libc::c_int; +} +extern "C" { + pub fn XSetInputFocus( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_int, + arg4: Time, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetLineAttributes( + arg1: *mut Display, + arg2: GC, + arg3: libc::c_uint, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetModifierMapping(arg1: *mut Display, arg2: *mut XModifierKeymap) -> libc::c_int; +} +extern "C" { + pub fn XSetPlaneMask(arg1: *mut Display, arg2: GC, arg3: libc::c_ulong) -> libc::c_int; +} +extern "C" { + pub fn XSetPointerMapping( + arg1: *mut Display, + arg2: *const libc::c_uchar, + arg3: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetScreenSaver( + arg1: *mut Display, + arg2: libc::c_int, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetSelectionOwner( + arg1: *mut Display, + arg2: Atom, + arg3: Window, + arg4: Time, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetState( + arg1: *mut Display, + arg2: GC, + arg3: libc::c_ulong, + arg4: libc::c_ulong, + arg5: libc::c_int, + arg6: libc::c_ulong, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetStipple(arg1: *mut Display, arg2: GC, arg3: Pixmap) -> libc::c_int; +} +extern "C" { + pub fn XSetSubwindowMode(arg1: *mut Display, arg2: GC, arg3: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XSetTSOrigin( + arg1: *mut Display, + arg2: GC, + arg3: libc::c_int, + arg4: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetTile(arg1: *mut Display, arg2: GC, arg3: Pixmap) -> libc::c_int; +} +extern "C" { + pub fn XSetWindowBackground( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_ulong, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetWindowBackgroundPixmap( + arg1: *mut Display, + arg2: Window, + arg3: Pixmap, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetWindowBorder(arg1: *mut Display, arg2: Window, arg3: libc::c_ulong) -> libc::c_int; +} +extern "C" { + pub fn XSetWindowBorderPixmap(arg1: *mut Display, arg2: Window, arg3: Pixmap) -> libc::c_int; +} +extern "C" { + pub fn XSetWindowBorderWidth( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetWindowColormap(arg1: *mut Display, arg2: Window, arg3: Colormap) -> libc::c_int; +} +extern "C" { + pub fn XStoreBuffer( + arg1: *mut Display, + arg2: *const libc::c_char, + arg3: libc::c_int, + arg4: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XStoreBytes( + arg1: *mut Display, + arg2: *const libc::c_char, + arg3: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XStoreColor(arg1: *mut Display, arg2: Colormap, arg3: *mut XColor) -> libc::c_int; +} +extern "C" { + pub fn XStoreColors( + arg1: *mut Display, + arg2: Colormap, + arg3: *mut XColor, + arg4: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XStoreName(arg1: *mut Display, arg2: Window, arg3: *const libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn XStoreNamedColor( + arg1: *mut Display, + arg2: Colormap, + arg3: *const libc::c_char, + arg4: libc::c_ulong, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSync(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XTextExtents( + arg1: *mut XFontStruct, + arg2: *const libc::c_char, + arg3: libc::c_int, + arg4: *mut libc::c_int, + arg5: *mut libc::c_int, + arg6: *mut libc::c_int, + arg7: *mut XCharStruct, + ) -> libc::c_int; +} +extern "C" { + pub fn XTextExtents16( + arg1: *mut XFontStruct, + arg2: *const XChar2b, + arg3: libc::c_int, + arg4: *mut libc::c_int, + arg5: *mut libc::c_int, + arg6: *mut libc::c_int, + arg7: *mut XCharStruct, + ) -> libc::c_int; +} +extern "C" { + pub fn XTextWidth( + arg1: *mut XFontStruct, + arg2: *const libc::c_char, + arg3: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XTextWidth16( + arg1: *mut XFontStruct, + arg2: *const XChar2b, + arg3: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XTranslateCoordinates( + arg1: *mut Display, + arg2: Window, + arg3: Window, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *mut libc::c_int, + arg7: *mut libc::c_int, + arg8: *mut Window, + ) -> libc::c_int; +} +extern "C" { + pub fn XUndefineCursor(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XUngrabButton( + arg1: *mut Display, + arg2: libc::c_uint, + arg3: libc::c_uint, + arg4: Window, + ) -> libc::c_int; +} +extern "C" { + pub fn XUngrabKey( + arg1: *mut Display, + arg2: libc::c_int, + arg3: libc::c_uint, + arg4: Window, + ) -> libc::c_int; +} +extern "C" { + pub fn XUngrabKeyboard(arg1: *mut Display, arg2: Time) -> libc::c_int; +} +extern "C" { + pub fn XUngrabPointer(arg1: *mut Display, arg2: Time) -> libc::c_int; +} +extern "C" { + pub fn XUngrabServer(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XUninstallColormap(arg1: *mut Display, arg2: Colormap) -> libc::c_int; +} +extern "C" { + pub fn XUnloadFont(arg1: *mut Display, arg2: Font) -> libc::c_int; +} +extern "C" { + pub fn XUnmapSubwindows(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XUnmapWindow(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XVendorRelease(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XWarpPointer( + arg1: *mut Display, + arg2: Window, + arg3: Window, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: libc::c_uint, + arg7: libc::c_uint, + arg8: libc::c_int, + arg9: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XWidthMMOfScreen(arg1: *mut Screen) -> libc::c_int; +} +extern "C" { + pub fn XWidthOfScreen(arg1: *mut Screen) -> libc::c_int; +} +extern "C" { + pub fn XWindowEvent( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_long, + arg4: *mut XEvent, + ) -> libc::c_int; +} +extern "C" { + pub fn XWriteBitmapFile( + arg1: *mut Display, + arg2: *const libc::c_char, + arg3: Pixmap, + arg4: libc::c_uint, + arg5: libc::c_uint, + arg6: libc::c_int, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSupportsLocale() -> libc::c_int; +} +extern "C" { + pub fn XSetLocaleModifiers(arg1: *const libc::c_char) -> *mut libc::c_char; +} +extern "C" { + pub fn XOpenOM( + arg1: *mut Display, + arg2: *mut _XrmHashBucketRec, + arg3: *const libc::c_char, + arg4: *const libc::c_char, + ) -> XOM; +} +extern "C" { + pub fn XCloseOM(arg1: XOM) -> libc::c_int; +} +extern "C" { + pub fn XSetOMValues(arg1: XOM, ...) -> *mut libc::c_char; +} +extern "C" { + pub fn XGetOMValues(arg1: XOM, ...) -> *mut libc::c_char; +} +extern "C" { + pub fn XDisplayOfOM(arg1: XOM) -> *mut Display; +} +extern "C" { + pub fn XLocaleOfOM(arg1: XOM) -> *mut libc::c_char; +} +extern "C" { + pub fn XCreateOC(arg1: XOM, ...) -> XOC; +} +extern "C" { + pub fn XDestroyOC(arg1: XOC); +} +extern "C" { + pub fn XOMOfOC(arg1: XOC) -> XOM; +} +extern "C" { + pub fn XSetOCValues(arg1: XOC, ...) -> *mut libc::c_char; +} +extern "C" { + pub fn XGetOCValues(arg1: XOC, ...) -> *mut libc::c_char; +} +extern "C" { + pub fn XCreateFontSet( + arg1: *mut Display, + arg2: *const libc::c_char, + arg3: *mut *mut *mut libc::c_char, + arg4: *mut libc::c_int, + arg5: *mut *mut libc::c_char, + ) -> XFontSet; +} +extern "C" { + pub fn XFreeFontSet(arg1: *mut Display, arg2: XFontSet); +} +extern "C" { + pub fn XFontsOfFontSet( + arg1: XFontSet, + arg2: *mut *mut *mut XFontStruct, + arg3: *mut *mut *mut libc::c_char, + ) -> libc::c_int; +} +extern "C" { + pub fn XBaseFontNameListOfFontSet(arg1: XFontSet) -> *mut libc::c_char; +} +extern "C" { + pub fn XLocaleOfFontSet(arg1: XFontSet) -> *mut libc::c_char; +} +extern "C" { + pub fn XContextDependentDrawing(arg1: XFontSet) -> libc::c_int; +} +extern "C" { + pub fn XDirectionalDependentDrawing(arg1: XFontSet) -> libc::c_int; +} +extern "C" { + pub fn XContextualDrawing(arg1: XFontSet) -> libc::c_int; +} +extern "C" { + pub fn XExtentsOfFontSet(arg1: XFontSet) -> *mut XFontSetExtents; +} +extern "C" { + pub fn XmbTextEscapement( + arg1: XFontSet, + arg2: *const libc::c_char, + arg3: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XwcTextEscapement( + arg1: XFontSet, + arg2: *const wchar_t, + arg3: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn Xutf8TextEscapement( + arg1: XFontSet, + arg2: *const libc::c_char, + arg3: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XmbTextExtents( + arg1: XFontSet, + arg2: *const libc::c_char, + arg3: libc::c_int, + arg4: *mut XRectangle, + arg5: *mut XRectangle, + ) -> libc::c_int; +} +extern "C" { + pub fn XwcTextExtents( + arg1: XFontSet, + arg2: *const wchar_t, + arg3: libc::c_int, + arg4: *mut XRectangle, + arg5: *mut XRectangle, + ) -> libc::c_int; +} +extern "C" { + pub fn Xutf8TextExtents( + arg1: XFontSet, + arg2: *const libc::c_char, + arg3: libc::c_int, + arg4: *mut XRectangle, + arg5: *mut XRectangle, + ) -> libc::c_int; +} +extern "C" { + pub fn XmbTextPerCharExtents( + arg1: XFontSet, + arg2: *const libc::c_char, + arg3: libc::c_int, + arg4: *mut XRectangle, + arg5: *mut XRectangle, + arg6: libc::c_int, + arg7: *mut libc::c_int, + arg8: *mut XRectangle, + arg9: *mut XRectangle, + ) -> libc::c_int; +} +extern "C" { + pub fn XwcTextPerCharExtents( + arg1: XFontSet, + arg2: *const wchar_t, + arg3: libc::c_int, + arg4: *mut XRectangle, + arg5: *mut XRectangle, + arg6: libc::c_int, + arg7: *mut libc::c_int, + arg8: *mut XRectangle, + arg9: *mut XRectangle, + ) -> libc::c_int; +} +extern "C" { + pub fn Xutf8TextPerCharExtents( + arg1: XFontSet, + arg2: *const libc::c_char, + arg3: libc::c_int, + arg4: *mut XRectangle, + arg5: *mut XRectangle, + arg6: libc::c_int, + arg7: *mut libc::c_int, + arg8: *mut XRectangle, + arg9: *mut XRectangle, + ) -> libc::c_int; +} +extern "C" { + pub fn XmbDrawText( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *mut XmbTextItem, + arg7: libc::c_int, + ); +} +extern "C" { + pub fn XwcDrawText( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *mut XwcTextItem, + arg7: libc::c_int, + ); +} +extern "C" { + pub fn Xutf8DrawText( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *mut XmbTextItem, + arg7: libc::c_int, + ); +} +extern "C" { + pub fn XmbDrawString( + arg1: *mut Display, + arg2: Drawable, + arg3: XFontSet, + arg4: GC, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: *const libc::c_char, + arg8: libc::c_int, + ); +} +extern "C" { + pub fn XwcDrawString( + arg1: *mut Display, + arg2: Drawable, + arg3: XFontSet, + arg4: GC, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: *const wchar_t, + arg8: libc::c_int, + ); +} +extern "C" { + pub fn Xutf8DrawString( + arg1: *mut Display, + arg2: Drawable, + arg3: XFontSet, + arg4: GC, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: *const libc::c_char, + arg8: libc::c_int, + ); +} +extern "C" { + pub fn XmbDrawImageString( + arg1: *mut Display, + arg2: Drawable, + arg3: XFontSet, + arg4: GC, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: *const libc::c_char, + arg8: libc::c_int, + ); +} +extern "C" { + pub fn XwcDrawImageString( + arg1: *mut Display, + arg2: Drawable, + arg3: XFontSet, + arg4: GC, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: *const wchar_t, + arg8: libc::c_int, + ); +} +extern "C" { + pub fn Xutf8DrawImageString( + arg1: *mut Display, + arg2: Drawable, + arg3: XFontSet, + arg4: GC, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: *const libc::c_char, + arg8: libc::c_int, + ); +} +extern "C" { + pub fn XOpenIM( + arg1: *mut Display, + arg2: *mut _XrmHashBucketRec, + arg3: *mut libc::c_char, + arg4: *mut libc::c_char, + ) -> XIM; +} +extern "C" { + pub fn XCloseIM(arg1: XIM) -> libc::c_int; +} +extern "C" { + pub fn XGetIMValues(arg1: XIM, ...) -> *mut libc::c_char; +} +extern "C" { + pub fn XSetIMValues(arg1: XIM, ...) -> *mut libc::c_char; +} +extern "C" { + pub fn XDisplayOfIM(arg1: XIM) -> *mut Display; +} +extern "C" { + pub fn XLocaleOfIM(arg1: XIM) -> *mut libc::c_char; +} +extern "C" { + pub fn XCreateIC(arg1: XIM, ...) -> XIC; +} +extern "C" { + pub fn XDestroyIC(arg1: XIC); +} +extern "C" { + pub fn XSetICFocus(arg1: XIC); +} +extern "C" { + pub fn XUnsetICFocus(arg1: XIC); +} +extern "C" { + pub fn XwcResetIC(arg1: XIC) -> *mut wchar_t; +} +extern "C" { + pub fn XmbResetIC(arg1: XIC) -> *mut libc::c_char; +} +extern "C" { + pub fn Xutf8ResetIC(arg1: XIC) -> *mut libc::c_char; +} +extern "C" { + pub fn XSetICValues(arg1: XIC, ...) -> *mut libc::c_char; +} +extern "C" { + pub fn XGetICValues(arg1: XIC, ...) -> *mut libc::c_char; +} +extern "C" { + pub fn XIMOfIC(arg1: XIC) -> XIM; +} +extern "C" { + pub fn XFilterEvent(arg1: *mut XEvent, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XmbLookupString( + arg1: XIC, + arg2: *mut XKeyPressedEvent, + arg3: *mut libc::c_char, + arg4: libc::c_int, + arg5: *mut KeySym, + arg6: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XwcLookupString( + arg1: XIC, + arg2: *mut XKeyPressedEvent, + arg3: *mut wchar_t, + arg4: libc::c_int, + arg5: *mut KeySym, + arg6: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn Xutf8LookupString( + arg1: XIC, + arg2: *mut XKeyPressedEvent, + arg3: *mut libc::c_char, + arg4: libc::c_int, + arg5: *mut KeySym, + arg6: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XVaCreateNestedList(arg1: libc::c_int, ...) -> XVaNestedList; +} +extern "C" { + pub fn XRegisterIMInstantiateCallback( + arg1: *mut Display, + arg2: *mut _XrmHashBucketRec, + arg3: *mut libc::c_char, + arg4: *mut libc::c_char, + arg5: XIDProc, + arg6: XPointer, + ) -> libc::c_int; +} +extern "C" { + pub fn XUnregisterIMInstantiateCallback( + arg1: *mut Display, + arg2: *mut _XrmHashBucketRec, + arg3: *mut libc::c_char, + arg4: *mut libc::c_char, + arg5: XIDProc, + arg6: XPointer, + ) -> libc::c_int; +} +pub type XConnectionWatchProc = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut Display, + arg2: XPointer, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: *mut XPointer, + ), +>; +extern "C" { + pub fn XInternalConnectionNumbers( + arg1: *mut Display, + arg2: *mut *mut libc::c_int, + arg3: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XProcessInternalConnection(arg1: *mut Display, arg2: libc::c_int); +} +extern "C" { + pub fn XAddConnectionWatch( + arg1: *mut Display, + arg2: XConnectionWatchProc, + arg3: XPointer, + ) -> libc::c_int; +} +extern "C" { + pub fn XRemoveConnectionWatch(arg1: *mut Display, arg2: XConnectionWatchProc, arg3: XPointer); +} +extern "C" { + pub fn XSetAuthorization( + arg1: *mut libc::c_char, + arg2: libc::c_int, + arg3: *mut libc::c_char, + arg4: libc::c_int, + ); +} +extern "C" { + pub fn _Xmbtowc(arg1: *mut wchar_t, arg2: *mut libc::c_char, arg3: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn _Xwctomb(arg1: *mut libc::c_char, arg2: wchar_t) -> libc::c_int; +} +extern "C" { + pub fn XGetEventData(arg1: *mut Display, arg2: *mut XGenericEventCookie) -> libc::c_int; +} +extern "C" { + pub fn XFreeEventData(arg1: *mut Display, arg2: *mut XGenericEventCookie); +} +#[repr(u32)] +#[doc = " These are the various supported windowing subsystems"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_SYSWM_TYPE { + SDL_SYSWM_UNKNOWN = 0, + SDL_SYSWM_WINDOWS = 1, + SDL_SYSWM_X11 = 2, + SDL_SYSWM_DIRECTFB = 3, + SDL_SYSWM_COCOA = 4, + SDL_SYSWM_UIKIT = 5, + SDL_SYSWM_WAYLAND = 6, + SDL_SYSWM_MIR = 7, + SDL_SYSWM_WINRT = 8, + SDL_SYSWM_ANDROID = 9, + SDL_SYSWM_VIVANTE = 10, + SDL_SYSWM_OS2 = 11, + SDL_SYSWM_HAIKU = 12, +} +#[doc = " The custom event structure."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_SysWMmsg { + pub version: SDL_version, + pub subsystem: SDL_SYSWM_TYPE, + pub msg: SDL_SysWMmsg__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union SDL_SysWMmsg__bindgen_ty_1 { + pub x11: SDL_SysWMmsg__bindgen_ty_1__bindgen_ty_1, + pub dummy: libc::c_int, + _bindgen_union_align: [u64; 24usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_SysWMmsg__bindgen_ty_1__bindgen_ty_1 { + pub event: XEvent, +} +#[test] +fn bindgen_test_layout_SDL_SysWMmsg__bindgen_ty_1__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::(), + 192usize, + concat!( + "Size of: ", + stringify!(SDL_SysWMmsg__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(SDL_SysWMmsg__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).event as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMmsg__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(event) + ) + ); +} +#[test] +fn bindgen_test_layout_SDL_SysWMmsg__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::(), + 192usize, + concat!("Size of: ", stringify!(SDL_SysWMmsg__bindgen_ty_1)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_SysWMmsg__bindgen_ty_1)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x11 as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMmsg__bindgen_ty_1), + "::", + stringify!(x11) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).dummy as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMmsg__bindgen_ty_1), + "::", + stringify!(dummy) + ) + ); +} +#[test] +fn bindgen_test_layout_SDL_SysWMmsg() { + assert_eq!( + ::core::mem::size_of::(), + 200usize, + concat!("Size of: ", stringify!(SDL_SysWMmsg)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_SysWMmsg)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).version as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMmsg), + "::", + stringify!(version) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).subsystem as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMmsg), + "::", + stringify!(subsystem) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).msg as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMmsg), + "::", + stringify!(msg) + ) + ); +} +#[doc = " \\brief SDL_syswm.h"] +#[doc = ""] +#[doc = " Your application has access to a special type of event ::SDL_SYSWMEVENT,"] +#[doc = " which contains window-manager specific information and arrives whenever"] +#[doc = " an unhandled window event occurs. This event is ignored by default, but"] +#[doc = " you can enable it with SDL_EventState()."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_SysWMinfo { + pub version: SDL_version, + pub subsystem: SDL_SYSWM_TYPE, + pub info: SDL_SysWMinfo__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union SDL_SysWMinfo__bindgen_ty_1 { + pub x11: SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_1, + pub wl: SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_2, + pub dummy: [Uint8; 64usize], + _bindgen_union_align: [u64; 8usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_1 { + #[doc = "< The X11 display"] + pub display: *mut Display, + #[doc = "< The X11 window"] + pub window: Window, +} +#[test] +fn bindgen_test_layout_SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!( + "Size of: ", + stringify!(SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).display + as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).window + as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(window) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_2 { + #[doc = "< Wayland display"] + pub display: *mut wl_display, + #[doc = "< Wayland surface"] + pub surface: *mut wl_surface, + #[doc = "< Wayland shell_surface (window manager handle)"] + pub shell_surface: *mut wl_shell_surface, +} +#[test] +fn bindgen_test_layout_SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_2() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!( + "Size of: ", + stringify!(SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).display + as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).surface + as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(surface) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).shell_surface + as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(shell_surface) + ) + ); +} +#[test] +fn bindgen_test_layout_SDL_SysWMinfo__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(SDL_SysWMinfo__bindgen_ty_1)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_SysWMinfo__bindgen_ty_1)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).x11 as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMinfo__bindgen_ty_1), + "::", + stringify!(x11) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).wl as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMinfo__bindgen_ty_1), + "::", + stringify!(wl) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).dummy as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMinfo__bindgen_ty_1), + "::", + stringify!(dummy) + ) + ); +} +#[test] +fn bindgen_test_layout_SDL_SysWMinfo() { + assert_eq!( + ::core::mem::size_of::(), + 72usize, + concat!("Size of: ", stringify!(SDL_SysWMinfo)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_SysWMinfo)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).version as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMinfo), + "::", + stringify!(version) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).subsystem as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMinfo), + "::", + stringify!(subsystem) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).info as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMinfo), + "::", + stringify!(info) + ) + ); +} +extern "C" { + #[doc = " \\brief This function allows access to driver-dependent window information."] + #[doc = ""] + #[doc = " \\param window The window about which information is being requested"] + #[doc = " \\param info This structure must be initialized with the SDL version, and is"] + #[doc = " then filled in with information about the given window."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the function is implemented and the version member of"] + #[doc = " the \\c info struct is valid, SDL_FALSE otherwise."] + #[doc = ""] + #[doc = " You typically use this function like this:"] + #[doc = " \\code"] + #[doc = " SDL_SysWMinfo info;"] + #[doc = " SDL_VERSION(&info.version);"] + #[doc = " if ( SDL_GetWindowWMInfo(window, &info) ) { ... }"] + #[doc = " \\endcode"] + pub fn SDL_GetWindowWMInfo(window: *mut SDL_Window, info: *mut SDL_SysWMinfo) -> SDL_bool; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct VkInstance_T { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct VkSurfaceKHR_T { + _unused: [u8; 0], +} +pub type SDL_vulkanInstance = VkInstance; +pub type SDL_vulkanSurface = VkSurfaceKHR; +extern "C" { + #[doc = " \\brief Dynamically load a Vulkan loader library."] + #[doc = ""] + #[doc = " \\param [in] path The platform dependent Vulkan loader library name, or"] + #[doc = " \\c NULL."] + #[doc = ""] + #[doc = " \\return \\c 0 on success, or \\c -1 if the library couldn't be loaded."] + #[doc = ""] + #[doc = " If \\a path is NULL SDL will use the value of the environment variable"] + #[doc = " \\c SDL_VULKAN_LIBRARY, if set, otherwise it loads the default Vulkan"] + #[doc = " loader library."] + #[doc = ""] + #[doc = " This should be called after initializing the video driver, but before"] + #[doc = " creating any Vulkan windows. If no Vulkan loader library is loaded, the"] + #[doc = " default library will be loaded upon creation of the first Vulkan window."] + #[doc = ""] + #[doc = " \\note It is fairly common for Vulkan applications to link with \\a libvulkan"] + #[doc = " instead of explicitly loading it at run time. This will work with"] + #[doc = " SDL provided the application links to a dynamic library and both it"] + #[doc = " and SDL use the same search path."] + #[doc = ""] + #[doc = " \\note If you specify a non-NULL \\c path, an application should retrieve all"] + #[doc = " of the Vulkan functions it uses from the dynamic library using"] + #[doc = " \\c SDL_Vulkan_GetVkGetInstanceProcAddr() unless you can guarantee"] + #[doc = " \\c path points to the same vulkan loader library the application"] + #[doc = " linked to."] + #[doc = ""] + #[doc = " \\note On Apple devices, if \\a path is NULL, SDL will attempt to find"] + #[doc = " the vkGetInstanceProcAddr address within all the mach-o images of"] + #[doc = " the current process. This is because it is fairly common for Vulkan"] + #[doc = " applications to link with libvulkan (and historically MoltenVK was"] + #[doc = " provided as a static library). If it is not found then, on macOS, SDL"] + #[doc = " will attempt to load \\c vulkan.framework/vulkan, \\c libvulkan.1.dylib,"] + #[doc = " followed by \\c libvulkan.dylib, in that order."] + #[doc = " On iOS SDL will attempt to load \\c libvulkan.dylib only. Applications"] + #[doc = " using a dynamic framework or .dylib must ensure it is included in its"] + #[doc = " application bundle."] + #[doc = ""] + #[doc = " \\note On non-Apple devices, application linking with a static libvulkan is"] + #[doc = " not supported. Either do not link to the Vulkan loader or link to a"] + #[doc = " dynamic library version."] + #[doc = ""] + #[doc = " \\note This function will fail if there are no working Vulkan drivers"] + #[doc = " installed."] + #[doc = ""] + #[doc = " \\sa SDL_Vulkan_GetVkGetInstanceProcAddr()"] + #[doc = " \\sa SDL_Vulkan_UnloadLibrary()"] + pub fn SDL_Vulkan_LoadLibrary(path: *const libc::c_char) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the address of the \\c vkGetInstanceProcAddr function."] + #[doc = ""] + #[doc = " \\note This should be called after either calling SDL_Vulkan_LoadLibrary"] + #[doc = " or creating an SDL_Window with the SDL_WINDOW_VULKAN flag."] + pub fn SDL_Vulkan_GetVkGetInstanceProcAddr() -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Unload the Vulkan loader library previously loaded by"] + #[doc = " \\c SDL_Vulkan_LoadLibrary()."] + #[doc = ""] + #[doc = " \\sa SDL_Vulkan_LoadLibrary()"] + pub fn SDL_Vulkan_UnloadLibrary(); +} +extern "C" { + #[doc = " \\brief Get the names of the Vulkan instance extensions needed to create"] + #[doc = " a surface with \\c SDL_Vulkan_CreateSurface()."] + #[doc = ""] + #[doc = " \\param [in] \\c NULL or window Window for which the required Vulkan instance"] + #[doc = " extensions should be retrieved"] + #[doc = " \\param [in,out] pCount pointer to an \\c unsigned related to the number of"] + #[doc = " required Vulkan instance extensions"] + #[doc = " \\param [out] pNames \\c NULL or a pointer to an array to be filled with the"] + #[doc = " required Vulkan instance extensions"] + #[doc = ""] + #[doc = " \\return \\c SDL_TRUE on success, \\c SDL_FALSE on error."] + #[doc = ""] + #[doc = " If \\a pNames is \\c NULL, then the number of required Vulkan instance"] + #[doc = " extensions is returned in pCount. Otherwise, \\a pCount must point to a"] + #[doc = " variable set to the number of elements in the \\a pNames array, and on"] + #[doc = " return the variable is overwritten with the number of names actually"] + #[doc = " written to \\a pNames. If \\a pCount is less than the number of required"] + #[doc = " extensions, at most \\a pCount structures will be written. If \\a pCount"] + #[doc = " is smaller than the number of required extensions, \\c SDL_FALSE will be"] + #[doc = " returned instead of \\c SDL_TRUE, to indicate that not all the required"] + #[doc = " extensions were returned."] + #[doc = ""] + #[doc = " \\note If \\c window is not NULL, it will be checked against its creation"] + #[doc = " flags to ensure that the Vulkan flag is present. This parameter"] + #[doc = " will be removed in a future major release."] + #[doc = ""] + #[doc = " \\note The returned list of extensions will contain \\c VK_KHR_surface"] + #[doc = " and zero or more platform specific extensions"] + #[doc = ""] + #[doc = " \\note The extension names queried here must be enabled when calling"] + #[doc = " VkCreateInstance, otherwise surface creation will fail."] + #[doc = ""] + #[doc = " \\note \\c window should have been created with the \\c SDL_WINDOW_VULKAN flag"] + #[doc = " or be \\c NULL"] + #[doc = ""] + #[doc = " \\code"] + #[doc = " unsigned int count;"] + #[doc = " // get count of required extensions"] + #[doc = " if(!SDL_Vulkan_GetInstanceExtensions(NULL, &count, NULL))"] + #[doc = " handle_error();"] + #[doc = ""] + #[doc = " static const char *const additionalExtensions[] ="] + #[doc = " {"] + #[doc = " VK_EXT_DEBUG_REPORT_EXTENSION_NAME, // example additional extension"] + #[doc = " };"] + #[doc = " size_t additionalExtensionsCount = sizeof(additionalExtensions) / sizeof(additionalExtensions[0]);"] + #[doc = " size_t extensionCount = count + additionalExtensionsCount;"] + #[doc = " const char **names = malloc(sizeof(const char *) * extensionCount);"] + #[doc = " if(!names)"] + #[doc = " handle_error();"] + #[doc = ""] + #[doc = " // get names of required extensions"] + #[doc = " if(!SDL_Vulkan_GetInstanceExtensions(NULL, &count, names))"] + #[doc = " handle_error();"] + #[doc = ""] + #[doc = " // copy additional extensions after required extensions"] + #[doc = " for(size_t i = 0; i < additionalExtensionsCount; i++)"] + #[doc = " names[i + count] = additionalExtensions[i];"] + #[doc = ""] + #[doc = " VkInstanceCreateInfo instanceCreateInfo = {};"] + #[doc = " instanceCreateInfo.enabledExtensionCount = extensionCount;"] + #[doc = " instanceCreateInfo.ppEnabledExtensionNames = names;"] + #[doc = " // fill in rest of instanceCreateInfo"] + #[doc = ""] + #[doc = " VkInstance instance;"] + #[doc = " // create the Vulkan instance"] + #[doc = " VkResult result = vkCreateInstance(&instanceCreateInfo, NULL, &instance);"] + #[doc = " free(names);"] + #[doc = " \\endcode"] + #[doc = ""] + #[doc = " \\sa SDL_Vulkan_CreateSurface()"] + pub fn SDL_Vulkan_GetInstanceExtensions( + window: *mut SDL_Window, + pCount: *mut libc::c_uint, + pNames: *mut *const libc::c_char, + ) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Create a Vulkan rendering surface for a window."] + #[doc = ""] + #[doc = " \\param [in] window SDL_Window to which to attach the rendering surface."] + #[doc = " \\param [in] instance handle to the Vulkan instance to use."] + #[doc = " \\param [out] surface pointer to a VkSurfaceKHR handle to receive the"] + #[doc = " handle of the newly created surface."] + #[doc = ""] + #[doc = " \\return \\c SDL_TRUE on success, \\c SDL_FALSE on error."] + #[doc = ""] + #[doc = " \\code"] + #[doc = " VkInstance instance;"] + #[doc = " SDL_Window *window;"] + #[doc = ""] + #[doc = " // create instance and window"] + #[doc = ""] + #[doc = " // create the Vulkan surface"] + #[doc = " VkSurfaceKHR surface;"] + #[doc = " if(!SDL_Vulkan_CreateSurface(window, instance, &surface))"] + #[doc = " handle_error();"] + #[doc = " \\endcode"] + #[doc = ""] + #[doc = " \\note \\a window should have been created with the \\c SDL_WINDOW_VULKAN flag."] + #[doc = ""] + #[doc = " \\note \\a instance should have been created with the extensions returned"] + #[doc = " by \\c SDL_Vulkan_CreateSurface() enabled."] + #[doc = ""] + #[doc = " \\sa SDL_Vulkan_GetInstanceExtensions()"] + pub fn SDL_Vulkan_CreateSurface( + window: *mut SDL_Window, + instance: VkInstance, + surface: *mut VkSurfaceKHR, + ) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Get the size of a window's underlying drawable in pixels (for use"] + #[doc = " with setting viewport, scissor & etc)."] + #[doc = ""] + #[doc = " \\param window SDL_Window from which the drawable size should be queried"] + #[doc = " \\param w Pointer to variable for storing the width in pixels,"] + #[doc = " may be NULL"] + #[doc = " \\param h Pointer to variable for storing the height in pixels,"] + #[doc = " may be NULL"] + #[doc = ""] + #[doc = " This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI"] + #[doc = " drawable, i.e. the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a"] + #[doc = " platform with high-DPI support (Apple calls this \"Retina\"), and not disabled"] + #[doc = " by the \\c SDL_HINT_VIDEO_HIGHDPI_DISABLED hint."] + #[doc = ""] + #[doc = " \\note On macOS high-DPI support must be enabled for an application by"] + #[doc = " setting NSHighResolutionCapable to true in its Info.plist."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowSize()"] + #[doc = " \\sa SDL_CreateWindow()"] + pub fn SDL_Vulkan_GetDrawableSize( + window: *mut SDL_Window, + w: *mut libc::c_int, + h: *mut libc::c_int, + ); +} +#[doc = "
"] +pub type VkInstance = usize; +#[doc = "
"] +pub type VkSurfaceKHR = u64; +pub type __builtin_va_list = [__va_list_tag; 1usize]; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __va_list_tag { + pub gp_offset: libc::c_uint, + pub fp_offset: libc::c_uint, + pub overflow_arg_area: *mut libc::c_void, + pub reg_save_area: *mut libc::c_void, +} +#[test] +fn bindgen_test_layout___va_list_tag() { + assert_eq!( + ::core::mem::size_of::<__va_list_tag>(), + 24usize, + concat!("Size of: ", stringify!(__va_list_tag)) + ); + assert_eq!( + ::core::mem::align_of::<__va_list_tag>(), + 8usize, + concat!("Alignment of ", stringify!(__va_list_tag)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__va_list_tag>())).gp_offset as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__va_list_tag), + "::", + stringify!(gp_offset) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__va_list_tag>())).fp_offset as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(__va_list_tag), + "::", + stringify!(fp_offset) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__va_list_tag>())).overflow_arg_area as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(__va_list_tag), + "::", + stringify!(overflow_arg_area) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__va_list_tag>())).reg_save_area as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(__va_list_tag), + "::", + stringify!(reg_save_area) + ) + ); +} +#[doc = "< Private"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_BlitMap { + pub _address: u8, +} +#[doc = "< Wayland display"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct wl_display { + pub _address: u8, +} +#[doc = "< Wayland surface"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct wl_surface { + pub _address: u8, +} +#[doc = "< Wayland shell_surface (window manager handle)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct wl_shell_surface { + pub _address: u8, +} diff --git a/target/debug/build/sdl2-sys-95684d10a9311044/out/sdl_image_bindings.rs b/target/debug/build/sdl2-sys-95684d10a9311044/out/sdl_image_bindings.rs new file mode 100644 index 0000000..8fa66d3 --- /dev/null +++ b/target/debug/build/sdl2-sys-95684d10a9311044/out/sdl_image_bindings.rs @@ -0,0 +1,181 @@ +/* automatically generated by rust-bindgen */ + +use crate::*; + +pub type __uint8_t = libc::c_uchar; +pub type __uint32_t = libc::c_uint; +pub type __int64_t = libc::c_long; +pub type __off_t = libc::c_long; +pub type __off64_t = libc::c_long; +pub type Uint8 = u8; +pub type Uint32 = u32; +pub type Sint64 = i64; +extern "C" { + pub fn IMG_Linked_Version() -> *const SDL_version; +} +pub const IMG_InitFlags_IMG_INIT_JPG: IMG_InitFlags = 1; +pub const IMG_InitFlags_IMG_INIT_PNG: IMG_InitFlags = 2; +pub const IMG_InitFlags_IMG_INIT_TIF: IMG_InitFlags = 4; +pub const IMG_InitFlags_IMG_INIT_WEBP: IMG_InitFlags = 8; +pub type IMG_InitFlags = u32; +extern "C" { + pub fn IMG_Init(flags: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn IMG_Quit(); +} +extern "C" { + pub fn IMG_LoadTyped_RW( + src: *mut SDL_RWops, + freesrc: libc::c_int, + type_: *const libc::c_char, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_Load(file: *const libc::c_char) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_Load_RW(src: *mut SDL_RWops, freesrc: libc::c_int) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadTexture( + renderer: *mut SDL_Renderer, + file: *const libc::c_char, + ) -> *mut SDL_Texture; +} +extern "C" { + pub fn IMG_LoadTexture_RW( + renderer: *mut SDL_Renderer, + src: *mut SDL_RWops, + freesrc: libc::c_int, + ) -> *mut SDL_Texture; +} +extern "C" { + pub fn IMG_LoadTextureTyped_RW( + renderer: *mut SDL_Renderer, + src: *mut SDL_RWops, + freesrc: libc::c_int, + type_: *const libc::c_char, + ) -> *mut SDL_Texture; +} +extern "C" { + pub fn IMG_isICO(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isCUR(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isBMP(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isGIF(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isJPG(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isLBM(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isPCX(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isPNG(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isPNM(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isSVG(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isTIF(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isXCF(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isXPM(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isXV(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isWEBP(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_LoadICO_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadCUR_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadBMP_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadGIF_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadJPG_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadLBM_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadPCX_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadPNG_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadPNM_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadSVG_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadTGA_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadTIF_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadXCF_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadXPM_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadXV_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadWEBP_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_ReadXPMFromArray(xpm: *mut *mut libc::c_char) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_SavePNG(surface: *mut SDL_Surface, file: *const libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn IMG_SavePNG_RW( + surface: *mut SDL_Surface, + dst: *mut SDL_RWops, + freedst: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn IMG_SaveJPG( + surface: *mut SDL_Surface, + file: *const libc::c_char, + quality: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn IMG_SaveJPG_RW( + surface: *mut SDL_Surface, + dst: *mut SDL_RWops, + freedst: libc::c_int, + quality: libc::c_int, + ) -> libc::c_int; +} diff --git a/target/debug/build/sdl2-sys-95684d10a9311044/out/sdl_ttf_bindings.rs b/target/debug/build/sdl2-sys-95684d10a9311044/out/sdl_ttf_bindings.rs new file mode 100644 index 0000000..523764c --- /dev/null +++ b/target/debug/build/sdl2-sys-95684d10a9311044/out/sdl_ttf_bindings.rs @@ -0,0 +1,287 @@ +/* automatically generated by rust-bindgen */ + +use crate::*; + +pub const TTF_MAJOR_VERSION: u32 = 2; +pub const TTF_MINOR_VERSION: u32 = 0; +pub const TTF_PATCHLEVEL: u32 = 15; +pub const TTF_STYLE_NORMAL: u32 = 0; +pub const TTF_STYLE_BOLD: u32 = 1; +pub const TTF_STYLE_ITALIC: u32 = 2; +pub const TTF_STYLE_UNDERLINE: u32 = 4; +pub const TTF_STYLE_STRIKETHROUGH: u32 = 8; +pub const TTF_HINTING_NORMAL: u32 = 0; +pub const TTF_HINTING_LIGHT: u32 = 1; +pub const TTF_HINTING_MONO: u32 = 2; +pub const TTF_HINTING_NONE: u32 = 3; +pub type __uint8_t = libc::c_uchar; +pub type __uint16_t = libc::c_ushort; +pub type __uint32_t = libc::c_uint; +pub type __int64_t = libc::c_long; +pub type __off_t = libc::c_long; +pub type __off64_t = libc::c_long; +pub type Uint8 = u8; +pub type Uint16 = u16; +pub type Uint32 = u32; +pub type Sint64 = i64; +extern "C" { + pub fn TTF_Linked_Version() -> *const SDL_version; +} +extern "C" { + pub fn TTF_ByteSwappedUNICODE(swapped: libc::c_int); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _TTF_Font { + _unused: [u8; 0], +} +pub type TTF_Font = _TTF_Font; +extern "C" { + pub fn TTF_Init() -> libc::c_int; +} +extern "C" { + pub fn TTF_OpenFont(file: *const libc::c_char, ptsize: libc::c_int) -> *mut TTF_Font; +} +extern "C" { + pub fn TTF_OpenFontIndex( + file: *const libc::c_char, + ptsize: libc::c_int, + index: libc::c_long, + ) -> *mut TTF_Font; +} +extern "C" { + pub fn TTF_OpenFontRW( + src: *mut SDL_RWops, + freesrc: libc::c_int, + ptsize: libc::c_int, + ) -> *mut TTF_Font; +} +extern "C" { + pub fn TTF_OpenFontIndexRW( + src: *mut SDL_RWops, + freesrc: libc::c_int, + ptsize: libc::c_int, + index: libc::c_long, + ) -> *mut TTF_Font; +} +extern "C" { + pub fn TTF_GetFontStyle(font: *const TTF_Font) -> libc::c_int; +} +extern "C" { + pub fn TTF_SetFontStyle(font: *mut TTF_Font, style: libc::c_int); +} +extern "C" { + pub fn TTF_GetFontOutline(font: *const TTF_Font) -> libc::c_int; +} +extern "C" { + pub fn TTF_SetFontOutline(font: *mut TTF_Font, outline: libc::c_int); +} +extern "C" { + pub fn TTF_GetFontHinting(font: *const TTF_Font) -> libc::c_int; +} +extern "C" { + pub fn TTF_SetFontHinting(font: *mut TTF_Font, hinting: libc::c_int); +} +extern "C" { + pub fn TTF_FontHeight(font: *const TTF_Font) -> libc::c_int; +} +extern "C" { + pub fn TTF_FontAscent(font: *const TTF_Font) -> libc::c_int; +} +extern "C" { + pub fn TTF_FontDescent(font: *const TTF_Font) -> libc::c_int; +} +extern "C" { + pub fn TTF_FontLineSkip(font: *const TTF_Font) -> libc::c_int; +} +extern "C" { + pub fn TTF_GetFontKerning(font: *const TTF_Font) -> libc::c_int; +} +extern "C" { + pub fn TTF_SetFontKerning(font: *mut TTF_Font, allowed: libc::c_int); +} +extern "C" { + pub fn TTF_FontFaces(font: *const TTF_Font) -> libc::c_long; +} +extern "C" { + pub fn TTF_FontFaceIsFixedWidth(font: *const TTF_Font) -> libc::c_int; +} +extern "C" { + pub fn TTF_FontFaceFamilyName(font: *const TTF_Font) -> *mut libc::c_char; +} +extern "C" { + pub fn TTF_FontFaceStyleName(font: *const TTF_Font) -> *mut libc::c_char; +} +extern "C" { + pub fn TTF_GlyphIsProvided(font: *const TTF_Font, ch: Uint16) -> libc::c_int; +} +extern "C" { + pub fn TTF_GlyphMetrics( + font: *mut TTF_Font, + ch: Uint16, + minx: *mut libc::c_int, + maxx: *mut libc::c_int, + miny: *mut libc::c_int, + maxy: *mut libc::c_int, + advance: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn TTF_SizeText( + font: *mut TTF_Font, + text: *const libc::c_char, + w: *mut libc::c_int, + h: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn TTF_SizeUTF8( + font: *mut TTF_Font, + text: *const libc::c_char, + w: *mut libc::c_int, + h: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn TTF_SizeUNICODE( + font: *mut TTF_Font, + text: *const Uint16, + w: *mut libc::c_int, + h: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn TTF_RenderText_Solid( + font: *mut TTF_Font, + text: *const libc::c_char, + fg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderUTF8_Solid( + font: *mut TTF_Font, + text: *const libc::c_char, + fg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderUNICODE_Solid( + font: *mut TTF_Font, + text: *const Uint16, + fg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderGlyph_Solid( + font: *mut TTF_Font, + ch: Uint16, + fg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderText_Shaded( + font: *mut TTF_Font, + text: *const libc::c_char, + fg: SDL_Color, + bg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderUTF8_Shaded( + font: *mut TTF_Font, + text: *const libc::c_char, + fg: SDL_Color, + bg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderUNICODE_Shaded( + font: *mut TTF_Font, + text: *const Uint16, + fg: SDL_Color, + bg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderGlyph_Shaded( + font: *mut TTF_Font, + ch: Uint16, + fg: SDL_Color, + bg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderText_Blended( + font: *mut TTF_Font, + text: *const libc::c_char, + fg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderUTF8_Blended( + font: *mut TTF_Font, + text: *const libc::c_char, + fg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderUNICODE_Blended( + font: *mut TTF_Font, + text: *const Uint16, + fg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderText_Blended_Wrapped( + font: *mut TTF_Font, + text: *const libc::c_char, + fg: SDL_Color, + wrapLength: Uint32, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderUTF8_Blended_Wrapped( + font: *mut TTF_Font, + text: *const libc::c_char, + fg: SDL_Color, + wrapLength: Uint32, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderUNICODE_Blended_Wrapped( + font: *mut TTF_Font, + text: *const Uint16, + fg: SDL_Color, + wrapLength: Uint32, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderGlyph_Blended( + font: *mut TTF_Font, + ch: Uint16, + fg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_CloseFont(font: *mut TTF_Font); +} +extern "C" { + pub fn TTF_Quit(); +} +extern "C" { + pub fn TTF_WasInit() -> libc::c_int; +} +extern "C" { + pub fn TTF_GetFontKerningSize( + font: *mut TTF_Font, + prev_index: libc::c_int, + index: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn TTF_GetFontKerningSizeGlyphs( + font: *mut TTF_Font, + previous_ch: Uint16, + ch: Uint16, + ) -> libc::c_int; +} diff --git a/target/debug/build/sdl2-sys-95684d10a9311044/output b/target/debug/build/sdl2-sys-95684d10a9311044/output new file mode 100644 index 0000000..9ab0822 --- /dev/null +++ b/target/debug/build/sdl2-sys-95684d10a9311044/output @@ -0,0 +1,4 @@ +cargo:include=/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/SDL/include +cargo:rustc-flags=-l SDL2 +cargo:rustc-flags=-l SDL2_image +cargo:rustc-flags=-l SDL2_ttf diff --git a/target/debug/build/sdl2-sys-95684d10a9311044/root-output b/target/debug/build/sdl2-sys-95684d10a9311044/root-output new file mode 100644 index 0000000..a2226ce --- /dev/null +++ b/target/debug/build/sdl2-sys-95684d10a9311044/root-output @@ -0,0 +1 @@ +/home/gallant/Documents/RustProjects/game_test/target/debug/build/sdl2-sys-95684d10a9311044/out \ No newline at end of file diff --git a/target/debug/build/sdl2-sys-95684d10a9311044/stderr b/target/debug/build/sdl2-sys-95684d10a9311044/stderr new file mode 100644 index 0000000..e69de29 diff --git a/target/debug/build/sdl2-sys-ebfe185d1c37cd3b/build-script-build b/target/debug/build/sdl2-sys-ebfe185d1c37cd3b/build-script-build new file mode 100755 index 0000000..acd5121 Binary files /dev/null and b/target/debug/build/sdl2-sys-ebfe185d1c37cd3b/build-script-build differ diff --git a/target/debug/build/sdl2-sys-ebfe185d1c37cd3b/build_script_build-ebfe185d1c37cd3b b/target/debug/build/sdl2-sys-ebfe185d1c37cd3b/build_script_build-ebfe185d1c37cd3b new file mode 100755 index 0000000..acd5121 Binary files /dev/null and b/target/debug/build/sdl2-sys-ebfe185d1c37cd3b/build_script_build-ebfe185d1c37cd3b differ diff --git a/target/debug/build/sdl2-sys-ebfe185d1c37cd3b/build_script_build-ebfe185d1c37cd3b.d b/target/debug/build/sdl2-sys-ebfe185d1c37cd3b/build_script_build-ebfe185d1c37cd3b.d new file mode 100644 index 0000000..55e4185 --- /dev/null +++ b/target/debug/build/sdl2-sys-ebfe185d1c37cd3b/build_script_build-ebfe185d1c37cd3b.d @@ -0,0 +1,5 @@ +/home/gallant/Documents/RustProjects/game_test/target/debug/build/sdl2-sys-ebfe185d1c37cd3b/build_script_build-ebfe185d1c37cd3b: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/build/sdl2-sys-ebfe185d1c37cd3b/build_script_build-ebfe185d1c37cd3b.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs: diff --git a/target/debug/deps/bitflags-1693f043aa7c36ab.d b/target/debug/deps/bitflags-1693f043aa7c36ab.d new file mode 100644 index 0000000..4c5b58e --- /dev/null +++ b/target/debug/deps/bitflags-1693f043aa7c36ab.d @@ -0,0 +1,7 @@ +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/bitflags-1693f043aa7c36ab.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/libbitflags-1693f043aa7c36ab.rlib: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/bitflags-1693f043aa7c36ab.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs: diff --git a/target/debug/deps/cat_box-6026c94c85a011b6.d b/target/debug/deps/cat_box-6026c94c85a011b6.d new file mode 100644 index 0000000..b553616 --- /dev/null +++ b/target/debug/deps/cat_box-6026c94c85a011b6.d @@ -0,0 +1,8 @@ +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/cat_box-6026c94c85a011b6.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/physics.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/libcat_box-6026c94c85a011b6.rlib: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/physics.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/cat_box-6026c94c85a011b6.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/physics.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/physics.rs: diff --git a/target/debug/deps/cfg_if-0a04e74fc4f21d18.d b/target/debug/deps/cfg_if-0a04e74fc4f21d18.d new file mode 100644 index 0000000..72e3a27 --- /dev/null +++ b/target/debug/deps/cfg_if-0a04e74fc4f21d18.d @@ -0,0 +1,7 @@ +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/cfg_if-0a04e74fc4f21d18.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/libcfg_if-0a04e74fc4f21d18.rlib: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/cfg_if-0a04e74fc4f21d18.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs: diff --git a/target/debug/deps/game_test-e94e74a96f0400aa b/target/debug/deps/game_test-e94e74a96f0400aa new file mode 100755 index 0000000..0aecd24 Binary files /dev/null and b/target/debug/deps/game_test-e94e74a96f0400aa differ diff --git a/target/debug/deps/game_test-e94e74a96f0400aa.d b/target/debug/deps/game_test-e94e74a96f0400aa.d new file mode 100644 index 0000000..402455b --- /dev/null +++ b/target/debug/deps/game_test-e94e74a96f0400aa.d @@ -0,0 +1,5 @@ +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/game_test-e94e74a96f0400aa: src/main.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/game_test-e94e74a96f0400aa.d: src/main.rs + +src/main.rs: diff --git a/target/debug/deps/getrandom-92edb74c54255a85.d b/target/debug/deps/getrandom-92edb74c54255a85.d new file mode 100644 index 0000000..e4a6fbb --- /dev/null +++ b/target/debug/deps/getrandom-92edb74c54255a85.d @@ -0,0 +1,13 @@ +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/getrandom-92edb74c54255a85.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/util.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/util_libc.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/use_file.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/linux_android.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/libgetrandom-92edb74c54255a85.rlib: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/util.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/util_libc.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/use_file.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/linux_android.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/getrandom-92edb74c54255a85.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/util.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/util_libc.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/use_file.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/linux_android.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/util.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/util_libc.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/use_file.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/linux_android.rs: diff --git a/target/debug/deps/lazy_static-02ff0d0fbc57b9b4.d b/target/debug/deps/lazy_static-02ff0d0fbc57b9b4.d new file mode 100644 index 0000000..2b7fd2e --- /dev/null +++ b/target/debug/deps/lazy_static-02ff0d0fbc57b9b4.d @@ -0,0 +1,8 @@ +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/lazy_static-02ff0d0fbc57b9b4.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/liblazy_static-02ff0d0fbc57b9b4.rlib: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/lazy_static-02ff0d0fbc57b9b4.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs: diff --git a/target/debug/deps/libbitflags-1693f043aa7c36ab.rlib b/target/debug/deps/libbitflags-1693f043aa7c36ab.rlib new file mode 100644 index 0000000..daa8125 Binary files /dev/null and b/target/debug/deps/libbitflags-1693f043aa7c36ab.rlib differ diff --git a/target/debug/deps/libbitflags-1693f043aa7c36ab.rmeta b/target/debug/deps/libbitflags-1693f043aa7c36ab.rmeta new file mode 100644 index 0000000..2b1164b Binary files /dev/null and b/target/debug/deps/libbitflags-1693f043aa7c36ab.rmeta differ diff --git a/target/debug/deps/libc-de47093471b727ab.d b/target/debug/deps/libc-de47093471b727ab.d new file mode 100644 index 0000000..31d6206 --- /dev/null +++ b/target/debug/deps/libc-de47093471b727ab.d @@ -0,0 +1,23 @@ +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/libc-de47093471b727ab.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/macros.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/fixed_width_ints.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/arch/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/align.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/arch/generic/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/align.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/non_exhaustive.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/align.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/liblibc-de47093471b727ab.rlib: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/macros.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/fixed_width_ints.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/arch/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/align.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/arch/generic/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/align.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/non_exhaustive.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/align.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/libc-de47093471b727ab.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/macros.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/fixed_width_ints.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/arch/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/align.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/arch/generic/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/align.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/non_exhaustive.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/align.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/lib.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/macros.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/fixed_width_ints.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/arch/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/align.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/arch/generic/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/align.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/non_exhaustive.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/align.rs: diff --git a/target/debug/deps/libcat_box-6026c94c85a011b6.rlib b/target/debug/deps/libcat_box-6026c94c85a011b6.rlib new file mode 100644 index 0000000..b9337f9 Binary files /dev/null and b/target/debug/deps/libcat_box-6026c94c85a011b6.rlib differ diff --git a/target/debug/deps/libcat_box-6026c94c85a011b6.rmeta b/target/debug/deps/libcat_box-6026c94c85a011b6.rmeta new file mode 100644 index 0000000..eb4b787 Binary files /dev/null and b/target/debug/deps/libcat_box-6026c94c85a011b6.rmeta differ diff --git a/target/debug/deps/libcfg_if-0a04e74fc4f21d18.rlib b/target/debug/deps/libcfg_if-0a04e74fc4f21d18.rlib new file mode 100644 index 0000000..cd98e6b Binary files /dev/null and b/target/debug/deps/libcfg_if-0a04e74fc4f21d18.rlib differ diff --git a/target/debug/deps/libcfg_if-0a04e74fc4f21d18.rmeta b/target/debug/deps/libcfg_if-0a04e74fc4f21d18.rmeta new file mode 100644 index 0000000..cb923e0 Binary files /dev/null and b/target/debug/deps/libcfg_if-0a04e74fc4f21d18.rmeta differ diff --git a/target/debug/deps/libgetrandom-92edb74c54255a85.rlib b/target/debug/deps/libgetrandom-92edb74c54255a85.rlib new file mode 100644 index 0000000..8d1ac71 Binary files /dev/null and b/target/debug/deps/libgetrandom-92edb74c54255a85.rlib differ diff --git a/target/debug/deps/libgetrandom-92edb74c54255a85.rmeta b/target/debug/deps/libgetrandom-92edb74c54255a85.rmeta new file mode 100644 index 0000000..1992929 Binary files /dev/null and b/target/debug/deps/libgetrandom-92edb74c54255a85.rmeta differ diff --git a/target/debug/deps/liblazy_static-02ff0d0fbc57b9b4.rlib b/target/debug/deps/liblazy_static-02ff0d0fbc57b9b4.rlib new file mode 100644 index 0000000..dfc8e68 Binary files /dev/null and b/target/debug/deps/liblazy_static-02ff0d0fbc57b9b4.rlib differ diff --git a/target/debug/deps/liblazy_static-02ff0d0fbc57b9b4.rmeta b/target/debug/deps/liblazy_static-02ff0d0fbc57b9b4.rmeta new file mode 100644 index 0000000..df8407b Binary files /dev/null and b/target/debug/deps/liblazy_static-02ff0d0fbc57b9b4.rmeta differ diff --git a/target/debug/deps/liblibc-de47093471b727ab.rlib b/target/debug/deps/liblibc-de47093471b727ab.rlib new file mode 100644 index 0000000..a74bfbf Binary files /dev/null and b/target/debug/deps/liblibc-de47093471b727ab.rlib differ diff --git a/target/debug/deps/liblibc-de47093471b727ab.rmeta b/target/debug/deps/liblibc-de47093471b727ab.rmeta new file mode 100644 index 0000000..8d04ebd Binary files /dev/null and b/target/debug/deps/liblibc-de47093471b727ab.rmeta differ diff --git a/target/debug/deps/libppv_lite86-f422879e062f51ad.rlib b/target/debug/deps/libppv_lite86-f422879e062f51ad.rlib new file mode 100644 index 0000000..3ec1be9 Binary files /dev/null and b/target/debug/deps/libppv_lite86-f422879e062f51ad.rlib differ diff --git a/target/debug/deps/libppv_lite86-f422879e062f51ad.rmeta b/target/debug/deps/libppv_lite86-f422879e062f51ad.rmeta new file mode 100644 index 0000000..1b8356b Binary files /dev/null and b/target/debug/deps/libppv_lite86-f422879e062f51ad.rmeta differ diff --git a/target/debug/deps/librand-a5824744e5338355.rlib b/target/debug/deps/librand-a5824744e5338355.rlib new file mode 100644 index 0000000..a213af1 Binary files /dev/null and b/target/debug/deps/librand-a5824744e5338355.rlib differ diff --git a/target/debug/deps/librand-a5824744e5338355.rmeta b/target/debug/deps/librand-a5824744e5338355.rmeta new file mode 100644 index 0000000..c0d33b0 Binary files /dev/null and b/target/debug/deps/librand-a5824744e5338355.rmeta differ diff --git a/target/debug/deps/librand_chacha-9f5c362d18cbfdd5.rlib b/target/debug/deps/librand_chacha-9f5c362d18cbfdd5.rlib new file mode 100644 index 0000000..d036503 Binary files /dev/null and b/target/debug/deps/librand_chacha-9f5c362d18cbfdd5.rlib differ diff --git a/target/debug/deps/librand_chacha-9f5c362d18cbfdd5.rmeta b/target/debug/deps/librand_chacha-9f5c362d18cbfdd5.rmeta new file mode 100644 index 0000000..b7abc5f Binary files /dev/null and b/target/debug/deps/librand_chacha-9f5c362d18cbfdd5.rmeta differ diff --git a/target/debug/deps/librand_core-b3b0f8f40cacdd69.rlib b/target/debug/deps/librand_core-b3b0f8f40cacdd69.rlib new file mode 100644 index 0000000..4805b73 Binary files /dev/null and b/target/debug/deps/librand_core-b3b0f8f40cacdd69.rlib differ diff --git a/target/debug/deps/librand_core-b3b0f8f40cacdd69.rmeta b/target/debug/deps/librand_core-b3b0f8f40cacdd69.rmeta new file mode 100644 index 0000000..d472f6e Binary files /dev/null and b/target/debug/deps/librand_core-b3b0f8f40cacdd69.rmeta differ diff --git a/target/debug/deps/libsdl2-774185ff44ff8d40.rlib b/target/debug/deps/libsdl2-774185ff44ff8d40.rlib new file mode 100644 index 0000000..38fafcc Binary files /dev/null and b/target/debug/deps/libsdl2-774185ff44ff8d40.rlib differ diff --git a/target/debug/deps/libsdl2-774185ff44ff8d40.rmeta b/target/debug/deps/libsdl2-774185ff44ff8d40.rmeta new file mode 100644 index 0000000..2929441 Binary files /dev/null and b/target/debug/deps/libsdl2-774185ff44ff8d40.rmeta differ diff --git a/target/debug/deps/libsdl2_sys-da2a9db1fae2b433.rlib b/target/debug/deps/libsdl2_sys-da2a9db1fae2b433.rlib new file mode 100644 index 0000000..7c4ec00 Binary files /dev/null and b/target/debug/deps/libsdl2_sys-da2a9db1fae2b433.rlib differ diff --git a/target/debug/deps/libsdl2_sys-da2a9db1fae2b433.rmeta b/target/debug/deps/libsdl2_sys-da2a9db1fae2b433.rmeta new file mode 100644 index 0000000..584ed57 Binary files /dev/null and b/target/debug/deps/libsdl2_sys-da2a9db1fae2b433.rmeta differ diff --git a/target/debug/deps/libversion_compare-00af566e309f576b.rlib b/target/debug/deps/libversion_compare-00af566e309f576b.rlib new file mode 100644 index 0000000..a199d86 Binary files /dev/null and b/target/debug/deps/libversion_compare-00af566e309f576b.rlib differ diff --git a/target/debug/deps/libversion_compare-00af566e309f576b.rmeta b/target/debug/deps/libversion_compare-00af566e309f576b.rmeta new file mode 100644 index 0000000..9a4d0bc Binary files /dev/null and b/target/debug/deps/libversion_compare-00af566e309f576b.rmeta differ diff --git a/target/debug/deps/ppv_lite86-f422879e062f51ad.d b/target/debug/deps/ppv_lite86-f422879e062f51ad.d new file mode 100644 index 0000000..f8346d9 --- /dev/null +++ b/target/debug/deps/ppv_lite86-f422879e062f51ad.d @@ -0,0 +1,11 @@ +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/ppv_lite86-f422879e062f51ad.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/libppv_lite86-f422879e062f51ad.rlib: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/ppv_lite86-f422879e062f51ad.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/lib.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs: diff --git a/target/debug/deps/rand-a5824744e5338355.d b/target/debug/deps/rand-a5824744e5338355.d new file mode 100644 index 0000000..737b9af --- /dev/null +++ b/target/debug/deps/rand-a5824744e5338355.d @@ -0,0 +1,29 @@ +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/rand-a5824744e5338355.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/integer.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/utils.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/librand-a5824744e5338355.rlib: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/integer.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/utils.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/rand-a5824744e5338355.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/integer.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/utils.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/integer.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/utils.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs: diff --git a/target/debug/deps/rand_chacha-9f5c362d18cbfdd5.d b/target/debug/deps/rand_chacha-9f5c362d18cbfdd5.d new file mode 100644 index 0000000..ea28a82 --- /dev/null +++ b/target/debug/deps/rand_chacha-9f5c362d18cbfdd5.d @@ -0,0 +1,9 @@ +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/rand_chacha-9f5c362d18cbfdd5.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_chacha-0.3.1/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_chacha-0.3.1/src/chacha.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_chacha-0.3.1/src/guts.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/librand_chacha-9f5c362d18cbfdd5.rlib: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_chacha-0.3.1/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_chacha-0.3.1/src/chacha.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_chacha-0.3.1/src/guts.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/rand_chacha-9f5c362d18cbfdd5.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_chacha-0.3.1/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_chacha-0.3.1/src/chacha.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_chacha-0.3.1/src/guts.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_chacha-0.3.1/src/lib.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_chacha-0.3.1/src/chacha.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_chacha-0.3.1/src/guts.rs: diff --git a/target/debug/deps/rand_core-b3b0f8f40cacdd69.d b/target/debug/deps/rand_core-b3b0f8f40cacdd69.d new file mode 100644 index 0000000..ed5b173 --- /dev/null +++ b/target/debug/deps/rand_core-b3b0f8f40cacdd69.d @@ -0,0 +1,12 @@ +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/rand_core-b3b0f8f40cacdd69.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/block.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/error.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/impls.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/le.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/os.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/librand_core-b3b0f8f40cacdd69.rlib: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/block.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/error.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/impls.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/le.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/os.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/rand_core-b3b0f8f40cacdd69.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/block.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/error.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/impls.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/le.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/os.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/lib.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/block.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/error.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/impls.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/le.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/os.rs: diff --git a/target/debug/deps/sdl2-774185ff44ff8d40.d b/target/debug/deps/sdl2-774185ff44ff8d40.d new file mode 100644 index 0000000..a9f1511 --- /dev/null +++ b/target/debug/deps/sdl2-774185ff44ff8d40.d @@ -0,0 +1,40 @@ +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/sdl2-774185ff44ff8d40.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/clipboard.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/cpuinfo.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/macros.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/event.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/filesystem.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/haptic.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/hint.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/joystick.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/keyboard/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/keyboard/keycode.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/keyboard/scancode.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/log.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/messagebox.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/mouse/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/mouse/relative.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/pixels.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/rect.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/render.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/rwops.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/sdl.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/surface.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/timer.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/touch.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/url.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/version.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/video.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/image/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/context.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/font.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/common.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/libsdl2-774185ff44ff8d40.rlib: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/clipboard.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/cpuinfo.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/macros.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/event.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/filesystem.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/haptic.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/hint.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/joystick.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/keyboard/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/keyboard/keycode.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/keyboard/scancode.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/log.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/messagebox.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/mouse/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/mouse/relative.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/pixels.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/rect.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/render.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/rwops.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/sdl.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/surface.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/timer.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/touch.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/url.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/version.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/video.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/image/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/context.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/font.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/common.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/sdl2-774185ff44ff8d40.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/clipboard.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/cpuinfo.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/macros.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/event.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/filesystem.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/haptic.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/hint.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/joystick.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/keyboard/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/keyboard/keycode.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/keyboard/scancode.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/log.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/messagebox.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/mouse/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/mouse/relative.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/pixels.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/rect.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/render.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/rwops.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/sdl.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/surface.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/timer.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/touch.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/url.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/version.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/video.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/image/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/context.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/font.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/common.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/clipboard.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/cpuinfo.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/macros.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/event.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/filesystem.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/haptic.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/hint.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/joystick.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/keyboard/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/keyboard/keycode.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/keyboard/scancode.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/log.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/messagebox.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/mouse/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/mouse/relative.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/pixels.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/rect.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/render.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/rwops.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/sdl.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/surface.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/timer.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/touch.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/url.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/version.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/video.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/image/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/context.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/font.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/common.rs: diff --git a/target/debug/deps/sdl2_sys-da2a9db1fae2b433.d b/target/debug/deps/sdl2_sys-da2a9db1fae2b433.d new file mode 100644 index 0000000..622bf03 --- /dev/null +++ b/target/debug/deps/sdl2_sys-da2a9db1fae2b433.d @@ -0,0 +1,14 @@ +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/sdl2_sys-da2a9db1fae2b433.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/src/image.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/src/ttf.rs /home/gallant/Documents/RustProjects/game_test/target/debug/build/sdl2-sys-95684d10a9311044/out/sdl_bindings.rs /home/gallant/Documents/RustProjects/game_test/target/debug/build/sdl2-sys-95684d10a9311044/out/sdl_image_bindings.rs /home/gallant/Documents/RustProjects/game_test/target/debug/build/sdl2-sys-95684d10a9311044/out/sdl_ttf_bindings.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/libsdl2_sys-da2a9db1fae2b433.rlib: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/src/image.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/src/ttf.rs /home/gallant/Documents/RustProjects/game_test/target/debug/build/sdl2-sys-95684d10a9311044/out/sdl_bindings.rs /home/gallant/Documents/RustProjects/game_test/target/debug/build/sdl2-sys-95684d10a9311044/out/sdl_image_bindings.rs /home/gallant/Documents/RustProjects/game_test/target/debug/build/sdl2-sys-95684d10a9311044/out/sdl_ttf_bindings.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/sdl2_sys-da2a9db1fae2b433.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/src/image.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/src/ttf.rs /home/gallant/Documents/RustProjects/game_test/target/debug/build/sdl2-sys-95684d10a9311044/out/sdl_bindings.rs /home/gallant/Documents/RustProjects/game_test/target/debug/build/sdl2-sys-95684d10a9311044/out/sdl_image_bindings.rs /home/gallant/Documents/RustProjects/game_test/target/debug/build/sdl2-sys-95684d10a9311044/out/sdl_ttf_bindings.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/src/lib.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/src/image.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/src/ttf.rs: +/home/gallant/Documents/RustProjects/game_test/target/debug/build/sdl2-sys-95684d10a9311044/out/sdl_bindings.rs: +/home/gallant/Documents/RustProjects/game_test/target/debug/build/sdl2-sys-95684d10a9311044/out/sdl_image_bindings.rs: +/home/gallant/Documents/RustProjects/game_test/target/debug/build/sdl2-sys-95684d10a9311044/out/sdl_ttf_bindings.rs: + +# env-dep:OUT_DIR=/home/gallant/Documents/RustProjects/game_test/target/debug/build/sdl2-sys-95684d10a9311044/out diff --git a/target/debug/deps/version_compare-00af566e309f576b.d b/target/debug/deps/version_compare-00af566e309f576b.d new file mode 100644 index 0000000..2d0bc8c --- /dev/null +++ b/target/debug/deps/version_compare-00af566e309f576b.d @@ -0,0 +1,12 @@ +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/version_compare-00af566e309f576b.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/cmp.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/compare.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/manifest.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/part.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/version.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/libversion_compare-00af566e309f576b.rlib: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/cmp.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/compare.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/manifest.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/part.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/version.rs + +/home/gallant/Documents/RustProjects/game_test/target/debug/deps/version_compare-00af566e309f576b.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/cmp.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/compare.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/manifest.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/part.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/version.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/lib.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/cmp.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/compare.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/manifest.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/part.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/version-compare-0.1.0/src/version.rs: diff --git a/target/debug/game_test b/target/debug/game_test new file mode 100755 index 0000000..0aecd24 Binary files /dev/null and b/target/debug/game_test differ diff --git a/target/debug/game_test.d b/target/debug/game_test.d new file mode 100644 index 0000000..c87ca9d --- /dev/null +++ b/target/debug/game_test.d @@ -0,0 +1 @@ +/home/gallant/Documents/RustProjects/game_test/target/debug/game_test: /home/gallant/Documents/RustProjects/game_test/src/main.rs diff --git a/target/rls/.rustc_info.json b/target/rls/.rustc_info.json new file mode 100644 index 0000000..81fa345 --- /dev/null +++ b/target/rls/.rustc_info.json @@ -0,0 +1 @@ +{"rustc_fingerprint":1991518005844657253,"outputs":{"17598535894874457435":{"success":true,"status":"","code":0,"stdout":"rustc 1.59.0 (9d1b2106e 2022-02-23)\nbinary: rustc\ncommit-hash: 9d1b2106e23b1abd32fce1f17267604a5102f57a\ncommit-date: 2022-02-23\nhost: x86_64-unknown-linux-gnu\nrelease: 1.59.0\nLLVM version: 13.0.0\n","stderr":""},"931469667778813386":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu\ndebug_assertions\nproc_macro\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n","stderr":""},"5309432699494263626":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n","stderr":""},"2797684049618456168":{"success":false,"status":"exit status: 1","code":1,"stdout":"","stderr":"error: `-Csplit-debuginfo` is unstable on this platform\n\n"}},"successes":{}} \ No newline at end of file diff --git a/target/rls/CACHEDIR.TAG b/target/rls/CACHEDIR.TAG new file mode 100644 index 0000000..20d7c31 --- /dev/null +++ b/target/rls/CACHEDIR.TAG @@ -0,0 +1,3 @@ +Signature: 8a477f597d28d172789f06886806bc55 +# This file is a cache directory tag created by cargo. +# For information about cache directory tags see https://bford.info/cachedir/ diff --git a/target/rls/debug/.cargo-lock b/target/rls/debug/.cargo-lock new file mode 100644 index 0000000..e69de29 diff --git a/target/rls/debug/.fingerprint/bitflags-bebecc21b0a7c1f6/dep-lib-bitflags b/target/rls/debug/.fingerprint/bitflags-bebecc21b0a7c1f6/dep-lib-bitflags new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/rls/debug/.fingerprint/bitflags-bebecc21b0a7c1f6/dep-lib-bitflags differ diff --git a/target/rls/debug/.fingerprint/bitflags-bebecc21b0a7c1f6/invoked.timestamp b/target/rls/debug/.fingerprint/bitflags-bebecc21b0a7c1f6/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/.fingerprint/bitflags-bebecc21b0a7c1f6/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/bitflags-bebecc21b0a7c1f6/lib-bitflags b/target/rls/debug/.fingerprint/bitflags-bebecc21b0a7c1f6/lib-bitflags new file mode 100644 index 0000000..1d8ee0b --- /dev/null +++ b/target/rls/debug/.fingerprint/bitflags-bebecc21b0a7c1f6/lib-bitflags @@ -0,0 +1 @@ +eb252eb9943c8780 \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/bitflags-bebecc21b0a7c1f6/lib-bitflags.json b/target/rls/debug/.fingerprint/bitflags-bebecc21b0a7c1f6/lib-bitflags.json new file mode 100644 index 0000000..322d6ba --- /dev/null +++ b/target/rls/debug/.fingerprint/bitflags-bebecc21b0a7c1f6/lib-bitflags.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"default\"]","target":7112745982619283648,"profile":3735503092003429423,"path":12170547054006938311,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/bitflags-bebecc21b0a7c1f6/dep-lib-bitflags"}}],"rustflags":[],"metadata":14564035643000669268,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/cat-box-92bcebb42a58c225/dep-lib-cat-box b/target/rls/debug/.fingerprint/cat-box-92bcebb42a58c225/dep-lib-cat-box new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/rls/debug/.fingerprint/cat-box-92bcebb42a58c225/dep-lib-cat-box differ diff --git a/target/rls/debug/.fingerprint/cat-box-92bcebb42a58c225/invoked.timestamp b/target/rls/debug/.fingerprint/cat-box-92bcebb42a58c225/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/.fingerprint/cat-box-92bcebb42a58c225/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/cat-box-92bcebb42a58c225/lib-cat-box b/target/rls/debug/.fingerprint/cat-box-92bcebb42a58c225/lib-cat-box new file mode 100644 index 0000000..e0a54a3 --- /dev/null +++ b/target/rls/debug/.fingerprint/cat-box-92bcebb42a58c225/lib-cat-box @@ -0,0 +1 @@ +d0cd33a23b57ea96 \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/cat-box-92bcebb42a58c225/lib-cat-box.json b/target/rls/debug/.fingerprint/cat-box-92bcebb42a58c225/lib-cat-box.json new file mode 100644 index 0000000..5f89df7 --- /dev/null +++ b/target/rls/debug/.fingerprint/cat-box-92bcebb42a58c225/lib-cat-box.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"default\"]","target":11441813575244509603,"profile":3735503092003429423,"path":8479361788269503490,"deps":[[2027952989180942924,"sdl2",false,13770567052928155170]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/cat-box-92bcebb42a58c225/dep-lib-cat-box"}}],"rustflags":[],"metadata":6740228479860339055,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/dep-lib-cfg-if b/target/rls/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/dep-lib-cfg-if new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/rls/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/dep-lib-cfg-if differ diff --git a/target/rls/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/invoked.timestamp b/target/rls/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/lib-cfg-if b/target/rls/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/lib-cfg-if new file mode 100644 index 0000000..0a549c7 --- /dev/null +++ b/target/rls/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/lib-cfg-if @@ -0,0 +1 @@ +ef85970c27b8458f \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/lib-cfg-if.json b/target/rls/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/lib-cfg-if.json new file mode 100644 index 0000000..3b753b9 --- /dev/null +++ b/target/rls/debug/.fingerprint/cfg-if-0a04e74fc4f21d18/lib-cfg-if.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[]","target":10094334937643343087,"profile":12637318739757120569,"path":16394855403311724421,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/cfg-if-0a04e74fc4f21d18/dep-lib-cfg-if"}}],"rustflags":[],"metadata":8462187951337715540,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/cfg-if-2120cfe954d0c3f5/dep-lib-cfg-if b/target/rls/debug/.fingerprint/cfg-if-2120cfe954d0c3f5/dep-lib-cfg-if new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/rls/debug/.fingerprint/cfg-if-2120cfe954d0c3f5/dep-lib-cfg-if differ diff --git a/target/rls/debug/.fingerprint/cfg-if-2120cfe954d0c3f5/invoked.timestamp b/target/rls/debug/.fingerprint/cfg-if-2120cfe954d0c3f5/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/.fingerprint/cfg-if-2120cfe954d0c3f5/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/cfg-if-2120cfe954d0c3f5/lib-cfg-if b/target/rls/debug/.fingerprint/cfg-if-2120cfe954d0c3f5/lib-cfg-if new file mode 100644 index 0000000..f5e3d3b --- /dev/null +++ b/target/rls/debug/.fingerprint/cfg-if-2120cfe954d0c3f5/lib-cfg-if @@ -0,0 +1 @@ +d51e437daaa90a20 \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/cfg-if-2120cfe954d0c3f5/lib-cfg-if.json b/target/rls/debug/.fingerprint/cfg-if-2120cfe954d0c3f5/lib-cfg-if.json new file mode 100644 index 0000000..4af5126 --- /dev/null +++ b/target/rls/debug/.fingerprint/cfg-if-2120cfe954d0c3f5/lib-cfg-if.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[]","target":10094334937643343087,"profile":3735503092003429423,"path":16394855403311724421,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/cfg-if-2120cfe954d0c3f5/dep-lib-cfg-if"}}],"rustflags":[],"metadata":8462187951337715540,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/game_test-1242469418503616/dep-test-bin-game_test b/target/rls/debug/.fingerprint/game_test-1242469418503616/dep-test-bin-game_test new file mode 100644 index 0000000..5fdf103 Binary files /dev/null and b/target/rls/debug/.fingerprint/game_test-1242469418503616/dep-test-bin-game_test differ diff --git a/target/rls/debug/.fingerprint/game_test-1242469418503616/invoked.timestamp b/target/rls/debug/.fingerprint/game_test-1242469418503616/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/.fingerprint/game_test-1242469418503616/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/game_test-1242469418503616/test-bin-game_test b/target/rls/debug/.fingerprint/game_test-1242469418503616/test-bin-game_test new file mode 100644 index 0000000..e004252 --- /dev/null +++ b/target/rls/debug/.fingerprint/game_test-1242469418503616/test-bin-game_test @@ -0,0 +1 @@ +6c661cb8369f8ca4 \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/game_test-1242469418503616/test-bin-game_test.json b/target/rls/debug/.fingerprint/game_test-1242469418503616/test-bin-game_test.json new file mode 100644 index 0000000..a132636 --- /dev/null +++ b/target/rls/debug/.fingerprint/game_test-1242469418503616/test-bin-game_test.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[]","target":8454979698568635467,"profile":1021633075455700787,"path":1684066648322511884,"deps":[[2027952989180942924,"sdl2",false,13770567052928155170],[14756909549871627071,"cat_box",false,10874600163875474896]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/game_test-1242469418503616/dep-test-bin-game_test"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/game_test-7637ed11acfc61bf/bin-game_test b/target/rls/debug/.fingerprint/game_test-7637ed11acfc61bf/bin-game_test new file mode 100644 index 0000000..1facd61 --- /dev/null +++ b/target/rls/debug/.fingerprint/game_test-7637ed11acfc61bf/bin-game_test @@ -0,0 +1 @@ +a1e4402aef00d166 \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/game_test-7637ed11acfc61bf/bin-game_test.json b/target/rls/debug/.fingerprint/game_test-7637ed11acfc61bf/bin-game_test.json new file mode 100644 index 0000000..849449f --- /dev/null +++ b/target/rls/debug/.fingerprint/game_test-7637ed11acfc61bf/bin-game_test.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[]","target":8454979698568635467,"profile":7309141686862299243,"path":1684066648322511884,"deps":[[2027952989180942924,"sdl2",false,13770567052928155170],[14756909549871627071,"cat_box",false,10874600163875474896]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/game_test-7637ed11acfc61bf/dep-bin-game_test"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/game_test-7637ed11acfc61bf/dep-bin-game_test b/target/rls/debug/.fingerprint/game_test-7637ed11acfc61bf/dep-bin-game_test new file mode 100644 index 0000000..5fdf103 Binary files /dev/null and b/target/rls/debug/.fingerprint/game_test-7637ed11acfc61bf/dep-bin-game_test differ diff --git a/target/rls/debug/.fingerprint/game_test-7637ed11acfc61bf/invoked.timestamp b/target/rls/debug/.fingerprint/game_test-7637ed11acfc61bf/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/.fingerprint/game_test-7637ed11acfc61bf/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/game_test-77779bb81049f774/dep-test-bin-game_test b/target/rls/debug/.fingerprint/game_test-77779bb81049f774/dep-test-bin-game_test new file mode 100644 index 0000000..5fdf103 Binary files /dev/null and b/target/rls/debug/.fingerprint/game_test-77779bb81049f774/dep-test-bin-game_test differ diff --git a/target/rls/debug/.fingerprint/game_test-77779bb81049f774/invoked.timestamp b/target/rls/debug/.fingerprint/game_test-77779bb81049f774/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/.fingerprint/game_test-77779bb81049f774/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/game_test-77779bb81049f774/test-bin-game_test b/target/rls/debug/.fingerprint/game_test-77779bb81049f774/test-bin-game_test new file mode 100644 index 0000000..6fd80c8 --- /dev/null +++ b/target/rls/debug/.fingerprint/game_test-77779bb81049f774/test-bin-game_test @@ -0,0 +1 @@ +b829da8fa1449659 \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/game_test-77779bb81049f774/test-bin-game_test.json b/target/rls/debug/.fingerprint/game_test-77779bb81049f774/test-bin-game_test.json new file mode 100644 index 0000000..663aec9 --- /dev/null +++ b/target/rls/debug/.fingerprint/game_test-77779bb81049f774/test-bin-game_test.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[]","target":8454979698568635467,"profile":1021633075455700787,"path":1684066648322511884,"deps":[[14756909549871627071,"cat_box",false,10874600163875474896]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/game_test-77779bb81049f774/dep-test-bin-game_test"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/game_test-94471307055caf70/dep-test-bin-game_test b/target/rls/debug/.fingerprint/game_test-94471307055caf70/dep-test-bin-game_test new file mode 100644 index 0000000..5fdf103 Binary files /dev/null and b/target/rls/debug/.fingerprint/game_test-94471307055caf70/dep-test-bin-game_test differ diff --git a/target/rls/debug/.fingerprint/game_test-94471307055caf70/invoked.timestamp b/target/rls/debug/.fingerprint/game_test-94471307055caf70/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/.fingerprint/game_test-94471307055caf70/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/game_test-94471307055caf70/test-bin-game_test b/target/rls/debug/.fingerprint/game_test-94471307055caf70/test-bin-game_test new file mode 100644 index 0000000..34b8a95 --- /dev/null +++ b/target/rls/debug/.fingerprint/game_test-94471307055caf70/test-bin-game_test @@ -0,0 +1 @@ +aaa978bb60c10430 \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/game_test-94471307055caf70/test-bin-game_test.json b/target/rls/debug/.fingerprint/game_test-94471307055caf70/test-bin-game_test.json new file mode 100644 index 0000000..b22ac3f --- /dev/null +++ b/target/rls/debug/.fingerprint/game_test-94471307055caf70/test-bin-game_test.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[]","target":8454979698568635467,"profile":1021633075455700787,"path":1684066648322511884,"deps":[[2027952989180942924,"sdl2",false,13770567052928155170],[5910892534286594076,"rand",false,17366799946224220108],[14756909549871627071,"cat_box",false,10874600163875474896]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/game_test-94471307055caf70/dep-test-bin-game_test"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/game_test-b4139fbfa055472b/bin-game_test b/target/rls/debug/.fingerprint/game_test-b4139fbfa055472b/bin-game_test new file mode 100644 index 0000000..1b10e4b --- /dev/null +++ b/target/rls/debug/.fingerprint/game_test-b4139fbfa055472b/bin-game_test @@ -0,0 +1 @@ +a5b1ca11817aba50 \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/game_test-b4139fbfa055472b/bin-game_test.json b/target/rls/debug/.fingerprint/game_test-b4139fbfa055472b/bin-game_test.json new file mode 100644 index 0000000..f38a9d4 --- /dev/null +++ b/target/rls/debug/.fingerprint/game_test-b4139fbfa055472b/bin-game_test.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[]","target":8454979698568635467,"profile":7309141686862299243,"path":1684066648322511884,"deps":[[14756909549871627071,"cat_box",false,10874600163875474896]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/game_test-b4139fbfa055472b/dep-bin-game_test"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/game_test-b4139fbfa055472b/dep-bin-game_test b/target/rls/debug/.fingerprint/game_test-b4139fbfa055472b/dep-bin-game_test new file mode 100644 index 0000000..5fdf103 Binary files /dev/null and b/target/rls/debug/.fingerprint/game_test-b4139fbfa055472b/dep-bin-game_test differ diff --git a/target/rls/debug/.fingerprint/game_test-b4139fbfa055472b/invoked.timestamp b/target/rls/debug/.fingerprint/game_test-b4139fbfa055472b/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/.fingerprint/game_test-b4139fbfa055472b/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/game_test-ca66ce09734f6d76/bin-game_test b/target/rls/debug/.fingerprint/game_test-ca66ce09734f6d76/bin-game_test new file mode 100644 index 0000000..2723c8e --- /dev/null +++ b/target/rls/debug/.fingerprint/game_test-ca66ce09734f6d76/bin-game_test @@ -0,0 +1 @@ +82d1aa039743306e \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/game_test-ca66ce09734f6d76/bin-game_test.json b/target/rls/debug/.fingerprint/game_test-ca66ce09734f6d76/bin-game_test.json new file mode 100644 index 0000000..d60c4ab --- /dev/null +++ b/target/rls/debug/.fingerprint/game_test-ca66ce09734f6d76/bin-game_test.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[]","target":8454979698568635467,"profile":7309141686862299243,"path":1684066648322511884,"deps":[[2027952989180942924,"sdl2",false,13770567052928155170],[5910892534286594076,"rand",false,17366799946224220108],[14756909549871627071,"cat_box",false,10874600163875474896]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/game_test-ca66ce09734f6d76/dep-bin-game_test"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/game_test-ca66ce09734f6d76/dep-bin-game_test b/target/rls/debug/.fingerprint/game_test-ca66ce09734f6d76/dep-bin-game_test new file mode 100644 index 0000000..5fdf103 Binary files /dev/null and b/target/rls/debug/.fingerprint/game_test-ca66ce09734f6d76/dep-bin-game_test differ diff --git a/target/rls/debug/.fingerprint/game_test-ca66ce09734f6d76/invoked.timestamp b/target/rls/debug/.fingerprint/game_test-ca66ce09734f6d76/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/.fingerprint/game_test-ca66ce09734f6d76/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/getrandom-a0120ee8da7f13ab/dep-lib-getrandom b/target/rls/debug/.fingerprint/getrandom-a0120ee8da7f13ab/dep-lib-getrandom new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/rls/debug/.fingerprint/getrandom-a0120ee8da7f13ab/dep-lib-getrandom differ diff --git a/target/rls/debug/.fingerprint/getrandom-a0120ee8da7f13ab/invoked.timestamp b/target/rls/debug/.fingerprint/getrandom-a0120ee8da7f13ab/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/.fingerprint/getrandom-a0120ee8da7f13ab/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/getrandom-a0120ee8da7f13ab/lib-getrandom b/target/rls/debug/.fingerprint/getrandom-a0120ee8da7f13ab/lib-getrandom new file mode 100644 index 0000000..def6657 --- /dev/null +++ b/target/rls/debug/.fingerprint/getrandom-a0120ee8da7f13ab/lib-getrandom @@ -0,0 +1 @@ +83123f70be9e43c0 \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/getrandom-a0120ee8da7f13ab/lib-getrandom.json b/target/rls/debug/.fingerprint/getrandom-a0120ee8da7f13ab/lib-getrandom.json new file mode 100644 index 0000000..a7350fa --- /dev/null +++ b/target/rls/debug/.fingerprint/getrandom-a0120ee8da7f13ab/lib-getrandom.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"std\"]","target":13546511942750895132,"profile":3735503092003429423,"path":2848868357737848961,"deps":[[2452538001284770427,"cfg_if",false,2308844308691885781],[5071438224780403860,"libc",false,6353199022976080730]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/getrandom-a0120ee8da7f13ab/dep-lib-getrandom"}}],"rustflags":[],"metadata":12606519392706294666,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/lazy_static-ae46812994b3b675/dep-lib-lazy_static b/target/rls/debug/.fingerprint/lazy_static-ae46812994b3b675/dep-lib-lazy_static new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/rls/debug/.fingerprint/lazy_static-ae46812994b3b675/dep-lib-lazy_static differ diff --git a/target/rls/debug/.fingerprint/lazy_static-ae46812994b3b675/invoked.timestamp b/target/rls/debug/.fingerprint/lazy_static-ae46812994b3b675/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/.fingerprint/lazy_static-ae46812994b3b675/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/lazy_static-ae46812994b3b675/lib-lazy_static b/target/rls/debug/.fingerprint/lazy_static-ae46812994b3b675/lib-lazy_static new file mode 100644 index 0000000..e70f527 --- /dev/null +++ b/target/rls/debug/.fingerprint/lazy_static-ae46812994b3b675/lib-lazy_static @@ -0,0 +1 @@ +49f0999b4cebbd13 \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/lazy_static-ae46812994b3b675/lib-lazy_static.json b/target/rls/debug/.fingerprint/lazy_static-ae46812994b3b675/lib-lazy_static.json new file mode 100644 index 0000000..ee25287 --- /dev/null +++ b/target/rls/debug/.fingerprint/lazy_static-ae46812994b3b675/lib-lazy_static.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[]","target":6139664849541123785,"profile":3735503092003429423,"path":2069028011875263433,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/lazy_static-ae46812994b3b675/dep-lib-lazy_static"}}],"rustflags":[],"metadata":111743654650316589,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/libc-85a1d1b767afc43e/dep-lib-libc b/target/rls/debug/.fingerprint/libc-85a1d1b767afc43e/dep-lib-libc new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/rls/debug/.fingerprint/libc-85a1d1b767afc43e/dep-lib-libc differ diff --git a/target/rls/debug/.fingerprint/libc-85a1d1b767afc43e/invoked.timestamp b/target/rls/debug/.fingerprint/libc-85a1d1b767afc43e/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/.fingerprint/libc-85a1d1b767afc43e/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/libc-85a1d1b767afc43e/lib-libc b/target/rls/debug/.fingerprint/libc-85a1d1b767afc43e/lib-libc new file mode 100644 index 0000000..d8d31c6 --- /dev/null +++ b/target/rls/debug/.fingerprint/libc-85a1d1b767afc43e/lib-libc @@ -0,0 +1 @@ +5a1bd9c7d9182b58 \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/libc-85a1d1b767afc43e/lib-libc.json b/target/rls/debug/.fingerprint/libc-85a1d1b767afc43e/lib-libc.json new file mode 100644 index 0000000..c475a38 --- /dev/null +++ b/target/rls/debug/.fingerprint/libc-85a1d1b767afc43e/lib-libc.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"default\", \"std\"]","target":15721753382687865320,"profile":3735503092003429423,"path":12601931214422439203,"deps":[[5071438224780403860,"build_script_build",false,6299876992198858947]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/libc-85a1d1b767afc43e/dep-lib-libc"}}],"rustflags":[],"metadata":14998826085014762512,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/libc-ddc543d44ec3dd51/run-build-script-build-script-build b/target/rls/debug/.fingerprint/libc-ddc543d44ec3dd51/run-build-script-build-script-build new file mode 100644 index 0000000..0f923a6 --- /dev/null +++ b/target/rls/debug/.fingerprint/libc-ddc543d44ec3dd51/run-build-script-build-script-build @@ -0,0 +1 @@ +c358ab08bfa86d57 \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/libc-ddc543d44ec3dd51/run-build-script-build-script-build.json b/target/rls/debug/.fingerprint/libc-ddc543d44ec3dd51/run-build-script-build-script-build.json new file mode 100644 index 0000000..b62a04f --- /dev/null +++ b/target/rls/debug/.fingerprint/libc-ddc543d44ec3dd51/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"","target":0,"profile":0,"path":0,"deps":[[5071438224780403860,"build_script_build",false,14819899531044765641]],"local":[{"RerunIfChanged":{"output":"debug/build/libc-ddc543d44ec3dd51/output","paths":["build.rs"]}}],"rustflags":[],"metadata":0,"config":0,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/libc-de576f3ef118e37b/build-script-build-script-build b/target/rls/debug/.fingerprint/libc-de576f3ef118e37b/build-script-build-script-build new file mode 100644 index 0000000..d4a471b --- /dev/null +++ b/target/rls/debug/.fingerprint/libc-de576f3ef118e37b/build-script-build-script-build @@ -0,0 +1 @@ +c9bfe6b21adcaacd \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/libc-de576f3ef118e37b/build-script-build-script-build.json b/target/rls/debug/.fingerprint/libc-de576f3ef118e37b/build-script-build-script-build.json new file mode 100644 index 0000000..f020c6c --- /dev/null +++ b/target/rls/debug/.fingerprint/libc-de576f3ef118e37b/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"default\", \"std\"]","target":2709041430195671023,"profile":12637318739757120569,"path":9868279468468103737,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/libc-de576f3ef118e37b/dep-build-script-build-script-build"}}],"rustflags":[],"metadata":14998826085014762512,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/libc-de576f3ef118e37b/dep-build-script-build-script-build b/target/rls/debug/.fingerprint/libc-de576f3ef118e37b/dep-build-script-build-script-build new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/rls/debug/.fingerprint/libc-de576f3ef118e37b/dep-build-script-build-script-build differ diff --git a/target/rls/debug/.fingerprint/libc-de576f3ef118e37b/invoked.timestamp b/target/rls/debug/.fingerprint/libc-de576f3ef118e37b/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/.fingerprint/libc-de576f3ef118e37b/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/ppv-lite86-b170e395a41f89b2/dep-lib-ppv-lite86 b/target/rls/debug/.fingerprint/ppv-lite86-b170e395a41f89b2/dep-lib-ppv-lite86 new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/rls/debug/.fingerprint/ppv-lite86-b170e395a41f89b2/dep-lib-ppv-lite86 differ diff --git a/target/rls/debug/.fingerprint/ppv-lite86-b170e395a41f89b2/invoked.timestamp b/target/rls/debug/.fingerprint/ppv-lite86-b170e395a41f89b2/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/.fingerprint/ppv-lite86-b170e395a41f89b2/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/ppv-lite86-b170e395a41f89b2/lib-ppv-lite86 b/target/rls/debug/.fingerprint/ppv-lite86-b170e395a41f89b2/lib-ppv-lite86 new file mode 100644 index 0000000..5dd7cdf --- /dev/null +++ b/target/rls/debug/.fingerprint/ppv-lite86-b170e395a41f89b2/lib-ppv-lite86 @@ -0,0 +1 @@ +c5f56cdaaeb78c17 \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/ppv-lite86-b170e395a41f89b2/lib-ppv-lite86.json b/target/rls/debug/.fingerprint/ppv-lite86-b170e395a41f89b2/lib-ppv-lite86.json new file mode 100644 index 0000000..0734c27 --- /dev/null +++ b/target/rls/debug/.fingerprint/ppv-lite86-b170e395a41f89b2/lib-ppv-lite86.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"simd\", \"std\"]","target":731041848731596649,"profile":3735503092003429423,"path":18285836364833475881,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/ppv-lite86-b170e395a41f89b2/dep-lib-ppv-lite86"}}],"rustflags":[],"metadata":14155036307809790115,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/rand-1af5b0ae7ab63d3f/dep-lib-rand b/target/rls/debug/.fingerprint/rand-1af5b0ae7ab63d3f/dep-lib-rand new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/rls/debug/.fingerprint/rand-1af5b0ae7ab63d3f/dep-lib-rand differ diff --git a/target/rls/debug/.fingerprint/rand-1af5b0ae7ab63d3f/invoked.timestamp b/target/rls/debug/.fingerprint/rand-1af5b0ae7ab63d3f/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/.fingerprint/rand-1af5b0ae7ab63d3f/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/rand-1af5b0ae7ab63d3f/lib-rand b/target/rls/debug/.fingerprint/rand-1af5b0ae7ab63d3f/lib-rand new file mode 100644 index 0000000..bf3ffd1 --- /dev/null +++ b/target/rls/debug/.fingerprint/rand-1af5b0ae7ab63d3f/lib-rand @@ -0,0 +1 @@ +ccb7f7af894403f1 \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/rand-1af5b0ae7ab63d3f/lib-rand.json b/target/rls/debug/.fingerprint/rand-1af5b0ae7ab63d3f/lib-rand.json new file mode 100644 index 0000000..00ba596 --- /dev/null +++ b/target/rls/debug/.fingerprint/rand-1af5b0ae7ab63d3f/lib-rand.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"alloc\", \"default\", \"getrandom\", \"libc\", \"rand_chacha\", \"std\", \"std_rng\"]","target":8770996785908029621,"profile":3735503092003429423,"path":9239835490074310541,"deps":[[1974880700686797828,"rand_core",false,12006967994157550910],[5071438224780403860,"libc",false,6353199022976080730],[12017018019769837221,"rand_chacha",false,11157556567765713278]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/rand-1af5b0ae7ab63d3f/dep-lib-rand"}}],"rustflags":[],"metadata":16964019146302480911,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/rand_chacha-57972ea9c03fb30c/dep-lib-rand_chacha b/target/rls/debug/.fingerprint/rand_chacha-57972ea9c03fb30c/dep-lib-rand_chacha new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/rls/debug/.fingerprint/rand_chacha-57972ea9c03fb30c/dep-lib-rand_chacha differ diff --git a/target/rls/debug/.fingerprint/rand_chacha-57972ea9c03fb30c/invoked.timestamp b/target/rls/debug/.fingerprint/rand_chacha-57972ea9c03fb30c/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/.fingerprint/rand_chacha-57972ea9c03fb30c/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/rand_chacha-57972ea9c03fb30c/lib-rand_chacha b/target/rls/debug/.fingerprint/rand_chacha-57972ea9c03fb30c/lib-rand_chacha new file mode 100644 index 0000000..2454eb2 --- /dev/null +++ b/target/rls/debug/.fingerprint/rand_chacha-57972ea9c03fb30c/lib-rand_chacha @@ -0,0 +1 @@ +7e810047959ad79a \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/rand_chacha-57972ea9c03fb30c/lib-rand_chacha.json b/target/rls/debug/.fingerprint/rand_chacha-57972ea9c03fb30c/lib-rand_chacha.json new file mode 100644 index 0000000..fc82c29 --- /dev/null +++ b/target/rls/debug/.fingerprint/rand_chacha-57972ea9c03fb30c/lib-rand_chacha.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"std\"]","target":10091652985973831551,"profile":3735503092003429423,"path":5728894798552985481,"deps":[[1974880700686797828,"rand_core",false,12006967994157550910],[6749292461404294239,"ppv_lite86",false,1696933121228600773]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/rand_chacha-57972ea9c03fb30c/dep-lib-rand_chacha"}}],"rustflags":[],"metadata":2235018391756195449,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/rand_core-bc4694db5c0e63ca/dep-lib-rand_core b/target/rls/debug/.fingerprint/rand_core-bc4694db5c0e63ca/dep-lib-rand_core new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/rls/debug/.fingerprint/rand_core-bc4694db5c0e63ca/dep-lib-rand_core differ diff --git a/target/rls/debug/.fingerprint/rand_core-bc4694db5c0e63ca/invoked.timestamp b/target/rls/debug/.fingerprint/rand_core-bc4694db5c0e63ca/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/.fingerprint/rand_core-bc4694db5c0e63ca/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/rand_core-bc4694db5c0e63ca/lib-rand_core b/target/rls/debug/.fingerprint/rand_core-bc4694db5c0e63ca/lib-rand_core new file mode 100644 index 0000000..733e418 --- /dev/null +++ b/target/rls/debug/.fingerprint/rand_core-bc4694db5c0e63ca/lib-rand_core @@ -0,0 +1 @@ +3ecd3e69c651a1a6 \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/rand_core-bc4694db5c0e63ca/lib-rand_core.json b/target/rls/debug/.fingerprint/rand_core-bc4694db5c0e63ca/lib-rand_core.json new file mode 100644 index 0000000..828173b --- /dev/null +++ b/target/rls/debug/.fingerprint/rand_core-bc4694db5c0e63ca/lib-rand_core.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"alloc\", \"getrandom\", \"std\"]","target":14554634924080965175,"profile":3735503092003429423,"path":6409972178359997063,"deps":[[9767896882406009942,"getrandom",false,13854091419485934211]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/rand_core-bc4694db5c0e63ca/dep-lib-rand_core"}}],"rustflags":[],"metadata":3275543247315060703,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/sdl2-1561407daacea9e2/build-script-build-script-build b/target/rls/debug/.fingerprint/sdl2-1561407daacea9e2/build-script-build-script-build new file mode 100644 index 0000000..d4f8f02 --- /dev/null +++ b/target/rls/debug/.fingerprint/sdl2-1561407daacea9e2/build-script-build-script-build @@ -0,0 +1 @@ +693b212dbed841f6 \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/sdl2-1561407daacea9e2/build-script-build-script-build.json b/target/rls/debug/.fingerprint/sdl2-1561407daacea9e2/build-script-build-script-build.json new file mode 100644 index 0000000..88d891b --- /dev/null +++ b/target/rls/debug/.fingerprint/sdl2-1561407daacea9e2/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"default\", \"image\", \"ttf\"]","target":2709041430195671023,"profile":12637318739757120569,"path":1834896383086156348,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/sdl2-1561407daacea9e2/dep-build-script-build-script-build"}}],"rustflags":[],"metadata":3204612833656974723,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/sdl2-1561407daacea9e2/dep-build-script-build-script-build b/target/rls/debug/.fingerprint/sdl2-1561407daacea9e2/dep-build-script-build-script-build new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/rls/debug/.fingerprint/sdl2-1561407daacea9e2/dep-build-script-build-script-build differ diff --git a/target/rls/debug/.fingerprint/sdl2-1561407daacea9e2/invoked.timestamp b/target/rls/debug/.fingerprint/sdl2-1561407daacea9e2/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/.fingerprint/sdl2-1561407daacea9e2/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/sdl2-252d6b93eaa2e96a/run-build-script-build-script-build b/target/rls/debug/.fingerprint/sdl2-252d6b93eaa2e96a/run-build-script-build-script-build new file mode 100644 index 0000000..8eae4a9 --- /dev/null +++ b/target/rls/debug/.fingerprint/sdl2-252d6b93eaa2e96a/run-build-script-build-script-build @@ -0,0 +1 @@ +9001f311ac167d0f \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/sdl2-252d6b93eaa2e96a/run-build-script-build-script-build.json b/target/rls/debug/.fingerprint/sdl2-252d6b93eaa2e96a/run-build-script-build-script-build.json new file mode 100644 index 0000000..00a2284 --- /dev/null +++ b/target/rls/debug/.fingerprint/sdl2-252d6b93eaa2e96a/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"","target":0,"profile":0,"path":0,"deps":[[2027952989180942924,"build_script_build",false,17744702318129003369],[17382268157316343340,"build_script_build",false,1595607969756947245]],"local":[{"Precalculated":"0.35.2"}],"rustflags":[],"metadata":0,"config":0,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/sdl2-aaedac323d9034b3/dep-lib-sdl2 b/target/rls/debug/.fingerprint/sdl2-aaedac323d9034b3/dep-lib-sdl2 new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/rls/debug/.fingerprint/sdl2-aaedac323d9034b3/dep-lib-sdl2 differ diff --git a/target/rls/debug/.fingerprint/sdl2-aaedac323d9034b3/invoked.timestamp b/target/rls/debug/.fingerprint/sdl2-aaedac323d9034b3/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/.fingerprint/sdl2-aaedac323d9034b3/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/sdl2-aaedac323d9034b3/lib-sdl2 b/target/rls/debug/.fingerprint/sdl2-aaedac323d9034b3/lib-sdl2 new file mode 100644 index 0000000..64b834f --- /dev/null +++ b/target/rls/debug/.fingerprint/sdl2-aaedac323d9034b3/lib-sdl2 @@ -0,0 +1 @@ +22fe7a69c6e11abf \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/sdl2-aaedac323d9034b3/lib-sdl2.json b/target/rls/debug/.fingerprint/sdl2-aaedac323d9034b3/lib-sdl2.json new file mode 100644 index 0000000..594e949 --- /dev/null +++ b/target/rls/debug/.fingerprint/sdl2-aaedac323d9034b3/lib-sdl2.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"default\", \"image\", \"ttf\"]","target":11537901402046197358,"profile":3735503092003429423,"path":1258407295479766387,"deps":[[2027952989180942924,"build_script_build",false,1116073210949075344],[5071438224780403860,"libc",false,6353199022976080730],[6685014296130524576,"lazy_static",false,1422551771579543625],[14051957667571541382,"bitflags",false,9261437768170350059],[17382268157316343340,"sdl2_sys",false,5443846527964868441]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/sdl2-aaedac323d9034b3/dep-lib-sdl2"}}],"rustflags":[],"metadata":3204612833656974723,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/sdl2-sys-95684d10a9311044/run-build-script-build-script-build b/target/rls/debug/.fingerprint/sdl2-sys-95684d10a9311044/run-build-script-build-script-build new file mode 100644 index 0000000..ef967cb --- /dev/null +++ b/target/rls/debug/.fingerprint/sdl2-sys-95684d10a9311044/run-build-script-build-script-build @@ -0,0 +1 @@ +2d23259efebc2416 \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/sdl2-sys-95684d10a9311044/run-build-script-build-script-build.json b/target/rls/debug/.fingerprint/sdl2-sys-95684d10a9311044/run-build-script-build-script-build.json new file mode 100644 index 0000000..07867cb --- /dev/null +++ b/target/rls/debug/.fingerprint/sdl2-sys-95684d10a9311044/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"","target":0,"profile":0,"path":0,"deps":[[17382268157316343340,"build_script_build",false,12854095600731032120]],"local":[{"Precalculated":"0.35.2"}],"rustflags":[],"metadata":0,"config":0,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/sdl2-sys-df02e3f4982c060d/dep-lib-sdl2_sys b/target/rls/debug/.fingerprint/sdl2-sys-df02e3f4982c060d/dep-lib-sdl2_sys new file mode 100644 index 0000000..6544cf8 Binary files /dev/null and b/target/rls/debug/.fingerprint/sdl2-sys-df02e3f4982c060d/dep-lib-sdl2_sys differ diff --git a/target/rls/debug/.fingerprint/sdl2-sys-df02e3f4982c060d/invoked.timestamp b/target/rls/debug/.fingerprint/sdl2-sys-df02e3f4982c060d/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/.fingerprint/sdl2-sys-df02e3f4982c060d/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/sdl2-sys-df02e3f4982c060d/lib-sdl2_sys b/target/rls/debug/.fingerprint/sdl2-sys-df02e3f4982c060d/lib-sdl2_sys new file mode 100644 index 0000000..ba3b891 --- /dev/null +++ b/target/rls/debug/.fingerprint/sdl2-sys-df02e3f4982c060d/lib-sdl2_sys @@ -0,0 +1 @@ +59ef160f936d8c4b \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/sdl2-sys-df02e3f4982c060d/lib-sdl2_sys.json b/target/rls/debug/.fingerprint/sdl2-sys-df02e3f4982c060d/lib-sdl2_sys.json new file mode 100644 index 0000000..9671a5a --- /dev/null +++ b/target/rls/debug/.fingerprint/sdl2-sys-df02e3f4982c060d/lib-sdl2_sys.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"default\", \"image\", \"ttf\"]","target":4163049214512897365,"profile":3735503092003429423,"path":10998664449434206481,"deps":[[5071438224780403860,"libc",false,6353199022976080730],[17382268157316343340,"build_script_build",false,1595607969756947245]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/sdl2-sys-df02e3f4982c060d/dep-lib-sdl2_sys"}}],"rustflags":[],"metadata":12671436704077421273,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/build-script-build-script-build b/target/rls/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/build-script-build-script-build new file mode 100644 index 0000000..1d88a14 --- /dev/null +++ b/target/rls/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/build-script-build-script-build @@ -0,0 +1 @@ +380a7c4ed8eb62b2 \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/build-script-build-script-build.json b/target/rls/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/build-script-build-script-build.json new file mode 100644 index 0000000..c8618f8 --- /dev/null +++ b/target/rls/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[\"default\", \"image\", \"ttf\"]","target":13294766831966498538,"profile":12637318739757120569,"path":16104113558099043900,"deps":[[720735588919859894,"version_compare",false,4785973664892435636],[2452538001284770427,"cfg_if",false,10323860198671222255]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/dep-build-script-build-script-build"}}],"rustflags":[],"metadata":12671436704077421273,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/dep-build-script-build-script-build b/target/rls/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/dep-build-script-build-script-build new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/rls/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/dep-build-script-build-script-build differ diff --git a/target/rls/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/invoked.timestamp b/target/rls/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/.fingerprint/sdl2-sys-ebfe185d1c37cd3b/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/version-compare-00af566e309f576b/dep-lib-version-compare b/target/rls/debug/.fingerprint/version-compare-00af566e309f576b/dep-lib-version-compare new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/target/rls/debug/.fingerprint/version-compare-00af566e309f576b/dep-lib-version-compare differ diff --git a/target/rls/debug/.fingerprint/version-compare-00af566e309f576b/invoked.timestamp b/target/rls/debug/.fingerprint/version-compare-00af566e309f576b/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/.fingerprint/version-compare-00af566e309f576b/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/version-compare-00af566e309f576b/lib-version-compare b/target/rls/debug/.fingerprint/version-compare-00af566e309f576b/lib-version-compare new file mode 100644 index 0000000..b240129 --- /dev/null +++ b/target/rls/debug/.fingerprint/version-compare-00af566e309f576b/lib-version-compare @@ -0,0 +1 @@ +b4bc49e8b0316b42 \ No newline at end of file diff --git a/target/rls/debug/.fingerprint/version-compare-00af566e309f576b/lib-version-compare.json b/target/rls/debug/.fingerprint/version-compare-00af566e309f576b/lib-version-compare.json new file mode 100644 index 0000000..513aab5 --- /dev/null +++ b/target/rls/debug/.fingerprint/version-compare-00af566e309f576b/lib-version-compare.json @@ -0,0 +1 @@ +{"rustc":14330414595928666026,"features":"[]","target":17443050515150725052,"profile":12637318739757120569,"path":7915317770023699388,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/version-compare-00af566e309f576b/dep-lib-version-compare"}}],"rustflags":[],"metadata":1144377052308559650,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/rls/debug/build/libc-ddc543d44ec3dd51/invoked.timestamp b/target/rls/debug/build/libc-ddc543d44ec3dd51/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/build/libc-ddc543d44ec3dd51/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/build/libc-ddc543d44ec3dd51/output b/target/rls/debug/build/libc-ddc543d44ec3dd51/output new file mode 100644 index 0000000..4bee63a --- /dev/null +++ b/target/rls/debug/build/libc-ddc543d44ec3dd51/output @@ -0,0 +1,13 @@ +cargo:rerun-if-changed=build.rs +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_int128 +cargo:rustc-cfg=libc_core_cvoid +cargo:rustc-cfg=libc_packedN +cargo:rustc-cfg=libc_cfg_target_vendor +cargo:rustc-cfg=libc_non_exhaustive +cargo:rustc-cfg=libc_ptr_addr_of +cargo:rustc-cfg=libc_underscore_const_names diff --git a/target/rls/debug/build/libc-ddc543d44ec3dd51/root-output b/target/rls/debug/build/libc-ddc543d44ec3dd51/root-output new file mode 100644 index 0000000..ac96c1c --- /dev/null +++ b/target/rls/debug/build/libc-ddc543d44ec3dd51/root-output @@ -0,0 +1 @@ +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/build/libc-ddc543d44ec3dd51/out \ No newline at end of file diff --git a/target/rls/debug/build/libc-ddc543d44ec3dd51/stderr b/target/rls/debug/build/libc-ddc543d44ec3dd51/stderr new file mode 100644 index 0000000..e69de29 diff --git a/target/rls/debug/build/libc-de576f3ef118e37b/build-script-build b/target/rls/debug/build/libc-de576f3ef118e37b/build-script-build new file mode 100755 index 0000000..1cb5333 Binary files /dev/null and b/target/rls/debug/build/libc-de576f3ef118e37b/build-script-build differ diff --git a/target/rls/debug/build/libc-de576f3ef118e37b/build_script_build-de576f3ef118e37b b/target/rls/debug/build/libc-de576f3ef118e37b/build_script_build-de576f3ef118e37b new file mode 100755 index 0000000..1cb5333 Binary files /dev/null and b/target/rls/debug/build/libc-de576f3ef118e37b/build_script_build-de576f3ef118e37b differ diff --git a/target/rls/debug/build/libc-de576f3ef118e37b/build_script_build-de576f3ef118e37b.d b/target/rls/debug/build/libc-de576f3ef118e37b/build_script_build-de576f3ef118e37b.d new file mode 100644 index 0000000..8a9e675 --- /dev/null +++ b/target/rls/debug/build/libc-de576f3ef118e37b/build_script_build-de576f3ef118e37b.d @@ -0,0 +1,5 @@ +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/build/libc-de576f3ef118e37b/build_script_build-de576f3ef118e37b: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs + +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/build/libc-de576f3ef118e37b/build_script_build-de576f3ef118e37b.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs: diff --git a/target/rls/debug/build/libc-de576f3ef118e37b/save-analysis/build_script_build-de576f3ef118e37b.json b/target/rls/debug/build/libc-de576f3ef118e37b/save-analysis/build_script_build-de576f3ef118e37b.json new file mode 100644 index 0000000..5fbaa2a --- /dev/null +++ b/target/rls/debug/build/libc-de576f3ef118e37b/save-analysis/build_script_build-de576f3ef118e37b.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.1","compilation":{"directory":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125","program":"/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rls","arguments":["--crate-name","build_script_build","/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs","--json=diagnostic-rendered-ansi,future-incompat","--crate-type","bin","--emit=dep-info,link","-C","embed-bitcode=no","-C","debuginfo=2","--cfg","feature=\"default\"","--cfg","feature=\"std\"","-C","metadata=de576f3ef118e37b","-C","extra-filename=-de576f3ef118e37b","--out-dir","/home/gallant/Documents/RustProjects/game_test/target/rls/debug/build/libc-de576f3ef118e37b","-L","dependency=/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps","--cap-lints","allow","--error-format=json","--sysroot","/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu"],"output":"/home/gallant/Documents/RustProjects/game_test/target/rls/debug/build/libc-de576f3ef118e37b/build_script_build-de576f3ef118e37b"},"prelude":{"crate_id":{"name":"build_script_build","disambiguator":[15709157582241500903,0]},"crate_root":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125","external_crates":[{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs","num":1,"id":{"name":"std","disambiguator":[14026078687029744792,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs","num":2,"id":{"name":"core","disambiguator":[5443730852259234579,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs","num":3,"id":{"name":"compiler_builtins","disambiguator":[4162025702538114948,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs","num":4,"id":{"name":"rustc_std_workspace_core","disambiguator":[17612152343462746361,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs","num":5,"id":{"name":"alloc","disambiguator":[5560808256873132085,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs","num":6,"id":{"name":"libc","disambiguator":[135160560163186024,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs","num":7,"id":{"name":"unwind","disambiguator":[5800521777261530329,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs","num":8,"id":{"name":"cfg_if","disambiguator":[7095478770525139037,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs","num":9,"id":{"name":"hashbrown","disambiguator":[17225897750877482818,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs","num":10,"id":{"name":"rustc_std_workspace_alloc","disambiguator":[15613653607383163471,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs","num":11,"id":{"name":"rustc_demangle","disambiguator":[12428323400248712701,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs","num":12,"id":{"name":"std_detect","disambiguator":[11893279639181573711,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs","num":13,"id":{"name":"addr2line","disambiguator":[13583305032161054644,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs","num":14,"id":{"name":"gimli","disambiguator":[16609837797022023111,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs","num":15,"id":{"name":"object","disambiguator":[18098459435141129808,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs","num":16,"id":{"name":"memchr","disambiguator":[15244551393771456017,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs","num":17,"id":{"name":"miniz_oxide","disambiguator":[6576340271055396708,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs","num":18,"id":{"name":"adler","disambiguator":[15284510821186066958,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs","num":19,"id":{"name":"panic_unwind","disambiguator":[12982807908830018159,0]}}],"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs","byte_start":0,"byte_end":5614,"line_start":1,"line_end":167,"column_start":1,"column_end":2}},"imports":[],"defs":[{"kind":"Mod","id":{"krate":0,"index":0},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs","byte_start":0,"byte_end":5614,"line_start":1,"line_end":167,"column_start":1,"column_end":2},"name":"","qualname":"::","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/build.rs","parent":null,"children":[{"krate":0,"index":1},{"krate":0,"index":2},{"krate":0,"index":3},{"krate":0,"index":4},{"krate":0,"index":6},{"krate":0,"index":9},{"krate":0,"index":12},{"krate":0,"index":13},{"krate":0,"index":16}],"decl_id":null,"docs":"","sig":null,"attributes":[]}],"impls":[],"refs":[],"macro_refs":[],"relations":[]} \ No newline at end of file diff --git a/target/rls/debug/build/sdl2-1561407daacea9e2/build-script-build b/target/rls/debug/build/sdl2-1561407daacea9e2/build-script-build new file mode 100755 index 0000000..70a4746 Binary files /dev/null and b/target/rls/debug/build/sdl2-1561407daacea9e2/build-script-build differ diff --git a/target/rls/debug/build/sdl2-1561407daacea9e2/build_script_build-1561407daacea9e2 b/target/rls/debug/build/sdl2-1561407daacea9e2/build_script_build-1561407daacea9e2 new file mode 100755 index 0000000..70a4746 Binary files /dev/null and b/target/rls/debug/build/sdl2-1561407daacea9e2/build_script_build-1561407daacea9e2 differ diff --git a/target/rls/debug/build/sdl2-1561407daacea9e2/build_script_build-1561407daacea9e2.d b/target/rls/debug/build/sdl2-1561407daacea9e2/build_script_build-1561407daacea9e2.d new file mode 100644 index 0000000..59d1ce2 --- /dev/null +++ b/target/rls/debug/build/sdl2-1561407daacea9e2/build_script_build-1561407daacea9e2.d @@ -0,0 +1,5 @@ +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/build/sdl2-1561407daacea9e2/build_script_build-1561407daacea9e2: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs + +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/build/sdl2-1561407daacea9e2/build_script_build-1561407daacea9e2.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs: diff --git a/target/rls/debug/build/sdl2-1561407daacea9e2/save-analysis/build_script_build-1561407daacea9e2.json b/target/rls/debug/build/sdl2-1561407daacea9e2/save-analysis/build_script_build-1561407daacea9e2.json new file mode 100644 index 0000000..c6a5147 --- /dev/null +++ b/target/rls/debug/build/sdl2-1561407daacea9e2/save-analysis/build_script_build-1561407daacea9e2.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.1","compilation":{"directory":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2","program":"/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rls","arguments":["--crate-name","build_script_build","/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs","--json=diagnostic-rendered-ansi,future-incompat","--crate-type","bin","--emit=dep-info,link","-C","embed-bitcode=no","-C","debuginfo=2","--cfg","feature=\"default\"","--cfg","feature=\"image\"","--cfg","feature=\"ttf\"","-C","metadata=1561407daacea9e2","-C","extra-filename=-1561407daacea9e2","--out-dir","/home/gallant/Documents/RustProjects/game_test/target/rls/debug/build/sdl2-1561407daacea9e2","-L","dependency=/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps","--cap-lints","allow","--error-format=json","--sysroot","/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu"],"output":"/home/gallant/Documents/RustProjects/game_test/target/rls/debug/build/sdl2-1561407daacea9e2/build_script_build-1561407daacea9e2"},"prelude":{"crate_id":{"name":"build_script_build","disambiguator":[5042581111740106609,0]},"crate_root":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2","external_crates":[{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs","num":1,"id":{"name":"std","disambiguator":[14026078687029744792,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs","num":2,"id":{"name":"core","disambiguator":[5443730852259234579,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs","num":3,"id":{"name":"compiler_builtins","disambiguator":[4162025702538114948,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs","num":4,"id":{"name":"rustc_std_workspace_core","disambiguator":[17612152343462746361,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs","num":5,"id":{"name":"alloc","disambiguator":[5560808256873132085,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs","num":6,"id":{"name":"libc","disambiguator":[135160560163186024,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs","num":7,"id":{"name":"unwind","disambiguator":[5800521777261530329,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs","num":8,"id":{"name":"cfg_if","disambiguator":[7095478770525139037,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs","num":9,"id":{"name":"hashbrown","disambiguator":[17225897750877482818,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs","num":10,"id":{"name":"rustc_std_workspace_alloc","disambiguator":[15613653607383163471,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs","num":11,"id":{"name":"rustc_demangle","disambiguator":[12428323400248712701,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs","num":12,"id":{"name":"std_detect","disambiguator":[11893279639181573711,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs","num":13,"id":{"name":"addr2line","disambiguator":[13583305032161054644,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs","num":14,"id":{"name":"gimli","disambiguator":[16609837797022023111,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs","num":15,"id":{"name":"object","disambiguator":[18098459435141129808,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs","num":16,"id":{"name":"memchr","disambiguator":[15244551393771456017,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs","num":17,"id":{"name":"miniz_oxide","disambiguator":[6576340271055396708,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs","num":18,"id":{"name":"adler","disambiguator":[15284510821186066958,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs","num":19,"id":{"name":"panic_unwind","disambiguator":[12982807908830018159,0]}}],"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs","byte_start":0,"byte_end":132,"line_start":1,"line_end":4,"column_start":1,"column_end":2}},"imports":[],"defs":[{"kind":"Mod","id":{"krate":0,"index":0},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs","byte_start":0,"byte_end":132,"line_start":1,"line_end":4,"column_start":1,"column_end":2},"name":"","qualname":"::","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/build.rs","parent":null,"children":[{"krate":0,"index":1},{"krate":0,"index":2},{"krate":0,"index":3}],"decl_id":null,"docs":"","sig":null,"attributes":[]}],"impls":[],"refs":[],"macro_refs":[],"relations":[]} \ No newline at end of file diff --git a/target/rls/debug/build/sdl2-252d6b93eaa2e96a/invoked.timestamp b/target/rls/debug/build/sdl2-252d6b93eaa2e96a/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/build/sdl2-252d6b93eaa2e96a/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/build/sdl2-252d6b93eaa2e96a/output b/target/rls/debug/build/sdl2-252d6b93eaa2e96a/output new file mode 100644 index 0000000..e69de29 diff --git a/target/rls/debug/build/sdl2-252d6b93eaa2e96a/root-output b/target/rls/debug/build/sdl2-252d6b93eaa2e96a/root-output new file mode 100644 index 0000000..554d0bc --- /dev/null +++ b/target/rls/debug/build/sdl2-252d6b93eaa2e96a/root-output @@ -0,0 +1 @@ +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/build/sdl2-252d6b93eaa2e96a/out \ No newline at end of file diff --git a/target/rls/debug/build/sdl2-252d6b93eaa2e96a/stderr b/target/rls/debug/build/sdl2-252d6b93eaa2e96a/stderr new file mode 100644 index 0000000..e69de29 diff --git a/target/rls/debug/build/sdl2-sys-95684d10a9311044/invoked.timestamp b/target/rls/debug/build/sdl2-sys-95684d10a9311044/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/rls/debug/build/sdl2-sys-95684d10a9311044/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/rls/debug/build/sdl2-sys-95684d10a9311044/out/sdl_bindings.rs b/target/rls/debug/build/sdl2-sys-95684d10a9311044/out/sdl_bindings.rs new file mode 100644 index 0000000..b98fc8e --- /dev/null +++ b/target/rls/debug/build/sdl2-sys-95684d10a9311044/out/sdl_bindings.rs @@ -0,0 +1,30918 @@ +/* automatically generated by rust-bindgen */ + +pub const __LINUX__: u32 = 1; +pub const HAVE_STDARG_H: u32 = 1; +pub const HAVE_STDDEF_H: u32 = 1; +pub const HAVE_STDINT_H: u32 = 1; +pub const HAVE_GCC_SYNC_LOCK_TEST_AND_SET: u32 = 1; +pub const SDL_AUDIO_DRIVER_DUMMY: u32 = 1; +pub const SDL_JOYSTICK_DISABLED: u32 = 1; +pub const SDL_HAPTIC_DISABLED: u32 = 1; +pub const SDL_SENSOR_DISABLED: u32 = 1; +pub const SDL_LOADSO_DISABLED: u32 = 1; +pub const SDL_THREADS_DISABLED: u32 = 1; +pub const SDL_TIMERS_DISABLED: u32 = 1; +pub const SDL_VIDEO_DRIVER_DUMMY: u32 = 1; +pub const SDL_FILESYSTEM_DUMMY: u32 = 1; +pub const __GNUC_VA_LIST: u32 = 1; +pub const _STDINT_H: u32 = 1; +pub const _FEATURES_H: u32 = 1; +pub const _DEFAULT_SOURCE: u32 = 1; +pub const __GLIBC_USE_ISOC2X: u32 = 0; +pub const __USE_ISOC11: u32 = 1; +pub const __USE_ISOC99: u32 = 1; +pub const __USE_ISOC95: u32 = 1; +pub const __USE_POSIX_IMPLICITLY: u32 = 1; +pub const _POSIX_SOURCE: u32 = 1; +pub const _POSIX_C_SOURCE: u32 = 200809; +pub const __USE_POSIX: u32 = 1; +pub const __USE_POSIX2: u32 = 1; +pub const __USE_POSIX199309: u32 = 1; +pub const __USE_POSIX199506: u32 = 1; +pub const __USE_XOPEN2K: u32 = 1; +pub const __USE_XOPEN2K8: u32 = 1; +pub const _ATFILE_SOURCE: u32 = 1; +pub const __USE_MISC: u32 = 1; +pub const __USE_ATFILE: u32 = 1; +pub const __USE_FORTIFY_LEVEL: u32 = 0; +pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0; +pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0; +pub const _STDC_PREDEF_H: u32 = 1; +pub const __STDC_IEC_559__: u32 = 1; +pub const __STDC_IEC_559_COMPLEX__: u32 = 1; +pub const __STDC_ISO_10646__: u32 = 201706; +pub const __GNU_LIBRARY__: u32 = 6; +pub const __GLIBC__: u32 = 2; +pub const __GLIBC_MINOR__: u32 = 33; +pub const _SYS_CDEFS_H: u32 = 1; +pub const __glibc_c99_flexarr_available: u32 = 1; +pub const __WORDSIZE: u32 = 64; +pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1; +pub const __SYSCALL_WORDSIZE: u32 = 64; +pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0; +pub const __HAVE_GENERIC_SELECTION: u32 = 1; +pub const __GLIBC_USE_LIB_EXT2: u32 = 0; +pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0; +pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0; +pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0; +pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0; +pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0; +pub const _BITS_TYPES_H: u32 = 1; +pub const __TIMESIZE: u32 = 64; +pub const _BITS_TYPESIZES_H: u32 = 1; +pub const __OFF_T_MATCHES_OFF64_T: u32 = 1; +pub const __INO_T_MATCHES_INO64_T: u32 = 1; +pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1; +pub const __STATFS_MATCHES_STATFS64: u32 = 1; +pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1; +pub const __FD_SETSIZE: u32 = 1024; +pub const _BITS_TIME64_H: u32 = 1; +pub const _BITS_WCHAR_H: u32 = 1; +pub const _BITS_STDINT_INTN_H: u32 = 1; +pub const _BITS_STDINT_UINTN_H: u32 = 1; +pub const INT8_MIN: i32 = -128; +pub const INT16_MIN: i32 = -32768; +pub const INT32_MIN: i32 = -2147483648; +pub const INT8_MAX: u32 = 127; +pub const INT16_MAX: u32 = 32767; +pub const INT32_MAX: u32 = 2147483647; +pub const UINT8_MAX: u32 = 255; +pub const UINT16_MAX: u32 = 65535; +pub const UINT32_MAX: u32 = 4294967295; +pub const INT_LEAST8_MIN: i32 = -128; +pub const INT_LEAST16_MIN: i32 = -32768; +pub const INT_LEAST32_MIN: i32 = -2147483648; +pub const INT_LEAST8_MAX: u32 = 127; +pub const INT_LEAST16_MAX: u32 = 32767; +pub const INT_LEAST32_MAX: u32 = 2147483647; +pub const UINT_LEAST8_MAX: u32 = 255; +pub const UINT_LEAST16_MAX: u32 = 65535; +pub const UINT_LEAST32_MAX: u32 = 4294967295; +pub const INT_FAST8_MIN: i32 = -128; +pub const INT_FAST16_MIN: i64 = -9223372036854775808; +pub const INT_FAST32_MIN: i64 = -9223372036854775808; +pub const INT_FAST8_MAX: u32 = 127; +pub const INT_FAST16_MAX: u64 = 9223372036854775807; +pub const INT_FAST32_MAX: u64 = 9223372036854775807; +pub const UINT_FAST8_MAX: u32 = 255; +pub const UINT_FAST16_MAX: i32 = -1; +pub const UINT_FAST32_MAX: i32 = -1; +pub const INTPTR_MIN: i64 = -9223372036854775808; +pub const INTPTR_MAX: u64 = 9223372036854775807; +pub const UINTPTR_MAX: i32 = -1; +pub const PTRDIFF_MIN: i64 = -9223372036854775808; +pub const PTRDIFF_MAX: u64 = 9223372036854775807; +pub const SIG_ATOMIC_MIN: i32 = -2147483648; +pub const SIG_ATOMIC_MAX: u32 = 2147483647; +pub const SIZE_MAX: i32 = -1; +pub const WINT_MIN: u32 = 0; +pub const WINT_MAX: u32 = 4294967295; +pub const SDL_PRIs64: &'static [u8; 3usize] = b"ld\0"; +pub const SDL_PRIu64: &'static [u8; 3usize] = b"lu\0"; +pub const SDL_PRIx64: &'static [u8; 3usize] = b"lx\0"; +pub const SDL_PRIX64: &'static [u8; 3usize] = b"lX\0"; +pub const M_PI: f64 = 3.141592653589793; +pub const SDL_ASSERT_LEVEL: u32 = 2; +pub const SDL_NULL_WHILE_LOOP_CONDITION: u32 = 0; +pub const SDL_LIL_ENDIAN: u32 = 1234; +pub const SDL_BIG_ENDIAN: u32 = 4321; +pub const _ENDIAN_H: u32 = 1; +pub const _BITS_ENDIAN_H: u32 = 1; +pub const __LITTLE_ENDIAN: u32 = 1234; +pub const __BIG_ENDIAN: u32 = 4321; +pub const __PDP_ENDIAN: u32 = 3412; +pub const _BITS_ENDIANNESS_H: u32 = 1; +pub const __BYTE_ORDER: u32 = 1234; +pub const __FLOAT_WORD_ORDER: u32 = 1234; +pub const LITTLE_ENDIAN: u32 = 1234; +pub const BIG_ENDIAN: u32 = 4321; +pub const PDP_ENDIAN: u32 = 3412; +pub const BYTE_ORDER: u32 = 1234; +pub const _BITS_BYTESWAP_H: u32 = 1; +pub const _BITS_UINTN_IDENTITY_H: u32 = 1; +pub const SDL_BYTEORDER: u32 = 1234; +pub const SDL_MUTEX_TIMEDOUT: u32 = 1; +pub const SDL_RWOPS_UNKNOWN: u32 = 0; +pub const SDL_RWOPS_WINFILE: u32 = 1; +pub const SDL_RWOPS_STDFILE: u32 = 2; +pub const SDL_RWOPS_JNIFILE: u32 = 3; +pub const SDL_RWOPS_MEMORY: u32 = 4; +pub const SDL_RWOPS_MEMORY_RO: u32 = 5; +pub const RW_SEEK_SET: u32 = 0; +pub const RW_SEEK_CUR: u32 = 1; +pub const RW_SEEK_END: u32 = 2; +pub const SDL_AUDIO_MASK_BITSIZE: u32 = 255; +pub const SDL_AUDIO_MASK_DATATYPE: u32 = 256; +pub const SDL_AUDIO_MASK_ENDIAN: u32 = 4096; +pub const SDL_AUDIO_MASK_SIGNED: u32 = 32768; +pub const AUDIO_U8: u32 = 8; +pub const AUDIO_S8: u32 = 32776; +pub const AUDIO_U16LSB: u32 = 16; +pub const AUDIO_S16LSB: u32 = 32784; +pub const AUDIO_U16MSB: u32 = 4112; +pub const AUDIO_S16MSB: u32 = 36880; +pub const AUDIO_U16: u32 = 16; +pub const AUDIO_S16: u32 = 32784; +pub const AUDIO_S32LSB: u32 = 32800; +pub const AUDIO_S32MSB: u32 = 36896; +pub const AUDIO_S32: u32 = 32800; +pub const AUDIO_F32LSB: u32 = 33056; +pub const AUDIO_F32MSB: u32 = 37152; +pub const AUDIO_F32: u32 = 33056; +pub const AUDIO_U16SYS: u32 = 16; +pub const AUDIO_S16SYS: u32 = 32784; +pub const AUDIO_S32SYS: u32 = 32800; +pub const AUDIO_F32SYS: u32 = 33056; +pub const SDL_AUDIO_ALLOW_FREQUENCY_CHANGE: u32 = 1; +pub const SDL_AUDIO_ALLOW_FORMAT_CHANGE: u32 = 2; +pub const SDL_AUDIO_ALLOW_CHANNELS_CHANGE: u32 = 4; +pub const SDL_AUDIO_ALLOW_SAMPLES_CHANGE: u32 = 8; +pub const SDL_AUDIO_ALLOW_ANY_CHANGE: u32 = 15; +pub const SDL_AUDIOCVT_MAX_FILTERS: u32 = 9; +pub const SDL_MIX_MAXVOLUME: u32 = 128; +pub const _STDLIB_H: u32 = 1; +pub const WNOHANG: u32 = 1; +pub const WUNTRACED: u32 = 2; +pub const WSTOPPED: u32 = 2; +pub const WEXITED: u32 = 4; +pub const WCONTINUED: u32 = 8; +pub const WNOWAIT: u32 = 16777216; +pub const __WNOTHREAD: u32 = 536870912; +pub const __WALL: u32 = 1073741824; +pub const __WCLONE: u32 = 2147483648; +pub const __W_CONTINUED: u32 = 65535; +pub const __WCOREFLAG: u32 = 128; +pub const __HAVE_FLOAT128: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT128: u32 = 0; +pub const __HAVE_FLOAT64X: u32 = 1; +pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1; +pub const __HAVE_FLOAT16: u32 = 0; +pub const __HAVE_FLOAT32: u32 = 1; +pub const __HAVE_FLOAT64: u32 = 1; +pub const __HAVE_FLOAT32X: u32 = 1; +pub const __HAVE_FLOAT128X: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT16: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT32: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT64: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0; +pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0; +pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0; +pub const __ldiv_t_defined: u32 = 1; +pub const __lldiv_t_defined: u32 = 1; +pub const RAND_MAX: u32 = 2147483647; +pub const EXIT_FAILURE: u32 = 1; +pub const EXIT_SUCCESS: u32 = 0; +pub const _SYS_TYPES_H: u32 = 1; +pub const __clock_t_defined: u32 = 1; +pub const __clockid_t_defined: u32 = 1; +pub const __time_t_defined: u32 = 1; +pub const __timer_t_defined: u32 = 1; +pub const __BIT_TYPES_DEFINED__: u32 = 1; +pub const _SYS_SELECT_H: u32 = 1; +pub const __sigset_t_defined: u32 = 1; +pub const __timeval_defined: u32 = 1; +pub const _STRUCT_TIMESPEC: u32 = 1; +pub const FD_SETSIZE: u32 = 1024; +pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1; +pub const _THREAD_SHARED_TYPES_H: u32 = 1; +pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1; +pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40; +pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56; +pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56; +pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4; +pub const __SIZEOF_PTHREAD_COND_T: u32 = 48; +pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4; +pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4; +pub const _THREAD_MUTEX_INTERNAL_H: u32 = 1; +pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1; +pub const __have_pthread_attr_t: u32 = 1; +pub const _ALLOCA_H: u32 = 1; +pub const _MM_HINT_ET0: u32 = 7; +pub const _MM_HINT_ET1: u32 = 6; +pub const _MM_HINT_T0: u32 = 3; +pub const _MM_HINT_T1: u32 = 2; +pub const _MM_HINT_T2: u32 = 1; +pub const _MM_HINT_NTA: u32 = 0; +pub const _MM_EXCEPT_INVALID: u32 = 1; +pub const _MM_EXCEPT_DENORM: u32 = 2; +pub const _MM_EXCEPT_DIV_ZERO: u32 = 4; +pub const _MM_EXCEPT_OVERFLOW: u32 = 8; +pub const _MM_EXCEPT_UNDERFLOW: u32 = 16; +pub const _MM_EXCEPT_INEXACT: u32 = 32; +pub const _MM_EXCEPT_MASK: u32 = 63; +pub const _MM_MASK_INVALID: u32 = 128; +pub const _MM_MASK_DENORM: u32 = 256; +pub const _MM_MASK_DIV_ZERO: u32 = 512; +pub const _MM_MASK_OVERFLOW: u32 = 1024; +pub const _MM_MASK_UNDERFLOW: u32 = 2048; +pub const _MM_MASK_INEXACT: u32 = 4096; +pub const _MM_MASK_MASK: u32 = 8064; +pub const _MM_ROUND_NEAREST: u32 = 0; +pub const _MM_ROUND_DOWN: u32 = 8192; +pub const _MM_ROUND_UP: u32 = 16384; +pub const _MM_ROUND_TOWARD_ZERO: u32 = 24576; +pub const _MM_ROUND_MASK: u32 = 24576; +pub const _MM_FLUSH_ZERO_MASK: u32 = 32768; +pub const _MM_FLUSH_ZERO_ON: u32 = 32768; +pub const _MM_FLUSH_ZERO_OFF: u32 = 0; +pub const _MM_DENORMALS_ZERO_ON: u32 = 64; +pub const _MM_DENORMALS_ZERO_OFF: u32 = 0; +pub const _MM_DENORMALS_ZERO_MASK: u32 = 64; +pub const SDL_CACHELINE_SIZE: u32 = 128; +pub const SDL_ALPHA_OPAQUE: u32 = 255; +pub const SDL_ALPHA_TRANSPARENT: u32 = 0; +pub const SDL_SWSURFACE: u32 = 0; +pub const SDL_PREALLOC: u32 = 1; +pub const SDL_RLEACCEL: u32 = 2; +pub const SDL_DONTFREE: u32 = 4; +pub const SDL_SIMD_ALIGNED: u32 = 8; +pub const SDL_WINDOWPOS_UNDEFINED_MASK: u32 = 536805376; +pub const SDL_WINDOWPOS_CENTERED_MASK: u32 = 805240832; +pub const SDLK_SCANCODE_MASK: u32 = 1073741824; +pub const SDL_BUTTON_LEFT: u32 = 1; +pub const SDL_BUTTON_MIDDLE: u32 = 2; +pub const SDL_BUTTON_RIGHT: u32 = 3; +pub const SDL_BUTTON_X1: u32 = 4; +pub const SDL_BUTTON_X2: u32 = 5; +pub const SDL_IPHONE_MAX_GFORCE: f64 = 5.0; +pub const SDL_JOYSTICK_AXIS_MAX: u32 = 32767; +pub const SDL_JOYSTICK_AXIS_MIN: i32 = -32768; +pub const SDL_HAT_CENTERED: u32 = 0; +pub const SDL_HAT_UP: u32 = 1; +pub const SDL_HAT_RIGHT: u32 = 2; +pub const SDL_HAT_DOWN: u32 = 4; +pub const SDL_HAT_LEFT: u32 = 8; +pub const SDL_HAT_RIGHTUP: u32 = 3; +pub const SDL_HAT_RIGHTDOWN: u32 = 6; +pub const SDL_HAT_LEFTUP: u32 = 9; +pub const SDL_HAT_LEFTDOWN: u32 = 12; +pub const SDL_STANDARD_GRAVITY: f64 = 9.80665; +pub const SDL_RELEASED: u32 = 0; +pub const SDL_PRESSED: u32 = 1; +pub const SDL_TEXTEDITINGEVENT_TEXT_SIZE: u32 = 32; +pub const SDL_TEXTINPUTEVENT_TEXT_SIZE: u32 = 32; +pub const SDL_QUERY: i32 = -1; +pub const SDL_IGNORE: u32 = 0; +pub const SDL_DISABLE: u32 = 0; +pub const SDL_ENABLE: u32 = 1; +pub const SDL_HAPTIC_CONSTANT: u32 = 1; +pub const SDL_HAPTIC_SINE: u32 = 2; +pub const SDL_HAPTIC_LEFTRIGHT: u32 = 4; +pub const SDL_HAPTIC_TRIANGLE: u32 = 8; +pub const SDL_HAPTIC_SAWTOOTHUP: u32 = 16; +pub const SDL_HAPTIC_SAWTOOTHDOWN: u32 = 32; +pub const SDL_HAPTIC_RAMP: u32 = 64; +pub const SDL_HAPTIC_SPRING: u32 = 128; +pub const SDL_HAPTIC_DAMPER: u32 = 256; +pub const SDL_HAPTIC_INERTIA: u32 = 512; +pub const SDL_HAPTIC_FRICTION: u32 = 1024; +pub const SDL_HAPTIC_CUSTOM: u32 = 2048; +pub const SDL_HAPTIC_GAIN: u32 = 4096; +pub const SDL_HAPTIC_AUTOCENTER: u32 = 8192; +pub const SDL_HAPTIC_STATUS: u32 = 16384; +pub const SDL_HAPTIC_PAUSE: u32 = 32768; +pub const SDL_HAPTIC_POLAR: u32 = 0; +pub const SDL_HAPTIC_CARTESIAN: u32 = 1; +pub const SDL_HAPTIC_SPHERICAL: u32 = 2; +pub const SDL_HAPTIC_STEERING_AXIS: u32 = 3; +pub const SDL_HAPTIC_INFINITY: u32 = 4294967295; +pub const SDL_HINT_FRAMEBUFFER_ACCELERATION: &'static [u8; 29usize] = + b"SDL_FRAMEBUFFER_ACCELERATION\0"; +pub const SDL_HINT_RENDER_DRIVER: &'static [u8; 18usize] = b"SDL_RENDER_DRIVER\0"; +pub const SDL_HINT_RENDER_OPENGL_SHADERS: &'static [u8; 26usize] = b"SDL_RENDER_OPENGL_SHADERS\0"; +pub const SDL_HINT_RENDER_DIRECT3D_THREADSAFE: &'static [u8; 31usize] = + b"SDL_RENDER_DIRECT3D_THREADSAFE\0"; +pub const SDL_HINT_RENDER_DIRECT3D11_DEBUG: &'static [u8; 28usize] = + b"SDL_RENDER_DIRECT3D11_DEBUG\0"; +pub const SDL_HINT_RENDER_LOGICAL_SIZE_MODE: &'static [u8; 29usize] = + b"SDL_RENDER_LOGICAL_SIZE_MODE\0"; +pub const SDL_HINT_RENDER_SCALE_QUALITY: &'static [u8; 25usize] = b"SDL_RENDER_SCALE_QUALITY\0"; +pub const SDL_HINT_RENDER_VSYNC: &'static [u8; 17usize] = b"SDL_RENDER_VSYNC\0"; +pub const SDL_HINT_VIDEO_ALLOW_SCREENSAVER: &'static [u8; 28usize] = + b"SDL_VIDEO_ALLOW_SCREENSAVER\0"; +pub const SDL_HINT_VIDEO_EXTERNAL_CONTEXT: &'static [u8; 27usize] = b"SDL_VIDEO_EXTERNAL_CONTEXT\0"; +pub const SDL_HINT_VIDEO_X11_XVIDMODE: &'static [u8; 23usize] = b"SDL_VIDEO_X11_XVIDMODE\0"; +pub const SDL_HINT_VIDEO_X11_XINERAMA: &'static [u8; 23usize] = b"SDL_VIDEO_X11_XINERAMA\0"; +pub const SDL_HINT_VIDEO_X11_XRANDR: &'static [u8; 21usize] = b"SDL_VIDEO_X11_XRANDR\0"; +pub const SDL_HINT_VIDEO_X11_WINDOW_VISUALID: &'static [u8; 30usize] = + b"SDL_VIDEO_X11_WINDOW_VISUALID\0"; +pub const SDL_HINT_VIDEO_X11_NET_WM_PING: &'static [u8; 26usize] = b"SDL_VIDEO_X11_NET_WM_PING\0"; +pub const SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR: &'static [u8; 39usize] = + b"SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR\0"; +pub const SDL_HINT_VIDEO_X11_FORCE_EGL: &'static [u8; 24usize] = b"SDL_VIDEO_X11_FORCE_EGL\0"; +pub const SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN: &'static [u8; 44usize] = + b"SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN\0"; +pub const SDL_HINT_WINDOWS_INTRESOURCE_ICON: &'static [u8; 29usize] = + b"SDL_WINDOWS_INTRESOURCE_ICON\0"; +pub const SDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALL: &'static [u8; 35usize] = + b"SDL_WINDOWS_INTRESOURCE_ICON_SMALL\0"; +pub const SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP: &'static [u8; 31usize] = + b"SDL_WINDOWS_ENABLE_MESSAGELOOP\0"; +pub const SDL_HINT_GRAB_KEYBOARD: &'static [u8; 18usize] = b"SDL_GRAB_KEYBOARD\0"; +pub const SDL_HINT_MOUSE_DOUBLE_CLICK_TIME: &'static [u8; 28usize] = + b"SDL_MOUSE_DOUBLE_CLICK_TIME\0"; +pub const SDL_HINT_MOUSE_DOUBLE_CLICK_RADIUS: &'static [u8; 30usize] = + b"SDL_MOUSE_DOUBLE_CLICK_RADIUS\0"; +pub const SDL_HINT_MOUSE_NORMAL_SPEED_SCALE: &'static [u8; 29usize] = + b"SDL_MOUSE_NORMAL_SPEED_SCALE\0"; +pub const SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE: &'static [u8; 31usize] = + b"SDL_MOUSE_RELATIVE_SPEED_SCALE\0"; +pub const SDL_HINT_MOUSE_RELATIVE_SCALING: &'static [u8; 27usize] = b"SDL_MOUSE_RELATIVE_SCALING\0"; +pub const SDL_HINT_MOUSE_RELATIVE_MODE_WARP: &'static [u8; 29usize] = + b"SDL_MOUSE_RELATIVE_MODE_WARP\0"; +pub const SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH: &'static [u8; 29usize] = + b"SDL_MOUSE_FOCUS_CLICKTHROUGH\0"; +pub const SDL_HINT_TOUCH_MOUSE_EVENTS: &'static [u8; 23usize] = b"SDL_TOUCH_MOUSE_EVENTS\0"; +pub const SDL_HINT_MOUSE_TOUCH_EVENTS: &'static [u8; 23usize] = b"SDL_MOUSE_TOUCH_EVENTS\0"; +pub const SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS: &'static [u8; 33usize] = + b"SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS\0"; +pub const SDL_HINT_IDLE_TIMER_DISABLED: &'static [u8; 28usize] = b"SDL_IOS_IDLE_TIMER_DISABLED\0"; +pub const SDL_HINT_ORIENTATIONS: &'static [u8; 21usize] = b"SDL_IOS_ORIENTATIONS\0"; +pub const SDL_HINT_APPLE_TV_CONTROLLER_UI_EVENTS: &'static [u8; 34usize] = + b"SDL_APPLE_TV_CONTROLLER_UI_EVENTS\0"; +pub const SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION: &'static [u8; 35usize] = + b"SDL_APPLE_TV_REMOTE_ALLOW_ROTATION\0"; +pub const SDL_HINT_IOS_HIDE_HOME_INDICATOR: &'static [u8; 28usize] = + b"SDL_IOS_HIDE_HOME_INDICATOR\0"; +pub const SDL_HINT_ACCELEROMETER_AS_JOYSTICK: &'static [u8; 30usize] = + b"SDL_ACCELEROMETER_AS_JOYSTICK\0"; +pub const SDL_HINT_TV_REMOTE_AS_JOYSTICK: &'static [u8; 26usize] = b"SDL_TV_REMOTE_AS_JOYSTICK\0"; +pub const SDL_HINT_XINPUT_ENABLED: &'static [u8; 19usize] = b"SDL_XINPUT_ENABLED\0"; +pub const SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING: &'static [u8; 36usize] = + b"SDL_XINPUT_USE_OLD_JOYSTICK_MAPPING\0"; +pub const SDL_HINT_GAMECONTROLLERTYPE: &'static [u8; 23usize] = b"SDL_GAMECONTROLLERTYPE\0"; +pub const SDL_HINT_GAMECONTROLLERCONFIG: &'static [u8; 25usize] = b"SDL_GAMECONTROLLERCONFIG\0"; +pub const SDL_HINT_GAMECONTROLLERCONFIG_FILE: &'static [u8; 30usize] = + b"SDL_GAMECONTROLLERCONFIG_FILE\0"; +pub const SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES: &'static [u8; 34usize] = + b"SDL_GAMECONTROLLER_IGNORE_DEVICES\0"; +pub const SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT: &'static [u8; 41usize] = + b"SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT\0"; +pub const SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS: &'static [u8; 37usize] = + b"SDL_GAMECONTROLLER_USE_BUTTON_LABELS\0"; +pub const SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS: &'static [u8; 37usize] = + b"SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS\0"; +pub const SDL_HINT_JOYSTICK_HIDAPI: &'static [u8; 20usize] = b"SDL_JOYSTICK_HIDAPI\0"; +pub const SDL_HINT_JOYSTICK_HIDAPI_PS4: &'static [u8; 24usize] = b"SDL_JOYSTICK_HIDAPI_PS4\0"; +pub const SDL_HINT_JOYSTICK_HIDAPI_PS5: &'static [u8; 24usize] = b"SDL_JOYSTICK_HIDAPI_PS5\0"; +pub const SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE: &'static [u8; 31usize] = + b"SDL_JOYSTICK_HIDAPI_PS4_RUMBLE\0"; +pub const SDL_HINT_JOYSTICK_HIDAPI_STEAM: &'static [u8; 26usize] = b"SDL_JOYSTICK_HIDAPI_STEAM\0"; +pub const SDL_HINT_JOYSTICK_HIDAPI_SWITCH: &'static [u8; 27usize] = b"SDL_JOYSTICK_HIDAPI_SWITCH\0"; +pub const SDL_HINT_JOYSTICK_HIDAPI_XBOX: &'static [u8; 25usize] = b"SDL_JOYSTICK_HIDAPI_XBOX\0"; +pub const SDL_HINT_JOYSTICK_HIDAPI_CORRELATE_XINPUT: &'static [u8; 37usize] = + b"SDL_JOYSTICK_HIDAPI_CORRELATE_XINPUT\0"; +pub const SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE: &'static [u8; 29usize] = + b"SDL_JOYSTICK_HIDAPI_GAMECUBE\0"; +pub const SDL_HINT_ENABLE_STEAM_CONTROLLERS: &'static [u8; 29usize] = + b"SDL_ENABLE_STEAM_CONTROLLERS\0"; +pub const SDL_HINT_JOYSTICK_RAWINPUT: &'static [u8; 22usize] = b"SDL_JOYSTICK_RAWINPUT\0"; +pub const SDL_HINT_JOYSTICK_THREAD: &'static [u8; 20usize] = b"SDL_JOYSTICK_THREAD\0"; +pub const SDL_HINT_LINUX_JOYSTICK_DEADZONES: &'static [u8; 29usize] = + b"SDL_LINUX_JOYSTICK_DEADZONES\0"; +pub const SDL_HINT_ALLOW_TOPMOST: &'static [u8; 18usize] = b"SDL_ALLOW_TOPMOST\0"; +pub const SDL_HINT_TIMER_RESOLUTION: &'static [u8; 21usize] = b"SDL_TIMER_RESOLUTION\0"; +pub const SDL_HINT_QTWAYLAND_CONTENT_ORIENTATION: &'static [u8; 34usize] = + b"SDL_QTWAYLAND_CONTENT_ORIENTATION\0"; +pub const SDL_HINT_QTWAYLAND_WINDOW_FLAGS: &'static [u8; 27usize] = b"SDL_QTWAYLAND_WINDOW_FLAGS\0"; +pub const SDL_HINT_THREAD_STACK_SIZE: &'static [u8; 22usize] = b"SDL_THREAD_STACK_SIZE\0"; +pub const SDL_HINT_THREAD_PRIORITY_POLICY: &'static [u8; 27usize] = b"SDL_THREAD_PRIORITY_POLICY\0"; +pub const SDL_HINT_THREAD_FORCE_REALTIME_TIME_CRITICAL: &'static [u8; 40usize] = + b"SDL_THREAD_FORCE_REALTIME_TIME_CRITICAL\0"; +pub const SDL_HINT_VIDEO_HIGHDPI_DISABLED: &'static [u8; 27usize] = b"SDL_VIDEO_HIGHDPI_DISABLED\0"; +pub const SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK: &'static [u8; 39usize] = + b"SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK\0"; +pub const SDL_HINT_VIDEO_WIN_D3DCOMPILER: &'static [u8; 26usize] = b"SDL_VIDEO_WIN_D3DCOMPILER\0"; +pub const SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT: &'static [u8; 36usize] = + b"SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT\0"; +pub const SDL_HINT_WINRT_PRIVACY_POLICY_URL: &'static [u8; 29usize] = + b"SDL_WINRT_PRIVACY_POLICY_URL\0"; +pub const SDL_HINT_WINRT_PRIVACY_POLICY_LABEL: &'static [u8; 31usize] = + b"SDL_WINRT_PRIVACY_POLICY_LABEL\0"; +pub const SDL_HINT_WINRT_HANDLE_BACK_BUTTON: &'static [u8; 29usize] = + b"SDL_WINRT_HANDLE_BACK_BUTTON\0"; +pub const SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES: &'static [u8; 32usize] = + b"SDL_VIDEO_MAC_FULLSCREEN_SPACES\0"; +pub const SDL_HINT_MAC_BACKGROUND_APP: &'static [u8; 23usize] = b"SDL_MAC_BACKGROUND_APP\0"; +pub const SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION: &'static [u8; 44usize] = + b"SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION\0"; +pub const SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION: &'static [u8; 45usize] = + b"SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION\0"; +pub const SDL_HINT_IME_INTERNAL_EDITING: &'static [u8; 25usize] = b"SDL_IME_INTERNAL_EDITING\0"; +pub const SDL_HINT_ANDROID_TRAP_BACK_BUTTON: &'static [u8; 29usize] = + b"SDL_ANDROID_TRAP_BACK_BUTTON\0"; +pub const SDL_HINT_ANDROID_BLOCK_ON_PAUSE: &'static [u8; 27usize] = b"SDL_ANDROID_BLOCK_ON_PAUSE\0"; +pub const SDL_HINT_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO: &'static [u8; 38usize] = + b"SDL_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO\0"; +pub const SDL_HINT_RETURN_KEY_HIDES_IME: &'static [u8; 25usize] = b"SDL_RETURN_KEY_HIDES_IME\0"; +pub const SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT: &'static [u8; 32usize] = + b"SDL_EMSCRIPTEN_KEYBOARD_ELEMENT\0"; +pub const SDL_HINT_EMSCRIPTEN_ASYNCIFY: &'static [u8; 24usize] = b"SDL_EMSCRIPTEN_ASYNCIFY\0"; +pub const SDL_HINT_NO_SIGNAL_HANDLERS: &'static [u8; 23usize] = b"SDL_NO_SIGNAL_HANDLERS\0"; +pub const SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4: &'static [u8; 31usize] = + b"SDL_WINDOWS_NO_CLOSE_ON_ALT_F4\0"; +pub const SDL_HINT_BMP_SAVE_LEGACY_FORMAT: &'static [u8; 27usize] = b"SDL_BMP_SAVE_LEGACY_FORMAT\0"; +pub const SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING: &'static [u8; 34usize] = + b"SDL_WINDOWS_DISABLE_THREAD_NAMING\0"; +pub const SDL_HINT_RPI_VIDEO_LAYER: &'static [u8; 20usize] = b"SDL_RPI_VIDEO_LAYER\0"; +pub const SDL_HINT_VIDEO_DOUBLE_BUFFER: &'static [u8; 24usize] = b"SDL_VIDEO_DOUBLE_BUFFER\0"; +pub const SDL_HINT_OPENGL_ES_DRIVER: &'static [u8; 21usize] = b"SDL_OPENGL_ES_DRIVER\0"; +pub const SDL_HINT_AUDIO_RESAMPLING_MODE: &'static [u8; 26usize] = b"SDL_AUDIO_RESAMPLING_MODE\0"; +pub const SDL_HINT_AUDIO_CATEGORY: &'static [u8; 19usize] = b"SDL_AUDIO_CATEGORY\0"; +pub const SDL_HINT_RENDER_BATCHING: &'static [u8; 20usize] = b"SDL_RENDER_BATCHING\0"; +pub const SDL_HINT_AUTO_UPDATE_JOYSTICKS: &'static [u8; 26usize] = b"SDL_AUTO_UPDATE_JOYSTICKS\0"; +pub const SDL_HINT_AUTO_UPDATE_SENSORS: &'static [u8; 24usize] = b"SDL_AUTO_UPDATE_SENSORS\0"; +pub const SDL_HINT_EVENT_LOGGING: &'static [u8; 18usize] = b"SDL_EVENT_LOGGING\0"; +pub const SDL_HINT_WAVE_RIFF_CHUNK_SIZE: &'static [u8; 25usize] = b"SDL_WAVE_RIFF_CHUNK_SIZE\0"; +pub const SDL_HINT_WAVE_TRUNCATION: &'static [u8; 20usize] = b"SDL_WAVE_TRUNCATION\0"; +pub const SDL_HINT_WAVE_FACT_CHUNK: &'static [u8; 20usize] = b"SDL_WAVE_FACT_CHUNK\0"; +pub const SDL_HINT_DISPLAY_USABLE_BOUNDS: &'static [u8; 26usize] = b"SDL_DISPLAY_USABLE_BOUNDS\0"; +pub const SDL_HINT_AUDIO_DEVICE_APP_NAME: &'static [u8; 26usize] = b"SDL_AUDIO_DEVICE_APP_NAME\0"; +pub const SDL_HINT_AUDIO_DEVICE_STREAM_NAME: &'static [u8; 29usize] = + b"SDL_AUDIO_DEVICE_STREAM_NAME\0"; +pub const SDL_HINT_PREFERRED_LOCALES: &'static [u8; 22usize] = b"SDL_PREFERRED_LOCALES\0"; +pub const SDL_MAX_LOG_MESSAGE: u32 = 4096; +pub const SDL_NONSHAPEABLE_WINDOW: i32 = -1; +pub const SDL_INVALID_SHAPE_ARGUMENT: i32 = -2; +pub const SDL_WINDOW_LACKS_SHAPE: i32 = -3; +pub const SDL_MAJOR_VERSION: u32 = 2; +pub const SDL_MINOR_VERSION: u32 = 0; +pub const SDL_PATCHLEVEL: u32 = 14; +pub const SDL_INIT_TIMER: u32 = 1; +pub const SDL_INIT_AUDIO: u32 = 16; +pub const SDL_INIT_VIDEO: u32 = 32; +pub const SDL_INIT_JOYSTICK: u32 = 512; +pub const SDL_INIT_HAPTIC: u32 = 4096; +pub const SDL_INIT_GAMECONTROLLER: u32 = 8192; +pub const SDL_INIT_EVENTS: u32 = 16384; +pub const SDL_INIT_SENSOR: u32 = 32768; +pub const SDL_INIT_NOPARACHUTE: u32 = 1048576; +pub const SDL_INIT_EVERYTHING: u32 = 62001; +pub const XlibSpecificationRelease: u32 = 6; +pub const X_PROTOCOL: u32 = 11; +pub const X_PROTOCOL_REVISION: u32 = 0; +pub const None: u32 = 0; +pub const ParentRelative: u32 = 1; +pub const CopyFromParent: u32 = 0; +pub const PointerWindow: u32 = 0; +pub const InputFocus: u32 = 1; +pub const PointerRoot: u32 = 1; +pub const AnyPropertyType: u32 = 0; +pub const AnyKey: u32 = 0; +pub const AnyButton: u32 = 0; +pub const AllTemporary: u32 = 0; +pub const CurrentTime: u32 = 0; +pub const NoSymbol: u32 = 0; +pub const NoEventMask: u32 = 0; +pub const KeyPressMask: u32 = 1; +pub const KeyReleaseMask: u32 = 2; +pub const ButtonPressMask: u32 = 4; +pub const ButtonReleaseMask: u32 = 8; +pub const EnterWindowMask: u32 = 16; +pub const LeaveWindowMask: u32 = 32; +pub const PointerMotionMask: u32 = 64; +pub const PointerMotionHintMask: u32 = 128; +pub const Button1MotionMask: u32 = 256; +pub const Button2MotionMask: u32 = 512; +pub const Button3MotionMask: u32 = 1024; +pub const Button4MotionMask: u32 = 2048; +pub const Button5MotionMask: u32 = 4096; +pub const ButtonMotionMask: u32 = 8192; +pub const KeymapStateMask: u32 = 16384; +pub const ExposureMask: u32 = 32768; +pub const VisibilityChangeMask: u32 = 65536; +pub const StructureNotifyMask: u32 = 131072; +pub const ResizeRedirectMask: u32 = 262144; +pub const SubstructureNotifyMask: u32 = 524288; +pub const SubstructureRedirectMask: u32 = 1048576; +pub const FocusChangeMask: u32 = 2097152; +pub const PropertyChangeMask: u32 = 4194304; +pub const ColormapChangeMask: u32 = 8388608; +pub const OwnerGrabButtonMask: u32 = 16777216; +pub const KeyPress: u32 = 2; +pub const KeyRelease: u32 = 3; +pub const ButtonPress: u32 = 4; +pub const ButtonRelease: u32 = 5; +pub const MotionNotify: u32 = 6; +pub const EnterNotify: u32 = 7; +pub const LeaveNotify: u32 = 8; +pub const FocusIn: u32 = 9; +pub const FocusOut: u32 = 10; +pub const KeymapNotify: u32 = 11; +pub const Expose: u32 = 12; +pub const GraphicsExpose: u32 = 13; +pub const NoExpose: u32 = 14; +pub const VisibilityNotify: u32 = 15; +pub const CreateNotify: u32 = 16; +pub const DestroyNotify: u32 = 17; +pub const UnmapNotify: u32 = 18; +pub const MapNotify: u32 = 19; +pub const MapRequest: u32 = 20; +pub const ReparentNotify: u32 = 21; +pub const ConfigureNotify: u32 = 22; +pub const ConfigureRequest: u32 = 23; +pub const GravityNotify: u32 = 24; +pub const ResizeRequest: u32 = 25; +pub const CirculateNotify: u32 = 26; +pub const CirculateRequest: u32 = 27; +pub const PropertyNotify: u32 = 28; +pub const SelectionClear: u32 = 29; +pub const SelectionRequest: u32 = 30; +pub const SelectionNotify: u32 = 31; +pub const ColormapNotify: u32 = 32; +pub const ClientMessage: u32 = 33; +pub const MappingNotify: u32 = 34; +pub const GenericEvent: u32 = 35; +pub const LASTEvent: u32 = 36; +pub const ShiftMask: u32 = 1; +pub const LockMask: u32 = 2; +pub const ControlMask: u32 = 4; +pub const Mod1Mask: u32 = 8; +pub const Mod2Mask: u32 = 16; +pub const Mod3Mask: u32 = 32; +pub const Mod4Mask: u32 = 64; +pub const Mod5Mask: u32 = 128; +pub const ShiftMapIndex: u32 = 0; +pub const LockMapIndex: u32 = 1; +pub const ControlMapIndex: u32 = 2; +pub const Mod1MapIndex: u32 = 3; +pub const Mod2MapIndex: u32 = 4; +pub const Mod3MapIndex: u32 = 5; +pub const Mod4MapIndex: u32 = 6; +pub const Mod5MapIndex: u32 = 7; +pub const Button1Mask: u32 = 256; +pub const Button2Mask: u32 = 512; +pub const Button3Mask: u32 = 1024; +pub const Button4Mask: u32 = 2048; +pub const Button5Mask: u32 = 4096; +pub const AnyModifier: u32 = 32768; +pub const Button1: u32 = 1; +pub const Button2: u32 = 2; +pub const Button3: u32 = 3; +pub const Button4: u32 = 4; +pub const Button5: u32 = 5; +pub const NotifyNormal: u32 = 0; +pub const NotifyGrab: u32 = 1; +pub const NotifyUngrab: u32 = 2; +pub const NotifyWhileGrabbed: u32 = 3; +pub const NotifyHint: u32 = 1; +pub const NotifyAncestor: u32 = 0; +pub const NotifyVirtual: u32 = 1; +pub const NotifyInferior: u32 = 2; +pub const NotifyNonlinear: u32 = 3; +pub const NotifyNonlinearVirtual: u32 = 4; +pub const NotifyPointer: u32 = 5; +pub const NotifyPointerRoot: u32 = 6; +pub const NotifyDetailNone: u32 = 7; +pub const VisibilityUnobscured: u32 = 0; +pub const VisibilityPartiallyObscured: u32 = 1; +pub const VisibilityFullyObscured: u32 = 2; +pub const PlaceOnTop: u32 = 0; +pub const PlaceOnBottom: u32 = 1; +pub const FamilyInternet: u32 = 0; +pub const FamilyDECnet: u32 = 1; +pub const FamilyChaos: u32 = 2; +pub const FamilyInternet6: u32 = 6; +pub const FamilyServerInterpreted: u32 = 5; +pub const PropertyNewValue: u32 = 0; +pub const PropertyDelete: u32 = 1; +pub const ColormapUninstalled: u32 = 0; +pub const ColormapInstalled: u32 = 1; +pub const GrabModeSync: u32 = 0; +pub const GrabModeAsync: u32 = 1; +pub const GrabSuccess: u32 = 0; +pub const AlreadyGrabbed: u32 = 1; +pub const GrabInvalidTime: u32 = 2; +pub const GrabNotViewable: u32 = 3; +pub const GrabFrozen: u32 = 4; +pub const AsyncPointer: u32 = 0; +pub const SyncPointer: u32 = 1; +pub const ReplayPointer: u32 = 2; +pub const AsyncKeyboard: u32 = 3; +pub const SyncKeyboard: u32 = 4; +pub const ReplayKeyboard: u32 = 5; +pub const AsyncBoth: u32 = 6; +pub const SyncBoth: u32 = 7; +pub const RevertToParent: u32 = 2; +pub const Success: u32 = 0; +pub const BadRequest: u32 = 1; +pub const BadValue: u32 = 2; +pub const BadWindow: u32 = 3; +pub const BadPixmap: u32 = 4; +pub const BadAtom: u32 = 5; +pub const BadCursor: u32 = 6; +pub const BadFont: u32 = 7; +pub const BadMatch: u32 = 8; +pub const BadDrawable: u32 = 9; +pub const BadAccess: u32 = 10; +pub const BadAlloc: u32 = 11; +pub const BadColor: u32 = 12; +pub const BadGC: u32 = 13; +pub const BadIDChoice: u32 = 14; +pub const BadName: u32 = 15; +pub const BadLength: u32 = 16; +pub const BadImplementation: u32 = 17; +pub const FirstExtensionError: u32 = 128; +pub const LastExtensionError: u32 = 255; +pub const InputOutput: u32 = 1; +pub const InputOnly: u32 = 2; +pub const CWBackPixmap: u32 = 1; +pub const CWBackPixel: u32 = 2; +pub const CWBorderPixmap: u32 = 4; +pub const CWBorderPixel: u32 = 8; +pub const CWBitGravity: u32 = 16; +pub const CWWinGravity: u32 = 32; +pub const CWBackingStore: u32 = 64; +pub const CWBackingPlanes: u32 = 128; +pub const CWBackingPixel: u32 = 256; +pub const CWOverrideRedirect: u32 = 512; +pub const CWSaveUnder: u32 = 1024; +pub const CWEventMask: u32 = 2048; +pub const CWDontPropagate: u32 = 4096; +pub const CWColormap: u32 = 8192; +pub const CWCursor: u32 = 16384; +pub const CWX: u32 = 1; +pub const CWY: u32 = 2; +pub const CWWidth: u32 = 4; +pub const CWHeight: u32 = 8; +pub const CWBorderWidth: u32 = 16; +pub const CWSibling: u32 = 32; +pub const CWStackMode: u32 = 64; +pub const ForgetGravity: u32 = 0; +pub const NorthWestGravity: u32 = 1; +pub const NorthGravity: u32 = 2; +pub const NorthEastGravity: u32 = 3; +pub const WestGravity: u32 = 4; +pub const CenterGravity: u32 = 5; +pub const EastGravity: u32 = 6; +pub const SouthWestGravity: u32 = 7; +pub const SouthGravity: u32 = 8; +pub const SouthEastGravity: u32 = 9; +pub const StaticGravity: u32 = 10; +pub const UnmapGravity: u32 = 0; +pub const NotUseful: u32 = 0; +pub const WhenMapped: u32 = 1; +pub const Always: u32 = 2; +pub const IsUnmapped: u32 = 0; +pub const IsUnviewable: u32 = 1; +pub const IsViewable: u32 = 2; +pub const SetModeInsert: u32 = 0; +pub const SetModeDelete: u32 = 1; +pub const DestroyAll: u32 = 0; +pub const RetainPermanent: u32 = 1; +pub const RetainTemporary: u32 = 2; +pub const Above: u32 = 0; +pub const Below: u32 = 1; +pub const TopIf: u32 = 2; +pub const BottomIf: u32 = 3; +pub const Opposite: u32 = 4; +pub const RaiseLowest: u32 = 0; +pub const LowerHighest: u32 = 1; +pub const PropModeReplace: u32 = 0; +pub const PropModePrepend: u32 = 1; +pub const PropModeAppend: u32 = 2; +pub const GXclear: u32 = 0; +pub const GXand: u32 = 1; +pub const GXandReverse: u32 = 2; +pub const GXcopy: u32 = 3; +pub const GXandInverted: u32 = 4; +pub const GXnoop: u32 = 5; +pub const GXxor: u32 = 6; +pub const GXor: u32 = 7; +pub const GXnor: u32 = 8; +pub const GXequiv: u32 = 9; +pub const GXinvert: u32 = 10; +pub const GXorReverse: u32 = 11; +pub const GXcopyInverted: u32 = 12; +pub const GXorInverted: u32 = 13; +pub const GXnand: u32 = 14; +pub const GXset: u32 = 15; +pub const LineSolid: u32 = 0; +pub const LineOnOffDash: u32 = 1; +pub const LineDoubleDash: u32 = 2; +pub const CapNotLast: u32 = 0; +pub const CapButt: u32 = 1; +pub const CapRound: u32 = 2; +pub const CapProjecting: u32 = 3; +pub const JoinMiter: u32 = 0; +pub const JoinRound: u32 = 1; +pub const JoinBevel: u32 = 2; +pub const FillSolid: u32 = 0; +pub const FillTiled: u32 = 1; +pub const FillStippled: u32 = 2; +pub const FillOpaqueStippled: u32 = 3; +pub const EvenOddRule: u32 = 0; +pub const WindingRule: u32 = 1; +pub const ClipByChildren: u32 = 0; +pub const IncludeInferiors: u32 = 1; +pub const Unsorted: u32 = 0; +pub const YSorted: u32 = 1; +pub const YXSorted: u32 = 2; +pub const YXBanded: u32 = 3; +pub const CoordModeOrigin: u32 = 0; +pub const CoordModePrevious: u32 = 1; +pub const Complex: u32 = 0; +pub const Nonconvex: u32 = 1; +pub const Convex: u32 = 2; +pub const ArcChord: u32 = 0; +pub const ArcPieSlice: u32 = 1; +pub const GCFunction: u32 = 1; +pub const GCPlaneMask: u32 = 2; +pub const GCForeground: u32 = 4; +pub const GCBackground: u32 = 8; +pub const GCLineWidth: u32 = 16; +pub const GCLineStyle: u32 = 32; +pub const GCCapStyle: u32 = 64; +pub const GCJoinStyle: u32 = 128; +pub const GCFillStyle: u32 = 256; +pub const GCFillRule: u32 = 512; +pub const GCTile: u32 = 1024; +pub const GCStipple: u32 = 2048; +pub const GCTileStipXOrigin: u32 = 4096; +pub const GCTileStipYOrigin: u32 = 8192; +pub const GCFont: u32 = 16384; +pub const GCSubwindowMode: u32 = 32768; +pub const GCGraphicsExposures: u32 = 65536; +pub const GCClipXOrigin: u32 = 131072; +pub const GCClipYOrigin: u32 = 262144; +pub const GCClipMask: u32 = 524288; +pub const GCDashOffset: u32 = 1048576; +pub const GCDashList: u32 = 2097152; +pub const GCArcMode: u32 = 4194304; +pub const GCLastBit: u32 = 22; +pub const FontLeftToRight: u32 = 0; +pub const FontRightToLeft: u32 = 1; +pub const FontChange: u32 = 255; +pub const XYBitmap: u32 = 0; +pub const XYPixmap: u32 = 1; +pub const ZPixmap: u32 = 2; +pub const AllocNone: u32 = 0; +pub const AllocAll: u32 = 1; +pub const DoRed: u32 = 1; +pub const DoGreen: u32 = 2; +pub const DoBlue: u32 = 4; +pub const CursorShape: u32 = 0; +pub const TileShape: u32 = 1; +pub const StippleShape: u32 = 2; +pub const AutoRepeatModeOff: u32 = 0; +pub const AutoRepeatModeOn: u32 = 1; +pub const AutoRepeatModeDefault: u32 = 2; +pub const LedModeOff: u32 = 0; +pub const LedModeOn: u32 = 1; +pub const KBKeyClickPercent: u32 = 1; +pub const KBBellPercent: u32 = 2; +pub const KBBellPitch: u32 = 4; +pub const KBBellDuration: u32 = 8; +pub const KBLed: u32 = 16; +pub const KBLedMode: u32 = 32; +pub const KBKey: u32 = 64; +pub const KBAutoRepeatMode: u32 = 128; +pub const MappingSuccess: u32 = 0; +pub const MappingBusy: u32 = 1; +pub const MappingFailed: u32 = 2; +pub const MappingModifier: u32 = 0; +pub const MappingKeyboard: u32 = 1; +pub const MappingPointer: u32 = 2; +pub const DontPreferBlanking: u32 = 0; +pub const PreferBlanking: u32 = 1; +pub const DefaultBlanking: u32 = 2; +pub const DisableScreenSaver: u32 = 0; +pub const DisableScreenInterval: u32 = 0; +pub const DontAllowExposures: u32 = 0; +pub const AllowExposures: u32 = 1; +pub const DefaultExposures: u32 = 2; +pub const ScreenSaverReset: u32 = 0; +pub const ScreenSaverActive: u32 = 1; +pub const HostInsert: u32 = 0; +pub const HostDelete: u32 = 1; +pub const EnableAccess: u32 = 1; +pub const DisableAccess: u32 = 0; +pub const StaticGray: u32 = 0; +pub const GrayScale: u32 = 1; +pub const StaticColor: u32 = 2; +pub const PseudoColor: u32 = 3; +pub const TrueColor: u32 = 4; +pub const DirectColor: u32 = 5; +pub const LSBFirst: u32 = 0; +pub const MSBFirst: u32 = 1; +pub const NeedFunctionPrototypes: u32 = 1; +pub const NeedVarargsPrototypes: u32 = 1; +pub const NeedNestedPrototypes: u32 = 1; +pub const FUNCPROTO: u32 = 15; +pub const NeedWidePrototypes: u32 = 0; +pub const X_HAVE_UTF8_STRING: u32 = 1; +pub const True: u32 = 1; +pub const False: u32 = 0; +pub const QueuedAlready: u32 = 0; +pub const QueuedAfterReading: u32 = 1; +pub const QueuedAfterFlush: u32 = 2; +pub const XNRequiredCharSet: &'static [u8; 16usize] = b"requiredCharSet\0"; +pub const XNQueryOrientation: &'static [u8; 17usize] = b"queryOrientation\0"; +pub const XNBaseFontName: &'static [u8; 13usize] = b"baseFontName\0"; +pub const XNOMAutomatic: &'static [u8; 12usize] = b"omAutomatic\0"; +pub const XNMissingCharSet: &'static [u8; 15usize] = b"missingCharSet\0"; +pub const XNDefaultString: &'static [u8; 14usize] = b"defaultString\0"; +pub const XNOrientation: &'static [u8; 12usize] = b"orientation\0"; +pub const XNDirectionalDependentDrawing: &'static [u8; 28usize] = b"directionalDependentDrawing\0"; +pub const XNContextualDrawing: &'static [u8; 18usize] = b"contextualDrawing\0"; +pub const XNFontInfo: &'static [u8; 9usize] = b"fontInfo\0"; +pub const XIMPreeditArea: u32 = 1; +pub const XIMPreeditCallbacks: u32 = 2; +pub const XIMPreeditPosition: u32 = 4; +pub const XIMPreeditNothing: u32 = 8; +pub const XIMPreeditNone: u32 = 16; +pub const XIMStatusArea: u32 = 256; +pub const XIMStatusCallbacks: u32 = 512; +pub const XIMStatusNothing: u32 = 1024; +pub const XIMStatusNone: u32 = 2048; +pub const XNVaNestedList: &'static [u8; 15usize] = b"XNVaNestedList\0"; +pub const XNQueryInputStyle: &'static [u8; 16usize] = b"queryInputStyle\0"; +pub const XNClientWindow: &'static [u8; 13usize] = b"clientWindow\0"; +pub const XNInputStyle: &'static [u8; 11usize] = b"inputStyle\0"; +pub const XNFocusWindow: &'static [u8; 12usize] = b"focusWindow\0"; +pub const XNResourceName: &'static [u8; 13usize] = b"resourceName\0"; +pub const XNResourceClass: &'static [u8; 14usize] = b"resourceClass\0"; +pub const XNGeometryCallback: &'static [u8; 17usize] = b"geometryCallback\0"; +pub const XNDestroyCallback: &'static [u8; 16usize] = b"destroyCallback\0"; +pub const XNFilterEvents: &'static [u8; 13usize] = b"filterEvents\0"; +pub const XNPreeditStartCallback: &'static [u8; 21usize] = b"preeditStartCallback\0"; +pub const XNPreeditDoneCallback: &'static [u8; 20usize] = b"preeditDoneCallback\0"; +pub const XNPreeditDrawCallback: &'static [u8; 20usize] = b"preeditDrawCallback\0"; +pub const XNPreeditCaretCallback: &'static [u8; 21usize] = b"preeditCaretCallback\0"; +pub const XNPreeditStateNotifyCallback: &'static [u8; 27usize] = b"preeditStateNotifyCallback\0"; +pub const XNPreeditAttributes: &'static [u8; 18usize] = b"preeditAttributes\0"; +pub const XNStatusStartCallback: &'static [u8; 20usize] = b"statusStartCallback\0"; +pub const XNStatusDoneCallback: &'static [u8; 19usize] = b"statusDoneCallback\0"; +pub const XNStatusDrawCallback: &'static [u8; 19usize] = b"statusDrawCallback\0"; +pub const XNStatusAttributes: &'static [u8; 17usize] = b"statusAttributes\0"; +pub const XNArea: &'static [u8; 5usize] = b"area\0"; +pub const XNAreaNeeded: &'static [u8; 11usize] = b"areaNeeded\0"; +pub const XNSpotLocation: &'static [u8; 13usize] = b"spotLocation\0"; +pub const XNColormap: &'static [u8; 9usize] = b"colorMap\0"; +pub const XNStdColormap: &'static [u8; 12usize] = b"stdColorMap\0"; +pub const XNForeground: &'static [u8; 11usize] = b"foreground\0"; +pub const XNBackground: &'static [u8; 11usize] = b"background\0"; +pub const XNBackgroundPixmap: &'static [u8; 17usize] = b"backgroundPixmap\0"; +pub const XNFontSet: &'static [u8; 8usize] = b"fontSet\0"; +pub const XNLineSpace: &'static [u8; 10usize] = b"lineSpace\0"; +pub const XNCursor: &'static [u8; 7usize] = b"cursor\0"; +pub const XNQueryIMValuesList: &'static [u8; 18usize] = b"queryIMValuesList\0"; +pub const XNQueryICValuesList: &'static [u8; 18usize] = b"queryICValuesList\0"; +pub const XNVisiblePosition: &'static [u8; 16usize] = b"visiblePosition\0"; +pub const XNR6PreeditCallback: &'static [u8; 18usize] = b"r6PreeditCallback\0"; +pub const XNStringConversionCallback: &'static [u8; 25usize] = b"stringConversionCallback\0"; +pub const XNStringConversion: &'static [u8; 17usize] = b"stringConversion\0"; +pub const XNResetState: &'static [u8; 11usize] = b"resetState\0"; +pub const XNHotKey: &'static [u8; 7usize] = b"hotKey\0"; +pub const XNHotKeyState: &'static [u8; 12usize] = b"hotKeyState\0"; +pub const XNPreeditState: &'static [u8; 13usize] = b"preeditState\0"; +pub const XNSeparatorofNestedList: &'static [u8; 22usize] = b"separatorofNestedList\0"; +pub const XBufferOverflow: i32 = -1; +pub const XLookupNone: u32 = 1; +pub const XLookupChars: u32 = 2; +pub const XLookupKeySym: u32 = 3; +pub const XLookupBoth: u32 = 4; +pub const XIMReverse: u32 = 1; +pub const XIMUnderline: u32 = 2; +pub const XIMHighlight: u32 = 4; +pub const XIMPrimary: u32 = 32; +pub const XIMSecondary: u32 = 64; +pub const XIMTertiary: u32 = 128; +pub const XIMVisibleToForward: u32 = 256; +pub const XIMVisibleToBackword: u32 = 512; +pub const XIMVisibleToCenter: u32 = 1024; +pub const XIMPreeditUnKnown: u32 = 0; +pub const XIMPreeditEnable: u32 = 1; +pub const XIMPreeditDisable: u32 = 2; +pub const XIMInitialState: u32 = 1; +pub const XIMPreserveState: u32 = 2; +pub const XIMStringConversionLeftEdge: u32 = 1; +pub const XIMStringConversionRightEdge: u32 = 2; +pub const XIMStringConversionTopEdge: u32 = 4; +pub const XIMStringConversionBottomEdge: u32 = 8; +pub const XIMStringConversionConcealed: u32 = 16; +pub const XIMStringConversionWrapped: u32 = 32; +pub const XIMStringConversionBuffer: u32 = 1; +pub const XIMStringConversionLine: u32 = 2; +pub const XIMStringConversionWord: u32 = 3; +pub const XIMStringConversionChar: u32 = 4; +pub const XIMStringConversionSubstitution: u32 = 1; +pub const XIMStringConversionRetrieval: u32 = 2; +pub const XIMHotKeyStateON: u32 = 1; +pub const XIMHotKeyStateOFF: u32 = 2; +pub const XATOM_H: u32 = 1; +extern "C" { + #[doc = " \\brief Gets the name of the platform."] + pub fn SDL_GetPlatform() -> *const libc::c_char; +} +pub type size_t = libc::c_ulong; +pub type wchar_t = libc::c_int; +#[repr(C)] +#[repr(align(16))] +#[derive(Copy, Clone)] +pub struct max_align_t { + pub __clang_max_align_nonce1: libc::c_longlong, + pub __bindgen_padding_0: u64, + pub __clang_max_align_nonce2: u128, +} +#[test] +fn bindgen_test_layout_max_align_t() { + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(max_align_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 16usize, + concat!("Alignment of ", stringify!(max_align_t)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).__clang_max_align_nonce1 as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(max_align_t), + "::", + stringify!(__clang_max_align_nonce1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).__clang_max_align_nonce2 as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(max_align_t), + "::", + stringify!(__clang_max_align_nonce2) + ) + ); +} +pub type va_list = __builtin_va_list; +pub type __gnuc_va_list = __builtin_va_list; +pub type __u_char = libc::c_uchar; +pub type __u_short = libc::c_ushort; +pub type __u_int = libc::c_uint; +pub type __u_long = libc::c_ulong; +pub type __int8_t = libc::c_schar; +pub type __uint8_t = libc::c_uchar; +pub type __int16_t = libc::c_short; +pub type __uint16_t = libc::c_ushort; +pub type __int32_t = libc::c_int; +pub type __uint32_t = libc::c_uint; +pub type __int64_t = libc::c_long; +pub type __uint64_t = libc::c_ulong; +pub type __int_least8_t = __int8_t; +pub type __uint_least8_t = __uint8_t; +pub type __int_least16_t = __int16_t; +pub type __uint_least16_t = __uint16_t; +pub type __int_least32_t = __int32_t; +pub type __uint_least32_t = __uint32_t; +pub type __int_least64_t = __int64_t; +pub type __uint_least64_t = __uint64_t; +pub type __quad_t = libc::c_long; +pub type __u_quad_t = libc::c_ulong; +pub type __intmax_t = libc::c_long; +pub type __uintmax_t = libc::c_ulong; +pub type __dev_t = libc::c_ulong; +pub type __uid_t = libc::c_uint; +pub type __gid_t = libc::c_uint; +pub type __ino_t = libc::c_ulong; +pub type __ino64_t = libc::c_ulong; +pub type __mode_t = libc::c_uint; +pub type __nlink_t = libc::c_ulong; +pub type __off_t = libc::c_long; +pub type __off64_t = libc::c_long; +pub type __pid_t = libc::c_int; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __fsid_t { + pub __val: [libc::c_int; 2usize], +} +#[test] +fn bindgen_test_layout___fsid_t() { + assert_eq!( + ::core::mem::size_of::<__fsid_t>(), + 8usize, + concat!("Size of: ", stringify!(__fsid_t)) + ); + assert_eq!( + ::core::mem::align_of::<__fsid_t>(), + 4usize, + concat!("Alignment of ", stringify!(__fsid_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__fsid_t>())).__val as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__fsid_t), + "::", + stringify!(__val) + ) + ); +} +pub type __clock_t = libc::c_long; +pub type __rlim_t = libc::c_ulong; +pub type __rlim64_t = libc::c_ulong; +pub type __id_t = libc::c_uint; +pub type __time_t = libc::c_long; +pub type __useconds_t = libc::c_uint; +pub type __suseconds_t = libc::c_long; +pub type __suseconds64_t = libc::c_long; +pub type __daddr_t = libc::c_int; +pub type __key_t = libc::c_int; +pub type __clockid_t = libc::c_int; +pub type __timer_t = *mut libc::c_void; +pub type __blksize_t = libc::c_long; +pub type __blkcnt_t = libc::c_long; +pub type __blkcnt64_t = libc::c_long; +pub type __fsblkcnt_t = libc::c_ulong; +pub type __fsblkcnt64_t = libc::c_ulong; +pub type __fsfilcnt_t = libc::c_ulong; +pub type __fsfilcnt64_t = libc::c_ulong; +pub type __fsword_t = libc::c_long; +pub type __ssize_t = libc::c_long; +pub type __syscall_slong_t = libc::c_long; +pub type __syscall_ulong_t = libc::c_ulong; +pub type __loff_t = __off64_t; +pub type __caddr_t = *mut libc::c_char; +pub type __intptr_t = libc::c_long; +pub type __socklen_t = libc::c_uint; +pub type __sig_atomic_t = libc::c_int; +pub type int_least8_t = __int_least8_t; +pub type int_least16_t = __int_least16_t; +pub type int_least32_t = __int_least32_t; +pub type int_least64_t = __int_least64_t; +pub type uint_least8_t = __uint_least8_t; +pub type uint_least16_t = __uint_least16_t; +pub type uint_least32_t = __uint_least32_t; +pub type uint_least64_t = __uint_least64_t; +pub type int_fast8_t = libc::c_schar; +pub type int_fast16_t = libc::c_long; +pub type int_fast32_t = libc::c_long; +pub type int_fast64_t = libc::c_long; +pub type uint_fast8_t = libc::c_uchar; +pub type uint_fast16_t = libc::c_ulong; +pub type uint_fast32_t = libc::c_ulong; +pub type uint_fast64_t = libc::c_ulong; +pub type intmax_t = __intmax_t; +pub type uintmax_t = __uintmax_t; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_bool { + SDL_FALSE = 0, + SDL_TRUE = 1, +} +pub type Sint8 = i8; +pub type Uint8 = u8; +pub type Sint16 = i16; +pub type Uint16 = u16; +pub type Sint32 = i32; +pub type Uint32 = u32; +pub type Sint64 = i64; +pub type Uint64 = u64; +pub type SDL_compile_time_assert_uint8 = [libc::c_int; 1usize]; +pub type SDL_compile_time_assert_sint8 = [libc::c_int; 1usize]; +pub type SDL_compile_time_assert_uint16 = [libc::c_int; 1usize]; +pub type SDL_compile_time_assert_sint16 = [libc::c_int; 1usize]; +pub type SDL_compile_time_assert_uint32 = [libc::c_int; 1usize]; +pub type SDL_compile_time_assert_sint32 = [libc::c_int; 1usize]; +pub type SDL_compile_time_assert_uint64 = [libc::c_int; 1usize]; +pub type SDL_compile_time_assert_sint64 = [libc::c_int; 1usize]; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_DUMMY_ENUM { + DUMMY_ENUM_VALUE = 0, +} +pub type SDL_compile_time_assert_enum = [libc::c_int; 1usize]; +extern "C" { + pub fn SDL_malloc(size: size_t) -> *mut libc::c_void; +} +extern "C" { + pub fn SDL_calloc(nmemb: size_t, size: size_t) -> *mut libc::c_void; +} +extern "C" { + pub fn SDL_realloc(mem: *mut libc::c_void, size: size_t) -> *mut libc::c_void; +} +extern "C" { + pub fn SDL_free(mem: *mut libc::c_void); +} +pub type SDL_malloc_func = + ::core::option::Option *mut libc::c_void>; +pub type SDL_calloc_func = + ::core::option::Option *mut libc::c_void>; +pub type SDL_realloc_func = ::core::option::Option< + unsafe extern "C" fn(mem: *mut libc::c_void, size: size_t) -> *mut libc::c_void, +>; +pub type SDL_free_func = ::core::option::Option; +extern "C" { + #[doc = " \\brief Get the current set of SDL memory functions"] + pub fn SDL_GetMemoryFunctions( + malloc_func: *mut SDL_malloc_func, + calloc_func: *mut SDL_calloc_func, + realloc_func: *mut SDL_realloc_func, + free_func: *mut SDL_free_func, + ); +} +extern "C" { + #[doc = " \\brief Replace SDL's memory allocation functions with a custom set"] + #[doc = ""] + #[doc = " \\note If you are replacing SDL's memory functions, you should call"] + #[doc = " SDL_GetNumAllocations() and be very careful if it returns non-zero."] + #[doc = " That means that your free function will be called with memory"] + #[doc = " allocated by the previous memory allocation functions."] + pub fn SDL_SetMemoryFunctions( + malloc_func: SDL_malloc_func, + calloc_func: SDL_calloc_func, + realloc_func: SDL_realloc_func, + free_func: SDL_free_func, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the number of outstanding (unfreed) allocations"] + pub fn SDL_GetNumAllocations() -> libc::c_int; +} +extern "C" { + pub fn SDL_getenv(name: *const libc::c_char) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_setenv( + name: *const libc::c_char, + value: *const libc::c_char, + overwrite: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn SDL_qsort( + base: *mut libc::c_void, + nmemb: size_t, + size: size_t, + compare: ::core::option::Option< + unsafe extern "C" fn( + arg1: *const libc::c_void, + arg2: *const libc::c_void, + ) -> libc::c_int, + >, + ); +} +extern "C" { + pub fn SDL_abs(x: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn SDL_isdigit(x: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn SDL_isspace(x: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn SDL_isupper(x: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn SDL_islower(x: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn SDL_toupper(x: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn SDL_tolower(x: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn SDL_crc32(crc: Uint32, data: *const libc::c_void, len: size_t) -> Uint32; +} +extern "C" { + pub fn SDL_memset(dst: *mut libc::c_void, c: libc::c_int, len: size_t) -> *mut libc::c_void; +} +extern "C" { + pub fn SDL_memcpy( + dst: *mut libc::c_void, + src: *const libc::c_void, + len: size_t, + ) -> *mut libc::c_void; +} +extern "C" { + pub fn SDL_memmove( + dst: *mut libc::c_void, + src: *const libc::c_void, + len: size_t, + ) -> *mut libc::c_void; +} +extern "C" { + pub fn SDL_memcmp(s1: *const libc::c_void, s2: *const libc::c_void, len: size_t) + -> libc::c_int; +} +extern "C" { + pub fn SDL_wcslen(wstr: *const wchar_t) -> size_t; +} +extern "C" { + pub fn SDL_wcslcpy(dst: *mut wchar_t, src: *const wchar_t, maxlen: size_t) -> size_t; +} +extern "C" { + pub fn SDL_wcslcat(dst: *mut wchar_t, src: *const wchar_t, maxlen: size_t) -> size_t; +} +extern "C" { + pub fn SDL_wcsdup(wstr: *const wchar_t) -> *mut wchar_t; +} +extern "C" { + pub fn SDL_wcsstr(haystack: *const wchar_t, needle: *const wchar_t) -> *mut wchar_t; +} +extern "C" { + pub fn SDL_wcscmp(str1: *const wchar_t, str2: *const wchar_t) -> libc::c_int; +} +extern "C" { + pub fn SDL_wcsncmp(str1: *const wchar_t, str2: *const wchar_t, maxlen: size_t) -> libc::c_int; +} +extern "C" { + pub fn SDL_wcscasecmp(str1: *const wchar_t, str2: *const wchar_t) -> libc::c_int; +} +extern "C" { + pub fn SDL_wcsncasecmp(str1: *const wchar_t, str2: *const wchar_t, len: size_t) -> libc::c_int; +} +extern "C" { + pub fn SDL_strlen(str: *const libc::c_char) -> size_t; +} +extern "C" { + pub fn SDL_strlcpy(dst: *mut libc::c_char, src: *const libc::c_char, maxlen: size_t) -> size_t; +} +extern "C" { + pub fn SDL_utf8strlcpy( + dst: *mut libc::c_char, + src: *const libc::c_char, + dst_bytes: size_t, + ) -> size_t; +} +extern "C" { + pub fn SDL_strlcat(dst: *mut libc::c_char, src: *const libc::c_char, maxlen: size_t) -> size_t; +} +extern "C" { + pub fn SDL_strdup(str: *const libc::c_char) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_strrev(str: *mut libc::c_char) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_strupr(str: *mut libc::c_char) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_strlwr(str: *mut libc::c_char) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_strchr(str: *const libc::c_char, c: libc::c_int) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_strrchr(str: *const libc::c_char, c: libc::c_int) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_strstr( + haystack: *const libc::c_char, + needle: *const libc::c_char, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_strtokr( + s1: *mut libc::c_char, + s2: *const libc::c_char, + saveptr: *mut *mut libc::c_char, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_utf8strlen(str: *const libc::c_char) -> size_t; +} +extern "C" { + pub fn SDL_itoa( + value: libc::c_int, + str: *mut libc::c_char, + radix: libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_uitoa( + value: libc::c_uint, + str: *mut libc::c_char, + radix: libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_ltoa( + value: libc::c_long, + str: *mut libc::c_char, + radix: libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_ultoa( + value: libc::c_ulong, + str: *mut libc::c_char, + radix: libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_lltoa( + value: Sint64, + str: *mut libc::c_char, + radix: libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_ulltoa( + value: Uint64, + str: *mut libc::c_char, + radix: libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn SDL_atoi(str: *const libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn SDL_atof(str: *const libc::c_char) -> f64; +} +extern "C" { + pub fn SDL_strtol( + str: *const libc::c_char, + endp: *mut *mut libc::c_char, + base: libc::c_int, + ) -> libc::c_long; +} +extern "C" { + pub fn SDL_strtoul( + str: *const libc::c_char, + endp: *mut *mut libc::c_char, + base: libc::c_int, + ) -> libc::c_ulong; +} +extern "C" { + pub fn SDL_strtoll( + str: *const libc::c_char, + endp: *mut *mut libc::c_char, + base: libc::c_int, + ) -> Sint64; +} +extern "C" { + pub fn SDL_strtoull( + str: *const libc::c_char, + endp: *mut *mut libc::c_char, + base: libc::c_int, + ) -> Uint64; +} +extern "C" { + pub fn SDL_strtod(str: *const libc::c_char, endp: *mut *mut libc::c_char) -> f64; +} +extern "C" { + pub fn SDL_strcmp(str1: *const libc::c_char, str2: *const libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn SDL_strncmp( + str1: *const libc::c_char, + str2: *const libc::c_char, + maxlen: size_t, + ) -> libc::c_int; +} +extern "C" { + pub fn SDL_strcasecmp(str1: *const libc::c_char, str2: *const libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn SDL_strncasecmp( + str1: *const libc::c_char, + str2: *const libc::c_char, + len: size_t, + ) -> libc::c_int; +} +extern "C" { + pub fn SDL_sscanf(text: *const libc::c_char, fmt: *const libc::c_char, ...) -> libc::c_int; +} +extern "C" { + pub fn SDL_vsscanf( + text: *const libc::c_char, + fmt: *const libc::c_char, + ap: *mut __va_list_tag, + ) -> libc::c_int; +} +extern "C" { + pub fn SDL_snprintf( + text: *mut libc::c_char, + maxlen: size_t, + fmt: *const libc::c_char, + ... + ) -> libc::c_int; +} +extern "C" { + pub fn SDL_vsnprintf( + text: *mut libc::c_char, + maxlen: size_t, + fmt: *const libc::c_char, + ap: *mut __va_list_tag, + ) -> libc::c_int; +} +extern "C" { + pub fn SDL_acos(x: f64) -> f64; +} +extern "C" { + pub fn SDL_acosf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_asin(x: f64) -> f64; +} +extern "C" { + pub fn SDL_asinf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_atan(x: f64) -> f64; +} +extern "C" { + pub fn SDL_atanf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_atan2(x: f64, y: f64) -> f64; +} +extern "C" { + pub fn SDL_atan2f(x: f32, y: f32) -> f32; +} +extern "C" { + pub fn SDL_ceil(x: f64) -> f64; +} +extern "C" { + pub fn SDL_ceilf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_copysign(x: f64, y: f64) -> f64; +} +extern "C" { + pub fn SDL_copysignf(x: f32, y: f32) -> f32; +} +extern "C" { + pub fn SDL_cos(x: f64) -> f64; +} +extern "C" { + pub fn SDL_cosf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_exp(x: f64) -> f64; +} +extern "C" { + pub fn SDL_expf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_fabs(x: f64) -> f64; +} +extern "C" { + pub fn SDL_fabsf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_floor(x: f64) -> f64; +} +extern "C" { + pub fn SDL_floorf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_trunc(x: f64) -> f64; +} +extern "C" { + pub fn SDL_truncf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_fmod(x: f64, y: f64) -> f64; +} +extern "C" { + pub fn SDL_fmodf(x: f32, y: f32) -> f32; +} +extern "C" { + pub fn SDL_log(x: f64) -> f64; +} +extern "C" { + pub fn SDL_logf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_log10(x: f64) -> f64; +} +extern "C" { + pub fn SDL_log10f(x: f32) -> f32; +} +extern "C" { + pub fn SDL_pow(x: f64, y: f64) -> f64; +} +extern "C" { + pub fn SDL_powf(x: f32, y: f32) -> f32; +} +extern "C" { + pub fn SDL_scalbn(x: f64, n: libc::c_int) -> f64; +} +extern "C" { + pub fn SDL_scalbnf(x: f32, n: libc::c_int) -> f32; +} +extern "C" { + pub fn SDL_sin(x: f64) -> f64; +} +extern "C" { + pub fn SDL_sinf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_sqrt(x: f64) -> f64; +} +extern "C" { + pub fn SDL_sqrtf(x: f32) -> f32; +} +extern "C" { + pub fn SDL_tan(x: f64) -> f64; +} +extern "C" { + pub fn SDL_tanf(x: f32) -> f32; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _SDL_iconv_t { + _unused: [u8; 0], +} +pub type SDL_iconv_t = *mut _SDL_iconv_t; +extern "C" { + pub fn SDL_iconv_open( + tocode: *const libc::c_char, + fromcode: *const libc::c_char, + ) -> SDL_iconv_t; +} +extern "C" { + pub fn SDL_iconv_close(cd: SDL_iconv_t) -> libc::c_int; +} +extern "C" { + pub fn SDL_iconv( + cd: SDL_iconv_t, + inbuf: *mut *const libc::c_char, + inbytesleft: *mut size_t, + outbuf: *mut *mut libc::c_char, + outbytesleft: *mut size_t, + ) -> size_t; +} +extern "C" { + #[doc = " This function converts a string between encodings in one pass, returning a"] + #[doc = " string that must be freed with SDL_free() or NULL on error."] + pub fn SDL_iconv_string( + tocode: *const libc::c_char, + fromcode: *const libc::c_char, + inbuf: *const libc::c_char, + inbytesleft: size_t, + ) -> *mut libc::c_char; +} +#[doc = " The prototype for the application's main() function"] +pub type SDL_main_func = ::core::option::Option< + unsafe extern "C" fn(argc: libc::c_int, argv: *mut *mut libc::c_char) -> libc::c_int, +>; +extern "C" { + pub fn SDL_main(argc: libc::c_int, argv: *mut *mut libc::c_char) -> libc::c_int; +} +extern "C" { + #[doc = " This is called by the real SDL main function to let the rest of the"] + #[doc = " library know that initialization was done properly."] + #[doc = ""] + #[doc = " Calling this yourself without knowing what you're doing can cause"] + #[doc = " crashes and hard to diagnose problems with your application."] + pub fn SDL_SetMainReady(); +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_AssertState { + #[doc = "< Retry the assert immediately."] + SDL_ASSERTION_RETRY = 0, + #[doc = "< Make the debugger trigger a breakpoint."] + SDL_ASSERTION_BREAK = 1, + #[doc = "< Terminate the program."] + SDL_ASSERTION_ABORT = 2, + #[doc = "< Ignore the assert."] + SDL_ASSERTION_IGNORE = 3, + #[doc = "< Ignore the assert from now on."] + SDL_ASSERTION_ALWAYS_IGNORE = 4, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_AssertData { + pub always_ignore: libc::c_int, + pub trigger_count: libc::c_uint, + pub condition: *const libc::c_char, + pub filename: *const libc::c_char, + pub linenum: libc::c_int, + pub function: *const libc::c_char, + pub next: *const SDL_AssertData, +} +#[test] +fn bindgen_test_layout_SDL_AssertData() { + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(SDL_AssertData)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_AssertData)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).always_ignore as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_AssertData), + "::", + stringify!(always_ignore) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).trigger_count as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_AssertData), + "::", + stringify!(trigger_count) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).condition as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_AssertData), + "::", + stringify!(condition) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).filename as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_AssertData), + "::", + stringify!(filename) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).linenum as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_AssertData), + "::", + stringify!(linenum) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).function as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_AssertData), + "::", + stringify!(function) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).next as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(SDL_AssertData), + "::", + stringify!(next) + ) + ); +} +extern "C" { + pub fn SDL_ReportAssertion( + arg1: *mut SDL_AssertData, + arg2: *const libc::c_char, + arg3: *const libc::c_char, + arg4: libc::c_int, + ) -> SDL_AssertState; +} +pub type SDL_AssertionHandler = ::core::option::Option< + unsafe extern "C" fn( + data: *const SDL_AssertData, + userdata: *mut libc::c_void, + ) -> SDL_AssertState, +>; +extern "C" { + #[doc = " \\brief Set an application-defined assertion handler."] + #[doc = ""] + #[doc = " This allows an app to show its own assertion UI and/or force the"] + #[doc = " response to an assertion failure. If the app doesn't provide this, SDL"] + #[doc = " will try to do the right thing, popping up a system-specific GUI dialog,"] + #[doc = " and probably minimizing any fullscreen windows."] + #[doc = ""] + #[doc = " This callback may fire from any thread, but it runs wrapped in a mutex, so"] + #[doc = " it will only fire from one thread at a time."] + #[doc = ""] + #[doc = " Setting the callback to NULL restores SDL's original internal handler."] + #[doc = ""] + #[doc = " This callback is NOT reset to SDL's internal handler upon SDL_Quit()!"] + #[doc = ""] + #[doc = " Return SDL_AssertState value of how to handle the assertion failure."] + #[doc = ""] + #[doc = " \\param handler Callback function, called when an assertion fails."] + #[doc = " \\param userdata A pointer passed to the callback as-is."] + pub fn SDL_SetAssertionHandler(handler: SDL_AssertionHandler, userdata: *mut libc::c_void); +} +extern "C" { + #[doc = " \\brief Get the default assertion handler."] + #[doc = ""] + #[doc = " This returns the function pointer that is called by default when an"] + #[doc = " assertion is triggered. This is an internal function provided by SDL,"] + #[doc = " that is used for assertions when SDL_SetAssertionHandler() hasn't been"] + #[doc = " used to provide a different function."] + #[doc = ""] + #[doc = " \\return The default SDL_AssertionHandler that is called when an assert triggers."] + pub fn SDL_GetDefaultAssertionHandler() -> SDL_AssertionHandler; +} +extern "C" { + #[doc = " \\brief Get the current assertion handler."] + #[doc = ""] + #[doc = " This returns the function pointer that is called when an assertion is"] + #[doc = " triggered. This is either the value last passed to"] + #[doc = " SDL_SetAssertionHandler(), or if no application-specified function is"] + #[doc = " set, is equivalent to calling SDL_GetDefaultAssertionHandler()."] + #[doc = ""] + #[doc = " \\param puserdata Pointer to a void*, which will store the \"userdata\""] + #[doc = " pointer that was passed to SDL_SetAssertionHandler()."] + #[doc = " This value will always be NULL for the default handler."] + #[doc = " If you don't care about this data, it is safe to pass"] + #[doc = " a NULL pointer to this function to ignore it."] + #[doc = " \\return The SDL_AssertionHandler that is called when an assert triggers."] + pub fn SDL_GetAssertionHandler(puserdata: *mut *mut libc::c_void) -> SDL_AssertionHandler; +} +extern "C" { + #[doc = " \\brief Get a list of all assertion failures."] + #[doc = ""] + #[doc = " Get all assertions triggered since last call to SDL_ResetAssertionReport(),"] + #[doc = " or the start of the program."] + #[doc = ""] + #[doc = " The proper way to examine this data looks something like this:"] + #[doc = ""] + #[doc = " "] + #[doc = " const SDL_AssertData *item = SDL_GetAssertionReport();"] + #[doc = " while (item) {"] + #[doc = " printf(\"'%s', %s (%s:%d), triggered %u times, always ignore: %s.\\\\n\","] + #[doc = " item->condition, item->function, item->filename,"] + #[doc = " item->linenum, item->trigger_count,"] + #[doc = " item->always_ignore ? \"yes\" : \"no\");"] + #[doc = " item = item->next;"] + #[doc = " }"] + #[doc = " "] + #[doc = ""] + #[doc = " \\return List of all assertions."] + #[doc = " \\sa SDL_ResetAssertionReport"] + pub fn SDL_GetAssertionReport() -> *const SDL_AssertData; +} +extern "C" { + #[doc = " \\brief Reset the list of all assertion failures."] + #[doc = ""] + #[doc = " Reset list of all assertions triggered."] + #[doc = ""] + #[doc = " \\sa SDL_GetAssertionReport"] + pub fn SDL_ResetAssertionReport(); +} +pub type SDL_SpinLock = libc::c_int; +extern "C" { + #[doc = " \\brief Try to lock a spin lock by setting it to a non-zero value."] + #[doc = ""] + #[doc = " \\param lock Points to the lock."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the lock succeeded, SDL_FALSE if the lock is already held."] + pub fn SDL_AtomicTryLock(lock: *mut SDL_SpinLock) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Lock a spin lock by setting it to a non-zero value."] + #[doc = ""] + #[doc = " \\param lock Points to the lock."] + pub fn SDL_AtomicLock(lock: *mut SDL_SpinLock); +} +extern "C" { + #[doc = " \\brief Unlock a spin lock by setting it to 0. Always returns immediately"] + #[doc = ""] + #[doc = " \\param lock Points to the lock."] + pub fn SDL_AtomicUnlock(lock: *mut SDL_SpinLock); +} +extern "C" { + #[doc = " Memory barriers are designed to prevent reads and writes from being"] + #[doc = " reordered by the compiler and being seen out of order on multi-core CPUs."] + #[doc = ""] + #[doc = " A typical pattern would be for thread A to write some data and a flag,"] + #[doc = " and for thread B to read the flag and get the data. In this case you"] + #[doc = " would insert a release barrier between writing the data and the flag,"] + #[doc = " guaranteeing that the data write completes no later than the flag is"] + #[doc = " written, and you would insert an acquire barrier between reading the"] + #[doc = " flag and reading the data, to ensure that all the reads associated"] + #[doc = " with the flag have completed."] + #[doc = ""] + #[doc = " In this pattern you should always see a release barrier paired with"] + #[doc = " an acquire barrier and you should gate the data reads/writes with a"] + #[doc = " single flag variable."] + #[doc = ""] + #[doc = " For more information on these semantics, take a look at the blog post:"] + #[doc = " http://preshing.com/20120913/acquire-and-release-semantics"] + pub fn SDL_MemoryBarrierReleaseFunction(); +} +extern "C" { + pub fn SDL_MemoryBarrierAcquireFunction(); +} +#[doc = " \\brief A type representing an atomic integer value. It is a struct"] +#[doc = " so people don't accidentally use numeric operations on it."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_atomic_t { + pub value: libc::c_int, +} +#[test] +fn bindgen_test_layout_SDL_atomic_t() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(SDL_atomic_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_atomic_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).value as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_atomic_t), + "::", + stringify!(value) + ) + ); +} +extern "C" { + #[doc = " \\brief Set an atomic variable to a new value if it is currently an old value."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the atomic variable was set, SDL_FALSE otherwise."] + #[doc = ""] + #[doc = " \\note If you don't know what this function is for, you shouldn't use it!"] + pub fn SDL_AtomicCAS( + a: *mut SDL_atomic_t, + oldval: libc::c_int, + newval: libc::c_int, + ) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Set an atomic variable to a value."] + #[doc = ""] + #[doc = " \\return The previous value of the atomic variable."] + pub fn SDL_AtomicSet(a: *mut SDL_atomic_t, v: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the value of an atomic variable"] + pub fn SDL_AtomicGet(a: *mut SDL_atomic_t) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Add to an atomic variable."] + #[doc = ""] + #[doc = " \\return The previous value of the atomic variable."] + #[doc = ""] + #[doc = " \\note This same style can be used for any number operation"] + pub fn SDL_AtomicAdd(a: *mut SDL_atomic_t, v: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set a pointer to a new value if it is currently an old value."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the pointer was set, SDL_FALSE otherwise."] + #[doc = ""] + #[doc = " \\note If you don't know what this function is for, you shouldn't use it!"] + pub fn SDL_AtomicCASPtr( + a: *mut *mut libc::c_void, + oldval: *mut libc::c_void, + newval: *mut libc::c_void, + ) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Set a pointer to a value atomically."] + #[doc = ""] + #[doc = " \\return The previous value of the pointer."] + pub fn SDL_AtomicSetPtr(a: *mut *mut libc::c_void, v: *mut libc::c_void) -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Get the value of a pointer atomically."] + pub fn SDL_AtomicGetPtr(a: *mut *mut libc::c_void) -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Set the error message for the current thread"] + #[doc = ""] + #[doc = " \\return -1, there is no error handling for this function"] + pub fn SDL_SetError(fmt: *const libc::c_char, ...) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the last error message that was set"] + #[doc = ""] + #[doc = " SDL API functions may set error messages and then succeed, so you should"] + #[doc = " only use the error value if a function fails."] + #[doc = ""] + #[doc = " This returns a pointer to a static buffer for convenience and should not"] + #[doc = " be called by multiple threads simultaneously."] + #[doc = ""] + #[doc = " \\return a pointer to the last error message that was set"] + pub fn SDL_GetError() -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Get the last error message that was set for the current thread"] + #[doc = ""] + #[doc = " SDL API functions may set error messages and then succeed, so you should"] + #[doc = " only use the error value if a function fails."] + #[doc = ""] + #[doc = " \\param errstr A buffer to fill with the last error message that was set"] + #[doc = " for the current thread"] + #[doc = " \\param maxlen The size of the buffer pointed to by the errstr parameter"] + #[doc = ""] + #[doc = " \\return errstr"] + pub fn SDL_GetErrorMsg(errstr: *mut libc::c_char, maxlen: libc::c_int) -> *mut libc::c_char; +} +extern "C" { + #[doc = " \\brief Clear the error message for the current thread"] + pub fn SDL_ClearError(); +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_errorcode { + SDL_ENOMEM = 0, + SDL_EFREAD = 1, + SDL_EFWRITE = 2, + SDL_EFSEEK = 3, + SDL_UNSUPPORTED = 4, + SDL_LASTERROR = 5, +} +extern "C" { + pub fn SDL_Error(code: SDL_errorcode) -> libc::c_int; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_mutex { + _unused: [u8; 0], +} +extern "C" { + #[doc = " Create a mutex, initialized unlocked."] + pub fn SDL_CreateMutex() -> *mut SDL_mutex; +} +extern "C" { + pub fn SDL_LockMutex(mutex: *mut SDL_mutex) -> libc::c_int; +} +extern "C" { + #[doc = " Try to lock the mutex"] + #[doc = ""] + #[doc = " \\return 0, SDL_MUTEX_TIMEDOUT, or -1 on error"] + pub fn SDL_TryLockMutex(mutex: *mut SDL_mutex) -> libc::c_int; +} +extern "C" { + pub fn SDL_UnlockMutex(mutex: *mut SDL_mutex) -> libc::c_int; +} +extern "C" { + #[doc = " Destroy a mutex."] + pub fn SDL_DestroyMutex(mutex: *mut SDL_mutex); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_semaphore { + _unused: [u8; 0], +} +pub type SDL_sem = SDL_semaphore; +extern "C" { + #[doc = " Create a semaphore, initialized with value, returns NULL on failure."] + pub fn SDL_CreateSemaphore(initial_value: Uint32) -> *mut SDL_sem; +} +extern "C" { + #[doc = " Destroy a semaphore."] + pub fn SDL_DestroySemaphore(sem: *mut SDL_sem); +} +extern "C" { + #[doc = " This function suspends the calling thread until the semaphore pointed"] + #[doc = " to by \\c sem has a positive count. It then atomically decreases the"] + #[doc = " semaphore count."] + pub fn SDL_SemWait(sem: *mut SDL_sem) -> libc::c_int; +} +extern "C" { + #[doc = " Non-blocking variant of SDL_SemWait()."] + #[doc = ""] + #[doc = " \\return 0 if the wait succeeds, ::SDL_MUTEX_TIMEDOUT if the wait would"] + #[doc = " block, and -1 on error."] + pub fn SDL_SemTryWait(sem: *mut SDL_sem) -> libc::c_int; +} +extern "C" { + #[doc = " Variant of SDL_SemWait() with a timeout in milliseconds."] + #[doc = ""] + #[doc = " \\return 0 if the wait succeeds, ::SDL_MUTEX_TIMEDOUT if the wait does not"] + #[doc = " succeed in the allotted time, and -1 on error."] + #[doc = ""] + #[doc = " \\warning On some platforms this function is implemented by looping with a"] + #[doc = " delay of 1 ms, and so should be avoided if possible."] + pub fn SDL_SemWaitTimeout(sem: *mut SDL_sem, ms: Uint32) -> libc::c_int; +} +extern "C" { + #[doc = " Atomically increases the semaphore's count (not blocking)."] + #[doc = ""] + #[doc = " \\return 0, or -1 on error."] + pub fn SDL_SemPost(sem: *mut SDL_sem) -> libc::c_int; +} +extern "C" { + #[doc = " Returns the current count of the semaphore."] + pub fn SDL_SemValue(sem: *mut SDL_sem) -> Uint32; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_cond { + _unused: [u8; 0], +} +extern "C" { + #[doc = " Create a condition variable."] + #[doc = ""] + #[doc = " Typical use of condition variables:"] + #[doc = ""] + #[doc = " Thread A:"] + #[doc = " SDL_LockMutex(lock);"] + #[doc = " while ( ! condition ) {"] + #[doc = " SDL_CondWait(cond, lock);"] + #[doc = " }"] + #[doc = " SDL_UnlockMutex(lock);"] + #[doc = ""] + #[doc = " Thread B:"] + #[doc = " SDL_LockMutex(lock);"] + #[doc = " ..."] + #[doc = " condition = true;"] + #[doc = " ..."] + #[doc = " SDL_CondSignal(cond);"] + #[doc = " SDL_UnlockMutex(lock);"] + #[doc = ""] + #[doc = " There is some discussion whether to signal the condition variable"] + #[doc = " with the mutex locked or not. There is some potential performance"] + #[doc = " benefit to unlocking first on some platforms, but there are some"] + #[doc = " potential race conditions depending on how your code is structured."] + #[doc = ""] + #[doc = " In general it's safer to signal the condition variable while the"] + #[doc = " mutex is locked."] + pub fn SDL_CreateCond() -> *mut SDL_cond; +} +extern "C" { + #[doc = " Destroy a condition variable."] + pub fn SDL_DestroyCond(cond: *mut SDL_cond); +} +extern "C" { + #[doc = " Restart one of the threads that are waiting on the condition variable."] + #[doc = ""] + #[doc = " \\return 0 or -1 on error."] + pub fn SDL_CondSignal(cond: *mut SDL_cond) -> libc::c_int; +} +extern "C" { + #[doc = " Restart all threads that are waiting on the condition variable."] + #[doc = ""] + #[doc = " \\return 0 or -1 on error."] + pub fn SDL_CondBroadcast(cond: *mut SDL_cond) -> libc::c_int; +} +extern "C" { + #[doc = " Wait on the condition variable, unlocking the provided mutex."] + #[doc = ""] + #[doc = " \\warning The mutex must be locked before entering this function!"] + #[doc = ""] + #[doc = " The mutex is re-locked once the condition variable is signaled."] + #[doc = ""] + #[doc = " \\return 0 when it is signaled, or -1 on error."] + pub fn SDL_CondWait(cond: *mut SDL_cond, mutex: *mut SDL_mutex) -> libc::c_int; +} +extern "C" { + #[doc = " Waits for at most \\c ms milliseconds, and returns 0 if the condition"] + #[doc = " variable is signaled, ::SDL_MUTEX_TIMEDOUT if the condition is not"] + #[doc = " signaled in the allotted time, and -1 on error."] + #[doc = ""] + #[doc = " \\warning On some platforms this function is implemented by looping with a"] + #[doc = " delay of 1 ms, and so should be avoided if possible."] + pub fn SDL_CondWaitTimeout( + cond: *mut SDL_cond, + mutex: *mut SDL_mutex, + ms: Uint32, + ) -> libc::c_int; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Thread { + _unused: [u8; 0], +} +pub type SDL_threadID = libc::c_ulong; +pub type SDL_TLSID = libc::c_uint; +#[repr(u32)] +#[doc = " The SDL thread priority."] +#[doc = ""] +#[doc = " SDL will make system changes as necessary in order to apply the thread priority."] +#[doc = " Code which attempts to control thread state related to priority should be aware"] +#[doc = " that calling SDL_SetThreadPriority may alter such state."] +#[doc = " SDL_HINT_THREAD_PRIORITY_POLICY can be used to control aspects of this behavior."] +#[doc = ""] +#[doc = " \\note On many systems you require special privileges to set high or time critical priority."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_ThreadPriority { + SDL_THREAD_PRIORITY_LOW = 0, + SDL_THREAD_PRIORITY_NORMAL = 1, + SDL_THREAD_PRIORITY_HIGH = 2, + SDL_THREAD_PRIORITY_TIME_CRITICAL = 3, +} +#[doc = " The function passed to SDL_CreateThread()."] +#[doc = " It is passed a void* user context parameter and returns an int."] +pub type SDL_ThreadFunction = + ::core::option::Option libc::c_int>; +extern "C" { + #[doc = " Create a thread with a default stack size."] + #[doc = ""] + #[doc = " This is equivalent to calling:"] + #[doc = " SDL_CreateThreadWithStackSize(fn, name, 0, data);"] + pub fn SDL_CreateThread( + fn_: SDL_ThreadFunction, + name: *const libc::c_char, + data: *mut libc::c_void, + ) -> *mut SDL_Thread; +} +extern "C" { + #[doc = " Create a thread."] + #[doc = ""] + #[doc = " Thread naming is a little complicated: Most systems have very small"] + #[doc = " limits for the string length (Haiku has 32 bytes, Linux currently has 16,"] + #[doc = " Visual C++ 6.0 has nine!), and possibly other arbitrary rules. You'll"] + #[doc = " have to see what happens with your system's debugger. The name should be"] + #[doc = " UTF-8 (but using the naming limits of C identifiers is a better bet)."] + #[doc = " There are no requirements for thread naming conventions, so long as the"] + #[doc = " string is null-terminated UTF-8, but these guidelines are helpful in"] + #[doc = " choosing a name:"] + #[doc = ""] + #[doc = " http://stackoverflow.com/questions/149932/naming-conventions-for-threads"] + #[doc = ""] + #[doc = " If a system imposes requirements, SDL will try to munge the string for"] + #[doc = " it (truncate, etc), but the original string contents will be available"] + #[doc = " from SDL_GetThreadName()."] + #[doc = ""] + #[doc = " The size (in bytes) of the new stack can be specified. Zero means \"use"] + #[doc = " the system default\" which might be wildly different between platforms"] + #[doc = " (x86 Linux generally defaults to eight megabytes, an embedded device"] + #[doc = " might be a few kilobytes instead)."] + #[doc = ""] + #[doc = " In SDL 2.1, stacksize will be folded into the original SDL_CreateThread"] + #[doc = " function."] + pub fn SDL_CreateThreadWithStackSize( + fn_: SDL_ThreadFunction, + name: *const libc::c_char, + stacksize: size_t, + data: *mut libc::c_void, + ) -> *mut SDL_Thread; +} +extern "C" { + #[doc = " Get the thread name, as it was specified in SDL_CreateThread()."] + #[doc = " This function returns a pointer to a UTF-8 string that names the"] + #[doc = " specified thread, or NULL if it doesn't have a name. This is internal"] + #[doc = " memory, not to be free()'d by the caller, and remains valid until the"] + #[doc = " specified thread is cleaned up by SDL_WaitThread()."] + pub fn SDL_GetThreadName(thread: *mut SDL_Thread) -> *const libc::c_char; +} +extern "C" { + #[doc = " Get the thread identifier for the current thread."] + pub fn SDL_ThreadID() -> SDL_threadID; +} +extern "C" { + #[doc = " Get the thread identifier for the specified thread."] + #[doc = ""] + #[doc = " Equivalent to SDL_ThreadID() if the specified thread is NULL."] + pub fn SDL_GetThreadID(thread: *mut SDL_Thread) -> SDL_threadID; +} +extern "C" { + #[doc = " Set the priority for the current thread"] + pub fn SDL_SetThreadPriority(priority: SDL_ThreadPriority) -> libc::c_int; +} +extern "C" { + #[doc = " Wait for a thread to finish. Threads that haven't been detached will"] + #[doc = " remain (as a \"zombie\") until this function cleans them up. Not doing so"] + #[doc = " is a resource leak."] + #[doc = ""] + #[doc = " Once a thread has been cleaned up through this function, the SDL_Thread"] + #[doc = " that references it becomes invalid and should not be referenced again."] + #[doc = " As such, only one thread may call SDL_WaitThread() on another."] + #[doc = ""] + #[doc = " The return code for the thread function is placed in the area"] + #[doc = " pointed to by \\c status, if \\c status is not NULL."] + #[doc = ""] + #[doc = " You may not wait on a thread that has been used in a call to"] + #[doc = " SDL_DetachThread(). Use either that function or this one, but not"] + #[doc = " both, or behavior is undefined."] + #[doc = ""] + #[doc = " It is safe to pass NULL to this function; it is a no-op."] + pub fn SDL_WaitThread(thread: *mut SDL_Thread, status: *mut libc::c_int); +} +extern "C" { + #[doc = " A thread may be \"detached\" to signify that it should not remain until"] + #[doc = " another thread has called SDL_WaitThread() on it. Detaching a thread"] + #[doc = " is useful for long-running threads that nothing needs to synchronize"] + #[doc = " with or further manage. When a detached thread is done, it simply"] + #[doc = " goes away."] + #[doc = ""] + #[doc = " There is no way to recover the return code of a detached thread. If you"] + #[doc = " need this, don't detach the thread and instead use SDL_WaitThread()."] + #[doc = ""] + #[doc = " Once a thread is detached, you should usually assume the SDL_Thread isn't"] + #[doc = " safe to reference again, as it will become invalid immediately upon"] + #[doc = " the detached thread's exit, instead of remaining until someone has called"] + #[doc = " SDL_WaitThread() to finally clean it up. As such, don't detach the same"] + #[doc = " thread more than once."] + #[doc = ""] + #[doc = " If a thread has already exited when passed to SDL_DetachThread(), it will"] + #[doc = " stop waiting for a call to SDL_WaitThread() and clean up immediately."] + #[doc = " It is not safe to detach a thread that might be used with SDL_WaitThread()."] + #[doc = ""] + #[doc = " You may not call SDL_WaitThread() on a thread that has been detached."] + #[doc = " Use either that function or this one, but not both, or behavior is"] + #[doc = " undefined."] + #[doc = ""] + #[doc = " It is safe to pass NULL to this function; it is a no-op."] + pub fn SDL_DetachThread(thread: *mut SDL_Thread); +} +extern "C" { + #[doc = " \\brief Create an identifier that is globally visible to all threads but refers to data that is thread-specific."] + #[doc = ""] + #[doc = " \\return The newly created thread local storage identifier, or 0 on error"] + #[doc = ""] + #[doc = " \\code"] + #[doc = " static SDL_SpinLock tls_lock;"] + #[doc = " static SDL_TLSID thread_local_storage;"] + #[doc = ""] + #[doc = " void SetMyThreadData(void *value)"] + #[doc = " {"] + #[doc = " if (!thread_local_storage) {"] + #[doc = " SDL_AtomicLock(&tls_lock);"] + #[doc = " if (!thread_local_storage) {"] + #[doc = " thread_local_storage = SDL_TLSCreate();"] + #[doc = " }"] + #[doc = " SDL_AtomicUnlock(&tls_lock);"] + #[doc = " }"] + #[doc = " SDL_TLSSet(thread_local_storage, value, 0);"] + #[doc = " }"] + #[doc = ""] + #[doc = " void *GetMyThreadData(void)"] + #[doc = " {"] + #[doc = " return SDL_TLSGet(thread_local_storage);"] + #[doc = " }"] + #[doc = " \\endcode"] + #[doc = ""] + #[doc = " \\sa SDL_TLSGet()"] + #[doc = " \\sa SDL_TLSSet()"] + pub fn SDL_TLSCreate() -> SDL_TLSID; +} +extern "C" { + #[doc = " \\brief Get the value associated with a thread local storage ID for the current thread."] + #[doc = ""] + #[doc = " \\param id The thread local storage ID"] + #[doc = ""] + #[doc = " \\return The value associated with the ID for the current thread, or NULL if no value has been set."] + #[doc = ""] + #[doc = " \\sa SDL_TLSCreate()"] + #[doc = " \\sa SDL_TLSSet()"] + pub fn SDL_TLSGet(id: SDL_TLSID) -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Set the value associated with a thread local storage ID for the current thread."] + #[doc = ""] + #[doc = " \\param id The thread local storage ID"] + #[doc = " \\param value The value to associate with the ID for the current thread"] + #[doc = " \\param destructor A function called when the thread exits, to free the value."] + #[doc = ""] + #[doc = " \\return 0 on success, -1 on error"] + #[doc = ""] + #[doc = " \\sa SDL_TLSCreate()"] + #[doc = " \\sa SDL_TLSGet()"] + pub fn SDL_TLSSet( + id: SDL_TLSID, + value: *const libc::c_void, + destructor: ::core::option::Option, + ) -> libc::c_int; +} +#[doc = " This is the read/write operation structure -- very basic."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_RWops { + #[doc = " Return the size of the file in this rwops, or -1 if unknown"] + pub size: ::core::option::Option Sint64>, + #[doc = " Seek to \\c offset relative to \\c whence, one of stdio's whence values:"] + #[doc = " RW_SEEK_SET, RW_SEEK_CUR, RW_SEEK_END"] + #[doc = ""] + #[doc = " \\return the final offset in the data stream, or -1 on error."] + pub seek: ::core::option::Option< + unsafe extern "C" fn( + context: *mut SDL_RWops, + offset: Sint64, + whence: libc::c_int, + ) -> Sint64, + >, + #[doc = " Read up to \\c maxnum objects each of size \\c size from the data"] + #[doc = " stream to the area pointed at by \\c ptr."] + #[doc = ""] + #[doc = " \\return the number of objects read, or 0 at error or end of file."] + pub read: ::core::option::Option< + unsafe extern "C" fn( + context: *mut SDL_RWops, + ptr: *mut libc::c_void, + size: size_t, + maxnum: size_t, + ) -> size_t, + >, + #[doc = " Write exactly \\c num objects each of size \\c size from the area"] + #[doc = " pointed at by \\c ptr to data stream."] + #[doc = ""] + #[doc = " \\return the number of objects written, or 0 at error or end of file."] + pub write: ::core::option::Option< + unsafe extern "C" fn( + context: *mut SDL_RWops, + ptr: *const libc::c_void, + size: size_t, + num: size_t, + ) -> size_t, + >, + #[doc = " Close and free an allocated SDL_RWops structure."] + #[doc = ""] + #[doc = " \\return 0 if successful or -1 on write error when flushing data."] + pub close: ::core::option::Option libc::c_int>, + pub type_: Uint32, + pub hidden: SDL_RWops__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union SDL_RWops__bindgen_ty_1 { + pub mem: SDL_RWops__bindgen_ty_1__bindgen_ty_1, + pub unknown: SDL_RWops__bindgen_ty_1__bindgen_ty_2, + _bindgen_union_align: [u64; 3usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_RWops__bindgen_ty_1__bindgen_ty_1 { + pub base: *mut Uint8, + pub here: *mut Uint8, + pub stop: *mut Uint8, +} +#[test] +fn bindgen_test_layout_SDL_RWops__bindgen_ty_1__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!( + "Size of: ", + stringify!(SDL_RWops__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(SDL_RWops__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).base as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(base) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).here as *const _ + as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(here) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).stop as *const _ + as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(stop) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_RWops__bindgen_ty_1__bindgen_ty_2 { + pub data1: *mut libc::c_void, + pub data2: *mut libc::c_void, +} +#[test] +fn bindgen_test_layout_SDL_RWops__bindgen_ty_1__bindgen_ty_2() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!( + "Size of: ", + stringify!(SDL_RWops__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(SDL_RWops__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).data1 as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(data1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).data2 as *const _ + as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(data2) + ) + ); +} +#[test] +fn bindgen_test_layout_SDL_RWops__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(SDL_RWops__bindgen_ty_1)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_RWops__bindgen_ty_1)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).mem as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops__bindgen_ty_1), + "::", + stringify!(mem) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).unknown as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops__bindgen_ty_1), + "::", + stringify!(unknown) + ) + ); +} +#[test] +fn bindgen_test_layout_SDL_RWops() { + assert_eq!( + ::core::mem::size_of::(), + 72usize, + concat!("Size of: ", stringify!(SDL_RWops)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_RWops)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops), + "::", + stringify!(size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).seek as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops), + "::", + stringify!(seek) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).read as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops), + "::", + stringify!(read) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).write as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops), + "::", + stringify!(write) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).close as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops), + "::", + stringify!(close) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).hidden as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(SDL_RWops), + "::", + stringify!(hidden) + ) + ); +} +extern "C" { + pub fn SDL_RWFromFile(file: *const libc::c_char, mode: *const libc::c_char) -> *mut SDL_RWops; +} +extern "C" { + pub fn SDL_RWFromFP(fp: *mut libc::c_void, autoclose: SDL_bool) -> *mut SDL_RWops; +} +extern "C" { + pub fn SDL_RWFromMem(mem: *mut libc::c_void, size: libc::c_int) -> *mut SDL_RWops; +} +extern "C" { + pub fn SDL_RWFromConstMem(mem: *const libc::c_void, size: libc::c_int) -> *mut SDL_RWops; +} +extern "C" { + pub fn SDL_AllocRW() -> *mut SDL_RWops; +} +extern "C" { + pub fn SDL_FreeRW(area: *mut SDL_RWops); +} +extern "C" { + #[doc = " Return the size of the file in this rwops, or -1 if unknown"] + pub fn SDL_RWsize(context: *mut SDL_RWops) -> Sint64; +} +extern "C" { + #[doc = " Seek to \\c offset relative to \\c whence, one of stdio's whence values:"] + #[doc = " RW_SEEK_SET, RW_SEEK_CUR, RW_SEEK_END"] + #[doc = ""] + #[doc = " \\return the final offset in the data stream, or -1 on error."] + pub fn SDL_RWseek(context: *mut SDL_RWops, offset: Sint64, whence: libc::c_int) -> Sint64; +} +extern "C" { + #[doc = " Return the current offset in the data stream, or -1 on error."] + pub fn SDL_RWtell(context: *mut SDL_RWops) -> Sint64; +} +extern "C" { + #[doc = " Read up to \\c maxnum objects each of size \\c size from the data"] + #[doc = " stream to the area pointed at by \\c ptr."] + #[doc = ""] + #[doc = " \\return the number of objects read, or 0 at error or end of file."] + pub fn SDL_RWread( + context: *mut SDL_RWops, + ptr: *mut libc::c_void, + size: size_t, + maxnum: size_t, + ) -> size_t; +} +extern "C" { + #[doc = " Write exactly \\c num objects each of size \\c size from the area"] + #[doc = " pointed at by \\c ptr to data stream."] + #[doc = ""] + #[doc = " \\return the number of objects written, or 0 at error or end of file."] + pub fn SDL_RWwrite( + context: *mut SDL_RWops, + ptr: *const libc::c_void, + size: size_t, + num: size_t, + ) -> size_t; +} +extern "C" { + #[doc = " Close and free an allocated SDL_RWops structure."] + #[doc = ""] + #[doc = " \\return 0 if successful or -1 on write error when flushing data."] + pub fn SDL_RWclose(context: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + #[doc = " Load all the data from an SDL data stream."] + #[doc = ""] + #[doc = " The data is allocated with a zero byte at the end (null terminated)"] + #[doc = ""] + #[doc = " If \\c datasize is not NULL, it is filled with the size of the data read."] + #[doc = ""] + #[doc = " If \\c freesrc is non-zero, the stream will be closed after being read."] + #[doc = ""] + #[doc = " The data should be freed with SDL_free()."] + #[doc = ""] + #[doc = " \\return the data, or NULL if there was an error."] + pub fn SDL_LoadFile_RW( + src: *mut SDL_RWops, + datasize: *mut size_t, + freesrc: libc::c_int, + ) -> *mut libc::c_void; +} +extern "C" { + #[doc = " Load an entire file."] + #[doc = ""] + #[doc = " The data is allocated with a zero byte at the end (null terminated)"] + #[doc = ""] + #[doc = " If \\c datasize is not NULL, it is filled with the size of the data read."] + #[doc = ""] + #[doc = " If \\c freesrc is non-zero, the stream will be closed after being read."] + #[doc = ""] + #[doc = " The data should be freed with SDL_free()."] + #[doc = ""] + #[doc = " \\return the data, or NULL if there was an error."] + pub fn SDL_LoadFile(file: *const libc::c_char, datasize: *mut size_t) -> *mut libc::c_void; +} +extern "C" { + pub fn SDL_ReadU8(src: *mut SDL_RWops) -> Uint8; +} +extern "C" { + pub fn SDL_ReadLE16(src: *mut SDL_RWops) -> Uint16; +} +extern "C" { + pub fn SDL_ReadBE16(src: *mut SDL_RWops) -> Uint16; +} +extern "C" { + pub fn SDL_ReadLE32(src: *mut SDL_RWops) -> Uint32; +} +extern "C" { + pub fn SDL_ReadBE32(src: *mut SDL_RWops) -> Uint32; +} +extern "C" { + pub fn SDL_ReadLE64(src: *mut SDL_RWops) -> Uint64; +} +extern "C" { + pub fn SDL_ReadBE64(src: *mut SDL_RWops) -> Uint64; +} +extern "C" { + pub fn SDL_WriteU8(dst: *mut SDL_RWops, value: Uint8) -> size_t; +} +extern "C" { + pub fn SDL_WriteLE16(dst: *mut SDL_RWops, value: Uint16) -> size_t; +} +extern "C" { + pub fn SDL_WriteBE16(dst: *mut SDL_RWops, value: Uint16) -> size_t; +} +extern "C" { + pub fn SDL_WriteLE32(dst: *mut SDL_RWops, value: Uint32) -> size_t; +} +extern "C" { + pub fn SDL_WriteBE32(dst: *mut SDL_RWops, value: Uint32) -> size_t; +} +extern "C" { + pub fn SDL_WriteLE64(dst: *mut SDL_RWops, value: Uint64) -> size_t; +} +extern "C" { + pub fn SDL_WriteBE64(dst: *mut SDL_RWops, value: Uint64) -> size_t; +} +#[doc = " \\brief Audio format flags."] +#[doc = ""] +#[doc = " These are what the 16 bits in SDL_AudioFormat currently mean..."] +#[doc = " (Unspecified bits are always zero)."] +#[doc = ""] +#[doc = " \\verbatim"] +#[doc = "++-----------------------sample is signed if set"] +#[doc = "||"] +#[doc = "|| ++-----------sample is bigendian if set"] +#[doc = "|| ||"] +#[doc = "|| || ++---sample is float if set"] +#[doc = "|| || ||"] +#[doc = "|| || || +---sample bit size---+"] +#[doc = "|| || || | |"] +#[doc = "15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00"] +#[doc = "\\endverbatim"] +#[doc = ""] +#[doc = " There are macros in SDL 2.0 and later to query these bits."] +pub type SDL_AudioFormat = Uint16; +#[doc = " This function is called when the audio device needs more data."] +#[doc = ""] +#[doc = " \\param userdata An application-specific parameter saved in"] +#[doc = " the SDL_AudioSpec structure"] +#[doc = " \\param stream A pointer to the audio data buffer."] +#[doc = " \\param len The length of that buffer in bytes."] +#[doc = ""] +#[doc = " Once the callback returns, the buffer will no longer be valid."] +#[doc = " Stereo samples are stored in a LRLRLR ordering."] +#[doc = ""] +#[doc = " You can choose to avoid callbacks and use SDL_QueueAudio() instead, if"] +#[doc = " you like. Just open your audio device with a NULL callback."] +pub type SDL_AudioCallback = ::core::option::Option< + unsafe extern "C" fn(userdata: *mut libc::c_void, stream: *mut Uint8, len: libc::c_int), +>; +#[doc = " The calculated values in this structure are calculated by SDL_OpenAudio()."] +#[doc = ""] +#[doc = " For multi-channel audio, the default SDL channel mapping is:"] +#[doc = " 2: FL FR (stereo)"] +#[doc = " 3: FL FR LFE (2.1 surround)"] +#[doc = " 4: FL FR BL BR (quad)"] +#[doc = " 5: FL FR FC BL BR (quad + center)"] +#[doc = " 6: FL FR FC LFE SL SR (5.1 surround - last two can also be BL BR)"] +#[doc = " 7: FL FR FC LFE BC SL SR (6.1 surround)"] +#[doc = " 8: FL FR FC LFE BL BR SL SR (7.1 surround)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_AudioSpec { + #[doc = "< DSP frequency -- samples per second"] + pub freq: libc::c_int, + #[doc = "< Audio data format"] + pub format: SDL_AudioFormat, + #[doc = "< Number of channels: 1 mono, 2 stereo"] + pub channels: Uint8, + #[doc = "< Audio buffer silence value (calculated)"] + pub silence: Uint8, + #[doc = "< Audio buffer size in sample FRAMES (total samples divided by channel count)"] + pub samples: Uint16, + #[doc = "< Necessary for some compile environments"] + pub padding: Uint16, + #[doc = "< Audio buffer size in bytes (calculated)"] + pub size: Uint32, + #[doc = "< Callback that feeds the audio device (NULL to use SDL_QueueAudio())."] + pub callback: SDL_AudioCallback, + #[doc = "< Userdata passed to callback (ignored for NULL callbacks)."] + pub userdata: *mut libc::c_void, +} +#[test] +fn bindgen_test_layout_SDL_AudioSpec() { + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(SDL_AudioSpec)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_AudioSpec)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).freq as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioSpec), + "::", + stringify!(freq) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).format as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioSpec), + "::", + stringify!(format) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).channels as *const _ as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioSpec), + "::", + stringify!(channels) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).silence as *const _ as usize }, + 7usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioSpec), + "::", + stringify!(silence) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).samples as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioSpec), + "::", + stringify!(samples) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding as *const _ as usize }, + 10usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioSpec), + "::", + stringify!(padding) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).size as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioSpec), + "::", + stringify!(size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).callback as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioSpec), + "::", + stringify!(callback) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).userdata as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioSpec), + "::", + stringify!(userdata) + ) + ); +} +pub type SDL_AudioFilter = + ::core::option::Option; +#[repr(C, packed)] +#[derive(Copy, Clone)] +pub struct SDL_AudioCVT { + #[doc = "< Set to 1 if conversion possible"] + pub needed: libc::c_int, + #[doc = "< Source audio format"] + pub src_format: SDL_AudioFormat, + #[doc = "< Target audio format"] + pub dst_format: SDL_AudioFormat, + #[doc = "< Rate conversion increment"] + pub rate_incr: f64, + #[doc = "< Buffer to hold entire audio data"] + pub buf: *mut Uint8, + #[doc = "< Length of original audio buffer"] + pub len: libc::c_int, + #[doc = "< Length of converted audio buffer"] + pub len_cvt: libc::c_int, + #[doc = "< buffer must be len*len_mult big"] + pub len_mult: libc::c_int, + #[doc = "< Given len, final size is len*len_ratio"] + pub len_ratio: f64, + #[doc = "< NULL-terminated list of filter functions"] + pub filters: [SDL_AudioFilter; 10usize], + #[doc = "< Current audio conversion function"] + pub filter_index: libc::c_int, +} +#[test] +fn bindgen_test_layout_SDL_AudioCVT() { + assert_eq!( + ::core::mem::size_of::(), + 128usize, + concat!("Size of: ", stringify!(SDL_AudioCVT)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(SDL_AudioCVT)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).needed as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioCVT), + "::", + stringify!(needed) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).src_format as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioCVT), + "::", + stringify!(src_format) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).dst_format as *const _ as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioCVT), + "::", + stringify!(dst_format) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).rate_incr as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioCVT), + "::", + stringify!(rate_incr) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).buf as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioCVT), + "::", + stringify!(buf) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).len as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioCVT), + "::", + stringify!(len) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).len_cvt as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioCVT), + "::", + stringify!(len_cvt) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).len_mult as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioCVT), + "::", + stringify!(len_mult) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).len_ratio as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioCVT), + "::", + stringify!(len_ratio) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).filters as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioCVT), + "::", + stringify!(filters) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).filter_index as *const _ as usize }, + 124usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioCVT), + "::", + stringify!(filter_index) + ) + ); +} +extern "C" { + pub fn SDL_GetNumAudioDrivers() -> libc::c_int; +} +extern "C" { + pub fn SDL_GetAudioDriver(index: libc::c_int) -> *const libc::c_char; +} +extern "C" { + pub fn SDL_AudioInit(driver_name: *const libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn SDL_AudioQuit(); +} +extern "C" { + #[doc = " This function returns the name of the current audio driver, or NULL"] + #[doc = " if no driver has been initialized."] + pub fn SDL_GetCurrentAudioDriver() -> *const libc::c_char; +} +extern "C" { + #[doc = " This function opens the audio device with the desired parameters, and"] + #[doc = " returns 0 if successful, placing the actual hardware parameters in the"] + #[doc = " structure pointed to by \\c obtained. If \\c obtained is NULL, the audio"] + #[doc = " data passed to the callback function will be guaranteed to be in the"] + #[doc = " requested format, and will be automatically converted to the hardware"] + #[doc = " audio format if necessary. This function returns -1 if it failed"] + #[doc = " to open the audio device, or couldn't set up the audio thread."] + #[doc = ""] + #[doc = " When filling in the desired audio spec structure,"] + #[doc = " - \\c desired->freq should be the desired audio frequency in samples-per-"] + #[doc = " second."] + #[doc = " - \\c desired->format should be the desired audio format."] + #[doc = " - \\c desired->samples is the desired size of the audio buffer, in"] + #[doc = " samples. This number should be a power of two, and may be adjusted by"] + #[doc = " the audio driver to a value more suitable for the hardware. Good values"] + #[doc = " seem to range between 512 and 8096 inclusive, depending on the"] + #[doc = " application and CPU speed. Smaller values yield faster response time,"] + #[doc = " but can lead to underflow if the application is doing heavy processing"] + #[doc = " and cannot fill the audio buffer in time. A stereo sample consists of"] + #[doc = " both right and left channels in LR ordering."] + #[doc = " Note that the number of samples is directly related to time by the"] + #[doc = " following formula: \\code ms = (samples*1000)/freq \\endcode"] + #[doc = " - \\c desired->size is the size in bytes of the audio buffer, and is"] + #[doc = " calculated by SDL_OpenAudio()."] + #[doc = " - \\c desired->silence is the value used to set the buffer to silence,"] + #[doc = " and is calculated by SDL_OpenAudio()."] + #[doc = " - \\c desired->callback should be set to a function that will be called"] + #[doc = " when the audio device is ready for more data. It is passed a pointer"] + #[doc = " to the audio buffer, and the length in bytes of the audio buffer."] + #[doc = " This function usually runs in a separate thread, and so you should"] + #[doc = " protect data structures that it accesses by calling SDL_LockAudio()"] + #[doc = " and SDL_UnlockAudio() in your code. Alternately, you may pass a NULL"] + #[doc = " pointer here, and call SDL_QueueAudio() with some frequency, to queue"] + #[doc = " more audio samples to be played (or for capture devices, call"] + #[doc = " SDL_DequeueAudio() with some frequency, to obtain audio samples)."] + #[doc = " - \\c desired->userdata is passed as the first parameter to your callback"] + #[doc = " function. If you passed a NULL callback, this value is ignored."] + #[doc = ""] + #[doc = " The audio device starts out playing silence when it's opened, and should"] + #[doc = " be enabled for playing by calling \\c SDL_PauseAudio(0) when you are ready"] + #[doc = " for your audio callback function to be called. Since the audio driver"] + #[doc = " may modify the requested size of the audio buffer, you should allocate"] + #[doc = " any local mixing buffers after you open the audio device."] + pub fn SDL_OpenAudio(desired: *mut SDL_AudioSpec, obtained: *mut SDL_AudioSpec) -> libc::c_int; +} +#[doc = " SDL Audio Device IDs."] +#[doc = ""] +#[doc = " A successful call to SDL_OpenAudio() is always device id 1, and legacy"] +#[doc = " SDL audio APIs assume you want this device ID. SDL_OpenAudioDevice() calls"] +#[doc = " always returns devices >= 2 on success. The legacy calls are good both"] +#[doc = " for backwards compatibility and when you don't care about multiple,"] +#[doc = " specific, or capture devices."] +pub type SDL_AudioDeviceID = Uint32; +extern "C" { + #[doc = " Get the number of available devices exposed by the current driver."] + #[doc = " Only valid after a successfully initializing the audio subsystem."] + #[doc = " Returns -1 if an explicit list of devices can't be determined; this is"] + #[doc = " not an error. For example, if SDL is set up to talk to a remote audio"] + #[doc = " server, it can't list every one available on the Internet, but it will"] + #[doc = " still allow a specific host to be specified to SDL_OpenAudioDevice()."] + #[doc = ""] + #[doc = " In many common cases, when this function returns a value <= 0, it can still"] + #[doc = " successfully open the default device (NULL for first argument of"] + #[doc = " SDL_OpenAudioDevice())."] + pub fn SDL_GetNumAudioDevices(iscapture: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " Get the human-readable name of a specific audio device."] + #[doc = " Must be a value between 0 and (number of audio devices-1)."] + #[doc = " Only valid after a successfully initializing the audio subsystem."] + #[doc = " The values returned by this function reflect the latest call to"] + #[doc = " SDL_GetNumAudioDevices(); recall that function to redetect available"] + #[doc = " hardware."] + #[doc = ""] + #[doc = " The string returned by this function is UTF-8 encoded, read-only, and"] + #[doc = " managed internally. You are not to free it. If you need to keep the"] + #[doc = " string for any length of time, you should make your own copy of it, as it"] + #[doc = " will be invalid next time any of several other SDL functions is called."] + pub fn SDL_GetAudioDeviceName( + index: libc::c_int, + iscapture: libc::c_int, + ) -> *const libc::c_char; +} +extern "C" { + #[doc = " Open a specific audio device. Passing in a device name of NULL requests"] + #[doc = " the most reasonable default (and is equivalent to calling SDL_OpenAudio())."] + #[doc = ""] + #[doc = " The device name is a UTF-8 string reported by SDL_GetAudioDeviceName(), but"] + #[doc = " some drivers allow arbitrary and driver-specific strings, such as a"] + #[doc = " hostname/IP address for a remote audio server, or a filename in the"] + #[doc = " diskaudio driver."] + #[doc = ""] + #[doc = " \\return 0 on error, a valid device ID that is >= 2 on success."] + #[doc = ""] + #[doc = " SDL_OpenAudio(), unlike this function, always acts on device ID 1."] + pub fn SDL_OpenAudioDevice( + device: *const libc::c_char, + iscapture: libc::c_int, + desired: *const SDL_AudioSpec, + obtained: *mut SDL_AudioSpec, + allowed_changes: libc::c_int, + ) -> SDL_AudioDeviceID; +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_AudioStatus { + SDL_AUDIO_STOPPED = 0, + SDL_AUDIO_PLAYING = 1, + SDL_AUDIO_PAUSED = 2, +} +extern "C" { + pub fn SDL_GetAudioStatus() -> SDL_AudioStatus; +} +extern "C" { + pub fn SDL_GetAudioDeviceStatus(dev: SDL_AudioDeviceID) -> SDL_AudioStatus; +} +extern "C" { + pub fn SDL_PauseAudio(pause_on: libc::c_int); +} +extern "C" { + pub fn SDL_PauseAudioDevice(dev: SDL_AudioDeviceID, pause_on: libc::c_int); +} +extern "C" { + #[doc = " \\brief Load the audio data of a WAVE file into memory"] + #[doc = ""] + #[doc = " Loading a WAVE file requires \\c src, \\c spec, \\c audio_buf and \\c audio_len"] + #[doc = " to be valid pointers. The entire data portion of the file is then loaded"] + #[doc = " into memory and decoded if necessary."] + #[doc = ""] + #[doc = " If \\c freesrc is non-zero, the data source gets automatically closed and"] + #[doc = " freed before the function returns."] + #[doc = ""] + #[doc = " Supported are RIFF WAVE files with the formats PCM (8, 16, 24, and 32 bits),"] + #[doc = " IEEE Float (32 bits), Microsoft ADPCM and IMA ADPCM (4 bits), and A-law and"] + #[doc = " µ-law (8 bits). Other formats are currently unsupported and cause an error."] + #[doc = ""] + #[doc = " If this function succeeds, the pointer returned by it is equal to \\c spec"] + #[doc = " and the pointer to the audio data allocated by the function is written to"] + #[doc = " \\c audio_buf and its length in bytes to \\c audio_len. The \\ref SDL_AudioSpec"] + #[doc = " members \\c freq, \\c channels, and \\c format are set to the values of the"] + #[doc = " audio data in the buffer. The \\c samples member is set to a sane default and"] + #[doc = " all others are set to zero."] + #[doc = ""] + #[doc = " It's necessary to use SDL_FreeWAV() to free the audio data returned in"] + #[doc = " \\c audio_buf when it is no longer used."] + #[doc = ""] + #[doc = " Because of the underspecification of the Waveform format, there are many"] + #[doc = " problematic files in the wild that cause issues with strict decoders. To"] + #[doc = " provide compatibility with these files, this decoder is lenient in regards"] + #[doc = " to the truncation of the file, the fact chunk, and the size of the RIFF"] + #[doc = " chunk. The hints SDL_HINT_WAVE_RIFF_CHUNK_SIZE, SDL_HINT_WAVE_TRUNCATION,"] + #[doc = " and SDL_HINT_WAVE_FACT_CHUNK can be used to tune the behavior of the"] + #[doc = " loading process."] + #[doc = ""] + #[doc = " Any file that is invalid (due to truncation, corruption, or wrong values in"] + #[doc = " the headers), too big, or unsupported causes an error. Additionally, any"] + #[doc = " critical I/O error from the data source will terminate the loading process"] + #[doc = " with an error. The function returns NULL on error and in all cases (with the"] + #[doc = " exception of \\c src being NULL), an appropriate error message will be set."] + #[doc = ""] + #[doc = " It is required that the data source supports seeking."] + #[doc = ""] + #[doc = " Example:"] + #[doc = " \\code"] + #[doc = " SDL_LoadWAV_RW(SDL_RWFromFile(\"sample.wav\", \"rb\"), 1, ...);"] + #[doc = " \\endcode"] + #[doc = ""] + #[doc = " \\param src The data source with the WAVE data"] + #[doc = " \\param freesrc A integer value that makes the function close the data source if non-zero"] + #[doc = " \\param spec A pointer filled with the audio format of the audio data"] + #[doc = " \\param audio_buf A pointer filled with the audio data allocated by the function"] + #[doc = " \\param audio_len A pointer filled with the length of the audio data buffer in bytes"] + #[doc = " \\return NULL on error, or non-NULL on success."] + pub fn SDL_LoadWAV_RW( + src: *mut SDL_RWops, + freesrc: libc::c_int, + spec: *mut SDL_AudioSpec, + audio_buf: *mut *mut Uint8, + audio_len: *mut Uint32, + ) -> *mut SDL_AudioSpec; +} +extern "C" { + #[doc = " This function frees data previously allocated with SDL_LoadWAV_RW()"] + pub fn SDL_FreeWAV(audio_buf: *mut Uint8); +} +extern "C" { + #[doc = " This function takes a source format and rate and a destination format"] + #[doc = " and rate, and initializes the \\c cvt structure with information needed"] + #[doc = " by SDL_ConvertAudio() to convert a buffer of audio data from one format"] + #[doc = " to the other. An unsupported format causes an error and -1 will be returned."] + #[doc = ""] + #[doc = " \\return 0 if no conversion is needed, 1 if the audio filter is set up,"] + #[doc = " or -1 on error."] + pub fn SDL_BuildAudioCVT( + cvt: *mut SDL_AudioCVT, + src_format: SDL_AudioFormat, + src_channels: Uint8, + src_rate: libc::c_int, + dst_format: SDL_AudioFormat, + dst_channels: Uint8, + dst_rate: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Once you have initialized the \\c cvt structure using SDL_BuildAudioCVT(),"] + #[doc = " created an audio buffer \\c cvt->buf, and filled it with \\c cvt->len bytes of"] + #[doc = " audio data in the source format, this function will convert it in-place"] + #[doc = " to the desired format."] + #[doc = ""] + #[doc = " The data conversion may expand the size of the audio data, so the buffer"] + #[doc = " \\c cvt->buf should be allocated after the \\c cvt structure is initialized by"] + #[doc = " SDL_BuildAudioCVT(), and should be \\c cvt->len*cvt->len_mult bytes long."] + #[doc = ""] + #[doc = " \\return 0 on success or -1 if \\c cvt->buf is NULL."] + pub fn SDL_ConvertAudio(cvt: *mut SDL_AudioCVT) -> libc::c_int; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _SDL_AudioStream { + _unused: [u8; 0], +} +pub type SDL_AudioStream = _SDL_AudioStream; +extern "C" { + #[doc = " Create a new audio stream"] + #[doc = ""] + #[doc = " \\param src_format The format of the source audio"] + #[doc = " \\param src_channels The number of channels of the source audio"] + #[doc = " \\param src_rate The sampling rate of the source audio"] + #[doc = " \\param dst_format The format of the desired audio output"] + #[doc = " \\param dst_channels The number of channels of the desired audio output"] + #[doc = " \\param dst_rate The sampling rate of the desired audio output"] + #[doc = " \\return 0 on success, or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_AudioStreamPut"] + #[doc = " \\sa SDL_AudioStreamGet"] + #[doc = " \\sa SDL_AudioStreamAvailable"] + #[doc = " \\sa SDL_AudioStreamFlush"] + #[doc = " \\sa SDL_AudioStreamClear"] + #[doc = " \\sa SDL_FreeAudioStream"] + pub fn SDL_NewAudioStream( + src_format: SDL_AudioFormat, + src_channels: Uint8, + src_rate: libc::c_int, + dst_format: SDL_AudioFormat, + dst_channels: Uint8, + dst_rate: libc::c_int, + ) -> *mut SDL_AudioStream; +} +extern "C" { + #[doc = " Add data to be converted/resampled to the stream"] + #[doc = ""] + #[doc = " \\param stream The stream the audio data is being added to"] + #[doc = " \\param buf A pointer to the audio data to add"] + #[doc = " \\param len The number of bytes to write to the stream"] + #[doc = " \\return 0 on success, or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_NewAudioStream"] + #[doc = " \\sa SDL_AudioStreamGet"] + #[doc = " \\sa SDL_AudioStreamAvailable"] + #[doc = " \\sa SDL_AudioStreamFlush"] + #[doc = " \\sa SDL_AudioStreamClear"] + #[doc = " \\sa SDL_FreeAudioStream"] + pub fn SDL_AudioStreamPut( + stream: *mut SDL_AudioStream, + buf: *const libc::c_void, + len: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Get converted/resampled data from the stream"] + #[doc = ""] + #[doc = " \\param stream The stream the audio is being requested from"] + #[doc = " \\param buf A buffer to fill with audio data"] + #[doc = " \\param len The maximum number of bytes to fill"] + #[doc = " \\return The number of bytes read from the stream, or -1 on error"] + #[doc = ""] + #[doc = " \\sa SDL_NewAudioStream"] + #[doc = " \\sa SDL_AudioStreamPut"] + #[doc = " \\sa SDL_AudioStreamAvailable"] + #[doc = " \\sa SDL_AudioStreamFlush"] + #[doc = " \\sa SDL_AudioStreamClear"] + #[doc = " \\sa SDL_FreeAudioStream"] + pub fn SDL_AudioStreamGet( + stream: *mut SDL_AudioStream, + buf: *mut libc::c_void, + len: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Get the number of converted/resampled bytes available. The stream may be"] + #[doc = " buffering data behind the scenes until it has enough to resample"] + #[doc = " correctly, so this number might be lower than what you expect, or even"] + #[doc = " be zero. Add more data or flush the stream if you need the data now."] + #[doc = ""] + #[doc = " \\sa SDL_NewAudioStream"] + #[doc = " \\sa SDL_AudioStreamPut"] + #[doc = " \\sa SDL_AudioStreamGet"] + #[doc = " \\sa SDL_AudioStreamFlush"] + #[doc = " \\sa SDL_AudioStreamClear"] + #[doc = " \\sa SDL_FreeAudioStream"] + pub fn SDL_AudioStreamAvailable(stream: *mut SDL_AudioStream) -> libc::c_int; +} +extern "C" { + #[doc = " Tell the stream that you're done sending data, and anything being buffered"] + #[doc = " should be converted/resampled and made available immediately."] + #[doc = ""] + #[doc = " It is legal to add more data to a stream after flushing, but there will"] + #[doc = " be audio gaps in the output. Generally this is intended to signal the"] + #[doc = " end of input, so the complete output becomes available."] + #[doc = ""] + #[doc = " \\sa SDL_NewAudioStream"] + #[doc = " \\sa SDL_AudioStreamPut"] + #[doc = " \\sa SDL_AudioStreamGet"] + #[doc = " \\sa SDL_AudioStreamAvailable"] + #[doc = " \\sa SDL_AudioStreamClear"] + #[doc = " \\sa SDL_FreeAudioStream"] + pub fn SDL_AudioStreamFlush(stream: *mut SDL_AudioStream) -> libc::c_int; +} +extern "C" { + #[doc = " Clear any pending data in the stream without converting it"] + #[doc = ""] + #[doc = " \\sa SDL_NewAudioStream"] + #[doc = " \\sa SDL_AudioStreamPut"] + #[doc = " \\sa SDL_AudioStreamGet"] + #[doc = " \\sa SDL_AudioStreamAvailable"] + #[doc = " \\sa SDL_AudioStreamFlush"] + #[doc = " \\sa SDL_FreeAudioStream"] + pub fn SDL_AudioStreamClear(stream: *mut SDL_AudioStream); +} +extern "C" { + #[doc = " Free an audio stream"] + #[doc = ""] + #[doc = " \\sa SDL_NewAudioStream"] + #[doc = " \\sa SDL_AudioStreamPut"] + #[doc = " \\sa SDL_AudioStreamGet"] + #[doc = " \\sa SDL_AudioStreamAvailable"] + #[doc = " \\sa SDL_AudioStreamFlush"] + #[doc = " \\sa SDL_AudioStreamClear"] + pub fn SDL_FreeAudioStream(stream: *mut SDL_AudioStream); +} +extern "C" { + #[doc = " This takes two audio buffers of the playing audio format and mixes"] + #[doc = " them, performing addition, volume adjustment, and overflow clipping."] + #[doc = " The volume ranges from 0 - 128, and should be set to ::SDL_MIX_MAXVOLUME"] + #[doc = " for full audio volume. Note this does not change hardware volume."] + #[doc = " This is provided for convenience -- you can mix your own audio data."] + pub fn SDL_MixAudio(dst: *mut Uint8, src: *const Uint8, len: Uint32, volume: libc::c_int); +} +extern "C" { + #[doc = " This works like SDL_MixAudio(), but you specify the audio format instead of"] + #[doc = " using the format of audio device 1. Thus it can be used when no audio"] + #[doc = " device is open at all."] + pub fn SDL_MixAudioFormat( + dst: *mut Uint8, + src: *const Uint8, + format: SDL_AudioFormat, + len: Uint32, + volume: libc::c_int, + ); +} +extern "C" { + #[doc = " Queue more audio on non-callback devices."] + #[doc = ""] + #[doc = " (If you are looking to retrieve queued audio from a non-callback capture"] + #[doc = " device, you want SDL_DequeueAudio() instead. This will return -1 to"] + #[doc = " signify an error if you use it with capture devices.)"] + #[doc = ""] + #[doc = " SDL offers two ways to feed audio to the device: you can either supply a"] + #[doc = " callback that SDL triggers with some frequency to obtain more audio"] + #[doc = " (pull method), or you can supply no callback, and then SDL will expect"] + #[doc = " you to supply data at regular intervals (push method) with this function."] + #[doc = ""] + #[doc = " There are no limits on the amount of data you can queue, short of"] + #[doc = " exhaustion of address space. Queued data will drain to the device as"] + #[doc = " necessary without further intervention from you. If the device needs"] + #[doc = " audio but there is not enough queued, it will play silence to make up"] + #[doc = " the difference. This means you will have skips in your audio playback"] + #[doc = " if you aren't routinely queueing sufficient data."] + #[doc = ""] + #[doc = " This function copies the supplied data, so you are safe to free it when"] + #[doc = " the function returns. This function is thread-safe, but queueing to the"] + #[doc = " same device from two threads at once does not promise which buffer will"] + #[doc = " be queued first."] + #[doc = ""] + #[doc = " You may not queue audio on a device that is using an application-supplied"] + #[doc = " callback; doing so returns an error. You have to use the audio callback"] + #[doc = " or queue audio with this function, but not both."] + #[doc = ""] + #[doc = " You should not call SDL_LockAudio() on the device before queueing; SDL"] + #[doc = " handles locking internally for this function."] + #[doc = ""] + #[doc = " \\param dev The device ID to which we will queue audio."] + #[doc = " \\param data The data to queue to the device for later playback."] + #[doc = " \\param len The number of bytes (not samples!) to which (data) points."] + #[doc = " \\return 0 on success, or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_GetQueuedAudioSize"] + #[doc = " \\sa SDL_ClearQueuedAudio"] + pub fn SDL_QueueAudio( + dev: SDL_AudioDeviceID, + data: *const libc::c_void, + len: Uint32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Dequeue more audio on non-callback devices."] + #[doc = ""] + #[doc = " (If you are looking to queue audio for output on a non-callback playback"] + #[doc = " device, you want SDL_QueueAudio() instead. This will always return 0"] + #[doc = " if you use it with playback devices.)"] + #[doc = ""] + #[doc = " SDL offers two ways to retrieve audio from a capture device: you can"] + #[doc = " either supply a callback that SDL triggers with some frequency as the"] + #[doc = " device records more audio data, (push method), or you can supply no"] + #[doc = " callback, and then SDL will expect you to retrieve data at regular"] + #[doc = " intervals (pull method) with this function."] + #[doc = ""] + #[doc = " There are no limits on the amount of data you can queue, short of"] + #[doc = " exhaustion of address space. Data from the device will keep queuing as"] + #[doc = " necessary without further intervention from you. This means you will"] + #[doc = " eventually run out of memory if you aren't routinely dequeueing data."] + #[doc = ""] + #[doc = " Capture devices will not queue data when paused; if you are expecting"] + #[doc = " to not need captured audio for some length of time, use"] + #[doc = " SDL_PauseAudioDevice() to stop the capture device from queueing more"] + #[doc = " data. This can be useful during, say, level loading times. When"] + #[doc = " unpaused, capture devices will start queueing data from that point,"] + #[doc = " having flushed any capturable data available while paused."] + #[doc = ""] + #[doc = " This function is thread-safe, but dequeueing from the same device from"] + #[doc = " two threads at once does not promise which thread will dequeued data"] + #[doc = " first."] + #[doc = ""] + #[doc = " You may not dequeue audio from a device that is using an"] + #[doc = " application-supplied callback; doing so returns an error. You have to use"] + #[doc = " the audio callback, or dequeue audio with this function, but not both."] + #[doc = ""] + #[doc = " You should not call SDL_LockAudio() on the device before queueing; SDL"] + #[doc = " handles locking internally for this function."] + #[doc = ""] + #[doc = " \\param dev The device ID from which we will dequeue audio."] + #[doc = " \\param data A pointer into where audio data should be copied."] + #[doc = " \\param len The number of bytes (not samples!) to which (data) points."] + #[doc = " \\return number of bytes dequeued, which could be less than requested."] + #[doc = ""] + #[doc = " \\sa SDL_GetQueuedAudioSize"] + #[doc = " \\sa SDL_ClearQueuedAudio"] + pub fn SDL_DequeueAudio(dev: SDL_AudioDeviceID, data: *mut libc::c_void, len: Uint32) + -> Uint32; +} +extern "C" { + #[doc = " Get the number of bytes of still-queued audio."] + #[doc = ""] + #[doc = " For playback device:"] + #[doc = ""] + #[doc = " This is the number of bytes that have been queued for playback with"] + #[doc = " SDL_QueueAudio(), but have not yet been sent to the hardware. This"] + #[doc = " number may shrink at any time, so this only informs of pending data."] + #[doc = ""] + #[doc = " Once we've sent it to the hardware, this function can not decide the"] + #[doc = " exact byte boundary of what has been played. It's possible that we just"] + #[doc = " gave the hardware several kilobytes right before you called this"] + #[doc = " function, but it hasn't played any of it yet, or maybe half of it, etc."] + #[doc = ""] + #[doc = " For capture devices:"] + #[doc = ""] + #[doc = " This is the number of bytes that have been captured by the device and"] + #[doc = " are waiting for you to dequeue. This number may grow at any time, so"] + #[doc = " this only informs of the lower-bound of available data."] + #[doc = ""] + #[doc = " You may not queue audio on a device that is using an application-supplied"] + #[doc = " callback; calling this function on such a device always returns 0."] + #[doc = " You have to queue audio with SDL_QueueAudio()/SDL_DequeueAudio(), or use"] + #[doc = " the audio callback, but not both."] + #[doc = ""] + #[doc = " You should not call SDL_LockAudio() on the device before querying; SDL"] + #[doc = " handles locking internally for this function."] + #[doc = ""] + #[doc = " \\param dev The device ID of which we will query queued audio size."] + #[doc = " \\return Number of bytes (not samples!) of queued audio."] + #[doc = ""] + #[doc = " \\sa SDL_QueueAudio"] + #[doc = " \\sa SDL_ClearQueuedAudio"] + pub fn SDL_GetQueuedAudioSize(dev: SDL_AudioDeviceID) -> Uint32; +} +extern "C" { + #[doc = " Drop any queued audio data. For playback devices, this is any queued data"] + #[doc = " still waiting to be submitted to the hardware. For capture devices, this"] + #[doc = " is any data that was queued by the device that hasn't yet been dequeued by"] + #[doc = " the application."] + #[doc = ""] + #[doc = " Immediately after this call, SDL_GetQueuedAudioSize() will return 0. For"] + #[doc = " playback devices, the hardware will start playing silence if more audio"] + #[doc = " isn't queued. Unpaused capture devices will start filling the queue again"] + #[doc = " as soon as they have more data available (which, depending on the state"] + #[doc = " of the hardware and the thread, could be before this function call"] + #[doc = " returns!)."] + #[doc = ""] + #[doc = " This will not prevent playback of queued audio that's already been sent"] + #[doc = " to the hardware, as we can not undo that, so expect there to be some"] + #[doc = " fraction of a second of audio that might still be heard. This can be"] + #[doc = " useful if you want to, say, drop any pending music during a level change"] + #[doc = " in your game."] + #[doc = ""] + #[doc = " You may not queue audio on a device that is using an application-supplied"] + #[doc = " callback; calling this function on such a device is always a no-op."] + #[doc = " You have to queue audio with SDL_QueueAudio()/SDL_DequeueAudio(), or use"] + #[doc = " the audio callback, but not both."] + #[doc = ""] + #[doc = " You should not call SDL_LockAudio() on the device before clearing the"] + #[doc = " queue; SDL handles locking internally for this function."] + #[doc = ""] + #[doc = " This function always succeeds and thus returns void."] + #[doc = ""] + #[doc = " \\param dev The device ID of which to clear the audio queue."] + #[doc = ""] + #[doc = " \\sa SDL_QueueAudio"] + #[doc = " \\sa SDL_GetQueuedAudioSize"] + pub fn SDL_ClearQueuedAudio(dev: SDL_AudioDeviceID); +} +extern "C" { + pub fn SDL_LockAudio(); +} +extern "C" { + pub fn SDL_LockAudioDevice(dev: SDL_AudioDeviceID); +} +extern "C" { + pub fn SDL_UnlockAudio(); +} +extern "C" { + pub fn SDL_UnlockAudioDevice(dev: SDL_AudioDeviceID); +} +extern "C" { + #[doc = " This function shuts down audio processing and closes the audio device."] + pub fn SDL_CloseAudio(); +} +extern "C" { + pub fn SDL_CloseAudioDevice(dev: SDL_AudioDeviceID); +} +extern "C" { + #[doc = " \\brief Put UTF-8 text into the clipboard"] + #[doc = ""] + #[doc = " \\sa SDL_GetClipboardText()"] + pub fn SDL_SetClipboardText(text: *const libc::c_char) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get UTF-8 text from the clipboard, which must be freed with SDL_free()"] + #[doc = ""] + #[doc = " \\sa SDL_SetClipboardText()"] + pub fn SDL_GetClipboardText() -> *mut libc::c_char; +} +extern "C" { + #[doc = " \\brief Returns a flag indicating whether the clipboard exists and contains a text string that is non-empty"] + #[doc = ""] + #[doc = " \\sa SDL_GetClipboardText()"] + pub fn SDL_HasClipboardText() -> SDL_bool; +} +pub type __m64 = [libc::c_longlong; 1usize]; +pub type __v1di = [libc::c_longlong; 1usize]; +pub type __v2si = [libc::c_int; 2usize]; +pub type __v4hi = [libc::c_short; 4usize]; +pub type __v8qi = [libc::c_char; 8usize]; +pub type __v4si = [libc::c_int; 4usize]; +pub type __v4sf = [f32; 4usize]; +pub type __m128 = [f32; 4usize]; +pub type __m128_u = [f32; 4usize]; +pub type __v4su = [libc::c_uint; 4usize]; +pub type _Float32 = f32; +pub type _Float64 = f64; +pub type _Float32x = f64; +pub type _Float64x = u128; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct div_t { + pub quot: libc::c_int, + pub rem: libc::c_int, +} +#[test] +fn bindgen_test_layout_div_t() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(div_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(div_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).quot as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(div_t), + "::", + stringify!(quot) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).rem as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(div_t), + "::", + stringify!(rem) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ldiv_t { + pub quot: libc::c_long, + pub rem: libc::c_long, +} +#[test] +fn bindgen_test_layout_ldiv_t() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ldiv_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ldiv_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).quot as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ldiv_t), + "::", + stringify!(quot) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).rem as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ldiv_t), + "::", + stringify!(rem) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct lldiv_t { + pub quot: libc::c_longlong, + pub rem: libc::c_longlong, +} +#[test] +fn bindgen_test_layout_lldiv_t() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(lldiv_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(lldiv_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).quot as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(lldiv_t), + "::", + stringify!(quot) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).rem as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(lldiv_t), + "::", + stringify!(rem) + ) + ); +} +extern "C" { + pub fn __ctype_get_mb_cur_max() -> size_t; +} +extern "C" { + pub fn atof(__nptr: *const libc::c_char) -> f64; +} +extern "C" { + pub fn atoi(__nptr: *const libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn atol(__nptr: *const libc::c_char) -> libc::c_long; +} +extern "C" { + pub fn atoll(__nptr: *const libc::c_char) -> libc::c_longlong; +} +extern "C" { + pub fn strtod(__nptr: *const libc::c_char, __endptr: *mut *mut libc::c_char) -> f64; +} +extern "C" { + pub fn strtof(__nptr: *const libc::c_char, __endptr: *mut *mut libc::c_char) -> f32; +} +extern "C" { + pub fn strtold(__nptr: *const libc::c_char, __endptr: *mut *mut libc::c_char) -> u128; +} +extern "C" { + pub fn strtol( + __nptr: *const libc::c_char, + __endptr: *mut *mut libc::c_char, + __base: libc::c_int, + ) -> libc::c_long; +} +extern "C" { + pub fn strtoul( + __nptr: *const libc::c_char, + __endptr: *mut *mut libc::c_char, + __base: libc::c_int, + ) -> libc::c_ulong; +} +extern "C" { + pub fn strtoq( + __nptr: *const libc::c_char, + __endptr: *mut *mut libc::c_char, + __base: libc::c_int, + ) -> libc::c_longlong; +} +extern "C" { + pub fn strtouq( + __nptr: *const libc::c_char, + __endptr: *mut *mut libc::c_char, + __base: libc::c_int, + ) -> libc::c_ulonglong; +} +extern "C" { + pub fn strtoll( + __nptr: *const libc::c_char, + __endptr: *mut *mut libc::c_char, + __base: libc::c_int, + ) -> libc::c_longlong; +} +extern "C" { + pub fn strtoull( + __nptr: *const libc::c_char, + __endptr: *mut *mut libc::c_char, + __base: libc::c_int, + ) -> libc::c_ulonglong; +} +extern "C" { + pub fn l64a(__n: libc::c_long) -> *mut libc::c_char; +} +extern "C" { + pub fn a64l(__s: *const libc::c_char) -> libc::c_long; +} +pub type u_char = __u_char; +pub type u_short = __u_short; +pub type u_int = __u_int; +pub type u_long = __u_long; +pub type quad_t = __quad_t; +pub type u_quad_t = __u_quad_t; +pub type fsid_t = __fsid_t; +pub type loff_t = __loff_t; +pub type ino_t = __ino_t; +pub type dev_t = __dev_t; +pub type gid_t = __gid_t; +pub type mode_t = __mode_t; +pub type nlink_t = __nlink_t; +pub type uid_t = __uid_t; +pub type off_t = __off_t; +pub type pid_t = __pid_t; +pub type id_t = __id_t; +pub type ssize_t = __ssize_t; +pub type daddr_t = __daddr_t; +pub type caddr_t = __caddr_t; +pub type key_t = __key_t; +pub type clock_t = __clock_t; +pub type clockid_t = __clockid_t; +pub type time_t = __time_t; +pub type timer_t = __timer_t; +pub type ulong = libc::c_ulong; +pub type ushort = libc::c_ushort; +pub type uint = libc::c_uint; +pub type u_int8_t = __uint8_t; +pub type u_int16_t = __uint16_t; +pub type u_int32_t = __uint32_t; +pub type u_int64_t = __uint64_t; +pub type register_t = libc::c_long; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __sigset_t { + pub __val: [libc::c_ulong; 16usize], +} +#[test] +fn bindgen_test_layout___sigset_t() { + assert_eq!( + ::core::mem::size_of::<__sigset_t>(), + 128usize, + concat!("Size of: ", stringify!(__sigset_t)) + ); + assert_eq!( + ::core::mem::align_of::<__sigset_t>(), + 8usize, + concat!("Alignment of ", stringify!(__sigset_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__sigset_t>())).__val as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__sigset_t), + "::", + stringify!(__val) + ) + ); +} +pub type sigset_t = __sigset_t; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct timeval { + pub tv_sec: __time_t, + pub tv_usec: __suseconds_t, +} +#[test] +fn bindgen_test_layout_timeval() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(timeval)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(timeval)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).tv_sec as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(timeval), + "::", + stringify!(tv_sec) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).tv_usec as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(timeval), + "::", + stringify!(tv_usec) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct timespec { + pub tv_sec: __time_t, + pub tv_nsec: __syscall_slong_t, +} +#[test] +fn bindgen_test_layout_timespec() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(timespec)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(timespec)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).tv_sec as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(timespec), + "::", + stringify!(tv_sec) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).tv_nsec as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(timespec), + "::", + stringify!(tv_nsec) + ) + ); +} +pub type suseconds_t = __suseconds_t; +pub type __fd_mask = libc::c_long; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fd_set { + pub __fds_bits: [__fd_mask; 16usize], +} +#[test] +fn bindgen_test_layout_fd_set() { + assert_eq!( + ::core::mem::size_of::(), + 128usize, + concat!("Size of: ", stringify!(fd_set)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(fd_set)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__fds_bits as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(fd_set), + "::", + stringify!(__fds_bits) + ) + ); +} +pub type fd_mask = __fd_mask; +extern "C" { + pub fn select( + __nfds: libc::c_int, + __readfds: *mut fd_set, + __writefds: *mut fd_set, + __exceptfds: *mut fd_set, + __timeout: *mut timeval, + ) -> libc::c_int; +} +extern "C" { + pub fn pselect( + __nfds: libc::c_int, + __readfds: *mut fd_set, + __writefds: *mut fd_set, + __exceptfds: *mut fd_set, + __timeout: *const timespec, + __sigmask: *const __sigset_t, + ) -> libc::c_int; +} +pub type blksize_t = __blksize_t; +pub type blkcnt_t = __blkcnt_t; +pub type fsblkcnt_t = __fsblkcnt_t; +pub type fsfilcnt_t = __fsfilcnt_t; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __pthread_internal_list { + pub __prev: *mut __pthread_internal_list, + pub __next: *mut __pthread_internal_list, +} +#[test] +fn bindgen_test_layout___pthread_internal_list() { + assert_eq!( + ::core::mem::size_of::<__pthread_internal_list>(), + 16usize, + concat!("Size of: ", stringify!(__pthread_internal_list)) + ); + assert_eq!( + ::core::mem::align_of::<__pthread_internal_list>(), + 8usize, + concat!("Alignment of ", stringify!(__pthread_internal_list)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_internal_list>())).__prev as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__pthread_internal_list), + "::", + stringify!(__prev) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_internal_list>())).__next as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(__pthread_internal_list), + "::", + stringify!(__next) + ) + ); +} +pub type __pthread_list_t = __pthread_internal_list; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __pthread_internal_slist { + pub __next: *mut __pthread_internal_slist, +} +#[test] +fn bindgen_test_layout___pthread_internal_slist() { + assert_eq!( + ::core::mem::size_of::<__pthread_internal_slist>(), + 8usize, + concat!("Size of: ", stringify!(__pthread_internal_slist)) + ); + assert_eq!( + ::core::mem::align_of::<__pthread_internal_slist>(), + 8usize, + concat!("Alignment of ", stringify!(__pthread_internal_slist)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_internal_slist>())).__next as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__pthread_internal_slist), + "::", + stringify!(__next) + ) + ); +} +pub type __pthread_slist_t = __pthread_internal_slist; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __pthread_mutex_s { + pub __lock: libc::c_int, + pub __count: libc::c_uint, + pub __owner: libc::c_int, + pub __nusers: libc::c_uint, + pub __kind: libc::c_int, + pub __spins: libc::c_short, + pub __elision: libc::c_short, + pub __list: __pthread_list_t, +} +#[test] +fn bindgen_test_layout___pthread_mutex_s() { + assert_eq!( + ::core::mem::size_of::<__pthread_mutex_s>(), + 40usize, + concat!("Size of: ", stringify!(__pthread_mutex_s)) + ); + assert_eq!( + ::core::mem::align_of::<__pthread_mutex_s>(), + 8usize, + concat!("Alignment of ", stringify!(__pthread_mutex_s)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_mutex_s>())).__lock as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__pthread_mutex_s), + "::", + stringify!(__lock) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_mutex_s>())).__count as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(__pthread_mutex_s), + "::", + stringify!(__count) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_mutex_s>())).__owner as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(__pthread_mutex_s), + "::", + stringify!(__owner) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_mutex_s>())).__nusers as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(__pthread_mutex_s), + "::", + stringify!(__nusers) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_mutex_s>())).__kind as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(__pthread_mutex_s), + "::", + stringify!(__kind) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_mutex_s>())).__spins as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(__pthread_mutex_s), + "::", + stringify!(__spins) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_mutex_s>())).__elision as *const _ as usize }, + 22usize, + concat!( + "Offset of field: ", + stringify!(__pthread_mutex_s), + "::", + stringify!(__elision) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_mutex_s>())).__list as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(__pthread_mutex_s), + "::", + stringify!(__list) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __pthread_rwlock_arch_t { + pub __readers: libc::c_uint, + pub __writers: libc::c_uint, + pub __wrphase_futex: libc::c_uint, + pub __writers_futex: libc::c_uint, + pub __pad3: libc::c_uint, + pub __pad4: libc::c_uint, + pub __cur_writer: libc::c_int, + pub __shared: libc::c_int, + pub __rwelision: libc::c_schar, + pub __pad1: [libc::c_uchar; 7usize], + pub __pad2: libc::c_ulong, + pub __flags: libc::c_uint, +} +#[test] +fn bindgen_test_layout___pthread_rwlock_arch_t() { + assert_eq!( + ::core::mem::size_of::<__pthread_rwlock_arch_t>(), + 56usize, + concat!("Size of: ", stringify!(__pthread_rwlock_arch_t)) + ); + assert_eq!( + ::core::mem::align_of::<__pthread_rwlock_arch_t>(), + 8usize, + concat!("Alignment of ", stringify!(__pthread_rwlock_arch_t)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__readers as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__readers) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__writers as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__writers) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__wrphase_futex as *const _ + as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__wrphase_futex) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__writers_futex as *const _ + as usize + }, + 12usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__writers_futex) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__pad3 as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__pad3) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__pad4 as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__pad4) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__cur_writer as *const _ as usize + }, + 24usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__cur_writer) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__shared as *const _ as usize + }, + 28usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__shared) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__rwelision as *const _ as usize + }, + 32usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__rwelision) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__pad1 as *const _ as usize }, + 33usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__pad1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__pad2 as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__pad2) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_rwlock_arch_t>())).__flags as *const _ as usize + }, + 48usize, + concat!( + "Offset of field: ", + stringify!(__pthread_rwlock_arch_t), + "::", + stringify!(__flags) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __pthread_cond_s { + pub __bindgen_anon_1: __pthread_cond_s__bindgen_ty_1, + pub __bindgen_anon_2: __pthread_cond_s__bindgen_ty_2, + pub __g_refs: [libc::c_uint; 2usize], + pub __g_size: [libc::c_uint; 2usize], + pub __g1_orig_size: libc::c_uint, + pub __wrefs: libc::c_uint, + pub __g_signals: [libc::c_uint; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union __pthread_cond_s__bindgen_ty_1 { + pub __wseq: libc::c_ulonglong, + pub __wseq32: __pthread_cond_s__bindgen_ty_1__bindgen_ty_1, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 { + pub __low: libc::c_uint, + pub __high: libc::c_uint, +} +#[test] +fn bindgen_test_layout___pthread_cond_s__bindgen_ty_1__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::<__pthread_cond_s__bindgen_ty_1__bindgen_ty_1>(), + 8usize, + concat!( + "Size of: ", + stringify!(__pthread_cond_s__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::<__pthread_cond_s__bindgen_ty_1__bindgen_ty_1>(), + 4usize, + concat!( + "Alignment of ", + stringify!(__pthread_cond_s__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_cond_s__bindgen_ty_1__bindgen_ty_1>())).__low + as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(__low) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_cond_s__bindgen_ty_1__bindgen_ty_1>())).__high + as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(__high) + ) + ); +} +#[test] +fn bindgen_test_layout___pthread_cond_s__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::<__pthread_cond_s__bindgen_ty_1>(), + 8usize, + concat!("Size of: ", stringify!(__pthread_cond_s__bindgen_ty_1)) + ); + assert_eq!( + ::core::mem::align_of::<__pthread_cond_s__bindgen_ty_1>(), + 8usize, + concat!("Alignment of ", stringify!(__pthread_cond_s__bindgen_ty_1)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_cond_s__bindgen_ty_1>())).__wseq as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s__bindgen_ty_1), + "::", + stringify!(__wseq) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_cond_s__bindgen_ty_1>())).__wseq32 as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s__bindgen_ty_1), + "::", + stringify!(__wseq32) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union __pthread_cond_s__bindgen_ty_2 { + pub __g1_start: libc::c_ulonglong, + pub __g1_start32: __pthread_cond_s__bindgen_ty_2__bindgen_ty_1, + _bindgen_union_align: u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 { + pub __low: libc::c_uint, + pub __high: libc::c_uint, +} +#[test] +fn bindgen_test_layout___pthread_cond_s__bindgen_ty_2__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::<__pthread_cond_s__bindgen_ty_2__bindgen_ty_1>(), + 8usize, + concat!( + "Size of: ", + stringify!(__pthread_cond_s__bindgen_ty_2__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::<__pthread_cond_s__bindgen_ty_2__bindgen_ty_1>(), + 4usize, + concat!( + "Alignment of ", + stringify!(__pthread_cond_s__bindgen_ty_2__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_cond_s__bindgen_ty_2__bindgen_ty_1>())).__low + as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s__bindgen_ty_2__bindgen_ty_1), + "::", + stringify!(__low) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_cond_s__bindgen_ty_2__bindgen_ty_1>())).__high + as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s__bindgen_ty_2__bindgen_ty_1), + "::", + stringify!(__high) + ) + ); +} +#[test] +fn bindgen_test_layout___pthread_cond_s__bindgen_ty_2() { + assert_eq!( + ::core::mem::size_of::<__pthread_cond_s__bindgen_ty_2>(), + 8usize, + concat!("Size of: ", stringify!(__pthread_cond_s__bindgen_ty_2)) + ); + assert_eq!( + ::core::mem::align_of::<__pthread_cond_s__bindgen_ty_2>(), + 8usize, + concat!("Alignment of ", stringify!(__pthread_cond_s__bindgen_ty_2)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_cond_s__bindgen_ty_2>())).__g1_start as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s__bindgen_ty_2), + "::", + stringify!(__g1_start) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_cond_s__bindgen_ty_2>())).__g1_start32 as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s__bindgen_ty_2), + "::", + stringify!(__g1_start32) + ) + ); +} +#[test] +fn bindgen_test_layout___pthread_cond_s() { + assert_eq!( + ::core::mem::size_of::<__pthread_cond_s>(), + 48usize, + concat!("Size of: ", stringify!(__pthread_cond_s)) + ); + assert_eq!( + ::core::mem::align_of::<__pthread_cond_s>(), + 8usize, + concat!("Alignment of ", stringify!(__pthread_cond_s)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_cond_s>())).__g_refs as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s), + "::", + stringify!(__g_refs) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_cond_s>())).__g_size as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s), + "::", + stringify!(__g_size) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__pthread_cond_s>())).__g1_orig_size as *const _ as usize + }, + 32usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s), + "::", + stringify!(__g1_orig_size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_cond_s>())).__wrefs as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s), + "::", + stringify!(__wrefs) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__pthread_cond_s>())).__g_signals as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(__pthread_cond_s), + "::", + stringify!(__g_signals) + ) + ); +} +pub type __tss_t = libc::c_uint; +pub type __thrd_t = libc::c_ulong; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __once_flag { + pub __data: libc::c_int, +} +#[test] +fn bindgen_test_layout___once_flag() { + assert_eq!( + ::core::mem::size_of::<__once_flag>(), + 4usize, + concat!("Size of: ", stringify!(__once_flag)) + ); + assert_eq!( + ::core::mem::align_of::<__once_flag>(), + 4usize, + concat!("Alignment of ", stringify!(__once_flag)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__once_flag>())).__data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__once_flag), + "::", + stringify!(__data) + ) + ); +} +pub type pthread_t = libc::c_ulong; +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_mutexattr_t { + pub __size: [libc::c_char; 4usize], + pub __align: libc::c_int, + _bindgen_union_align: u32, +} +#[test] +fn bindgen_test_layout_pthread_mutexattr_t() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(pthread_mutexattr_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(pthread_mutexattr_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_mutexattr_t), + "::", + stringify!(__size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__align as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_mutexattr_t), + "::", + stringify!(__align) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_condattr_t { + pub __size: [libc::c_char; 4usize], + pub __align: libc::c_int, + _bindgen_union_align: u32, +} +#[test] +fn bindgen_test_layout_pthread_condattr_t() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(pthread_condattr_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(pthread_condattr_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_condattr_t), + "::", + stringify!(__size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__align as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_condattr_t), + "::", + stringify!(__align) + ) + ); +} +pub type pthread_key_t = libc::c_uint; +pub type pthread_once_t = libc::c_int; +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_attr_t { + pub __size: [libc::c_char; 56usize], + pub __align: libc::c_long, + _bindgen_union_align: [u64; 7usize], +} +#[test] +fn bindgen_test_layout_pthread_attr_t() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(pthread_attr_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(pthread_attr_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_attr_t), + "::", + stringify!(__size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__align as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_attr_t), + "::", + stringify!(__align) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_mutex_t { + pub __data: __pthread_mutex_s, + pub __size: [libc::c_char; 40usize], + pub __align: libc::c_long, + _bindgen_union_align: [u64; 5usize], +} +#[test] +fn bindgen_test_layout_pthread_mutex_t() { + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(pthread_mutex_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(pthread_mutex_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_mutex_t), + "::", + stringify!(__data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_mutex_t), + "::", + stringify!(__size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__align as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_mutex_t), + "::", + stringify!(__align) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_cond_t { + pub __data: __pthread_cond_s, + pub __size: [libc::c_char; 48usize], + pub __align: libc::c_longlong, + _bindgen_union_align: [u64; 6usize], +} +#[test] +fn bindgen_test_layout_pthread_cond_t() { + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(pthread_cond_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(pthread_cond_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_cond_t), + "::", + stringify!(__data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_cond_t), + "::", + stringify!(__size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__align as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_cond_t), + "::", + stringify!(__align) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_rwlock_t { + pub __data: __pthread_rwlock_arch_t, + pub __size: [libc::c_char; 56usize], + pub __align: libc::c_long, + _bindgen_union_align: [u64; 7usize], +} +#[test] +fn bindgen_test_layout_pthread_rwlock_t() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(pthread_rwlock_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(pthread_rwlock_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_rwlock_t), + "::", + stringify!(__data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_rwlock_t), + "::", + stringify!(__size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__align as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_rwlock_t), + "::", + stringify!(__align) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_rwlockattr_t { + pub __size: [libc::c_char; 8usize], + pub __align: libc::c_long, + _bindgen_union_align: u64, +} +#[test] +fn bindgen_test_layout_pthread_rwlockattr_t() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(pthread_rwlockattr_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(pthread_rwlockattr_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_rwlockattr_t), + "::", + stringify!(__size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__align as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_rwlockattr_t), + "::", + stringify!(__align) + ) + ); +} +pub type pthread_spinlock_t = libc::c_int; +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_barrier_t { + pub __size: [libc::c_char; 32usize], + pub __align: libc::c_long, + _bindgen_union_align: [u64; 4usize], +} +#[test] +fn bindgen_test_layout_pthread_barrier_t() { + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(pthread_barrier_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(pthread_barrier_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_barrier_t), + "::", + stringify!(__size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__align as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_barrier_t), + "::", + stringify!(__align) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_barrierattr_t { + pub __size: [libc::c_char; 4usize], + pub __align: libc::c_int, + _bindgen_union_align: u32, +} +#[test] +fn bindgen_test_layout_pthread_barrierattr_t() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(pthread_barrierattr_t)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(pthread_barrierattr_t)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_barrierattr_t), + "::", + stringify!(__size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__align as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(pthread_barrierattr_t), + "::", + stringify!(__align) + ) + ); +} +extern "C" { + pub fn random() -> libc::c_long; +} +extern "C" { + pub fn srandom(__seed: libc::c_uint); +} +extern "C" { + pub fn initstate( + __seed: libc::c_uint, + __statebuf: *mut libc::c_char, + __statelen: size_t, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn setstate(__statebuf: *mut libc::c_char) -> *mut libc::c_char; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct random_data { + pub fptr: *mut i32, + pub rptr: *mut i32, + pub state: *mut i32, + pub rand_type: libc::c_int, + pub rand_deg: libc::c_int, + pub rand_sep: libc::c_int, + pub end_ptr: *mut i32, +} +#[test] +fn bindgen_test_layout_random_data() { + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(random_data)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(random_data)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fptr as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(random_data), + "::", + stringify!(fptr) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).rptr as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(random_data), + "::", + stringify!(rptr) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(random_data), + "::", + stringify!(state) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).rand_type as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(random_data), + "::", + stringify!(rand_type) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).rand_deg as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(random_data), + "::", + stringify!(rand_deg) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).rand_sep as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(random_data), + "::", + stringify!(rand_sep) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).end_ptr as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(random_data), + "::", + stringify!(end_ptr) + ) + ); +} +extern "C" { + pub fn random_r(__buf: *mut random_data, __result: *mut i32) -> libc::c_int; +} +extern "C" { + pub fn srandom_r(__seed: libc::c_uint, __buf: *mut random_data) -> libc::c_int; +} +extern "C" { + pub fn initstate_r( + __seed: libc::c_uint, + __statebuf: *mut libc::c_char, + __statelen: size_t, + __buf: *mut random_data, + ) -> libc::c_int; +} +extern "C" { + pub fn setstate_r(__statebuf: *mut libc::c_char, __buf: *mut random_data) -> libc::c_int; +} +extern "C" { + pub fn rand() -> libc::c_int; +} +extern "C" { + pub fn srand(__seed: libc::c_uint); +} +extern "C" { + pub fn rand_r(__seed: *mut libc::c_uint) -> libc::c_int; +} +extern "C" { + pub fn drand48() -> f64; +} +extern "C" { + pub fn erand48(__xsubi: *mut libc::c_ushort) -> f64; +} +extern "C" { + pub fn lrand48() -> libc::c_long; +} +extern "C" { + pub fn nrand48(__xsubi: *mut libc::c_ushort) -> libc::c_long; +} +extern "C" { + pub fn mrand48() -> libc::c_long; +} +extern "C" { + pub fn jrand48(__xsubi: *mut libc::c_ushort) -> libc::c_long; +} +extern "C" { + pub fn srand48(__seedval: libc::c_long); +} +extern "C" { + pub fn seed48(__seed16v: *mut libc::c_ushort) -> *mut libc::c_ushort; +} +extern "C" { + pub fn lcong48(__param: *mut libc::c_ushort); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct drand48_data { + pub __x: [libc::c_ushort; 3usize], + pub __old_x: [libc::c_ushort; 3usize], + pub __c: libc::c_ushort, + pub __init: libc::c_ushort, + pub __a: libc::c_ulonglong, +} +#[test] +fn bindgen_test_layout_drand48_data() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(drand48_data)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(drand48_data)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__x as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(drand48_data), + "::", + stringify!(__x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__old_x as *const _ as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(drand48_data), + "::", + stringify!(__old_x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__c as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(drand48_data), + "::", + stringify!(__c) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__init as *const _ as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(drand48_data), + "::", + stringify!(__init) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).__a as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(drand48_data), + "::", + stringify!(__a) + ) + ); +} +extern "C" { + pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64) -> libc::c_int; +} +extern "C" { + pub fn erand48_r( + __xsubi: *mut libc::c_ushort, + __buffer: *mut drand48_data, + __result: *mut f64, + ) -> libc::c_int; +} +extern "C" { + pub fn lrand48_r(__buffer: *mut drand48_data, __result: *mut libc::c_long) -> libc::c_int; +} +extern "C" { + pub fn nrand48_r( + __xsubi: *mut libc::c_ushort, + __buffer: *mut drand48_data, + __result: *mut libc::c_long, + ) -> libc::c_int; +} +extern "C" { + pub fn mrand48_r(__buffer: *mut drand48_data, __result: *mut libc::c_long) -> libc::c_int; +} +extern "C" { + pub fn jrand48_r( + __xsubi: *mut libc::c_ushort, + __buffer: *mut drand48_data, + __result: *mut libc::c_long, + ) -> libc::c_int; +} +extern "C" { + pub fn srand48_r(__seedval: libc::c_long, __buffer: *mut drand48_data) -> libc::c_int; +} +extern "C" { + pub fn seed48_r(__seed16v: *mut libc::c_ushort, __buffer: *mut drand48_data) -> libc::c_int; +} +extern "C" { + pub fn lcong48_r(__param: *mut libc::c_ushort, __buffer: *mut drand48_data) -> libc::c_int; +} +extern "C" { + pub fn malloc(__size: libc::c_ulong) -> *mut libc::c_void; +} +extern "C" { + pub fn calloc(__nmemb: libc::c_ulong, __size: libc::c_ulong) -> *mut libc::c_void; +} +extern "C" { + pub fn realloc(__ptr: *mut libc::c_void, __size: libc::c_ulong) -> *mut libc::c_void; +} +extern "C" { + pub fn reallocarray( + __ptr: *mut libc::c_void, + __nmemb: size_t, + __size: size_t, + ) -> *mut libc::c_void; +} +extern "C" { + pub fn free(__ptr: *mut libc::c_void); +} +extern "C" { + pub fn alloca(__size: libc::c_ulong) -> *mut libc::c_void; +} +extern "C" { + pub fn valloc(__size: size_t) -> *mut libc::c_void; +} +extern "C" { + pub fn posix_memalign( + __memptr: *mut *mut libc::c_void, + __alignment: size_t, + __size: size_t, + ) -> libc::c_int; +} +extern "C" { + pub fn aligned_alloc(__alignment: size_t, __size: size_t) -> *mut libc::c_void; +} +extern "C" { + pub fn abort(); +} +extern "C" { + pub fn atexit(__func: ::core::option::Option) -> libc::c_int; +} +extern "C" { + pub fn at_quick_exit(__func: ::core::option::Option) -> libc::c_int; +} +extern "C" { + pub fn on_exit( + __func: ::core::option::Option< + unsafe extern "C" fn(__status: libc::c_int, __arg: *mut libc::c_void), + >, + __arg: *mut libc::c_void, + ) -> libc::c_int; +} +extern "C" { + pub fn exit(__status: libc::c_int); +} +extern "C" { + pub fn quick_exit(__status: libc::c_int); +} +extern "C" { + pub fn _Exit(__status: libc::c_int); +} +extern "C" { + pub fn getenv(__name: *const libc::c_char) -> *mut libc::c_char; +} +extern "C" { + pub fn putenv(__string: *mut libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn setenv( + __name: *const libc::c_char, + __value: *const libc::c_char, + __replace: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn unsetenv(__name: *const libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn clearenv() -> libc::c_int; +} +extern "C" { + pub fn mktemp(__template: *mut libc::c_char) -> *mut libc::c_char; +} +extern "C" { + pub fn mkstemp(__template: *mut libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn mkstemps(__template: *mut libc::c_char, __suffixlen: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn mkdtemp(__template: *mut libc::c_char) -> *mut libc::c_char; +} +extern "C" { + pub fn system(__command: *const libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn realpath( + __name: *const libc::c_char, + __resolved: *mut libc::c_char, + ) -> *mut libc::c_char; +} +pub type __compar_fn_t = ::core::option::Option< + unsafe extern "C" fn(arg1: *const libc::c_void, arg2: *const libc::c_void) -> libc::c_int, +>; +extern "C" { + pub fn bsearch( + __key: *const libc::c_void, + __base: *const libc::c_void, + __nmemb: size_t, + __size: size_t, + __compar: __compar_fn_t, + ) -> *mut libc::c_void; +} +extern "C" { + pub fn qsort( + __base: *mut libc::c_void, + __nmemb: size_t, + __size: size_t, + __compar: __compar_fn_t, + ); +} +extern "C" { + pub fn abs(__x: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn labs(__x: libc::c_long) -> libc::c_long; +} +extern "C" { + pub fn llabs(__x: libc::c_longlong) -> libc::c_longlong; +} +extern "C" { + pub fn div(__numer: libc::c_int, __denom: libc::c_int) -> div_t; +} +extern "C" { + pub fn ldiv(__numer: libc::c_long, __denom: libc::c_long) -> ldiv_t; +} +extern "C" { + pub fn lldiv(__numer: libc::c_longlong, __denom: libc::c_longlong) -> lldiv_t; +} +extern "C" { + pub fn ecvt( + __value: f64, + __ndigit: libc::c_int, + __decpt: *mut libc::c_int, + __sign: *mut libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn fcvt( + __value: f64, + __ndigit: libc::c_int, + __decpt: *mut libc::c_int, + __sign: *mut libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn gcvt(__value: f64, __ndigit: libc::c_int, __buf: *mut libc::c_char) + -> *mut libc::c_char; +} +extern "C" { + pub fn qecvt( + __value: u128, + __ndigit: libc::c_int, + __decpt: *mut libc::c_int, + __sign: *mut libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn qfcvt( + __value: u128, + __ndigit: libc::c_int, + __decpt: *mut libc::c_int, + __sign: *mut libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn qgcvt( + __value: u128, + __ndigit: libc::c_int, + __buf: *mut libc::c_char, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn ecvt_r( + __value: f64, + __ndigit: libc::c_int, + __decpt: *mut libc::c_int, + __sign: *mut libc::c_int, + __buf: *mut libc::c_char, + __len: size_t, + ) -> libc::c_int; +} +extern "C" { + pub fn fcvt_r( + __value: f64, + __ndigit: libc::c_int, + __decpt: *mut libc::c_int, + __sign: *mut libc::c_int, + __buf: *mut libc::c_char, + __len: size_t, + ) -> libc::c_int; +} +extern "C" { + pub fn qecvt_r( + __value: u128, + __ndigit: libc::c_int, + __decpt: *mut libc::c_int, + __sign: *mut libc::c_int, + __buf: *mut libc::c_char, + __len: size_t, + ) -> libc::c_int; +} +extern "C" { + pub fn qfcvt_r( + __value: u128, + __ndigit: libc::c_int, + __decpt: *mut libc::c_int, + __sign: *mut libc::c_int, + __buf: *mut libc::c_char, + __len: size_t, + ) -> libc::c_int; +} +extern "C" { + pub fn mblen(__s: *const libc::c_char, __n: size_t) -> libc::c_int; +} +extern "C" { + pub fn mbtowc(__pwc: *mut wchar_t, __s: *const libc::c_char, __n: size_t) -> libc::c_int; +} +extern "C" { + pub fn wctomb(__s: *mut libc::c_char, __wchar: wchar_t) -> libc::c_int; +} +extern "C" { + pub fn mbstowcs(__pwcs: *mut wchar_t, __s: *const libc::c_char, __n: size_t) -> size_t; +} +extern "C" { + pub fn wcstombs(__s: *mut libc::c_char, __pwcs: *const wchar_t, __n: size_t) -> size_t; +} +extern "C" { + pub fn rpmatch(__response: *const libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn getsubopt( + __optionp: *mut *mut libc::c_char, + __tokens: *const *mut libc::c_char, + __valuep: *mut *mut libc::c_char, + ) -> libc::c_int; +} +extern "C" { + pub fn getloadavg(__loadavg: *mut f64, __nelem: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn _mm_sfence(); +} +extern "C" { + pub fn _mm_getcsr() -> libc::c_uint; +} +extern "C" { + pub fn _mm_setcsr(__i: libc::c_uint); +} +pub type __m128d = [f64; 2usize]; +pub type __m128i = [libc::c_longlong; 2usize]; +pub type __m128d_u = [f64; 2usize]; +pub type __m128i_u = [libc::c_longlong; 2usize]; +pub type __v2df = [f64; 2usize]; +pub type __v2di = [libc::c_longlong; 2usize]; +pub type __v8hi = [libc::c_short; 8usize]; +pub type __v16qi = [libc::c_char; 16usize]; +pub type __v2du = [libc::c_ulonglong; 2usize]; +pub type __v8hu = [libc::c_ushort; 8usize]; +pub type __v16qu = [libc::c_uchar; 16usize]; +pub type __v16qs = [libc::c_schar; 16usize]; +extern "C" { + pub fn _mm_clflush(__p: *const libc::c_void); +} +extern "C" { + pub fn _mm_lfence(); +} +extern "C" { + pub fn _mm_mfence(); +} +extern "C" { + pub fn _mm_pause(); +} +extern "C" { + #[doc = " This function returns the number of CPU cores available."] + pub fn SDL_GetCPUCount() -> libc::c_int; +} +extern "C" { + #[doc = " This function returns the L1 cache line size of the CPU"] + #[doc = ""] + #[doc = " This is useful for determining multi-threaded structure padding"] + #[doc = " or SIMD prefetch sizes."] + pub fn SDL_GetCPUCacheLineSize() -> libc::c_int; +} +extern "C" { + #[doc = " This function returns true if the CPU has the RDTSC instruction."] + pub fn SDL_HasRDTSC() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has AltiVec features."] + pub fn SDL_HasAltiVec() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has MMX features."] + pub fn SDL_HasMMX() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has 3DNow! features."] + pub fn SDL_Has3DNow() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has SSE features."] + pub fn SDL_HasSSE() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has SSE2 features."] + pub fn SDL_HasSSE2() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has SSE3 features."] + pub fn SDL_HasSSE3() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has SSE4.1 features."] + pub fn SDL_HasSSE41() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has SSE4.2 features."] + pub fn SDL_HasSSE42() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has AVX features."] + pub fn SDL_HasAVX() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has AVX2 features."] + pub fn SDL_HasAVX2() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has AVX-512F (foundation) features."] + pub fn SDL_HasAVX512F() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has ARM SIMD (ARMv6) features."] + pub fn SDL_HasARMSIMD() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns true if the CPU has NEON (ARM SIMD) features."] + pub fn SDL_HasNEON() -> SDL_bool; +} +extern "C" { + #[doc = " This function returns the amount of RAM configured in the system, in MB."] + pub fn SDL_GetSystemRAM() -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Report the alignment this system needs for SIMD allocations."] + #[doc = ""] + #[doc = " This will return the minimum number of bytes to which a pointer must be"] + #[doc = " aligned to be compatible with SIMD instructions on the current machine."] + #[doc = " For example, if the machine supports SSE only, it will return 16, but if"] + #[doc = " it supports AVX-512F, it'll return 64 (etc). This only reports values for"] + #[doc = " instruction sets SDL knows about, so if your SDL build doesn't have"] + #[doc = " SDL_HasAVX512F(), then it might return 16 for the SSE support it sees and"] + #[doc = " not 64 for the AVX-512 instructions that exist but SDL doesn't know about."] + #[doc = " Plan accordingly."] + pub fn SDL_SIMDGetAlignment() -> size_t; +} +extern "C" { + #[doc = " \\brief Allocate memory in a SIMD-friendly way."] + #[doc = ""] + #[doc = " This will allocate a block of memory that is suitable for use with SIMD"] + #[doc = " instructions. Specifically, it will be properly aligned and padded for"] + #[doc = " the system's supported vector instructions."] + #[doc = ""] + #[doc = " The memory returned will be padded such that it is safe to read or write"] + #[doc = " an incomplete vector at the end of the memory block. This can be useful"] + #[doc = " so you don't have to drop back to a scalar fallback at the end of your"] + #[doc = " SIMD processing loop to deal with the final elements without overflowing"] + #[doc = " the allocated buffer."] + #[doc = ""] + #[doc = " You must free this memory with SDL_FreeSIMD(), not free() or SDL_free()"] + #[doc = " or delete[], etc."] + #[doc = ""] + #[doc = " Note that SDL will only deal with SIMD instruction sets it is aware of;"] + #[doc = " for example, SDL 2.0.8 knows that SSE wants 16-byte vectors"] + #[doc = " (SDL_HasSSE()), and AVX2 wants 32 bytes (SDL_HasAVX2()), but doesn't"] + #[doc = " know that AVX-512 wants 64. To be clear: if you can't decide to use an"] + #[doc = " instruction set with an SDL_Has*() function, don't use that instruction"] + #[doc = " set with memory allocated through here."] + #[doc = ""] + #[doc = " SDL_AllocSIMD(0) will return a non-NULL pointer, assuming the system isn't"] + #[doc = " out of memory."] + #[doc = ""] + #[doc = " \\param len The length, in bytes, of the block to allocated. The actual"] + #[doc = " allocated block might be larger due to padding, etc."] + #[doc = " \\return Pointer to newly-allocated block, NULL if out of memory."] + #[doc = ""] + #[doc = " \\sa SDL_SIMDAlignment"] + #[doc = " \\sa SDL_SIMDRealloc"] + #[doc = " \\sa SDL_SIMDFree"] + pub fn SDL_SIMDAlloc(len: size_t) -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Reallocate memory obtained from SDL_SIMDAlloc"] + #[doc = ""] + #[doc = " It is not valid to use this function on a pointer from anything but"] + #[doc = " SDL_SIMDAlloc(). It can't be used on pointers from malloc, realloc,"] + #[doc = " SDL_malloc, memalign, new[], etc."] + #[doc = ""] + #[doc = " \\param mem The pointer obtained from SDL_SIMDAlloc. This function also"] + #[doc = " accepts NULL, at which point this function is the same as"] + #[doc = " calling SDL_realloc with a NULL pointer."] + #[doc = " \\param len The length, in bytes, of the block to allocated. The actual"] + #[doc = " allocated block might be larger due to padding, etc. Passing 0"] + #[doc = " will return a non-NULL pointer, assuming the system isn't out of"] + #[doc = " memory."] + #[doc = " \\return Pointer to newly-reallocated block, NULL if out of memory."] + #[doc = ""] + #[doc = " \\sa SDL_SIMDAlignment"] + #[doc = " \\sa SDL_SIMDAlloc"] + #[doc = " \\sa SDL_SIMDFree"] + pub fn SDL_SIMDRealloc(mem: *mut libc::c_void, len: size_t) -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Deallocate memory obtained from SDL_SIMDAlloc"] + #[doc = ""] + #[doc = " It is not valid to use this function on a pointer from anything but"] + #[doc = " SDL_SIMDAlloc(). It can't be used on pointers from malloc, realloc,"] + #[doc = " SDL_malloc, memalign, new[], etc."] + #[doc = ""] + #[doc = " However, SDL_SIMDFree(NULL) is a legal no-op."] + #[doc = ""] + #[doc = " \\sa SDL_SIMDAlloc"] + #[doc = " \\sa SDL_SIMDRealloc"] + pub fn SDL_SIMDFree(ptr: *mut libc::c_void); +} +#[repr(u32)] +#[doc = " Pixel type."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_PixelType { + SDL_PIXELTYPE_UNKNOWN = 0, + SDL_PIXELTYPE_INDEX1 = 1, + SDL_PIXELTYPE_INDEX4 = 2, + SDL_PIXELTYPE_INDEX8 = 3, + SDL_PIXELTYPE_PACKED8 = 4, + SDL_PIXELTYPE_PACKED16 = 5, + SDL_PIXELTYPE_PACKED32 = 6, + SDL_PIXELTYPE_ARRAYU8 = 7, + SDL_PIXELTYPE_ARRAYU16 = 8, + SDL_PIXELTYPE_ARRAYU32 = 9, + SDL_PIXELTYPE_ARRAYF16 = 10, + SDL_PIXELTYPE_ARRAYF32 = 11, +} +#[repr(u32)] +#[doc = " Bitmap pixel order, high bit -> low bit."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_BitmapOrder { + SDL_BITMAPORDER_NONE = 0, + SDL_BITMAPORDER_4321 = 1, + SDL_BITMAPORDER_1234 = 2, +} +#[repr(u32)] +#[doc = " Packed component order, high bit -> low bit."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_PackedOrder { + SDL_PACKEDORDER_NONE = 0, + SDL_PACKEDORDER_XRGB = 1, + SDL_PACKEDORDER_RGBX = 2, + SDL_PACKEDORDER_ARGB = 3, + SDL_PACKEDORDER_RGBA = 4, + SDL_PACKEDORDER_XBGR = 5, + SDL_PACKEDORDER_BGRX = 6, + SDL_PACKEDORDER_ABGR = 7, + SDL_PACKEDORDER_BGRA = 8, +} +#[repr(u32)] +#[doc = " Array component order, low byte -> high byte."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_ArrayOrder { + SDL_ARRAYORDER_NONE = 0, + SDL_ARRAYORDER_RGB = 1, + SDL_ARRAYORDER_RGBA = 2, + SDL_ARRAYORDER_ARGB = 3, + SDL_ARRAYORDER_BGR = 4, + SDL_ARRAYORDER_BGRA = 5, + SDL_ARRAYORDER_ABGR = 6, +} +#[repr(u32)] +#[doc = " Packed component layout."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_PackedLayout { + SDL_PACKEDLAYOUT_NONE = 0, + SDL_PACKEDLAYOUT_332 = 1, + SDL_PACKEDLAYOUT_4444 = 2, + SDL_PACKEDLAYOUT_1555 = 3, + SDL_PACKEDLAYOUT_5551 = 4, + SDL_PACKEDLAYOUT_565 = 5, + SDL_PACKEDLAYOUT_8888 = 6, + SDL_PACKEDLAYOUT_2101010 = 7, + SDL_PACKEDLAYOUT_1010102 = 8, +} +impl SDL_PixelFormatEnum { + pub const SDL_PIXELFORMAT_RGB444: SDL_PixelFormatEnum = + SDL_PixelFormatEnum::SDL_PIXELFORMAT_XRGB4444; +} +impl SDL_PixelFormatEnum { + pub const SDL_PIXELFORMAT_BGR444: SDL_PixelFormatEnum = + SDL_PixelFormatEnum::SDL_PIXELFORMAT_XBGR4444; +} +impl SDL_PixelFormatEnum { + pub const SDL_PIXELFORMAT_RGB555: SDL_PixelFormatEnum = + SDL_PixelFormatEnum::SDL_PIXELFORMAT_XRGB1555; +} +impl SDL_PixelFormatEnum { + pub const SDL_PIXELFORMAT_BGR555: SDL_PixelFormatEnum = + SDL_PixelFormatEnum::SDL_PIXELFORMAT_XBGR1555; +} +impl SDL_PixelFormatEnum { + pub const SDL_PIXELFORMAT_RGB888: SDL_PixelFormatEnum = + SDL_PixelFormatEnum::SDL_PIXELFORMAT_XRGB8888; +} +impl SDL_PixelFormatEnum { + pub const SDL_PIXELFORMAT_BGR888: SDL_PixelFormatEnum = + SDL_PixelFormatEnum::SDL_PIXELFORMAT_XBGR8888; +} +impl SDL_PixelFormatEnum { + pub const SDL_PIXELFORMAT_RGBA32: SDL_PixelFormatEnum = + SDL_PixelFormatEnum::SDL_PIXELFORMAT_ABGR8888; +} +impl SDL_PixelFormatEnum { + pub const SDL_PIXELFORMAT_ARGB32: SDL_PixelFormatEnum = + SDL_PixelFormatEnum::SDL_PIXELFORMAT_BGRA8888; +} +impl SDL_PixelFormatEnum { + pub const SDL_PIXELFORMAT_BGRA32: SDL_PixelFormatEnum = + SDL_PixelFormatEnum::SDL_PIXELFORMAT_ARGB8888; +} +impl SDL_PixelFormatEnum { + pub const SDL_PIXELFORMAT_ABGR32: SDL_PixelFormatEnum = + SDL_PixelFormatEnum::SDL_PIXELFORMAT_RGBA8888; +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_PixelFormatEnum { + SDL_PIXELFORMAT_UNKNOWN = 0, + SDL_PIXELFORMAT_INDEX1LSB = 286261504, + SDL_PIXELFORMAT_INDEX1MSB = 287310080, + SDL_PIXELFORMAT_INDEX4LSB = 303039488, + SDL_PIXELFORMAT_INDEX4MSB = 304088064, + SDL_PIXELFORMAT_INDEX8 = 318769153, + SDL_PIXELFORMAT_RGB332 = 336660481, + SDL_PIXELFORMAT_XRGB4444 = 353504258, + SDL_PIXELFORMAT_XBGR4444 = 357698562, + SDL_PIXELFORMAT_XRGB1555 = 353570562, + SDL_PIXELFORMAT_XBGR1555 = 357764866, + SDL_PIXELFORMAT_ARGB4444 = 355602434, + SDL_PIXELFORMAT_RGBA4444 = 356651010, + SDL_PIXELFORMAT_ABGR4444 = 359796738, + SDL_PIXELFORMAT_BGRA4444 = 360845314, + SDL_PIXELFORMAT_ARGB1555 = 355667970, + SDL_PIXELFORMAT_RGBA5551 = 356782082, + SDL_PIXELFORMAT_ABGR1555 = 359862274, + SDL_PIXELFORMAT_BGRA5551 = 360976386, + SDL_PIXELFORMAT_RGB565 = 353701890, + SDL_PIXELFORMAT_BGR565 = 357896194, + SDL_PIXELFORMAT_RGB24 = 386930691, + SDL_PIXELFORMAT_BGR24 = 390076419, + SDL_PIXELFORMAT_XRGB8888 = 370546692, + SDL_PIXELFORMAT_RGBX8888 = 371595268, + SDL_PIXELFORMAT_XBGR8888 = 374740996, + SDL_PIXELFORMAT_BGRX8888 = 375789572, + SDL_PIXELFORMAT_ARGB8888 = 372645892, + SDL_PIXELFORMAT_RGBA8888 = 373694468, + SDL_PIXELFORMAT_ABGR8888 = 376840196, + SDL_PIXELFORMAT_BGRA8888 = 377888772, + SDL_PIXELFORMAT_ARGB2101010 = 372711428, + #[doc = "< Planar mode: Y + V + U (3 planes)"] + SDL_PIXELFORMAT_YV12 = 842094169, + #[doc = "< Planar mode: Y + U + V (3 planes)"] + SDL_PIXELFORMAT_IYUV = 1448433993, + #[doc = "< Packed mode: Y0+U0+Y1+V0 (1 plane)"] + SDL_PIXELFORMAT_YUY2 = 844715353, + #[doc = "< Packed mode: U0+Y0+V0+Y1 (1 plane)"] + SDL_PIXELFORMAT_UYVY = 1498831189, + #[doc = "< Packed mode: Y0+V0+Y1+U0 (1 plane)"] + SDL_PIXELFORMAT_YVYU = 1431918169, + #[doc = "< Planar mode: Y + U/V interleaved (2 planes)"] + SDL_PIXELFORMAT_NV12 = 842094158, + #[doc = "< Planar mode: Y + V/U interleaved (2 planes)"] + SDL_PIXELFORMAT_NV21 = 825382478, + #[doc = "< Android video texture format"] + SDL_PIXELFORMAT_EXTERNAL_OES = 542328143, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Color { + pub r: Uint8, + pub g: Uint8, + pub b: Uint8, + pub a: Uint8, +} +#[test] +fn bindgen_test_layout_SDL_Color() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(SDL_Color)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(SDL_Color)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).r as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Color), + "::", + stringify!(r) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).g as *const _ as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(SDL_Color), + "::", + stringify!(g) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).b as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(SDL_Color), + "::", + stringify!(b) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).a as *const _ as usize }, + 3usize, + concat!( + "Offset of field: ", + stringify!(SDL_Color), + "::", + stringify!(a) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Palette { + pub ncolors: libc::c_int, + pub colors: *mut SDL_Color, + pub version: Uint32, + pub refcount: libc::c_int, +} +#[test] +fn bindgen_test_layout_SDL_Palette() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(SDL_Palette)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_Palette)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ncolors as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Palette), + "::", + stringify!(ncolors) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).colors as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_Palette), + "::", + stringify!(colors) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).version as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_Palette), + "::", + stringify!(version) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).refcount as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_Palette), + "::", + stringify!(refcount) + ) + ); +} +#[doc = " \\note Everything in the pixel format structure is read-only."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_PixelFormat { + pub format: Uint32, + pub palette: *mut SDL_Palette, + pub BitsPerPixel: Uint8, + pub BytesPerPixel: Uint8, + pub padding: [Uint8; 2usize], + pub Rmask: Uint32, + pub Gmask: Uint32, + pub Bmask: Uint32, + pub Amask: Uint32, + pub Rloss: Uint8, + pub Gloss: Uint8, + pub Bloss: Uint8, + pub Aloss: Uint8, + pub Rshift: Uint8, + pub Gshift: Uint8, + pub Bshift: Uint8, + pub Ashift: Uint8, + pub refcount: libc::c_int, + pub next: *mut SDL_PixelFormat, +} +#[test] +fn bindgen_test_layout_SDL_PixelFormat() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(SDL_PixelFormat)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_PixelFormat)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).format as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(format) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).palette as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(palette) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).BitsPerPixel as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(BitsPerPixel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).BytesPerPixel as *const _ as usize }, + 17usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(BytesPerPixel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding as *const _ as usize }, + 18usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(padding) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Rmask as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Rmask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Gmask as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Gmask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Bmask as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Bmask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Amask as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Amask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Rloss as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Rloss) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Gloss as *const _ as usize }, + 37usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Gloss) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Bloss as *const _ as usize }, + 38usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Bloss) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Aloss as *const _ as usize }, + 39usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Aloss) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Rshift as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Rshift) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Gshift as *const _ as usize }, + 41usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Gshift) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Bshift as *const _ as usize }, + 42usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Bshift) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).Ashift as *const _ as usize }, + 43usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(Ashift) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).refcount as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(refcount) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).next as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(SDL_PixelFormat), + "::", + stringify!(next) + ) + ); +} +extern "C" { + #[doc = " \\brief Get the human readable name of a pixel format"] + pub fn SDL_GetPixelFormatName(format: Uint32) -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Convert one of the enumerated pixel formats to a bpp and RGBA masks."] + #[doc = ""] + #[doc = " \\return SDL_TRUE, or SDL_FALSE if the conversion wasn't possible."] + #[doc = ""] + #[doc = " \\sa SDL_MasksToPixelFormatEnum()"] + pub fn SDL_PixelFormatEnumToMasks( + format: Uint32, + bpp: *mut libc::c_int, + Rmask: *mut Uint32, + Gmask: *mut Uint32, + Bmask: *mut Uint32, + Amask: *mut Uint32, + ) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Convert a bpp and RGBA masks to an enumerated pixel format."] + #[doc = ""] + #[doc = " \\return The pixel format, or ::SDL_PIXELFORMAT_UNKNOWN if the conversion"] + #[doc = " wasn't possible."] + #[doc = ""] + #[doc = " \\sa SDL_PixelFormatEnumToMasks()"] + pub fn SDL_MasksToPixelFormatEnum( + bpp: libc::c_int, + Rmask: Uint32, + Gmask: Uint32, + Bmask: Uint32, + Amask: Uint32, + ) -> Uint32; +} +extern "C" { + #[doc = " \\brief Create an SDL_PixelFormat structure from a pixel format enum."] + pub fn SDL_AllocFormat(pixel_format: Uint32) -> *mut SDL_PixelFormat; +} +extern "C" { + #[doc = " \\brief Free an SDL_PixelFormat structure."] + pub fn SDL_FreeFormat(format: *mut SDL_PixelFormat); +} +extern "C" { + #[doc = " \\brief Create a palette structure with the specified number of color"] + #[doc = " entries."] + #[doc = ""] + #[doc = " \\return A new palette, or NULL if there wasn't enough memory."] + #[doc = ""] + #[doc = " \\note The palette entries are initialized to white."] + #[doc = ""] + #[doc = " \\sa SDL_FreePalette()"] + pub fn SDL_AllocPalette(ncolors: libc::c_int) -> *mut SDL_Palette; +} +extern "C" { + #[doc = " \\brief Set the palette for a pixel format structure."] + pub fn SDL_SetPixelFormatPalette( + format: *mut SDL_PixelFormat, + palette: *mut SDL_Palette, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set a range of colors in a palette."] + #[doc = ""] + #[doc = " \\param palette The palette to modify."] + #[doc = " \\param colors An array of colors to copy into the palette."] + #[doc = " \\param firstcolor The index of the first palette entry to modify."] + #[doc = " \\param ncolors The number of entries to modify."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if not all of the colors could be set."] + pub fn SDL_SetPaletteColors( + palette: *mut SDL_Palette, + colors: *const SDL_Color, + firstcolor: libc::c_int, + ncolors: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Free a palette created with SDL_AllocPalette()."] + #[doc = ""] + #[doc = " \\sa SDL_AllocPalette()"] + pub fn SDL_FreePalette(palette: *mut SDL_Palette); +} +extern "C" { + #[doc = " \\brief Maps an RGB triple to an opaque pixel value for a given pixel format."] + #[doc = ""] + #[doc = " \\sa SDL_MapRGBA"] + pub fn SDL_MapRGB(format: *const SDL_PixelFormat, r: Uint8, g: Uint8, b: Uint8) -> Uint32; +} +extern "C" { + #[doc = " \\brief Maps an RGBA quadruple to a pixel value for a given pixel format."] + #[doc = ""] + #[doc = " \\sa SDL_MapRGB"] + pub fn SDL_MapRGBA( + format: *const SDL_PixelFormat, + r: Uint8, + g: Uint8, + b: Uint8, + a: Uint8, + ) -> Uint32; +} +extern "C" { + #[doc = " \\brief Get the RGB components from a pixel of the specified format."] + #[doc = ""] + #[doc = " \\sa SDL_GetRGBA"] + pub fn SDL_GetRGB( + pixel: Uint32, + format: *const SDL_PixelFormat, + r: *mut Uint8, + g: *mut Uint8, + b: *mut Uint8, + ); +} +extern "C" { + #[doc = " \\brief Get the RGBA components from a pixel of the specified format."] + #[doc = ""] + #[doc = " \\sa SDL_GetRGB"] + pub fn SDL_GetRGBA( + pixel: Uint32, + format: *const SDL_PixelFormat, + r: *mut Uint8, + g: *mut Uint8, + b: *mut Uint8, + a: *mut Uint8, + ); +} +extern "C" { + #[doc = " \\brief Calculate a 256 entry gamma ramp for a gamma value."] + pub fn SDL_CalculateGammaRamp(gamma: f32, ramp: *mut Uint16); +} +#[doc = " \\brief The structure that defines a point (integer)"] +#[doc = ""] +#[doc = " \\sa SDL_EnclosePoints"] +#[doc = " \\sa SDL_PointInRect"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Point { + pub x: libc::c_int, + pub y: libc::c_int, +} +#[test] +fn bindgen_test_layout_SDL_Point() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(SDL_Point)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_Point)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Point), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_Point), + "::", + stringify!(y) + ) + ); +} +#[doc = " \\brief The structure that defines a point (floating point)"] +#[doc = ""] +#[doc = " \\sa SDL_EnclosePoints"] +#[doc = " \\sa SDL_PointInRect"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_FPoint { + pub x: f32, + pub y: f32, +} +#[test] +fn bindgen_test_layout_SDL_FPoint() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(SDL_FPoint)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_FPoint)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_FPoint), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_FPoint), + "::", + stringify!(y) + ) + ); +} +#[doc = " \\brief A rectangle, with the origin at the upper left (integer)."] +#[doc = ""] +#[doc = " \\sa SDL_RectEmpty"] +#[doc = " \\sa SDL_RectEquals"] +#[doc = " \\sa SDL_HasIntersection"] +#[doc = " \\sa SDL_IntersectRect"] +#[doc = " \\sa SDL_UnionRect"] +#[doc = " \\sa SDL_EnclosePoints"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Rect { + pub x: libc::c_int, + pub y: libc::c_int, + pub w: libc::c_int, + pub h: libc::c_int, +} +#[test] +fn bindgen_test_layout_SDL_Rect() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_Rect)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_Rect)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Rect), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_Rect), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).w as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_Rect), + "::", + stringify!(w) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).h as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_Rect), + "::", + stringify!(h) + ) + ); +} +#[doc = " \\brief A rectangle, with the origin at the upper left (floating point)."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_FRect { + pub x: f32, + pub y: f32, + pub w: f32, + pub h: f32, +} +#[test] +fn bindgen_test_layout_SDL_FRect() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_FRect)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_FRect)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_FRect), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_FRect), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).w as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_FRect), + "::", + stringify!(w) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).h as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_FRect), + "::", + stringify!(h) + ) + ); +} +extern "C" { + #[doc = " \\brief Determine whether two rectangles intersect."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if there is an intersection, SDL_FALSE otherwise."] + pub fn SDL_HasIntersection(A: *const SDL_Rect, B: *const SDL_Rect) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Calculate the intersection of two rectangles."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if there is an intersection, SDL_FALSE otherwise."] + pub fn SDL_IntersectRect( + A: *const SDL_Rect, + B: *const SDL_Rect, + result: *mut SDL_Rect, + ) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Calculate the union of two rectangles."] + pub fn SDL_UnionRect(A: *const SDL_Rect, B: *const SDL_Rect, result: *mut SDL_Rect); +} +extern "C" { + #[doc = " \\brief Calculate a minimal rectangle enclosing a set of points"] + #[doc = ""] + #[doc = " \\return SDL_TRUE if any points were within the clipping rect"] + pub fn SDL_EnclosePoints( + points: *const SDL_Point, + count: libc::c_int, + clip: *const SDL_Rect, + result: *mut SDL_Rect, + ) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Calculate the intersection of a rectangle and line segment."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if there is an intersection, SDL_FALSE otherwise."] + pub fn SDL_IntersectRectAndLine( + rect: *const SDL_Rect, + X1: *mut libc::c_int, + Y1: *mut libc::c_int, + X2: *mut libc::c_int, + Y2: *mut libc::c_int, + ) -> SDL_bool; +} +#[repr(u32)] +#[doc = " \\brief The blend mode used in SDL_RenderCopy() and drawing operations."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_BlendMode { + #[doc = "< no blending"] + #[doc = "dstRGBA = srcRGBA"] + SDL_BLENDMODE_NONE = 0, + #[doc = "< alpha blending"] + #[doc = "dstRGB = (srcRGB * srcA) + (dstRGB * (1-srcA))"] + #[doc = "dstA = srcA + (dstA * (1-srcA))"] + SDL_BLENDMODE_BLEND = 1, + #[doc = "< additive blending"] + #[doc = "dstRGB = (srcRGB * srcA) + dstRGB"] + #[doc = "dstA = dstA"] + SDL_BLENDMODE_ADD = 2, + #[doc = "< color modulate"] + #[doc = "dstRGB = srcRGB * dstRGB"] + #[doc = "dstA = dstA"] + SDL_BLENDMODE_MOD = 4, + #[doc = "< color multiply"] + #[doc = "dstRGB = (srcRGB * dstRGB) + (dstRGB * (1-srcA))"] + #[doc = "dstA = (srcA * dstA) + (dstA * (1-srcA))"] + SDL_BLENDMODE_MUL = 8, + SDL_BLENDMODE_INVALID = 2147483647, +} +#[repr(u32)] +#[doc = " \\brief The blend operation used when combining source and destination pixel components"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_BlendOperation { + #[doc = "< dst + src: supported by all renderers"] + SDL_BLENDOPERATION_ADD = 1, + #[doc = "< dst - src : supported by D3D9, D3D11, OpenGL, OpenGLES"] + SDL_BLENDOPERATION_SUBTRACT = 2, + #[doc = "< src - dst : supported by D3D9, D3D11, OpenGL, OpenGLES"] + SDL_BLENDOPERATION_REV_SUBTRACT = 3, + #[doc = "< min(dst, src) : supported by D3D11"] + SDL_BLENDOPERATION_MINIMUM = 4, + #[doc = "< max(dst, src) : supported by D3D11"] + SDL_BLENDOPERATION_MAXIMUM = 5, +} +#[repr(u32)] +#[doc = " \\brief The normalized factor used to multiply pixel components"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_BlendFactor { + #[doc = "< 0, 0, 0, 0"] + SDL_BLENDFACTOR_ZERO = 1, + #[doc = "< 1, 1, 1, 1"] + SDL_BLENDFACTOR_ONE = 2, + #[doc = "< srcR, srcG, srcB, srcA"] + SDL_BLENDFACTOR_SRC_COLOR = 3, + #[doc = "< 1-srcR, 1-srcG, 1-srcB, 1-srcA"] + SDL_BLENDFACTOR_ONE_MINUS_SRC_COLOR = 4, + #[doc = "< srcA, srcA, srcA, srcA"] + SDL_BLENDFACTOR_SRC_ALPHA = 5, + #[doc = "< 1-srcA, 1-srcA, 1-srcA, 1-srcA"] + SDL_BLENDFACTOR_ONE_MINUS_SRC_ALPHA = 6, + #[doc = "< dstR, dstG, dstB, dstA"] + SDL_BLENDFACTOR_DST_COLOR = 7, + #[doc = "< 1-dstR, 1-dstG, 1-dstB, 1-dstA"] + SDL_BLENDFACTOR_ONE_MINUS_DST_COLOR = 8, + #[doc = "< dstA, dstA, dstA, dstA"] + SDL_BLENDFACTOR_DST_ALPHA = 9, + #[doc = "< 1-dstA, 1-dstA, 1-dstA, 1-dstA"] + SDL_BLENDFACTOR_ONE_MINUS_DST_ALPHA = 10, +} +extern "C" { + #[doc = " \\brief Create a custom blend mode, which may or may not be supported by a given renderer"] + #[doc = ""] + #[doc = " \\param srcColorFactor source color factor"] + #[doc = " \\param dstColorFactor destination color factor"] + #[doc = " \\param colorOperation color operation"] + #[doc = " \\param srcAlphaFactor source alpha factor"] + #[doc = " \\param dstAlphaFactor destination alpha factor"] + #[doc = " \\param alphaOperation alpha operation"] + #[doc = ""] + #[doc = " The result of the blend mode operation will be:"] + #[doc = " dstRGB = dstRGB * dstColorFactor colorOperation srcRGB * srcColorFactor"] + #[doc = " and"] + #[doc = " dstA = dstA * dstAlphaFactor alphaOperation srcA * srcAlphaFactor"] + pub fn SDL_ComposeCustomBlendMode( + srcColorFactor: SDL_BlendFactor, + dstColorFactor: SDL_BlendFactor, + colorOperation: SDL_BlendOperation, + srcAlphaFactor: SDL_BlendFactor, + dstAlphaFactor: SDL_BlendFactor, + alphaOperation: SDL_BlendOperation, + ) -> SDL_BlendMode; +} +#[doc = " \\brief A collection of pixels used in software blitting."] +#[doc = ""] +#[doc = " \\note This structure should be treated as read-only, except for \\c pixels,"] +#[doc = " which, if not NULL, contains the raw pixel data for the surface."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Surface { + #[doc = "< Read-only"] + pub flags: Uint32, + #[doc = "< Read-only"] + pub format: *mut SDL_PixelFormat, + #[doc = "< Read-only"] + pub w: libc::c_int, + #[doc = "< Read-only"] + pub h: libc::c_int, + #[doc = "< Read-only"] + pub pitch: libc::c_int, + #[doc = "< Read-write"] + pub pixels: *mut libc::c_void, + #[doc = "< Read-write"] + pub userdata: *mut libc::c_void, + #[doc = "< Read-only"] + pub locked: libc::c_int, + #[doc = "< Private"] + pub list_blitmap: *mut libc::c_void, + #[doc = "< Read-only"] + pub clip_rect: SDL_Rect, + #[doc = "< Private"] + pub map: *mut SDL_BlitMap, + #[doc = "< Read-mostly"] + pub refcount: libc::c_int, +} +#[test] +fn bindgen_test_layout_SDL_Surface() { + assert_eq!( + ::core::mem::size_of::(), + 96usize, + concat!("Size of: ", stringify!(SDL_Surface)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_Surface)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).flags as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).format as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(format) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).w as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(w) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).h as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(h) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).pitch as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(pitch) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).pixels as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(pixels) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).userdata as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(userdata) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).locked as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(locked) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).list_blitmap as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(list_blitmap) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).clip_rect as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(clip_rect) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).map as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(map) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).refcount as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(SDL_Surface), + "::", + stringify!(refcount) + ) + ); +} +#[doc = " \\brief The type of function used for surface blitting functions."] +pub type SDL_blit = ::core::option::Option< + unsafe extern "C" fn( + src: *mut SDL_Surface, + srcrect: *mut SDL_Rect, + dst: *mut SDL_Surface, + dstrect: *mut SDL_Rect, + ) -> libc::c_int, +>; +#[repr(u32)] +#[doc = " \\brief The formula used for converting between YUV and RGB"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_YUV_CONVERSION_MODE { + #[doc = "< Full range JPEG"] + SDL_YUV_CONVERSION_JPEG = 0, + #[doc = "< BT.601 (the default)"] + SDL_YUV_CONVERSION_BT601 = 1, + #[doc = "< BT.709"] + SDL_YUV_CONVERSION_BT709 = 2, + #[doc = "< BT.601 for SD content, BT.709 for HD content"] + SDL_YUV_CONVERSION_AUTOMATIC = 3, +} +extern "C" { + #[doc = " Allocate and free an RGB surface."] + #[doc = ""] + #[doc = " If the depth is 4 or 8 bits, an empty palette is allocated for the surface."] + #[doc = " If the depth is greater than 8 bits, the pixel format is set using the"] + #[doc = " flags '[RGB]mask'."] + #[doc = ""] + #[doc = " If the function runs out of memory, it will return NULL."] + #[doc = ""] + #[doc = " \\param flags The \\c flags are obsolete and should be set to 0."] + #[doc = " \\param width The width in pixels of the surface to create."] + #[doc = " \\param height The height in pixels of the surface to create."] + #[doc = " \\param depth The depth in bits of the surface to create."] + #[doc = " \\param Rmask The red mask of the surface to create."] + #[doc = " \\param Gmask The green mask of the surface to create."] + #[doc = " \\param Bmask The blue mask of the surface to create."] + #[doc = " \\param Amask The alpha mask of the surface to create."] + pub fn SDL_CreateRGBSurface( + flags: Uint32, + width: libc::c_int, + height: libc::c_int, + depth: libc::c_int, + Rmask: Uint32, + Gmask: Uint32, + Bmask: Uint32, + Amask: Uint32, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn SDL_CreateRGBSurfaceWithFormat( + flags: Uint32, + width: libc::c_int, + height: libc::c_int, + depth: libc::c_int, + format: Uint32, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn SDL_CreateRGBSurfaceFrom( + pixels: *mut libc::c_void, + width: libc::c_int, + height: libc::c_int, + depth: libc::c_int, + pitch: libc::c_int, + Rmask: Uint32, + Gmask: Uint32, + Bmask: Uint32, + Amask: Uint32, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn SDL_CreateRGBSurfaceWithFormatFrom( + pixels: *mut libc::c_void, + width: libc::c_int, + height: libc::c_int, + depth: libc::c_int, + pitch: libc::c_int, + format: Uint32, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn SDL_FreeSurface(surface: *mut SDL_Surface); +} +extern "C" { + #[doc = " \\brief Set the palette used by a surface."] + #[doc = ""] + #[doc = " \\return 0, or -1 if the surface format doesn't use a palette."] + #[doc = ""] + #[doc = " \\note A single palette can be shared with many surfaces."] + pub fn SDL_SetSurfacePalette( + surface: *mut SDL_Surface, + palette: *mut SDL_Palette, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Sets up a surface for directly accessing the pixels."] + #[doc = ""] + #[doc = " Between calls to SDL_LockSurface() / SDL_UnlockSurface(), you can write"] + #[doc = " to and read from \\c surface->pixels, using the pixel format stored in"] + #[doc = " \\c surface->format. Once you are done accessing the surface, you should"] + #[doc = " use SDL_UnlockSurface() to release it."] + #[doc = ""] + #[doc = " Not all surfaces require locking. If SDL_MUSTLOCK(surface) evaluates"] + #[doc = " to 0, then you can read and write to the surface at any time, and the"] + #[doc = " pixel format of the surface will not change."] + #[doc = ""] + #[doc = " No operating system or library calls should be made between lock/unlock"] + #[doc = " pairs, as critical system locks may be held during this time."] + #[doc = ""] + #[doc = " SDL_LockSurface() returns 0, or -1 if the surface couldn't be locked."] + #[doc = ""] + #[doc = " \\sa SDL_UnlockSurface()"] + pub fn SDL_LockSurface(surface: *mut SDL_Surface) -> libc::c_int; +} +extern "C" { + #[doc = " \\sa SDL_LockSurface()"] + pub fn SDL_UnlockSurface(surface: *mut SDL_Surface); +} +extern "C" { + #[doc = " Load a surface from a seekable SDL data stream (memory or file)."] + #[doc = ""] + #[doc = " If \\c freesrc is non-zero, the stream will be closed after being read."] + #[doc = ""] + #[doc = " The new surface should be freed with SDL_FreeSurface()."] + #[doc = ""] + #[doc = " \\return the new surface, or NULL if there was an error."] + pub fn SDL_LoadBMP_RW(src: *mut SDL_RWops, freesrc: libc::c_int) -> *mut SDL_Surface; +} +extern "C" { + #[doc = " Save a surface to a seekable SDL data stream (memory or file)."] + #[doc = ""] + #[doc = " Surfaces with a 24-bit, 32-bit and paletted 8-bit format get saved in the"] + #[doc = " BMP directly. Other RGB formats with 8-bit or higher get converted to a"] + #[doc = " 24-bit surface or, if they have an alpha mask or a colorkey, to a 32-bit"] + #[doc = " surface before they are saved. YUV and paletted 1-bit and 4-bit formats are"] + #[doc = " not supported."] + #[doc = ""] + #[doc = " If \\c freedst is non-zero, the stream will be closed after being written."] + #[doc = ""] + #[doc = " \\return 0 if successful or -1 if there was an error."] + pub fn SDL_SaveBMP_RW( + surface: *mut SDL_Surface, + dst: *mut SDL_RWops, + freedst: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Sets the RLE acceleration hint for a surface."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the surface is not valid"] + #[doc = ""] + #[doc = " \\note If RLE is enabled, colorkey and alpha blending blits are much faster,"] + #[doc = " but the surface must be locked before directly accessing the pixels."] + pub fn SDL_SetSurfaceRLE(surface: *mut SDL_Surface, flag: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Returns whether the surface is RLE enabled"] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the surface is RLE enabled, or SDL_FALSE if the surface is NULL or not RLE enabled"] + pub fn SDL_HasSurfaceRLE(surface: *mut SDL_Surface) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Sets the color key (transparent pixel) in a blittable surface."] + #[doc = ""] + #[doc = " \\param surface The surface to update"] + #[doc = " \\param flag Non-zero to enable colorkey and 0 to disable colorkey"] + #[doc = " \\param key The transparent pixel in the native surface format"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the surface is not valid"] + #[doc = ""] + #[doc = " You can pass SDL_RLEACCEL to enable RLE accelerated blits."] + pub fn SDL_SetColorKey( + surface: *mut SDL_Surface, + flag: libc::c_int, + key: Uint32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Returns whether the surface has a color key"] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the surface has a color key, or SDL_FALSE if the surface is NULL or has no color key"] + pub fn SDL_HasColorKey(surface: *mut SDL_Surface) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Gets the color key (transparent pixel) in a blittable surface."] + #[doc = ""] + #[doc = " \\param surface The surface to update"] + #[doc = " \\param key A pointer filled in with the transparent pixel in the native"] + #[doc = " surface format"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the surface is not valid or colorkey is not"] + #[doc = " enabled."] + pub fn SDL_GetColorKey(surface: *mut SDL_Surface, key: *mut Uint32) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set an additional color value used in blit operations."] + #[doc = ""] + #[doc = " \\param surface The surface to update."] + #[doc = " \\param r The red color value multiplied into blit operations."] + #[doc = " \\param g The green color value multiplied into blit operations."] + #[doc = " \\param b The blue color value multiplied into blit operations."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the surface is not valid."] + #[doc = ""] + #[doc = " \\sa SDL_GetSurfaceColorMod()"] + pub fn SDL_SetSurfaceColorMod( + surface: *mut SDL_Surface, + r: Uint8, + g: Uint8, + b: Uint8, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the additional color value used in blit operations."] + #[doc = ""] + #[doc = " \\param surface The surface to query."] + #[doc = " \\param r A pointer filled in with the current red color value."] + #[doc = " \\param g A pointer filled in with the current green color value."] + #[doc = " \\param b A pointer filled in with the current blue color value."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the surface is not valid."] + #[doc = ""] + #[doc = " \\sa SDL_SetSurfaceColorMod()"] + pub fn SDL_GetSurfaceColorMod( + surface: *mut SDL_Surface, + r: *mut Uint8, + g: *mut Uint8, + b: *mut Uint8, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set an additional alpha value used in blit operations."] + #[doc = ""] + #[doc = " \\param surface The surface to update."] + #[doc = " \\param alpha The alpha value multiplied into blit operations."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the surface is not valid."] + #[doc = ""] + #[doc = " \\sa SDL_GetSurfaceAlphaMod()"] + pub fn SDL_SetSurfaceAlphaMod(surface: *mut SDL_Surface, alpha: Uint8) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the additional alpha value used in blit operations."] + #[doc = ""] + #[doc = " \\param surface The surface to query."] + #[doc = " \\param alpha A pointer filled in with the current alpha value."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the surface is not valid."] + #[doc = ""] + #[doc = " \\sa SDL_SetSurfaceAlphaMod()"] + pub fn SDL_GetSurfaceAlphaMod(surface: *mut SDL_Surface, alpha: *mut Uint8) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set the blend mode used for blit operations."] + #[doc = ""] + #[doc = " \\param surface The surface to update."] + #[doc = " \\param blendMode ::SDL_BlendMode to use for blit blending."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the parameters are not valid."] + #[doc = ""] + #[doc = " \\sa SDL_GetSurfaceBlendMode()"] + pub fn SDL_SetSurfaceBlendMode( + surface: *mut SDL_Surface, + blendMode: SDL_BlendMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the blend mode used for blit operations."] + #[doc = ""] + #[doc = " \\param surface The surface to query."] + #[doc = " \\param blendMode A pointer filled in with the current blend mode."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the surface is not valid."] + #[doc = ""] + #[doc = " \\sa SDL_SetSurfaceBlendMode()"] + pub fn SDL_GetSurfaceBlendMode( + surface: *mut SDL_Surface, + blendMode: *mut SDL_BlendMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Sets the clipping rectangle for the destination surface in a blit."] + #[doc = ""] + #[doc = " If the clip rectangle is NULL, clipping will be disabled."] + #[doc = ""] + #[doc = " If the clip rectangle doesn't intersect the surface, the function will"] + #[doc = " return SDL_FALSE and blits will be completely clipped. Otherwise the"] + #[doc = " function returns SDL_TRUE and blits to the surface will be clipped to"] + #[doc = " the intersection of the surface area and the clipping rectangle."] + #[doc = ""] + #[doc = " Note that blits are automatically clipped to the edges of the source"] + #[doc = " and destination surfaces."] + pub fn SDL_SetClipRect(surface: *mut SDL_Surface, rect: *const SDL_Rect) -> SDL_bool; +} +extern "C" { + #[doc = " Gets the clipping rectangle for the destination surface in a blit."] + #[doc = ""] + #[doc = " \\c rect must be a pointer to a valid rectangle which will be filled"] + #[doc = " with the correct values."] + pub fn SDL_GetClipRect(surface: *mut SDL_Surface, rect: *mut SDL_Rect); +} +extern "C" { + pub fn SDL_DuplicateSurface(surface: *mut SDL_Surface) -> *mut SDL_Surface; +} +extern "C" { + #[doc = " Creates a new surface of the specified format, and then copies and maps"] + #[doc = " the given surface to it so the blit of the converted surface will be as"] + #[doc = " fast as possible. If this function fails, it returns NULL."] + #[doc = ""] + #[doc = " The \\c flags parameter is passed to SDL_CreateRGBSurface() and has those"] + #[doc = " semantics. You can also pass ::SDL_RLEACCEL in the flags parameter and"] + #[doc = " SDL will try to RLE accelerate colorkey and alpha blits in the resulting"] + #[doc = " surface."] + pub fn SDL_ConvertSurface( + src: *mut SDL_Surface, + fmt: *const SDL_PixelFormat, + flags: Uint32, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn SDL_ConvertSurfaceFormat( + src: *mut SDL_Surface, + pixel_format: Uint32, + flags: Uint32, + ) -> *mut SDL_Surface; +} +extern "C" { + #[doc = " \\brief Copy a block of pixels of one format to another format"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if there was an error"] + pub fn SDL_ConvertPixels( + width: libc::c_int, + height: libc::c_int, + src_format: Uint32, + src: *const libc::c_void, + src_pitch: libc::c_int, + dst_format: Uint32, + dst: *mut libc::c_void, + dst_pitch: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Performs a fast fill of the given rectangle with \\c color."] + #[doc = ""] + #[doc = " If \\c rect is NULL, the whole surface will be filled with \\c color."] + #[doc = ""] + #[doc = " The color should be a pixel of the format used by the surface, and"] + #[doc = " can be generated by the SDL_MapRGB() function."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error."] + pub fn SDL_FillRect(dst: *mut SDL_Surface, rect: *const SDL_Rect, color: Uint32) + -> libc::c_int; +} +extern "C" { + pub fn SDL_FillRects( + dst: *mut SDL_Surface, + rects: *const SDL_Rect, + count: libc::c_int, + color: Uint32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " This is the public blit function, SDL_BlitSurface(), and it performs"] + #[doc = " rectangle validation and clipping before passing it to SDL_LowerBlit()"] + pub fn SDL_UpperBlit( + src: *mut SDL_Surface, + srcrect: *const SDL_Rect, + dst: *mut SDL_Surface, + dstrect: *mut SDL_Rect, + ) -> libc::c_int; +} +extern "C" { + #[doc = " This is a semi-private blit function and it performs low-level surface"] + #[doc = " blitting only."] + pub fn SDL_LowerBlit( + src: *mut SDL_Surface, + srcrect: *mut SDL_Rect, + dst: *mut SDL_Surface, + dstrect: *mut SDL_Rect, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Perform a fast, low quality, stretch blit between two surfaces of the"] + #[doc = " same pixel format."] + #[doc = ""] + #[doc = " \\note This function uses a static buffer, and is not thread-safe."] + pub fn SDL_SoftStretch( + src: *mut SDL_Surface, + srcrect: *const SDL_Rect, + dst: *mut SDL_Surface, + dstrect: *const SDL_Rect, + ) -> libc::c_int; +} +extern "C" { + #[doc = " This is the public scaled blit function, SDL_BlitScaled(), and it performs"] + #[doc = " rectangle validation and clipping before passing it to SDL_LowerBlitScaled()"] + pub fn SDL_UpperBlitScaled( + src: *mut SDL_Surface, + srcrect: *const SDL_Rect, + dst: *mut SDL_Surface, + dstrect: *mut SDL_Rect, + ) -> libc::c_int; +} +extern "C" { + #[doc = " This is a semi-private blit function and it performs low-level surface"] + #[doc = " scaled blitting only."] + pub fn SDL_LowerBlitScaled( + src: *mut SDL_Surface, + srcrect: *mut SDL_Rect, + dst: *mut SDL_Surface, + dstrect: *mut SDL_Rect, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set the YUV conversion mode"] + pub fn SDL_SetYUVConversionMode(mode: SDL_YUV_CONVERSION_MODE); +} +extern "C" { + #[doc = " \\brief Get the YUV conversion mode"] + pub fn SDL_GetYUVConversionMode() -> SDL_YUV_CONVERSION_MODE; +} +extern "C" { + #[doc = " \\brief Get the YUV conversion mode, returning the correct mode for the resolution when the current conversion mode is SDL_YUV_CONVERSION_AUTOMATIC"] + pub fn SDL_GetYUVConversionModeForResolution( + width: libc::c_int, + height: libc::c_int, + ) -> SDL_YUV_CONVERSION_MODE; +} +#[doc = " \\brief The structure that defines a display mode"] +#[doc = ""] +#[doc = " \\sa SDL_GetNumDisplayModes()"] +#[doc = " \\sa SDL_GetDisplayMode()"] +#[doc = " \\sa SDL_GetDesktopDisplayMode()"] +#[doc = " \\sa SDL_GetCurrentDisplayMode()"] +#[doc = " \\sa SDL_GetClosestDisplayMode()"] +#[doc = " \\sa SDL_SetWindowDisplayMode()"] +#[doc = " \\sa SDL_GetWindowDisplayMode()"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_DisplayMode { + #[doc = "< pixel format"] + pub format: Uint32, + #[doc = "< width, in screen coordinates"] + pub w: libc::c_int, + #[doc = "< height, in screen coordinates"] + pub h: libc::c_int, + #[doc = "< refresh rate (or zero for unspecified)"] + pub refresh_rate: libc::c_int, + #[doc = "< driver-specific data, initialize to 0"] + pub driverdata: *mut libc::c_void, +} +#[test] +fn bindgen_test_layout_SDL_DisplayMode() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(SDL_DisplayMode)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_DisplayMode)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).format as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayMode), + "::", + stringify!(format) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).w as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayMode), + "::", + stringify!(w) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).h as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayMode), + "::", + stringify!(h) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).refresh_rate as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayMode), + "::", + stringify!(refresh_rate) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).driverdata as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayMode), + "::", + stringify!(driverdata) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Window { + _unused: [u8; 0], +} +#[repr(u32)] +#[doc = " \\brief The flags on a window"] +#[doc = ""] +#[doc = " \\sa SDL_GetWindowFlags()"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_WindowFlags { + #[doc = "< fullscreen window"] + SDL_WINDOW_FULLSCREEN = 1, + #[doc = "< window usable with OpenGL context"] + SDL_WINDOW_OPENGL = 2, + #[doc = "< window is visible"] + SDL_WINDOW_SHOWN = 4, + #[doc = "< window is not visible"] + SDL_WINDOW_HIDDEN = 8, + #[doc = "< no window decoration"] + SDL_WINDOW_BORDERLESS = 16, + #[doc = "< window can be resized"] + SDL_WINDOW_RESIZABLE = 32, + #[doc = "< window is minimized"] + SDL_WINDOW_MINIMIZED = 64, + #[doc = "< window is maximized"] + SDL_WINDOW_MAXIMIZED = 128, + #[doc = "< window has grabbed input focus"] + SDL_WINDOW_INPUT_GRABBED = 256, + #[doc = "< window has input focus"] + SDL_WINDOW_INPUT_FOCUS = 512, + #[doc = "< window has mouse focus"] + SDL_WINDOW_MOUSE_FOCUS = 1024, + SDL_WINDOW_FULLSCREEN_DESKTOP = 4097, + #[doc = "< window not created by SDL"] + SDL_WINDOW_FOREIGN = 2048, + #[doc = "< window should be created in high-DPI mode if supported."] + #[doc = "On macOS NSHighResolutionCapable must be set true in the"] + #[doc = "application's Info.plist for this to have any effect."] + SDL_WINDOW_ALLOW_HIGHDPI = 8192, + #[doc = "< window has mouse captured (unrelated to INPUT_GRABBED)"] + SDL_WINDOW_MOUSE_CAPTURE = 16384, + #[doc = "< window should always be above others"] + SDL_WINDOW_ALWAYS_ON_TOP = 32768, + #[doc = "< window should not be added to the taskbar"] + SDL_WINDOW_SKIP_TASKBAR = 65536, + #[doc = "< window should be treated as a utility window"] + SDL_WINDOW_UTILITY = 131072, + #[doc = "< window should be treated as a tooltip"] + SDL_WINDOW_TOOLTIP = 262144, + #[doc = "< window should be treated as a popup menu"] + SDL_WINDOW_POPUP_MENU = 524288, + #[doc = "< window usable for Vulkan surface"] + SDL_WINDOW_VULKAN = 268435456, + #[doc = "< window usable for Metal view"] + SDL_WINDOW_METAL = 536870912, +} +#[repr(u32)] +#[doc = " \\brief Event subtype for window events"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_WindowEventID { + #[doc = "< Never used"] + SDL_WINDOWEVENT_NONE = 0, + #[doc = "< Window has been shown"] + SDL_WINDOWEVENT_SHOWN = 1, + #[doc = "< Window has been hidden"] + SDL_WINDOWEVENT_HIDDEN = 2, + #[doc = "< Window has been exposed and should be"] + #[doc = "redrawn"] + SDL_WINDOWEVENT_EXPOSED = 3, + #[doc = "< Window has been moved to data1, data2"] + SDL_WINDOWEVENT_MOVED = 4, + #[doc = "< Window has been resized to data1xdata2"] + SDL_WINDOWEVENT_RESIZED = 5, + #[doc = "< The window size has changed, either as"] + #[doc = "a result of an API call or through the"] + #[doc = "system or user changing the window size."] + SDL_WINDOWEVENT_SIZE_CHANGED = 6, + #[doc = "< Window has been minimized"] + SDL_WINDOWEVENT_MINIMIZED = 7, + #[doc = "< Window has been maximized"] + SDL_WINDOWEVENT_MAXIMIZED = 8, + #[doc = "< Window has been restored to normal size"] + #[doc = "and position"] + SDL_WINDOWEVENT_RESTORED = 9, + #[doc = "< Window has gained mouse focus"] + SDL_WINDOWEVENT_ENTER = 10, + #[doc = "< Window has lost mouse focus"] + SDL_WINDOWEVENT_LEAVE = 11, + #[doc = "< Window has gained keyboard focus"] + SDL_WINDOWEVENT_FOCUS_GAINED = 12, + #[doc = "< Window has lost keyboard focus"] + SDL_WINDOWEVENT_FOCUS_LOST = 13, + #[doc = "< The window manager requests that the window be closed"] + SDL_WINDOWEVENT_CLOSE = 14, + #[doc = "< Window is being offered a focus (should SetWindowInputFocus() on itself or a subwindow, or ignore)"] + SDL_WINDOWEVENT_TAKE_FOCUS = 15, + #[doc = "< Window had a hit test that wasn't SDL_HITTEST_NORMAL."] + SDL_WINDOWEVENT_HIT_TEST = 16, +} +#[repr(u32)] +#[doc = " \\brief Event subtype for display events"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_DisplayEventID { + #[doc = "< Never used"] + SDL_DISPLAYEVENT_NONE = 0, + #[doc = "< Display orientation has changed to data1"] + SDL_DISPLAYEVENT_ORIENTATION = 1, + #[doc = "< Display has been added to the system"] + SDL_DISPLAYEVENT_CONNECTED = 2, + #[doc = "< Display has been removed from the system"] + SDL_DISPLAYEVENT_DISCONNECTED = 3, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_DisplayOrientation { + #[doc = "< The display orientation can't be determined"] + SDL_ORIENTATION_UNKNOWN = 0, + #[doc = "< The display is in landscape mode, with the right side up, relative to portrait mode"] + SDL_ORIENTATION_LANDSCAPE = 1, + #[doc = "< The display is in landscape mode, with the left side up, relative to portrait mode"] + SDL_ORIENTATION_LANDSCAPE_FLIPPED = 2, + #[doc = "< The display is in portrait mode"] + SDL_ORIENTATION_PORTRAIT = 3, + #[doc = "< The display is in portrait mode, upside down"] + SDL_ORIENTATION_PORTRAIT_FLIPPED = 4, +} +#[doc = " \\brief An opaque handle to an OpenGL context."] +pub type SDL_GLContext = *mut libc::c_void; +#[repr(u32)] +#[doc = " \\brief OpenGL configuration attributes"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_GLattr { + SDL_GL_RED_SIZE = 0, + SDL_GL_GREEN_SIZE = 1, + SDL_GL_BLUE_SIZE = 2, + SDL_GL_ALPHA_SIZE = 3, + SDL_GL_BUFFER_SIZE = 4, + SDL_GL_DOUBLEBUFFER = 5, + SDL_GL_DEPTH_SIZE = 6, + SDL_GL_STENCIL_SIZE = 7, + SDL_GL_ACCUM_RED_SIZE = 8, + SDL_GL_ACCUM_GREEN_SIZE = 9, + SDL_GL_ACCUM_BLUE_SIZE = 10, + SDL_GL_ACCUM_ALPHA_SIZE = 11, + SDL_GL_STEREO = 12, + SDL_GL_MULTISAMPLEBUFFERS = 13, + SDL_GL_MULTISAMPLESAMPLES = 14, + SDL_GL_ACCELERATED_VISUAL = 15, + SDL_GL_RETAINED_BACKING = 16, + SDL_GL_CONTEXT_MAJOR_VERSION = 17, + SDL_GL_CONTEXT_MINOR_VERSION = 18, + SDL_GL_CONTEXT_EGL = 19, + SDL_GL_CONTEXT_FLAGS = 20, + SDL_GL_CONTEXT_PROFILE_MASK = 21, + SDL_GL_SHARE_WITH_CURRENT_CONTEXT = 22, + SDL_GL_FRAMEBUFFER_SRGB_CAPABLE = 23, + SDL_GL_CONTEXT_RELEASE_BEHAVIOR = 24, + SDL_GL_CONTEXT_RESET_NOTIFICATION = 25, + SDL_GL_CONTEXT_NO_ERROR = 26, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_GLprofile { + SDL_GL_CONTEXT_PROFILE_CORE = 1, + SDL_GL_CONTEXT_PROFILE_COMPATIBILITY = 2, + #[doc = "< GLX_CONTEXT_ES2_PROFILE_BIT_EXT"] + SDL_GL_CONTEXT_PROFILE_ES = 4, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_GLcontextFlag { + SDL_GL_CONTEXT_DEBUG_FLAG = 1, + SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG = 2, + SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG = 4, + SDL_GL_CONTEXT_RESET_ISOLATION_FLAG = 8, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_GLcontextReleaseFlag { + SDL_GL_CONTEXT_RELEASE_BEHAVIOR_NONE = 0, + SDL_GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 1, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_GLContextResetNotification { + SDL_GL_CONTEXT_RESET_NO_NOTIFICATION = 0, + SDL_GL_CONTEXT_RESET_LOSE_CONTEXT = 1, +} +extern "C" { + #[doc = " \\brief Get the number of video drivers compiled into SDL"] + #[doc = ""] + #[doc = " \\sa SDL_GetVideoDriver()"] + pub fn SDL_GetNumVideoDrivers() -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the name of a built in video driver."] + #[doc = ""] + #[doc = " \\note The video drivers are presented in the order in which they are"] + #[doc = " normally checked during initialization."] + #[doc = ""] + #[doc = " \\sa SDL_GetNumVideoDrivers()"] + pub fn SDL_GetVideoDriver(index: libc::c_int) -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Initialize the video subsystem, optionally specifying a video driver."] + #[doc = ""] + #[doc = " \\param driver_name Initialize a specific driver by name, or NULL for the"] + #[doc = " default video driver."] + #[doc = ""] + #[doc = " \\return 0 on success, -1 on error"] + #[doc = ""] + #[doc = " This function initializes the video subsystem; setting up a connection"] + #[doc = " to the window manager, etc, and determines the available display modes"] + #[doc = " and pixel formats, but does not initialize a window or graphics mode."] + #[doc = ""] + #[doc = " \\sa SDL_VideoQuit()"] + pub fn SDL_VideoInit(driver_name: *const libc::c_char) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Shuts down the video subsystem."] + #[doc = ""] + #[doc = " This function closes all windows, and restores the original video mode."] + #[doc = ""] + #[doc = " \\sa SDL_VideoInit()"] + pub fn SDL_VideoQuit(); +} +extern "C" { + #[doc = " \\brief Returns the name of the currently initialized video driver."] + #[doc = ""] + #[doc = " \\return The name of the current video driver or NULL if no driver"] + #[doc = " has been initialized"] + #[doc = ""] + #[doc = " \\sa SDL_GetNumVideoDrivers()"] + #[doc = " \\sa SDL_GetVideoDriver()"] + pub fn SDL_GetCurrentVideoDriver() -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Returns the number of available video displays."] + #[doc = ""] + #[doc = " \\sa SDL_GetDisplayBounds()"] + pub fn SDL_GetNumVideoDisplays() -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the name of a display in UTF-8 encoding"] + #[doc = ""] + #[doc = " \\return The name of a display, or NULL for an invalid display index."] + #[doc = ""] + #[doc = " \\sa SDL_GetNumVideoDisplays()"] + pub fn SDL_GetDisplayName(displayIndex: libc::c_int) -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Get the desktop area represented by a display, with the primary"] + #[doc = " display located at 0,0"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the index is out of range."] + #[doc = ""] + #[doc = " \\sa SDL_GetNumVideoDisplays()"] + pub fn SDL_GetDisplayBounds(displayIndex: libc::c_int, rect: *mut SDL_Rect) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the usable desktop area represented by a display, with the"] + #[doc = " primary display located at 0,0"] + #[doc = ""] + #[doc = " This is the same area as SDL_GetDisplayBounds() reports, but with portions"] + #[doc = " reserved by the system removed. For example, on Mac OS X, this subtracts"] + #[doc = " the area occupied by the menu bar and dock."] + #[doc = ""] + #[doc = " Setting a window to be fullscreen generally bypasses these unusable areas,"] + #[doc = " so these are good guidelines for the maximum space available to a"] + #[doc = " non-fullscreen window."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the index is out of range."] + #[doc = ""] + #[doc = " \\sa SDL_GetDisplayBounds()"] + #[doc = " \\sa SDL_GetNumVideoDisplays()"] + pub fn SDL_GetDisplayUsableBounds( + displayIndex: libc::c_int, + rect: *mut SDL_Rect, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the dots/pixels-per-inch for a display"] + #[doc = ""] + #[doc = " \\note Diagonal, horizontal and vertical DPI can all be optionally"] + #[doc = " returned if the parameter is non-NULL."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if no DPI information is available or the index is out of range."] + #[doc = ""] + #[doc = " \\sa SDL_GetNumVideoDisplays()"] + pub fn SDL_GetDisplayDPI( + displayIndex: libc::c_int, + ddpi: *mut f32, + hdpi: *mut f32, + vdpi: *mut f32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the orientation of a display"] + #[doc = ""] + #[doc = " \\return The orientation of the display, or SDL_ORIENTATION_UNKNOWN if it isn't available."] + #[doc = ""] + #[doc = " \\sa SDL_GetNumVideoDisplays()"] + pub fn SDL_GetDisplayOrientation(displayIndex: libc::c_int) -> SDL_DisplayOrientation; +} +extern "C" { + #[doc = " \\brief Returns the number of available display modes."] + #[doc = ""] + #[doc = " \\sa SDL_GetDisplayMode()"] + pub fn SDL_GetNumDisplayModes(displayIndex: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Fill in information about a specific display mode."] + #[doc = ""] + #[doc = " \\note The display modes are sorted in this priority:"] + #[doc = " \\li bits per pixel -> more colors to fewer colors"] + #[doc = " \\li width -> largest to smallest"] + #[doc = " \\li height -> largest to smallest"] + #[doc = " \\li refresh rate -> highest to lowest"] + #[doc = ""] + #[doc = " \\sa SDL_GetNumDisplayModes()"] + pub fn SDL_GetDisplayMode( + displayIndex: libc::c_int, + modeIndex: libc::c_int, + mode: *mut SDL_DisplayMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Fill in information about the desktop display mode."] + pub fn SDL_GetDesktopDisplayMode( + displayIndex: libc::c_int, + mode: *mut SDL_DisplayMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Fill in information about the current display mode."] + pub fn SDL_GetCurrentDisplayMode( + displayIndex: libc::c_int, + mode: *mut SDL_DisplayMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the closest match to the requested display mode."] + #[doc = ""] + #[doc = " \\param displayIndex The index of display from which mode should be queried."] + #[doc = " \\param mode The desired display mode"] + #[doc = " \\param closest A pointer to a display mode to be filled in with the closest"] + #[doc = " match of the available display modes."] + #[doc = ""] + #[doc = " \\return The passed in value \\c closest, or NULL if no matching video mode"] + #[doc = " was available."] + #[doc = ""] + #[doc = " The available display modes are scanned, and \\c closest is filled in with the"] + #[doc = " closest mode matching the requested mode and returned. The mode format and"] + #[doc = " refresh_rate default to the desktop mode if they are 0. The modes are"] + #[doc = " scanned with size being first priority, format being second priority, and"] + #[doc = " finally checking the refresh_rate. If all the available modes are too"] + #[doc = " small, then NULL is returned."] + #[doc = ""] + #[doc = " \\sa SDL_GetNumDisplayModes()"] + #[doc = " \\sa SDL_GetDisplayMode()"] + pub fn SDL_GetClosestDisplayMode( + displayIndex: libc::c_int, + mode: *const SDL_DisplayMode, + closest: *mut SDL_DisplayMode, + ) -> *mut SDL_DisplayMode; +} +extern "C" { + #[doc = " \\brief Get the display index associated with a window."] + #[doc = ""] + #[doc = " \\return the display index of the display containing the center of the"] + #[doc = " window, or -1 on error."] + pub fn SDL_GetWindowDisplayIndex(window: *mut SDL_Window) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set the display mode used when a fullscreen window is visible."] + #[doc = ""] + #[doc = " By default the window's dimensions and the desktop format and refresh rate"] + #[doc = " are used."] + #[doc = ""] + #[doc = " \\param window The window for which the display mode should be set."] + #[doc = " \\param mode The mode to use, or NULL for the default mode."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if setting the display mode failed."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowDisplayMode()"] + #[doc = " \\sa SDL_SetWindowFullscreen()"] + pub fn SDL_SetWindowDisplayMode( + window: *mut SDL_Window, + mode: *const SDL_DisplayMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Fill in information about the display mode used when a fullscreen"] + #[doc = " window is visible."] + #[doc = ""] + #[doc = " \\sa SDL_SetWindowDisplayMode()"] + #[doc = " \\sa SDL_SetWindowFullscreen()"] + pub fn SDL_GetWindowDisplayMode( + window: *mut SDL_Window, + mode: *mut SDL_DisplayMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the pixel format associated with the window."] + pub fn SDL_GetWindowPixelFormat(window: *mut SDL_Window) -> Uint32; +} +extern "C" { + #[doc = " \\brief Create a window with the specified position, dimensions, and flags."] + #[doc = ""] + #[doc = " \\param title The title of the window, in UTF-8 encoding."] + #[doc = " \\param x The x position of the window, ::SDL_WINDOWPOS_CENTERED, or"] + #[doc = " ::SDL_WINDOWPOS_UNDEFINED."] + #[doc = " \\param y The y position of the window, ::SDL_WINDOWPOS_CENTERED, or"] + #[doc = " ::SDL_WINDOWPOS_UNDEFINED."] + #[doc = " \\param w The width of the window, in screen coordinates."] + #[doc = " \\param h The height of the window, in screen coordinates."] + #[doc = " \\param flags The flags for the window, a mask of any of the following:"] + #[doc = " ::SDL_WINDOW_FULLSCREEN, ::SDL_WINDOW_OPENGL,"] + #[doc = " ::SDL_WINDOW_HIDDEN, ::SDL_WINDOW_BORDERLESS,"] + #[doc = " ::SDL_WINDOW_RESIZABLE, ::SDL_WINDOW_MAXIMIZED,"] + #[doc = " ::SDL_WINDOW_MINIMIZED, ::SDL_WINDOW_INPUT_GRABBED,"] + #[doc = " ::SDL_WINDOW_ALLOW_HIGHDPI, ::SDL_WINDOW_VULKAN"] + #[doc = " ::SDL_WINDOW_METAL."] + #[doc = ""] + #[doc = " \\return The created window, or NULL if window creation failed."] + #[doc = ""] + #[doc = " If the window is created with the SDL_WINDOW_ALLOW_HIGHDPI flag, its size"] + #[doc = " in pixels may differ from its size in screen coordinates on platforms with"] + #[doc = " high-DPI support (e.g. iOS and Mac OS X). Use SDL_GetWindowSize() to query"] + #[doc = " the client area's size in screen coordinates, and SDL_GL_GetDrawableSize(),"] + #[doc = " SDL_Vulkan_GetDrawableSize(), or SDL_GetRendererOutputSize() to query the"] + #[doc = " drawable size in pixels."] + #[doc = ""] + #[doc = " If the window is created with any of the SDL_WINDOW_OPENGL or"] + #[doc = " SDL_WINDOW_VULKAN flags, then the corresponding LoadLibrary function"] + #[doc = " (SDL_GL_LoadLibrary or SDL_Vulkan_LoadLibrary) is called and the"] + #[doc = " corresponding UnloadLibrary function is called by SDL_DestroyWindow()."] + #[doc = ""] + #[doc = " If SDL_WINDOW_VULKAN is specified and there isn't a working Vulkan driver,"] + #[doc = " SDL_CreateWindow() will fail because SDL_Vulkan_LoadLibrary() will fail."] + #[doc = ""] + #[doc = " If SDL_WINDOW_METAL is specified on an OS that does not support Metal,"] + #[doc = " SDL_CreateWindow() will fail."] + #[doc = ""] + #[doc = " \\note On non-Apple devices, SDL requires you to either not link to the"] + #[doc = " Vulkan loader or link to a dynamic library version. This limitation"] + #[doc = " may be removed in a future version of SDL."] + #[doc = ""] + #[doc = " \\sa SDL_DestroyWindow()"] + #[doc = " \\sa SDL_GL_LoadLibrary()"] + #[doc = " \\sa SDL_Vulkan_LoadLibrary()"] + pub fn SDL_CreateWindow( + title: *const libc::c_char, + x: libc::c_int, + y: libc::c_int, + w: libc::c_int, + h: libc::c_int, + flags: Uint32, + ) -> *mut SDL_Window; +} +extern "C" { + #[doc = " \\brief Create an SDL window from an existing native window."] + #[doc = ""] + #[doc = " \\param data A pointer to driver-dependent window creation data"] + #[doc = ""] + #[doc = " \\return The created window, or NULL if window creation failed."] + #[doc = ""] + #[doc = " \\sa SDL_DestroyWindow()"] + pub fn SDL_CreateWindowFrom(data: *const libc::c_void) -> *mut SDL_Window; +} +extern "C" { + #[doc = " \\brief Get the numeric ID of a window, for logging purposes."] + pub fn SDL_GetWindowID(window: *mut SDL_Window) -> Uint32; +} +extern "C" { + #[doc = " \\brief Get a window from a stored ID, or NULL if it doesn't exist."] + pub fn SDL_GetWindowFromID(id: Uint32) -> *mut SDL_Window; +} +extern "C" { + #[doc = " \\brief Get the window flags."] + pub fn SDL_GetWindowFlags(window: *mut SDL_Window) -> Uint32; +} +extern "C" { + #[doc = " \\brief Set the title of a window, in UTF-8 format."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowTitle()"] + pub fn SDL_SetWindowTitle(window: *mut SDL_Window, title: *const libc::c_char); +} +extern "C" { + #[doc = " \\brief Get the title of a window, in UTF-8 format."] + #[doc = ""] + #[doc = " \\sa SDL_SetWindowTitle()"] + pub fn SDL_GetWindowTitle(window: *mut SDL_Window) -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Set the icon for a window."] + #[doc = ""] + #[doc = " \\param window The window for which the icon should be set."] + #[doc = " \\param icon The icon for the window."] + pub fn SDL_SetWindowIcon(window: *mut SDL_Window, icon: *mut SDL_Surface); +} +extern "C" { + #[doc = " \\brief Associate an arbitrary named pointer with a window."] + #[doc = ""] + #[doc = " \\param window The window to associate with the pointer."] + #[doc = " \\param name The name of the pointer."] + #[doc = " \\param userdata The associated pointer."] + #[doc = ""] + #[doc = " \\return The previous value associated with 'name'"] + #[doc = ""] + #[doc = " \\note The name is case-sensitive."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowData()"] + pub fn SDL_SetWindowData( + window: *mut SDL_Window, + name: *const libc::c_char, + userdata: *mut libc::c_void, + ) -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Retrieve the data pointer associated with a window."] + #[doc = ""] + #[doc = " \\param window The window to query."] + #[doc = " \\param name The name of the pointer."] + #[doc = ""] + #[doc = " \\return The value associated with 'name'"] + #[doc = ""] + #[doc = " \\sa SDL_SetWindowData()"] + pub fn SDL_GetWindowData( + window: *mut SDL_Window, + name: *const libc::c_char, + ) -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Set the position of a window."] + #[doc = ""] + #[doc = " \\param window The window to reposition."] + #[doc = " \\param x The x coordinate of the window in screen coordinates, or"] + #[doc = " ::SDL_WINDOWPOS_CENTERED or ::SDL_WINDOWPOS_UNDEFINED."] + #[doc = " \\param y The y coordinate of the window in screen coordinates, or"] + #[doc = " ::SDL_WINDOWPOS_CENTERED or ::SDL_WINDOWPOS_UNDEFINED."] + #[doc = ""] + #[doc = " \\note The window coordinate origin is the upper left of the display."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowPosition()"] + pub fn SDL_SetWindowPosition(window: *mut SDL_Window, x: libc::c_int, y: libc::c_int); +} +extern "C" { + #[doc = " \\brief Get the position of a window."] + #[doc = ""] + #[doc = " \\param window The window to query."] + #[doc = " \\param x Pointer to variable for storing the x position, in screen"] + #[doc = " coordinates. May be NULL."] + #[doc = " \\param y Pointer to variable for storing the y position, in screen"] + #[doc = " coordinates. May be NULL."] + #[doc = ""] + #[doc = " \\sa SDL_SetWindowPosition()"] + pub fn SDL_GetWindowPosition(window: *mut SDL_Window, x: *mut libc::c_int, y: *mut libc::c_int); +} +extern "C" { + #[doc = " \\brief Set the size of a window's client area."] + #[doc = ""] + #[doc = " \\param window The window to resize."] + #[doc = " \\param w The width of the window, in screen coordinates. Must be >0."] + #[doc = " \\param h The height of the window, in screen coordinates. Must be >0."] + #[doc = ""] + #[doc = " \\note Fullscreen windows automatically match the size of the display mode,"] + #[doc = " and you should use SDL_SetWindowDisplayMode() to change their size."] + #[doc = ""] + #[doc = " The window size in screen coordinates may differ from the size in pixels, if"] + #[doc = " the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a platform with"] + #[doc = " high-dpi support (e.g. iOS or OS X). Use SDL_GL_GetDrawableSize() or"] + #[doc = " SDL_GetRendererOutputSize() to get the real client area size in pixels."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowSize()"] + #[doc = " \\sa SDL_SetWindowDisplayMode()"] + pub fn SDL_SetWindowSize(window: *mut SDL_Window, w: libc::c_int, h: libc::c_int); +} +extern "C" { + #[doc = " \\brief Get the size of a window's client area."] + #[doc = ""] + #[doc = " \\param window The window to query."] + #[doc = " \\param w Pointer to variable for storing the width, in screen"] + #[doc = " coordinates. May be NULL."] + #[doc = " \\param h Pointer to variable for storing the height, in screen"] + #[doc = " coordinates. May be NULL."] + #[doc = ""] + #[doc = " The window size in screen coordinates may differ from the size in pixels, if"] + #[doc = " the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a platform with"] + #[doc = " high-dpi support (e.g. iOS or OS X). Use SDL_GL_GetDrawableSize() or"] + #[doc = " SDL_GetRendererOutputSize() to get the real client area size in pixels."] + #[doc = ""] + #[doc = " \\sa SDL_SetWindowSize()"] + pub fn SDL_GetWindowSize(window: *mut SDL_Window, w: *mut libc::c_int, h: *mut libc::c_int); +} +extern "C" { + #[doc = " \\brief Get the size of a window's borders (decorations) around the client area."] + #[doc = ""] + #[doc = " \\param window The window to query."] + #[doc = " \\param top Pointer to variable for storing the size of the top border. NULL is permitted."] + #[doc = " \\param left Pointer to variable for storing the size of the left border. NULL is permitted."] + #[doc = " \\param bottom Pointer to variable for storing the size of the bottom border. NULL is permitted."] + #[doc = " \\param right Pointer to variable for storing the size of the right border. NULL is permitted."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if getting this information is not supported."] + #[doc = ""] + #[doc = " \\note if this function fails (returns -1), the size values will be"] + #[doc = " initialized to 0, 0, 0, 0 (if a non-NULL pointer is provided), as"] + #[doc = " if the window in question was borderless."] + pub fn SDL_GetWindowBordersSize( + window: *mut SDL_Window, + top: *mut libc::c_int, + left: *mut libc::c_int, + bottom: *mut libc::c_int, + right: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set the minimum size of a window's client area."] + #[doc = ""] + #[doc = " \\param window The window to set a new minimum size."] + #[doc = " \\param min_w The minimum width of the window, must be >0"] + #[doc = " \\param min_h The minimum height of the window, must be >0"] + #[doc = ""] + #[doc = " \\note You can't change the minimum size of a fullscreen window, it"] + #[doc = " automatically matches the size of the display mode."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowMinimumSize()"] + #[doc = " \\sa SDL_SetWindowMaximumSize()"] + pub fn SDL_SetWindowMinimumSize( + window: *mut SDL_Window, + min_w: libc::c_int, + min_h: libc::c_int, + ); +} +extern "C" { + #[doc = " \\brief Get the minimum size of a window's client area."] + #[doc = ""] + #[doc = " \\param window The window to query."] + #[doc = " \\param w Pointer to variable for storing the minimum width, may be NULL"] + #[doc = " \\param h Pointer to variable for storing the minimum height, may be NULL"] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowMaximumSize()"] + #[doc = " \\sa SDL_SetWindowMinimumSize()"] + pub fn SDL_GetWindowMinimumSize( + window: *mut SDL_Window, + w: *mut libc::c_int, + h: *mut libc::c_int, + ); +} +extern "C" { + #[doc = " \\brief Set the maximum size of a window's client area."] + #[doc = ""] + #[doc = " \\param window The window to set a new maximum size."] + #[doc = " \\param max_w The maximum width of the window, must be >0"] + #[doc = " \\param max_h The maximum height of the window, must be >0"] + #[doc = ""] + #[doc = " \\note You can't change the maximum size of a fullscreen window, it"] + #[doc = " automatically matches the size of the display mode."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowMaximumSize()"] + #[doc = " \\sa SDL_SetWindowMinimumSize()"] + pub fn SDL_SetWindowMaximumSize( + window: *mut SDL_Window, + max_w: libc::c_int, + max_h: libc::c_int, + ); +} +extern "C" { + #[doc = " \\brief Get the maximum size of a window's client area."] + #[doc = ""] + #[doc = " \\param window The window to query."] + #[doc = " \\param w Pointer to variable for storing the maximum width, may be NULL"] + #[doc = " \\param h Pointer to variable for storing the maximum height, may be NULL"] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowMinimumSize()"] + #[doc = " \\sa SDL_SetWindowMaximumSize()"] + pub fn SDL_GetWindowMaximumSize( + window: *mut SDL_Window, + w: *mut libc::c_int, + h: *mut libc::c_int, + ); +} +extern "C" { + #[doc = " \\brief Set the border state of a window."] + #[doc = ""] + #[doc = " This will add or remove the window's SDL_WINDOW_BORDERLESS flag and"] + #[doc = " add or remove the border from the actual window. This is a no-op if the"] + #[doc = " window's border already matches the requested state."] + #[doc = ""] + #[doc = " \\param window The window of which to change the border state."] + #[doc = " \\param bordered SDL_FALSE to remove border, SDL_TRUE to add border."] + #[doc = ""] + #[doc = " \\note You can't change the border state of a fullscreen window."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowFlags()"] + pub fn SDL_SetWindowBordered(window: *mut SDL_Window, bordered: SDL_bool); +} +extern "C" { + #[doc = " \\brief Set the user-resizable state of a window."] + #[doc = ""] + #[doc = " This will add or remove the window's SDL_WINDOW_RESIZABLE flag and"] + #[doc = " allow/disallow user resizing of the window. This is a no-op if the"] + #[doc = " window's resizable state already matches the requested state."] + #[doc = ""] + #[doc = " \\param window The window of which to change the resizable state."] + #[doc = " \\param resizable SDL_TRUE to allow resizing, SDL_FALSE to disallow."] + #[doc = ""] + #[doc = " \\note You can't change the resizable state of a fullscreen window."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowFlags()"] + pub fn SDL_SetWindowResizable(window: *mut SDL_Window, resizable: SDL_bool); +} +extern "C" { + #[doc = " \\brief Show a window."] + #[doc = ""] + #[doc = " \\sa SDL_HideWindow()"] + pub fn SDL_ShowWindow(window: *mut SDL_Window); +} +extern "C" { + #[doc = " \\brief Hide a window."] + #[doc = ""] + #[doc = " \\sa SDL_ShowWindow()"] + pub fn SDL_HideWindow(window: *mut SDL_Window); +} +extern "C" { + #[doc = " \\brief Raise a window above other windows and set the input focus."] + pub fn SDL_RaiseWindow(window: *mut SDL_Window); +} +extern "C" { + #[doc = " \\brief Make a window as large as possible."] + #[doc = ""] + #[doc = " \\sa SDL_RestoreWindow()"] + pub fn SDL_MaximizeWindow(window: *mut SDL_Window); +} +extern "C" { + #[doc = " \\brief Minimize a window to an iconic representation."] + #[doc = ""] + #[doc = " \\sa SDL_RestoreWindow()"] + pub fn SDL_MinimizeWindow(window: *mut SDL_Window); +} +extern "C" { + #[doc = " \\brief Restore the size and position of a minimized or maximized window."] + #[doc = ""] + #[doc = " \\sa SDL_MaximizeWindow()"] + #[doc = " \\sa SDL_MinimizeWindow()"] + pub fn SDL_RestoreWindow(window: *mut SDL_Window); +} +extern "C" { + #[doc = " \\brief Set a window's fullscreen state."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if setting the display mode failed."] + #[doc = ""] + #[doc = " \\sa SDL_SetWindowDisplayMode()"] + #[doc = " \\sa SDL_GetWindowDisplayMode()"] + pub fn SDL_SetWindowFullscreen(window: *mut SDL_Window, flags: Uint32) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the SDL surface associated with the window."] + #[doc = ""] + #[doc = " \\return The window's framebuffer surface, or NULL on error."] + #[doc = ""] + #[doc = " A new surface will be created with the optimal format for the window,"] + #[doc = " if necessary. This surface will be freed when the window is destroyed."] + #[doc = ""] + #[doc = " \\note You may not combine this with 3D or the rendering API on this window."] + #[doc = ""] + #[doc = " \\sa SDL_UpdateWindowSurface()"] + #[doc = " \\sa SDL_UpdateWindowSurfaceRects()"] + pub fn SDL_GetWindowSurface(window: *mut SDL_Window) -> *mut SDL_Surface; +} +extern "C" { + #[doc = " \\brief Copy the window surface to the screen."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowSurface()"] + #[doc = " \\sa SDL_UpdateWindowSurfaceRects()"] + pub fn SDL_UpdateWindowSurface(window: *mut SDL_Window) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Copy a number of rectangles on the window surface to the screen."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowSurface()"] + #[doc = " \\sa SDL_UpdateWindowSurface()"] + pub fn SDL_UpdateWindowSurfaceRects( + window: *mut SDL_Window, + rects: *const SDL_Rect, + numrects: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set a window's input grab mode."] + #[doc = ""] + #[doc = " \\param window The window for which the input grab mode should be set."] + #[doc = " \\param grabbed This is SDL_TRUE to grab input, and SDL_FALSE to release input."] + #[doc = ""] + #[doc = " If the caller enables a grab while another window is currently grabbed,"] + #[doc = " the other window loses its grab in favor of the caller's window."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowGrab()"] + pub fn SDL_SetWindowGrab(window: *mut SDL_Window, grabbed: SDL_bool); +} +extern "C" { + #[doc = " \\brief Get a window's input grab mode."] + #[doc = ""] + #[doc = " \\return This returns SDL_TRUE if input is grabbed, and SDL_FALSE otherwise."] + #[doc = ""] + #[doc = " \\sa SDL_SetWindowGrab()"] + pub fn SDL_GetWindowGrab(window: *mut SDL_Window) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Get the window that currently has an input grab enabled."] + #[doc = ""] + #[doc = " \\return This returns the window if input is grabbed, and NULL otherwise."] + #[doc = ""] + #[doc = " \\sa SDL_SetWindowGrab()"] + pub fn SDL_GetGrabbedWindow() -> *mut SDL_Window; +} +extern "C" { + #[doc = " \\brief Set the brightness (gamma correction) for a window."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if setting the brightness isn't supported."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowBrightness()"] + #[doc = " \\sa SDL_SetWindowGammaRamp()"] + pub fn SDL_SetWindowBrightness(window: *mut SDL_Window, brightness: f32) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the brightness (gamma correction) for a window."] + #[doc = ""] + #[doc = " \\return The last brightness value passed to SDL_SetWindowBrightness()"] + #[doc = ""] + #[doc = " \\sa SDL_SetWindowBrightness()"] + pub fn SDL_GetWindowBrightness(window: *mut SDL_Window) -> f32; +} +extern "C" { + #[doc = " \\brief Set the opacity for a window"] + #[doc = ""] + #[doc = " \\param window The window which will be made transparent or opaque"] + #[doc = " \\param opacity Opacity (0.0f - transparent, 1.0f - opaque) This will be"] + #[doc = " clamped internally between 0.0f and 1.0f."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if setting the opacity isn't supported."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowOpacity()"] + pub fn SDL_SetWindowOpacity(window: *mut SDL_Window, opacity: f32) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the opacity of a window."] + #[doc = ""] + #[doc = " If transparency isn't supported on this platform, opacity will be reported"] + #[doc = " as 1.0f without error."] + #[doc = ""] + #[doc = " \\param window The window in question."] + #[doc = " \\param out_opacity Opacity (0.0f - transparent, 1.0f - opaque)"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error (invalid window, etc)."] + #[doc = ""] + #[doc = " \\sa SDL_SetWindowOpacity()"] + pub fn SDL_GetWindowOpacity(window: *mut SDL_Window, out_opacity: *mut f32) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Sets the window as a modal for another window (TODO: reconsider this function and/or its name)"] + #[doc = ""] + #[doc = " \\param modal_window The window that should be modal"] + #[doc = " \\param parent_window The parent window"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 otherwise."] + pub fn SDL_SetWindowModalFor( + modal_window: *mut SDL_Window, + parent_window: *mut SDL_Window, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Explicitly sets input focus to the window."] + #[doc = ""] + #[doc = " You almost certainly want SDL_RaiseWindow() instead of this function. Use"] + #[doc = " this with caution, as you might give focus to a window that's completely"] + #[doc = " obscured by other windows."] + #[doc = ""] + #[doc = " \\param window The window that should get the input focus"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 otherwise."] + #[doc = " \\sa SDL_RaiseWindow()"] + pub fn SDL_SetWindowInputFocus(window: *mut SDL_Window) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set the gamma ramp for a window."] + #[doc = ""] + #[doc = " \\param window The window for which the gamma ramp should be set."] + #[doc = " \\param red The translation table for the red channel, or NULL."] + #[doc = " \\param green The translation table for the green channel, or NULL."] + #[doc = " \\param blue The translation table for the blue channel, or NULL."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if gamma ramps are unsupported."] + #[doc = ""] + #[doc = " Set the gamma translation table for the red, green, and blue channels"] + #[doc = " of the video hardware. Each table is an array of 256 16-bit quantities,"] + #[doc = " representing a mapping between the input and output for that channel."] + #[doc = " The input is the index into the array, and the output is the 16-bit"] + #[doc = " gamma value at that index, scaled to the output color precision."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowGammaRamp()"] + pub fn SDL_SetWindowGammaRamp( + window: *mut SDL_Window, + red: *const Uint16, + green: *const Uint16, + blue: *const Uint16, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the gamma ramp for a window."] + #[doc = ""] + #[doc = " \\param window The window from which the gamma ramp should be queried."] + #[doc = " \\param red A pointer to a 256 element array of 16-bit quantities to hold"] + #[doc = " the translation table for the red channel, or NULL."] + #[doc = " \\param green A pointer to a 256 element array of 16-bit quantities to hold"] + #[doc = " the translation table for the green channel, or NULL."] + #[doc = " \\param blue A pointer to a 256 element array of 16-bit quantities to hold"] + #[doc = " the translation table for the blue channel, or NULL."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if gamma ramps are unsupported."] + #[doc = ""] + #[doc = " \\sa SDL_SetWindowGammaRamp()"] + pub fn SDL_GetWindowGammaRamp( + window: *mut SDL_Window, + red: *mut Uint16, + green: *mut Uint16, + blue: *mut Uint16, + ) -> libc::c_int; +} +#[repr(u32)] +#[doc = " \\brief Possible return values from the SDL_HitTest callback."] +#[doc = ""] +#[doc = " \\sa SDL_HitTest"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_HitTestResult { + #[doc = "< Region is normal. No special properties."] + SDL_HITTEST_NORMAL = 0, + #[doc = "< Region can drag entire window."] + SDL_HITTEST_DRAGGABLE = 1, + SDL_HITTEST_RESIZE_TOPLEFT = 2, + SDL_HITTEST_RESIZE_TOP = 3, + SDL_HITTEST_RESIZE_TOPRIGHT = 4, + SDL_HITTEST_RESIZE_RIGHT = 5, + SDL_HITTEST_RESIZE_BOTTOMRIGHT = 6, + SDL_HITTEST_RESIZE_BOTTOM = 7, + SDL_HITTEST_RESIZE_BOTTOMLEFT = 8, + SDL_HITTEST_RESIZE_LEFT = 9, +} +#[doc = " \\brief Callback used for hit-testing."] +#[doc = ""] +#[doc = " \\sa SDL_SetWindowHitTest"] +pub type SDL_HitTest = ::core::option::Option< + unsafe extern "C" fn( + win: *mut SDL_Window, + area: *const SDL_Point, + data: *mut libc::c_void, + ) -> SDL_HitTestResult, +>; +extern "C" { + #[doc = " \\brief Provide a callback that decides if a window region has special properties."] + #[doc = ""] + #[doc = " Normally windows are dragged and resized by decorations provided by the"] + #[doc = " system window manager (a title bar, borders, etc), but for some apps, it"] + #[doc = " makes sense to drag them from somewhere else inside the window itself; for"] + #[doc = " example, one might have a borderless window that wants to be draggable"] + #[doc = " from any part, or simulate its own title bar, etc."] + #[doc = ""] + #[doc = " This function lets the app provide a callback that designates pieces of"] + #[doc = " a given window as special. This callback is run during event processing"] + #[doc = " if we need to tell the OS to treat a region of the window specially; the"] + #[doc = " use of this callback is known as \"hit testing.\""] + #[doc = ""] + #[doc = " Mouse input may not be delivered to your application if it is within"] + #[doc = " a special area; the OS will often apply that input to moving the window or"] + #[doc = " resizing the window and not deliver it to the application."] + #[doc = ""] + #[doc = " Specifying NULL for a callback disables hit-testing. Hit-testing is"] + #[doc = " disabled by default."] + #[doc = ""] + #[doc = " Platforms that don't support this functionality will return -1"] + #[doc = " unconditionally, even if you're attempting to disable hit-testing."] + #[doc = ""] + #[doc = " Your callback may fire at any time, and its firing does not indicate any"] + #[doc = " specific behavior (for example, on Windows, this certainly might fire"] + #[doc = " when the OS is deciding whether to drag your window, but it fires for lots"] + #[doc = " of other reasons, too, some unrelated to anything you probably care about"] + #[doc = " _and when the mouse isn't actually at the location it is testing_)."] + #[doc = " Since this can fire at any time, you should try to keep your callback"] + #[doc = " efficient, devoid of allocations, etc."] + #[doc = ""] + #[doc = " \\param window The window to set hit-testing on."] + #[doc = " \\param callback The callback to call when doing a hit-test."] + #[doc = " \\param callback_data An app-defined void pointer passed to the callback."] + #[doc = " \\return 0 on success, -1 on error (including unsupported)."] + pub fn SDL_SetWindowHitTest( + window: *mut SDL_Window, + callback: SDL_HitTest, + callback_data: *mut libc::c_void, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Destroy a window."] + pub fn SDL_DestroyWindow(window: *mut SDL_Window); +} +extern "C" { + #[doc = " \\brief Returns whether the screensaver is currently enabled (default off)."] + #[doc = ""] + #[doc = " \\sa SDL_EnableScreenSaver()"] + #[doc = " \\sa SDL_DisableScreenSaver()"] + pub fn SDL_IsScreenSaverEnabled() -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Allow the screen to be blanked by a screensaver"] + #[doc = ""] + #[doc = " \\sa SDL_IsScreenSaverEnabled()"] + #[doc = " \\sa SDL_DisableScreenSaver()"] + pub fn SDL_EnableScreenSaver(); +} +extern "C" { + #[doc = " \\brief Prevent the screen from being blanked by a screensaver"] + #[doc = ""] + #[doc = " \\sa SDL_IsScreenSaverEnabled()"] + #[doc = " \\sa SDL_EnableScreenSaver()"] + pub fn SDL_DisableScreenSaver(); +} +extern "C" { + #[doc = " \\brief Dynamically load an OpenGL library."] + #[doc = ""] + #[doc = " \\param path The platform dependent OpenGL library name, or NULL to open the"] + #[doc = " default OpenGL library."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the library couldn't be loaded."] + #[doc = ""] + #[doc = " This should be done after initializing the video driver, but before"] + #[doc = " creating any OpenGL windows. If no OpenGL library is loaded, the default"] + #[doc = " library will be loaded upon creation of the first OpenGL window."] + #[doc = ""] + #[doc = " \\note If you do this, you need to retrieve all of the GL functions used in"] + #[doc = " your program from the dynamic library using SDL_GL_GetProcAddress()."] + #[doc = ""] + #[doc = " \\sa SDL_GL_GetProcAddress()"] + #[doc = " \\sa SDL_GL_UnloadLibrary()"] + pub fn SDL_GL_LoadLibrary(path: *const libc::c_char) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the address of an OpenGL function."] + pub fn SDL_GL_GetProcAddress(proc_: *const libc::c_char) -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Unload the OpenGL library previously loaded by SDL_GL_LoadLibrary()."] + #[doc = ""] + #[doc = " \\sa SDL_GL_LoadLibrary()"] + pub fn SDL_GL_UnloadLibrary(); +} +extern "C" { + #[doc = " \\brief Return true if an OpenGL extension is supported for the current"] + #[doc = " context."] + pub fn SDL_GL_ExtensionSupported(extension: *const libc::c_char) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Reset all previously set OpenGL context attributes to their default values"] + pub fn SDL_GL_ResetAttributes(); +} +extern "C" { + #[doc = " \\brief Set an OpenGL window attribute before window creation."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the attribute could not be set."] + pub fn SDL_GL_SetAttribute(attr: SDL_GLattr, value: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the actual value for an attribute from the current context."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the attribute could not be retrieved."] + #[doc = " The integer at \\c value will be modified in either case."] + pub fn SDL_GL_GetAttribute(attr: SDL_GLattr, value: *mut libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Create an OpenGL context for use with an OpenGL window, and make it"] + #[doc = " current."] + #[doc = ""] + #[doc = " \\sa SDL_GL_DeleteContext()"] + pub fn SDL_GL_CreateContext(window: *mut SDL_Window) -> SDL_GLContext; +} +extern "C" { + #[doc = " \\brief Set up an OpenGL context for rendering into an OpenGL window."] + #[doc = ""] + #[doc = " \\note The context must have been created with a compatible window."] + pub fn SDL_GL_MakeCurrent(window: *mut SDL_Window, context: SDL_GLContext) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the currently active OpenGL window."] + pub fn SDL_GL_GetCurrentWindow() -> *mut SDL_Window; +} +extern "C" { + #[doc = " \\brief Get the currently active OpenGL context."] + pub fn SDL_GL_GetCurrentContext() -> SDL_GLContext; +} +extern "C" { + #[doc = " \\brief Get the size of a window's underlying drawable in pixels (for use"] + #[doc = " with glViewport)."] + #[doc = ""] + #[doc = " \\param window Window from which the drawable size should be queried"] + #[doc = " \\param w Pointer to variable for storing the width in pixels, may be NULL"] + #[doc = " \\param h Pointer to variable for storing the height in pixels, may be NULL"] + #[doc = ""] + #[doc = " This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI"] + #[doc = " drawable, i.e. the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a"] + #[doc = " platform with high-DPI support (Apple calls this \"Retina\"), and not disabled"] + #[doc = " by the SDL_HINT_VIDEO_HIGHDPI_DISABLED hint."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowSize()"] + #[doc = " \\sa SDL_CreateWindow()"] + pub fn SDL_GL_GetDrawableSize( + window: *mut SDL_Window, + w: *mut libc::c_int, + h: *mut libc::c_int, + ); +} +extern "C" { + #[doc = " \\brief Set the swap interval for the current OpenGL context."] + #[doc = ""] + #[doc = " \\param interval 0 for immediate updates, 1 for updates synchronized with the"] + #[doc = " vertical retrace. If the system supports it, you may"] + #[doc = " specify -1 to allow late swaps to happen immediately"] + #[doc = " instead of waiting for the next retrace."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if setting the swap interval is not supported."] + #[doc = ""] + #[doc = " \\sa SDL_GL_GetSwapInterval()"] + pub fn SDL_GL_SetSwapInterval(interval: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the swap interval for the current OpenGL context."] + #[doc = ""] + #[doc = " \\return 0 if there is no vertical retrace synchronization, 1 if the buffer"] + #[doc = " swap is synchronized with the vertical retrace, and -1 if late"] + #[doc = " swaps happen immediately instead of waiting for the next retrace."] + #[doc = " If the system can't determine the swap interval, or there isn't a"] + #[doc = " valid current context, this will return 0 as a safe default."] + #[doc = ""] + #[doc = " \\sa SDL_GL_SetSwapInterval()"] + pub fn SDL_GL_GetSwapInterval() -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Swap the OpenGL buffers for a window, if double-buffering is"] + #[doc = " supported."] + pub fn SDL_GL_SwapWindow(window: *mut SDL_Window); +} +extern "C" { + #[doc = " \\brief Delete an OpenGL context."] + #[doc = ""] + #[doc = " \\sa SDL_GL_CreateContext()"] + pub fn SDL_GL_DeleteContext(context: SDL_GLContext); +} +#[repr(u32)] +#[doc = " \\brief The SDL keyboard scancode representation."] +#[doc = ""] +#[doc = " Values of this type are used to represent keyboard keys, among other places"] +#[doc = " in the \\link SDL_Keysym::scancode key.keysym.scancode \\endlink field of the"] +#[doc = " SDL_Event structure."] +#[doc = ""] +#[doc = " The values in this enumeration are based on the USB usage page standard:"] +#[doc = " https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_Scancode { + SDL_SCANCODE_UNKNOWN = 0, + SDL_SCANCODE_A = 4, + SDL_SCANCODE_B = 5, + SDL_SCANCODE_C = 6, + SDL_SCANCODE_D = 7, + SDL_SCANCODE_E = 8, + SDL_SCANCODE_F = 9, + SDL_SCANCODE_G = 10, + SDL_SCANCODE_H = 11, + SDL_SCANCODE_I = 12, + SDL_SCANCODE_J = 13, + SDL_SCANCODE_K = 14, + SDL_SCANCODE_L = 15, + SDL_SCANCODE_M = 16, + SDL_SCANCODE_N = 17, + SDL_SCANCODE_O = 18, + SDL_SCANCODE_P = 19, + SDL_SCANCODE_Q = 20, + SDL_SCANCODE_R = 21, + SDL_SCANCODE_S = 22, + SDL_SCANCODE_T = 23, + SDL_SCANCODE_U = 24, + SDL_SCANCODE_V = 25, + SDL_SCANCODE_W = 26, + SDL_SCANCODE_X = 27, + SDL_SCANCODE_Y = 28, + SDL_SCANCODE_Z = 29, + SDL_SCANCODE_1 = 30, + SDL_SCANCODE_2 = 31, + SDL_SCANCODE_3 = 32, + SDL_SCANCODE_4 = 33, + SDL_SCANCODE_5 = 34, + SDL_SCANCODE_6 = 35, + SDL_SCANCODE_7 = 36, + SDL_SCANCODE_8 = 37, + SDL_SCANCODE_9 = 38, + SDL_SCANCODE_0 = 39, + SDL_SCANCODE_RETURN = 40, + SDL_SCANCODE_ESCAPE = 41, + SDL_SCANCODE_BACKSPACE = 42, + SDL_SCANCODE_TAB = 43, + SDL_SCANCODE_SPACE = 44, + SDL_SCANCODE_MINUS = 45, + SDL_SCANCODE_EQUALS = 46, + SDL_SCANCODE_LEFTBRACKET = 47, + SDL_SCANCODE_RIGHTBRACKET = 48, + #[doc = "< Located at the lower left of the return"] + #[doc = " key on ISO keyboards and at the right end"] + #[doc = " of the QWERTY row on ANSI keyboards."] + #[doc = " Produces REVERSE SOLIDUS (backslash) and"] + #[doc = " VERTICAL LINE in a US layout, REVERSE"] + #[doc = " SOLIDUS and VERTICAL LINE in a UK Mac"] + #[doc = " layout, NUMBER SIGN and TILDE in a UK"] + #[doc = " Windows layout, DOLLAR SIGN and POUND SIGN"] + #[doc = " in a Swiss German layout, NUMBER SIGN and"] + #[doc = " APOSTROPHE in a German layout, GRAVE"] + #[doc = " ACCENT and POUND SIGN in a French Mac"] + #[doc = " layout, and ASTERISK and MICRO SIGN in a"] + #[doc = " French Windows layout."] + SDL_SCANCODE_BACKSLASH = 49, + #[doc = "< ISO USB keyboards actually use this code"] + #[doc = " instead of 49 for the same key, but all"] + #[doc = " OSes I've seen treat the two codes"] + #[doc = " identically. So, as an implementor, unless"] + #[doc = " your keyboard generates both of those"] + #[doc = " codes and your OS treats them differently,"] + #[doc = " you should generate SDL_SCANCODE_BACKSLASH"] + #[doc = " instead of this code. As a user, you"] + #[doc = " should not rely on this code because SDL"] + #[doc = " will never generate it with most (all?)"] + #[doc = " keyboards."] + SDL_SCANCODE_NONUSHASH = 50, + SDL_SCANCODE_SEMICOLON = 51, + SDL_SCANCODE_APOSTROPHE = 52, + #[doc = "< Located in the top left corner (on both ANSI"] + #[doc = " and ISO keyboards). Produces GRAVE ACCENT and"] + #[doc = " TILDE in a US Windows layout and in US and UK"] + #[doc = " Mac layouts on ANSI keyboards, GRAVE ACCENT"] + #[doc = " and NOT SIGN in a UK Windows layout, SECTION"] + #[doc = " SIGN and PLUS-MINUS SIGN in US and UK Mac"] + #[doc = " layouts on ISO keyboards, SECTION SIGN and"] + #[doc = " DEGREE SIGN in a Swiss German layout (Mac:"] + #[doc = " only on ISO keyboards), CIRCUMFLEX ACCENT and"] + #[doc = " DEGREE SIGN in a German layout (Mac: only on"] + #[doc = " ISO keyboards), SUPERSCRIPT TWO and TILDE in a"] + #[doc = " French Windows layout, COMMERCIAL AT and"] + #[doc = " NUMBER SIGN in a French Mac layout on ISO"] + #[doc = " keyboards, and LESS-THAN SIGN and GREATER-THAN"] + #[doc = " SIGN in a Swiss German, German, or French Mac"] + #[doc = " layout on ANSI keyboards."] + SDL_SCANCODE_GRAVE = 53, + SDL_SCANCODE_COMMA = 54, + SDL_SCANCODE_PERIOD = 55, + SDL_SCANCODE_SLASH = 56, + SDL_SCANCODE_CAPSLOCK = 57, + SDL_SCANCODE_F1 = 58, + SDL_SCANCODE_F2 = 59, + SDL_SCANCODE_F3 = 60, + SDL_SCANCODE_F4 = 61, + SDL_SCANCODE_F5 = 62, + SDL_SCANCODE_F6 = 63, + SDL_SCANCODE_F7 = 64, + SDL_SCANCODE_F8 = 65, + SDL_SCANCODE_F9 = 66, + SDL_SCANCODE_F10 = 67, + SDL_SCANCODE_F11 = 68, + SDL_SCANCODE_F12 = 69, + SDL_SCANCODE_PRINTSCREEN = 70, + SDL_SCANCODE_SCROLLLOCK = 71, + SDL_SCANCODE_PAUSE = 72, + #[doc = "< insert on PC, help on some Mac keyboards (but"] + #[doc = "does send code 73, not 117)"] + SDL_SCANCODE_INSERT = 73, + SDL_SCANCODE_HOME = 74, + SDL_SCANCODE_PAGEUP = 75, + SDL_SCANCODE_DELETE = 76, + SDL_SCANCODE_END = 77, + SDL_SCANCODE_PAGEDOWN = 78, + SDL_SCANCODE_RIGHT = 79, + SDL_SCANCODE_LEFT = 80, + SDL_SCANCODE_DOWN = 81, + SDL_SCANCODE_UP = 82, + #[doc = "< num lock on PC, clear on Mac keyboards"] + SDL_SCANCODE_NUMLOCKCLEAR = 83, + SDL_SCANCODE_KP_DIVIDE = 84, + SDL_SCANCODE_KP_MULTIPLY = 85, + SDL_SCANCODE_KP_MINUS = 86, + SDL_SCANCODE_KP_PLUS = 87, + SDL_SCANCODE_KP_ENTER = 88, + SDL_SCANCODE_KP_1 = 89, + SDL_SCANCODE_KP_2 = 90, + SDL_SCANCODE_KP_3 = 91, + SDL_SCANCODE_KP_4 = 92, + SDL_SCANCODE_KP_5 = 93, + SDL_SCANCODE_KP_6 = 94, + SDL_SCANCODE_KP_7 = 95, + SDL_SCANCODE_KP_8 = 96, + SDL_SCANCODE_KP_9 = 97, + SDL_SCANCODE_KP_0 = 98, + SDL_SCANCODE_KP_PERIOD = 99, + #[doc = "< This is the additional key that ISO"] + #[doc = " keyboards have over ANSI ones,"] + #[doc = " located between left shift and Y."] + #[doc = " Produces GRAVE ACCENT and TILDE in a"] + #[doc = " US or UK Mac layout, REVERSE SOLIDUS"] + #[doc = " (backslash) and VERTICAL LINE in a"] + #[doc = " US or UK Windows layout, and"] + #[doc = " LESS-THAN SIGN and GREATER-THAN SIGN"] + #[doc = " in a Swiss German, German, or French"] + #[doc = " layout."] + SDL_SCANCODE_NONUSBACKSLASH = 100, + #[doc = "< windows contextual menu, compose"] + SDL_SCANCODE_APPLICATION = 101, + #[doc = "< The USB document says this is a status flag,"] + #[doc = " not a physical key - but some Mac keyboards"] + #[doc = " do have a power key."] + SDL_SCANCODE_POWER = 102, + SDL_SCANCODE_KP_EQUALS = 103, + SDL_SCANCODE_F13 = 104, + SDL_SCANCODE_F14 = 105, + SDL_SCANCODE_F15 = 106, + SDL_SCANCODE_F16 = 107, + SDL_SCANCODE_F17 = 108, + SDL_SCANCODE_F18 = 109, + SDL_SCANCODE_F19 = 110, + SDL_SCANCODE_F20 = 111, + SDL_SCANCODE_F21 = 112, + SDL_SCANCODE_F22 = 113, + SDL_SCANCODE_F23 = 114, + SDL_SCANCODE_F24 = 115, + SDL_SCANCODE_EXECUTE = 116, + SDL_SCANCODE_HELP = 117, + SDL_SCANCODE_MENU = 118, + SDL_SCANCODE_SELECT = 119, + SDL_SCANCODE_STOP = 120, + #[doc = "< redo"] + SDL_SCANCODE_AGAIN = 121, + SDL_SCANCODE_UNDO = 122, + SDL_SCANCODE_CUT = 123, + SDL_SCANCODE_COPY = 124, + SDL_SCANCODE_PASTE = 125, + SDL_SCANCODE_FIND = 126, + SDL_SCANCODE_MUTE = 127, + SDL_SCANCODE_VOLUMEUP = 128, + SDL_SCANCODE_VOLUMEDOWN = 129, + SDL_SCANCODE_KP_COMMA = 133, + SDL_SCANCODE_KP_EQUALSAS400 = 134, + #[doc = "< used on Asian keyboards, see"] + #[doc = "footnotes in USB doc"] + SDL_SCANCODE_INTERNATIONAL1 = 135, + SDL_SCANCODE_INTERNATIONAL2 = 136, + #[doc = "< Yen"] + SDL_SCANCODE_INTERNATIONAL3 = 137, + SDL_SCANCODE_INTERNATIONAL4 = 138, + SDL_SCANCODE_INTERNATIONAL5 = 139, + SDL_SCANCODE_INTERNATIONAL6 = 140, + SDL_SCANCODE_INTERNATIONAL7 = 141, + SDL_SCANCODE_INTERNATIONAL8 = 142, + SDL_SCANCODE_INTERNATIONAL9 = 143, + #[doc = "< Hangul/English toggle"] + SDL_SCANCODE_LANG1 = 144, + #[doc = "< Hanja conversion"] + SDL_SCANCODE_LANG2 = 145, + #[doc = "< Katakana"] + SDL_SCANCODE_LANG3 = 146, + #[doc = "< Hiragana"] + SDL_SCANCODE_LANG4 = 147, + #[doc = "< Zenkaku/Hankaku"] + SDL_SCANCODE_LANG5 = 148, + #[doc = "< reserved"] + SDL_SCANCODE_LANG6 = 149, + #[doc = "< reserved"] + SDL_SCANCODE_LANG7 = 150, + #[doc = "< reserved"] + SDL_SCANCODE_LANG8 = 151, + #[doc = "< reserved"] + SDL_SCANCODE_LANG9 = 152, + #[doc = "< Erase-Eaze"] + SDL_SCANCODE_ALTERASE = 153, + SDL_SCANCODE_SYSREQ = 154, + SDL_SCANCODE_CANCEL = 155, + SDL_SCANCODE_CLEAR = 156, + SDL_SCANCODE_PRIOR = 157, + SDL_SCANCODE_RETURN2 = 158, + SDL_SCANCODE_SEPARATOR = 159, + SDL_SCANCODE_OUT = 160, + SDL_SCANCODE_OPER = 161, + SDL_SCANCODE_CLEARAGAIN = 162, + SDL_SCANCODE_CRSEL = 163, + SDL_SCANCODE_EXSEL = 164, + SDL_SCANCODE_KP_00 = 176, + SDL_SCANCODE_KP_000 = 177, + SDL_SCANCODE_THOUSANDSSEPARATOR = 178, + SDL_SCANCODE_DECIMALSEPARATOR = 179, + SDL_SCANCODE_CURRENCYUNIT = 180, + SDL_SCANCODE_CURRENCYSUBUNIT = 181, + SDL_SCANCODE_KP_LEFTPAREN = 182, + SDL_SCANCODE_KP_RIGHTPAREN = 183, + SDL_SCANCODE_KP_LEFTBRACE = 184, + SDL_SCANCODE_KP_RIGHTBRACE = 185, + SDL_SCANCODE_KP_TAB = 186, + SDL_SCANCODE_KP_BACKSPACE = 187, + SDL_SCANCODE_KP_A = 188, + SDL_SCANCODE_KP_B = 189, + SDL_SCANCODE_KP_C = 190, + SDL_SCANCODE_KP_D = 191, + SDL_SCANCODE_KP_E = 192, + SDL_SCANCODE_KP_F = 193, + SDL_SCANCODE_KP_XOR = 194, + SDL_SCANCODE_KP_POWER = 195, + SDL_SCANCODE_KP_PERCENT = 196, + SDL_SCANCODE_KP_LESS = 197, + SDL_SCANCODE_KP_GREATER = 198, + SDL_SCANCODE_KP_AMPERSAND = 199, + SDL_SCANCODE_KP_DBLAMPERSAND = 200, + SDL_SCANCODE_KP_VERTICALBAR = 201, + SDL_SCANCODE_KP_DBLVERTICALBAR = 202, + SDL_SCANCODE_KP_COLON = 203, + SDL_SCANCODE_KP_HASH = 204, + SDL_SCANCODE_KP_SPACE = 205, + SDL_SCANCODE_KP_AT = 206, + SDL_SCANCODE_KP_EXCLAM = 207, + SDL_SCANCODE_KP_MEMSTORE = 208, + SDL_SCANCODE_KP_MEMRECALL = 209, + SDL_SCANCODE_KP_MEMCLEAR = 210, + SDL_SCANCODE_KP_MEMADD = 211, + SDL_SCANCODE_KP_MEMSUBTRACT = 212, + SDL_SCANCODE_KP_MEMMULTIPLY = 213, + SDL_SCANCODE_KP_MEMDIVIDE = 214, + SDL_SCANCODE_KP_PLUSMINUS = 215, + SDL_SCANCODE_KP_CLEAR = 216, + SDL_SCANCODE_KP_CLEARENTRY = 217, + SDL_SCANCODE_KP_BINARY = 218, + SDL_SCANCODE_KP_OCTAL = 219, + SDL_SCANCODE_KP_DECIMAL = 220, + SDL_SCANCODE_KP_HEXADECIMAL = 221, + SDL_SCANCODE_LCTRL = 224, + SDL_SCANCODE_LSHIFT = 225, + #[doc = "< alt, option"] + SDL_SCANCODE_LALT = 226, + #[doc = "< windows, command (apple), meta"] + SDL_SCANCODE_LGUI = 227, + SDL_SCANCODE_RCTRL = 228, + SDL_SCANCODE_RSHIFT = 229, + #[doc = "< alt gr, option"] + SDL_SCANCODE_RALT = 230, + #[doc = "< windows, command (apple), meta"] + SDL_SCANCODE_RGUI = 231, + #[doc = "< I'm not sure if this is really not covered"] + #[doc = " by any of the above, but since there's a"] + #[doc = " special KMOD_MODE for it I'm adding it here"] + SDL_SCANCODE_MODE = 257, + SDL_SCANCODE_AUDIONEXT = 258, + SDL_SCANCODE_AUDIOPREV = 259, + SDL_SCANCODE_AUDIOSTOP = 260, + SDL_SCANCODE_AUDIOPLAY = 261, + SDL_SCANCODE_AUDIOMUTE = 262, + SDL_SCANCODE_MEDIASELECT = 263, + SDL_SCANCODE_WWW = 264, + SDL_SCANCODE_MAIL = 265, + SDL_SCANCODE_CALCULATOR = 266, + SDL_SCANCODE_COMPUTER = 267, + SDL_SCANCODE_AC_SEARCH = 268, + SDL_SCANCODE_AC_HOME = 269, + SDL_SCANCODE_AC_BACK = 270, + SDL_SCANCODE_AC_FORWARD = 271, + SDL_SCANCODE_AC_STOP = 272, + SDL_SCANCODE_AC_REFRESH = 273, + SDL_SCANCODE_AC_BOOKMARKS = 274, + SDL_SCANCODE_BRIGHTNESSDOWN = 275, + SDL_SCANCODE_BRIGHTNESSUP = 276, + #[doc = "< display mirroring/dual display"] + #[doc = "switch, video mode switch"] + SDL_SCANCODE_DISPLAYSWITCH = 277, + SDL_SCANCODE_KBDILLUMTOGGLE = 278, + SDL_SCANCODE_KBDILLUMDOWN = 279, + SDL_SCANCODE_KBDILLUMUP = 280, + SDL_SCANCODE_EJECT = 281, + SDL_SCANCODE_SLEEP = 282, + SDL_SCANCODE_APP1 = 283, + SDL_SCANCODE_APP2 = 284, + SDL_SCANCODE_AUDIOREWIND = 285, + SDL_SCANCODE_AUDIOFASTFORWARD = 286, + #[doc = "< not a key, just marks the number of scancodes"] + #[doc = "for array bounds"] + SDL_NUM_SCANCODES = 512, +} +#[doc = " \\brief The SDL virtual key representation."] +#[doc = ""] +#[doc = " Values of this type are used to represent keyboard keys using the current"] +#[doc = " layout of the keyboard. These values include Unicode values representing"] +#[doc = " the unmodified character that would be generated by pressing the key, or"] +#[doc = " an SDLK_* constant for those keys that do not generate characters."] +#[doc = ""] +#[doc = " A special exception is the number keys at the top of the keyboard which"] +#[doc = " always map to SDLK_0...SDLK_9, regardless of layout."] +pub type SDL_Keycode = Sint32; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_KeyCode { + SDLK_UNKNOWN = 0, + SDLK_RETURN = 13, + SDLK_ESCAPE = 27, + SDLK_BACKSPACE = 8, + SDLK_TAB = 9, + SDLK_SPACE = 32, + SDLK_EXCLAIM = 33, + SDLK_QUOTEDBL = 34, + SDLK_HASH = 35, + SDLK_PERCENT = 37, + SDLK_DOLLAR = 36, + SDLK_AMPERSAND = 38, + SDLK_QUOTE = 39, + SDLK_LEFTPAREN = 40, + SDLK_RIGHTPAREN = 41, + SDLK_ASTERISK = 42, + SDLK_PLUS = 43, + SDLK_COMMA = 44, + SDLK_MINUS = 45, + SDLK_PERIOD = 46, + SDLK_SLASH = 47, + SDLK_0 = 48, + SDLK_1 = 49, + SDLK_2 = 50, + SDLK_3 = 51, + SDLK_4 = 52, + SDLK_5 = 53, + SDLK_6 = 54, + SDLK_7 = 55, + SDLK_8 = 56, + SDLK_9 = 57, + SDLK_COLON = 58, + SDLK_SEMICOLON = 59, + SDLK_LESS = 60, + SDLK_EQUALS = 61, + SDLK_GREATER = 62, + SDLK_QUESTION = 63, + SDLK_AT = 64, + SDLK_LEFTBRACKET = 91, + SDLK_BACKSLASH = 92, + SDLK_RIGHTBRACKET = 93, + SDLK_CARET = 94, + SDLK_UNDERSCORE = 95, + SDLK_BACKQUOTE = 96, + SDLK_a = 97, + SDLK_b = 98, + SDLK_c = 99, + SDLK_d = 100, + SDLK_e = 101, + SDLK_f = 102, + SDLK_g = 103, + SDLK_h = 104, + SDLK_i = 105, + SDLK_j = 106, + SDLK_k = 107, + SDLK_l = 108, + SDLK_m = 109, + SDLK_n = 110, + SDLK_o = 111, + SDLK_p = 112, + SDLK_q = 113, + SDLK_r = 114, + SDLK_s = 115, + SDLK_t = 116, + SDLK_u = 117, + SDLK_v = 118, + SDLK_w = 119, + SDLK_x = 120, + SDLK_y = 121, + SDLK_z = 122, + SDLK_CAPSLOCK = 1073741881, + SDLK_F1 = 1073741882, + SDLK_F2 = 1073741883, + SDLK_F3 = 1073741884, + SDLK_F4 = 1073741885, + SDLK_F5 = 1073741886, + SDLK_F6 = 1073741887, + SDLK_F7 = 1073741888, + SDLK_F8 = 1073741889, + SDLK_F9 = 1073741890, + SDLK_F10 = 1073741891, + SDLK_F11 = 1073741892, + SDLK_F12 = 1073741893, + SDLK_PRINTSCREEN = 1073741894, + SDLK_SCROLLLOCK = 1073741895, + SDLK_PAUSE = 1073741896, + SDLK_INSERT = 1073741897, + SDLK_HOME = 1073741898, + SDLK_PAGEUP = 1073741899, + SDLK_DELETE = 127, + SDLK_END = 1073741901, + SDLK_PAGEDOWN = 1073741902, + SDLK_RIGHT = 1073741903, + SDLK_LEFT = 1073741904, + SDLK_DOWN = 1073741905, + SDLK_UP = 1073741906, + SDLK_NUMLOCKCLEAR = 1073741907, + SDLK_KP_DIVIDE = 1073741908, + SDLK_KP_MULTIPLY = 1073741909, + SDLK_KP_MINUS = 1073741910, + SDLK_KP_PLUS = 1073741911, + SDLK_KP_ENTER = 1073741912, + SDLK_KP_1 = 1073741913, + SDLK_KP_2 = 1073741914, + SDLK_KP_3 = 1073741915, + SDLK_KP_4 = 1073741916, + SDLK_KP_5 = 1073741917, + SDLK_KP_6 = 1073741918, + SDLK_KP_7 = 1073741919, + SDLK_KP_8 = 1073741920, + SDLK_KP_9 = 1073741921, + SDLK_KP_0 = 1073741922, + SDLK_KP_PERIOD = 1073741923, + SDLK_APPLICATION = 1073741925, + SDLK_POWER = 1073741926, + SDLK_KP_EQUALS = 1073741927, + SDLK_F13 = 1073741928, + SDLK_F14 = 1073741929, + SDLK_F15 = 1073741930, + SDLK_F16 = 1073741931, + SDLK_F17 = 1073741932, + SDLK_F18 = 1073741933, + SDLK_F19 = 1073741934, + SDLK_F20 = 1073741935, + SDLK_F21 = 1073741936, + SDLK_F22 = 1073741937, + SDLK_F23 = 1073741938, + SDLK_F24 = 1073741939, + SDLK_EXECUTE = 1073741940, + SDLK_HELP = 1073741941, + SDLK_MENU = 1073741942, + SDLK_SELECT = 1073741943, + SDLK_STOP = 1073741944, + SDLK_AGAIN = 1073741945, + SDLK_UNDO = 1073741946, + SDLK_CUT = 1073741947, + SDLK_COPY = 1073741948, + SDLK_PASTE = 1073741949, + SDLK_FIND = 1073741950, + SDLK_MUTE = 1073741951, + SDLK_VOLUMEUP = 1073741952, + SDLK_VOLUMEDOWN = 1073741953, + SDLK_KP_COMMA = 1073741957, + SDLK_KP_EQUALSAS400 = 1073741958, + SDLK_ALTERASE = 1073741977, + SDLK_SYSREQ = 1073741978, + SDLK_CANCEL = 1073741979, + SDLK_CLEAR = 1073741980, + SDLK_PRIOR = 1073741981, + SDLK_RETURN2 = 1073741982, + SDLK_SEPARATOR = 1073741983, + SDLK_OUT = 1073741984, + SDLK_OPER = 1073741985, + SDLK_CLEARAGAIN = 1073741986, + SDLK_CRSEL = 1073741987, + SDLK_EXSEL = 1073741988, + SDLK_KP_00 = 1073742000, + SDLK_KP_000 = 1073742001, + SDLK_THOUSANDSSEPARATOR = 1073742002, + SDLK_DECIMALSEPARATOR = 1073742003, + SDLK_CURRENCYUNIT = 1073742004, + SDLK_CURRENCYSUBUNIT = 1073742005, + SDLK_KP_LEFTPAREN = 1073742006, + SDLK_KP_RIGHTPAREN = 1073742007, + SDLK_KP_LEFTBRACE = 1073742008, + SDLK_KP_RIGHTBRACE = 1073742009, + SDLK_KP_TAB = 1073742010, + SDLK_KP_BACKSPACE = 1073742011, + SDLK_KP_A = 1073742012, + SDLK_KP_B = 1073742013, + SDLK_KP_C = 1073742014, + SDLK_KP_D = 1073742015, + SDLK_KP_E = 1073742016, + SDLK_KP_F = 1073742017, + SDLK_KP_XOR = 1073742018, + SDLK_KP_POWER = 1073742019, + SDLK_KP_PERCENT = 1073742020, + SDLK_KP_LESS = 1073742021, + SDLK_KP_GREATER = 1073742022, + SDLK_KP_AMPERSAND = 1073742023, + SDLK_KP_DBLAMPERSAND = 1073742024, + SDLK_KP_VERTICALBAR = 1073742025, + SDLK_KP_DBLVERTICALBAR = 1073742026, + SDLK_KP_COLON = 1073742027, + SDLK_KP_HASH = 1073742028, + SDLK_KP_SPACE = 1073742029, + SDLK_KP_AT = 1073742030, + SDLK_KP_EXCLAM = 1073742031, + SDLK_KP_MEMSTORE = 1073742032, + SDLK_KP_MEMRECALL = 1073742033, + SDLK_KP_MEMCLEAR = 1073742034, + SDLK_KP_MEMADD = 1073742035, + SDLK_KP_MEMSUBTRACT = 1073742036, + SDLK_KP_MEMMULTIPLY = 1073742037, + SDLK_KP_MEMDIVIDE = 1073742038, + SDLK_KP_PLUSMINUS = 1073742039, + SDLK_KP_CLEAR = 1073742040, + SDLK_KP_CLEARENTRY = 1073742041, + SDLK_KP_BINARY = 1073742042, + SDLK_KP_OCTAL = 1073742043, + SDLK_KP_DECIMAL = 1073742044, + SDLK_KP_HEXADECIMAL = 1073742045, + SDLK_LCTRL = 1073742048, + SDLK_LSHIFT = 1073742049, + SDLK_LALT = 1073742050, + SDLK_LGUI = 1073742051, + SDLK_RCTRL = 1073742052, + SDLK_RSHIFT = 1073742053, + SDLK_RALT = 1073742054, + SDLK_RGUI = 1073742055, + SDLK_MODE = 1073742081, + SDLK_AUDIONEXT = 1073742082, + SDLK_AUDIOPREV = 1073742083, + SDLK_AUDIOSTOP = 1073742084, + SDLK_AUDIOPLAY = 1073742085, + SDLK_AUDIOMUTE = 1073742086, + SDLK_MEDIASELECT = 1073742087, + SDLK_WWW = 1073742088, + SDLK_MAIL = 1073742089, + SDLK_CALCULATOR = 1073742090, + SDLK_COMPUTER = 1073742091, + SDLK_AC_SEARCH = 1073742092, + SDLK_AC_HOME = 1073742093, + SDLK_AC_BACK = 1073742094, + SDLK_AC_FORWARD = 1073742095, + SDLK_AC_STOP = 1073742096, + SDLK_AC_REFRESH = 1073742097, + SDLK_AC_BOOKMARKS = 1073742098, + SDLK_BRIGHTNESSDOWN = 1073742099, + SDLK_BRIGHTNESSUP = 1073742100, + SDLK_DISPLAYSWITCH = 1073742101, + SDLK_KBDILLUMTOGGLE = 1073742102, + SDLK_KBDILLUMDOWN = 1073742103, + SDLK_KBDILLUMUP = 1073742104, + SDLK_EJECT = 1073742105, + SDLK_SLEEP = 1073742106, + SDLK_APP1 = 1073742107, + SDLK_APP2 = 1073742108, + SDLK_AUDIOREWIND = 1073742109, + SDLK_AUDIOFASTFORWARD = 1073742110, +} +#[repr(u32)] +#[doc = " \\brief Enumeration of valid key mods (possibly OR'd together)."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_Keymod { + KMOD_NONE = 0, + KMOD_LSHIFT = 1, + KMOD_RSHIFT = 2, + KMOD_LCTRL = 64, + KMOD_RCTRL = 128, + KMOD_LALT = 256, + KMOD_RALT = 512, + KMOD_LGUI = 1024, + KMOD_RGUI = 2048, + KMOD_NUM = 4096, + KMOD_CAPS = 8192, + KMOD_MODE = 16384, + KMOD_RESERVED = 32768, + KMOD_CTRL = 192, + KMOD_SHIFT = 3, + KMOD_ALT = 768, + KMOD_GUI = 3072, +} +#[doc = " \\brief The SDL keysym structure, used in key events."] +#[doc = ""] +#[doc = " \\note If you are looking for translated character input, see the ::SDL_TEXTINPUT event."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Keysym { + #[doc = "< SDL physical key code - see ::SDL_Scancode for details"] + pub scancode: SDL_Scancode, + #[doc = "< SDL virtual key code - see ::SDL_Keycode for details"] + pub sym: SDL_Keycode, + #[doc = "< current key modifiers"] + pub mod_: Uint16, + pub unused: Uint32, +} +#[test] +fn bindgen_test_layout_SDL_Keysym() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_Keysym)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_Keysym)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).scancode as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Keysym), + "::", + stringify!(scancode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).sym as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_Keysym), + "::", + stringify!(sym) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).mod_ as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_Keysym), + "::", + stringify!(mod_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).unused as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_Keysym), + "::", + stringify!(unused) + ) + ); +} +extern "C" { + #[doc = " \\brief Get the window which currently has keyboard focus."] + pub fn SDL_GetKeyboardFocus() -> *mut SDL_Window; +} +extern "C" { + #[doc = " \\brief Get a snapshot of the current state of the keyboard."] + #[doc = ""] + #[doc = " \\param numkeys if non-NULL, receives the length of the returned array."] + #[doc = ""] + #[doc = " \\return An array of key states. Indexes into this array are obtained by using ::SDL_Scancode values."] + #[doc = ""] + #[doc = " \\b Example:"] + #[doc = " \\code"] + #[doc = " const Uint8 *state = SDL_GetKeyboardState(NULL);"] + #[doc = " if ( state[SDL_SCANCODE_RETURN] ) {"] + #[doc = " printf(\" is pressed.\\n\");"] + #[doc = " }"] + #[doc = " \\endcode"] + pub fn SDL_GetKeyboardState(numkeys: *mut libc::c_int) -> *const Uint8; +} +extern "C" { + #[doc = " \\brief Get the current key modifier state for the keyboard."] + pub fn SDL_GetModState() -> SDL_Keymod; +} +extern "C" { + #[doc = " \\brief Set the current key modifier state for the keyboard."] + #[doc = ""] + #[doc = " \\note This does not change the keyboard state, only the key modifier flags."] + pub fn SDL_SetModState(modstate: SDL_Keymod); +} +extern "C" { + #[doc = " \\brief Get the key code corresponding to the given scancode according"] + #[doc = " to the current keyboard layout."] + #[doc = ""] + #[doc = " See ::SDL_Keycode for details."] + #[doc = ""] + #[doc = " \\sa SDL_GetKeyName()"] + pub fn SDL_GetKeyFromScancode(scancode: SDL_Scancode) -> SDL_Keycode; +} +extern "C" { + #[doc = " \\brief Get the scancode corresponding to the given key code according to the"] + #[doc = " current keyboard layout."] + #[doc = ""] + #[doc = " See ::SDL_Scancode for details."] + #[doc = ""] + #[doc = " \\sa SDL_GetScancodeName()"] + pub fn SDL_GetScancodeFromKey(key: SDL_Keycode) -> SDL_Scancode; +} +extern "C" { + #[doc = " \\brief Get a human-readable name for a scancode."] + #[doc = ""] + #[doc = " \\return A pointer to the name for the scancode."] + #[doc = " If the scancode doesn't have a name, this function returns"] + #[doc = " an empty string (\"\")."] + #[doc = ""] + #[doc = " \\sa SDL_Scancode"] + pub fn SDL_GetScancodeName(scancode: SDL_Scancode) -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Get a scancode from a human-readable name"] + #[doc = ""] + #[doc = " \\return scancode, or SDL_SCANCODE_UNKNOWN if the name wasn't recognized"] + #[doc = ""] + #[doc = " \\sa SDL_Scancode"] + pub fn SDL_GetScancodeFromName(name: *const libc::c_char) -> SDL_Scancode; +} +extern "C" { + #[doc = " \\brief Get a human-readable name for a key."] + #[doc = ""] + #[doc = " \\return A pointer to a UTF-8 string that stays valid at least until the next"] + #[doc = " call to this function. If you need it around any longer, you must"] + #[doc = " copy it. If the key doesn't have a name, this function returns an"] + #[doc = " empty string (\"\")."] + #[doc = ""] + #[doc = " \\sa SDL_Keycode"] + pub fn SDL_GetKeyName(key: SDL_Keycode) -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Get a key code from a human-readable name"] + #[doc = ""] + #[doc = " \\return key code, or SDLK_UNKNOWN if the name wasn't recognized"] + #[doc = ""] + #[doc = " \\sa SDL_Keycode"] + pub fn SDL_GetKeyFromName(name: *const libc::c_char) -> SDL_Keycode; +} +extern "C" { + #[doc = " \\brief Start accepting Unicode text input events."] + #[doc = " This function will show the on-screen keyboard if supported."] + #[doc = ""] + #[doc = " \\sa SDL_StopTextInput()"] + #[doc = " \\sa SDL_SetTextInputRect()"] + #[doc = " \\sa SDL_HasScreenKeyboardSupport()"] + pub fn SDL_StartTextInput(); +} +extern "C" { + #[doc = " \\brief Return whether or not Unicode text input events are enabled."] + #[doc = ""] + #[doc = " \\sa SDL_StartTextInput()"] + #[doc = " \\sa SDL_StopTextInput()"] + pub fn SDL_IsTextInputActive() -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Stop receiving any text input events."] + #[doc = " This function will hide the on-screen keyboard if supported."] + #[doc = ""] + #[doc = " \\sa SDL_StartTextInput()"] + #[doc = " \\sa SDL_HasScreenKeyboardSupport()"] + pub fn SDL_StopTextInput(); +} +extern "C" { + #[doc = " \\brief Set the rectangle used to type Unicode text inputs."] + #[doc = " This is used as a hint for IME and on-screen keyboard placement."] + #[doc = ""] + #[doc = " \\sa SDL_StartTextInput()"] + pub fn SDL_SetTextInputRect(rect: *mut SDL_Rect); +} +extern "C" { + #[doc = " \\brief Returns whether the platform has some screen keyboard support."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if some keyboard support is available else SDL_FALSE."] + #[doc = ""] + #[doc = " \\note Not all screen keyboard functions are supported on all platforms."] + #[doc = ""] + #[doc = " \\sa SDL_IsScreenKeyboardShown()"] + pub fn SDL_HasScreenKeyboardSupport() -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Returns whether the screen keyboard is shown for given window."] + #[doc = ""] + #[doc = " \\param window The window for which screen keyboard should be queried."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if screen keyboard is shown else SDL_FALSE."] + #[doc = ""] + #[doc = " \\sa SDL_HasScreenKeyboardSupport()"] + pub fn SDL_IsScreenKeyboardShown(window: *mut SDL_Window) -> SDL_bool; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Cursor { + _unused: [u8; 0], +} +#[repr(u32)] +#[doc = " \\brief Cursor types for SDL_CreateSystemCursor()."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_SystemCursor { + #[doc = "< Arrow"] + SDL_SYSTEM_CURSOR_ARROW = 0, + #[doc = "< I-beam"] + SDL_SYSTEM_CURSOR_IBEAM = 1, + #[doc = "< Wait"] + SDL_SYSTEM_CURSOR_WAIT = 2, + #[doc = "< Crosshair"] + SDL_SYSTEM_CURSOR_CROSSHAIR = 3, + #[doc = "< Small wait cursor (or Wait if not available)"] + SDL_SYSTEM_CURSOR_WAITARROW = 4, + #[doc = "< Double arrow pointing northwest and southeast"] + SDL_SYSTEM_CURSOR_SIZENWSE = 5, + #[doc = "< Double arrow pointing northeast and southwest"] + SDL_SYSTEM_CURSOR_SIZENESW = 6, + #[doc = "< Double arrow pointing west and east"] + SDL_SYSTEM_CURSOR_SIZEWE = 7, + #[doc = "< Double arrow pointing north and south"] + SDL_SYSTEM_CURSOR_SIZENS = 8, + #[doc = "< Four pointed arrow pointing north, south, east, and west"] + SDL_SYSTEM_CURSOR_SIZEALL = 9, + #[doc = "< Slashed circle or crossbones"] + SDL_SYSTEM_CURSOR_NO = 10, + #[doc = "< Hand"] + SDL_SYSTEM_CURSOR_HAND = 11, + SDL_NUM_SYSTEM_CURSORS = 12, +} +#[repr(u32)] +#[doc = " \\brief Scroll direction types for the Scroll event"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_MouseWheelDirection { + #[doc = "< The scroll direction is normal"] + SDL_MOUSEWHEEL_NORMAL = 0, + #[doc = "< The scroll direction is flipped / natural"] + SDL_MOUSEWHEEL_FLIPPED = 1, +} +extern "C" { + #[doc = " \\brief Get the window which currently has mouse focus."] + pub fn SDL_GetMouseFocus() -> *mut SDL_Window; +} +extern "C" { + #[doc = " \\brief Retrieve the current state of the mouse."] + #[doc = ""] + #[doc = " The current button state is returned as a button bitmask, which can"] + #[doc = " be tested using the SDL_BUTTON(X) macros, and x and y are set to the"] + #[doc = " mouse cursor position relative to the focus window for the currently"] + #[doc = " selected mouse. You can pass NULL for either x or y."] + pub fn SDL_GetMouseState(x: *mut libc::c_int, y: *mut libc::c_int) -> Uint32; +} +extern "C" { + #[doc = " \\brief Get the current state of the mouse, in relation to the desktop"] + #[doc = ""] + #[doc = " This works just like SDL_GetMouseState(), but the coordinates will be"] + #[doc = " reported relative to the top-left of the desktop. This can be useful if"] + #[doc = " you need to track the mouse outside of a specific window and"] + #[doc = " SDL_CaptureMouse() doesn't fit your needs. For example, it could be"] + #[doc = " useful if you need to track the mouse while dragging a window, where"] + #[doc = " coordinates relative to a window might not be in sync at all times."] + #[doc = ""] + #[doc = " \\note SDL_GetMouseState() returns the mouse position as SDL understands"] + #[doc = " it from the last pump of the event queue. This function, however,"] + #[doc = " queries the OS for the current mouse position, and as such, might"] + #[doc = " be a slightly less efficient function. Unless you know what you're"] + #[doc = " doing and have a good reason to use this function, you probably want"] + #[doc = " SDL_GetMouseState() instead."] + #[doc = ""] + #[doc = " \\param x Returns the current X coord, relative to the desktop. Can be NULL."] + #[doc = " \\param y Returns the current Y coord, relative to the desktop. Can be NULL."] + #[doc = " \\return The current button state as a bitmask, which can be tested using the SDL_BUTTON(X) macros."] + #[doc = ""] + #[doc = " \\sa SDL_GetMouseState"] + pub fn SDL_GetGlobalMouseState(x: *mut libc::c_int, y: *mut libc::c_int) -> Uint32; +} +extern "C" { + #[doc = " \\brief Retrieve the relative state of the mouse."] + #[doc = ""] + #[doc = " The current button state is returned as a button bitmask, which can"] + #[doc = " be tested using the SDL_BUTTON(X) macros, and x and y are set to the"] + #[doc = " mouse deltas since the last call to SDL_GetRelativeMouseState()."] + pub fn SDL_GetRelativeMouseState(x: *mut libc::c_int, y: *mut libc::c_int) -> Uint32; +} +extern "C" { + #[doc = " \\brief Moves the mouse to the given position within the window."] + #[doc = ""] + #[doc = " \\param window The window to move the mouse into, or NULL for the current mouse focus"] + #[doc = " \\param x The x coordinate within the window"] + #[doc = " \\param y The y coordinate within the window"] + #[doc = ""] + #[doc = " \\note This function generates a mouse motion event"] + pub fn SDL_WarpMouseInWindow(window: *mut SDL_Window, x: libc::c_int, y: libc::c_int); +} +extern "C" { + #[doc = " \\brief Moves the mouse to the given position in global screen space."] + #[doc = ""] + #[doc = " \\param x The x coordinate"] + #[doc = " \\param y The y coordinate"] + #[doc = " \\return 0 on success, -1 on error (usually: unsupported by a platform)."] + #[doc = ""] + #[doc = " \\note This function generates a mouse motion event"] + pub fn SDL_WarpMouseGlobal(x: libc::c_int, y: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set relative mouse mode."] + #[doc = ""] + #[doc = " \\param enabled Whether or not to enable relative mode"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if relative mode is not supported."] + #[doc = ""] + #[doc = " While the mouse is in relative mode, the cursor is hidden, and the"] + #[doc = " driver will try to report continuous motion in the current window."] + #[doc = " Only relative motion events will be delivered, the mouse position"] + #[doc = " will not change."] + #[doc = ""] + #[doc = " \\note This function will flush any pending mouse motion."] + #[doc = ""] + #[doc = " \\sa SDL_GetRelativeMouseMode()"] + pub fn SDL_SetRelativeMouseMode(enabled: SDL_bool) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Capture the mouse, to track input outside an SDL window."] + #[doc = ""] + #[doc = " \\param enabled Whether or not to enable capturing"] + #[doc = ""] + #[doc = " Capturing enables your app to obtain mouse events globally, instead of"] + #[doc = " just within your window. Not all video targets support this function."] + #[doc = " When capturing is enabled, the current window will get all mouse events,"] + #[doc = " but unlike relative mode, no change is made to the cursor and it is"] + #[doc = " not restrained to your window."] + #[doc = ""] + #[doc = " This function may also deny mouse input to other windows--both those in"] + #[doc = " your application and others on the system--so you should use this"] + #[doc = " function sparingly, and in small bursts. For example, you might want to"] + #[doc = " track the mouse while the user is dragging something, until the user"] + #[doc = " releases a mouse button. It is not recommended that you capture the mouse"] + #[doc = " for long periods of time, such as the entire time your app is running."] + #[doc = ""] + #[doc = " While captured, mouse events still report coordinates relative to the"] + #[doc = " current (foreground) window, but those coordinates may be outside the"] + #[doc = " bounds of the window (including negative values). Capturing is only"] + #[doc = " allowed for the foreground window. If the window loses focus while"] + #[doc = " capturing, the capture will be disabled automatically."] + #[doc = ""] + #[doc = " While capturing is enabled, the current window will have the"] + #[doc = " SDL_WINDOW_MOUSE_CAPTURE flag set."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if not supported."] + pub fn SDL_CaptureMouse(enabled: SDL_bool) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Query whether relative mouse mode is enabled."] + #[doc = ""] + #[doc = " \\sa SDL_SetRelativeMouseMode()"] + pub fn SDL_GetRelativeMouseMode() -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Create a cursor, using the specified bitmap data and"] + #[doc = " mask (in MSB format)."] + #[doc = ""] + #[doc = " The cursor width must be a multiple of 8 bits."] + #[doc = ""] + #[doc = " The cursor is created in black and white according to the following:"] + #[doc = " "] + #[doc = " "] + #[doc = " "] + #[doc = " "] + #[doc = " "] + #[doc = " "] + #[doc = "
data mask resulting pixel on screen
0 1 White
1 1 Black
0 0 Transparent
1 0 Inverted color if possible, black"] + #[doc = " if not.
"] + #[doc = ""] + #[doc = " \\sa SDL_FreeCursor()"] + pub fn SDL_CreateCursor( + data: *const Uint8, + mask: *const Uint8, + w: libc::c_int, + h: libc::c_int, + hot_x: libc::c_int, + hot_y: libc::c_int, + ) -> *mut SDL_Cursor; +} +extern "C" { + #[doc = " \\brief Create a color cursor."] + #[doc = ""] + #[doc = " \\sa SDL_FreeCursor()"] + pub fn SDL_CreateColorCursor( + surface: *mut SDL_Surface, + hot_x: libc::c_int, + hot_y: libc::c_int, + ) -> *mut SDL_Cursor; +} +extern "C" { + #[doc = " \\brief Create a system cursor."] + #[doc = ""] + #[doc = " \\sa SDL_FreeCursor()"] + pub fn SDL_CreateSystemCursor(id: SDL_SystemCursor) -> *mut SDL_Cursor; +} +extern "C" { + #[doc = " \\brief Set the active cursor."] + pub fn SDL_SetCursor(cursor: *mut SDL_Cursor); +} +extern "C" { + #[doc = " \\brief Return the active cursor."] + pub fn SDL_GetCursor() -> *mut SDL_Cursor; +} +extern "C" { + #[doc = " \\brief Return the default cursor."] + pub fn SDL_GetDefaultCursor() -> *mut SDL_Cursor; +} +extern "C" { + #[doc = " \\brief Frees a cursor created with SDL_CreateCursor() or similar functions."] + #[doc = ""] + #[doc = " \\sa SDL_CreateCursor()"] + #[doc = " \\sa SDL_CreateColorCursor()"] + #[doc = " \\sa SDL_CreateSystemCursor()"] + pub fn SDL_FreeCursor(cursor: *mut SDL_Cursor); +} +extern "C" { + #[doc = " \\brief Toggle whether or not the cursor is shown."] + #[doc = ""] + #[doc = " \\param toggle 1 to show the cursor, 0 to hide it, -1 to query the current"] + #[doc = " state."] + #[doc = ""] + #[doc = " \\return 1 if the cursor is shown, or 0 if the cursor is hidden."] + pub fn SDL_ShowCursor(toggle: libc::c_int) -> libc::c_int; +} +#[doc = " The joystick structure used to identify an SDL joystick"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _SDL_Joystick { + _unused: [u8; 0], +} +pub type SDL_Joystick = _SDL_Joystick; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_JoystickGUID { + pub data: [Uint8; 16usize], +} +#[test] +fn bindgen_test_layout_SDL_JoystickGUID() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_JoystickGUID)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(SDL_JoystickGUID)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoystickGUID), + "::", + stringify!(data) + ) + ); +} +#[doc = " This is a unique ID for a joystick for the time it is connected to the system,"] +#[doc = " and is never reused for the lifetime of the application. If the joystick is"] +#[doc = " disconnected and reconnected, it will get a new ID."] +#[doc = ""] +#[doc = " The ID value starts at 0 and increments from there. The value -1 is an invalid ID."] +pub type SDL_JoystickID = Sint32; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_JoystickType { + SDL_JOYSTICK_TYPE_UNKNOWN = 0, + SDL_JOYSTICK_TYPE_GAMECONTROLLER = 1, + SDL_JOYSTICK_TYPE_WHEEL = 2, + SDL_JOYSTICK_TYPE_ARCADE_STICK = 3, + SDL_JOYSTICK_TYPE_FLIGHT_STICK = 4, + SDL_JOYSTICK_TYPE_DANCE_PAD = 5, + SDL_JOYSTICK_TYPE_GUITAR = 6, + SDL_JOYSTICK_TYPE_DRUM_KIT = 7, + SDL_JOYSTICK_TYPE_ARCADE_PAD = 8, + SDL_JOYSTICK_TYPE_THROTTLE = 9, +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_JoystickPowerLevel { + SDL_JOYSTICK_POWER_UNKNOWN = -1, + SDL_JOYSTICK_POWER_EMPTY = 0, + SDL_JOYSTICK_POWER_LOW = 1, + SDL_JOYSTICK_POWER_MEDIUM = 2, + SDL_JOYSTICK_POWER_FULL = 3, + SDL_JOYSTICK_POWER_WIRED = 4, + SDL_JOYSTICK_POWER_MAX = 5, +} +extern "C" { + #[doc = " Locking for multi-threaded access to the joystick API"] + #[doc = ""] + #[doc = " If you are using the joystick API or handling events from multiple threads"] + #[doc = " you should use these locking functions to protect access to the joysticks."] + #[doc = ""] + #[doc = " In particular, you are guaranteed that the joystick list won't change, so"] + #[doc = " the API functions that take a joystick index will be valid, and joystick"] + #[doc = " and game controller events will not be delivered."] + pub fn SDL_LockJoysticks(); +} +extern "C" { + pub fn SDL_UnlockJoysticks(); +} +extern "C" { + #[doc = " Count the number of joysticks attached to the system right now"] + pub fn SDL_NumJoysticks() -> libc::c_int; +} +extern "C" { + #[doc = " Get the implementation dependent name of a joystick."] + #[doc = " This can be called before any joysticks are opened."] + #[doc = " If no name can be found, this function returns NULL."] + pub fn SDL_JoystickNameForIndex(device_index: libc::c_int) -> *const libc::c_char; +} +extern "C" { + #[doc = " Get the player index of a joystick, or -1 if it's not available"] + #[doc = " This can be called before any joysticks are opened."] + pub fn SDL_JoystickGetDevicePlayerIndex(device_index: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " Return the GUID for the joystick at this index"] + #[doc = " This can be called before any joysticks are opened."] + pub fn SDL_JoystickGetDeviceGUID(device_index: libc::c_int) -> SDL_JoystickGUID; +} +extern "C" { + #[doc = " Get the USB vendor ID of a joystick, if available."] + #[doc = " This can be called before any joysticks are opened."] + #[doc = " If the vendor ID isn't available this function returns 0."] + pub fn SDL_JoystickGetDeviceVendor(device_index: libc::c_int) -> Uint16; +} +extern "C" { + #[doc = " Get the USB product ID of a joystick, if available."] + #[doc = " This can be called before any joysticks are opened."] + #[doc = " If the product ID isn't available this function returns 0."] + pub fn SDL_JoystickGetDeviceProduct(device_index: libc::c_int) -> Uint16; +} +extern "C" { + #[doc = " Get the product version of a joystick, if available."] + #[doc = " This can be called before any joysticks are opened."] + #[doc = " If the product version isn't available this function returns 0."] + pub fn SDL_JoystickGetDeviceProductVersion(device_index: libc::c_int) -> Uint16; +} +extern "C" { + #[doc = " Get the type of a joystick, if available."] + #[doc = " This can be called before any joysticks are opened."] + pub fn SDL_JoystickGetDeviceType(device_index: libc::c_int) -> SDL_JoystickType; +} +extern "C" { + #[doc = " Get the instance ID of a joystick."] + #[doc = " This can be called before any joysticks are opened."] + #[doc = " If the index is out of range, this function will return -1."] + pub fn SDL_JoystickGetDeviceInstanceID(device_index: libc::c_int) -> SDL_JoystickID; +} +extern "C" { + #[doc = " Open a joystick for use."] + #[doc = " The index passed as an argument refers to the N'th joystick on the system."] + #[doc = " This index is not the value which will identify this joystick in future"] + #[doc = " joystick events. The joystick's instance id (::SDL_JoystickID) will be used"] + #[doc = " there instead."] + #[doc = ""] + #[doc = " \\return A joystick identifier, or NULL if an error occurred."] + pub fn SDL_JoystickOpen(device_index: libc::c_int) -> *mut SDL_Joystick; +} +extern "C" { + #[doc = " Return the SDL_Joystick associated with an instance id."] + pub fn SDL_JoystickFromInstanceID(instance_id: SDL_JoystickID) -> *mut SDL_Joystick; +} +extern "C" { + #[doc = " Return the SDL_Joystick associated with a player index."] + pub fn SDL_JoystickFromPlayerIndex(player_index: libc::c_int) -> *mut SDL_Joystick; +} +extern "C" { + #[doc = " Attaches a new virtual joystick."] + #[doc = " Returns the joystick's device index, or -1 if an error occurred."] + pub fn SDL_JoystickAttachVirtual( + type_: SDL_JoystickType, + naxes: libc::c_int, + nbuttons: libc::c_int, + nhats: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Detaches a virtual joystick"] + #[doc = " Returns 0 on success, or -1 if an error occurred."] + pub fn SDL_JoystickDetachVirtual(device_index: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " Indicates whether or not a virtual-joystick is at a given device index."] + pub fn SDL_JoystickIsVirtual(device_index: libc::c_int) -> SDL_bool; +} +extern "C" { + #[doc = " Set values on an opened, virtual-joystick's controls."] + #[doc = " Please note that values set here will not be applied until the next"] + #[doc = " call to SDL_JoystickUpdate, which can either be called directly,"] + #[doc = " or can be called indirectly through various other SDL APIS,"] + #[doc = " including, but not limited to the following: SDL_PollEvent,"] + #[doc = " SDL_PumpEvents, SDL_WaitEventTimeout, SDL_WaitEvent."] + #[doc = ""] + #[doc = " Returns 0 on success, -1 on error."] + pub fn SDL_JoystickSetVirtualAxis( + joystick: *mut SDL_Joystick, + axis: libc::c_int, + value: Sint16, + ) -> libc::c_int; +} +extern "C" { + pub fn SDL_JoystickSetVirtualButton( + joystick: *mut SDL_Joystick, + button: libc::c_int, + value: Uint8, + ) -> libc::c_int; +} +extern "C" { + pub fn SDL_JoystickSetVirtualHat( + joystick: *mut SDL_Joystick, + hat: libc::c_int, + value: Uint8, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Return the name for this currently opened joystick."] + #[doc = " If no name can be found, this function returns NULL."] + pub fn SDL_JoystickName(joystick: *mut SDL_Joystick) -> *const libc::c_char; +} +extern "C" { + #[doc = " Get the player index of an opened joystick, or -1 if it's not available"] + #[doc = ""] + #[doc = " For XInput controllers this returns the XInput user index."] + pub fn SDL_JoystickGetPlayerIndex(joystick: *mut SDL_Joystick) -> libc::c_int; +} +extern "C" { + #[doc = " Set the player index of an opened joystick"] + pub fn SDL_JoystickSetPlayerIndex(joystick: *mut SDL_Joystick, player_index: libc::c_int); +} +extern "C" { + #[doc = " Return the GUID for this opened joystick"] + pub fn SDL_JoystickGetGUID(joystick: *mut SDL_Joystick) -> SDL_JoystickGUID; +} +extern "C" { + #[doc = " Get the USB vendor ID of an opened joystick, if available."] + #[doc = " If the vendor ID isn't available this function returns 0."] + pub fn SDL_JoystickGetVendor(joystick: *mut SDL_Joystick) -> Uint16; +} +extern "C" { + #[doc = " Get the USB product ID of an opened joystick, if available."] + #[doc = " If the product ID isn't available this function returns 0."] + pub fn SDL_JoystickGetProduct(joystick: *mut SDL_Joystick) -> Uint16; +} +extern "C" { + #[doc = " Get the product version of an opened joystick, if available."] + #[doc = " If the product version isn't available this function returns 0."] + pub fn SDL_JoystickGetProductVersion(joystick: *mut SDL_Joystick) -> Uint16; +} +extern "C" { + #[doc = " Get the serial number of an opened joystick, if available."] + #[doc = ""] + #[doc = " Returns the serial number of the joystick, or NULL if it is not available."] + pub fn SDL_JoystickGetSerial(joystick: *mut SDL_Joystick) -> *const libc::c_char; +} +extern "C" { + #[doc = " Get the type of an opened joystick."] + pub fn SDL_JoystickGetType(joystick: *mut SDL_Joystick) -> SDL_JoystickType; +} +extern "C" { + #[doc = " Return a string representation for this guid. pszGUID must point to at least 33 bytes"] + #[doc = " (32 for the string plus a NULL terminator)."] + pub fn SDL_JoystickGetGUIDString( + guid: SDL_JoystickGUID, + pszGUID: *mut libc::c_char, + cbGUID: libc::c_int, + ); +} +extern "C" { + #[doc = " Convert a string into a joystick guid"] + pub fn SDL_JoystickGetGUIDFromString(pchGUID: *const libc::c_char) -> SDL_JoystickGUID; +} +extern "C" { + #[doc = " Returns SDL_TRUE if the joystick has been opened and currently connected, or SDL_FALSE if it has not."] + pub fn SDL_JoystickGetAttached(joystick: *mut SDL_Joystick) -> SDL_bool; +} +extern "C" { + #[doc = " Get the instance ID of an opened joystick or -1 if the joystick is invalid."] + pub fn SDL_JoystickInstanceID(joystick: *mut SDL_Joystick) -> SDL_JoystickID; +} +extern "C" { + #[doc = " Get the number of general axis controls on a joystick."] + pub fn SDL_JoystickNumAxes(joystick: *mut SDL_Joystick) -> libc::c_int; +} +extern "C" { + #[doc = " Get the number of trackballs on a joystick."] + #[doc = ""] + #[doc = " Joystick trackballs have only relative motion events associated"] + #[doc = " with them and their state cannot be polled."] + pub fn SDL_JoystickNumBalls(joystick: *mut SDL_Joystick) -> libc::c_int; +} +extern "C" { + #[doc = " Get the number of POV hats on a joystick."] + pub fn SDL_JoystickNumHats(joystick: *mut SDL_Joystick) -> libc::c_int; +} +extern "C" { + #[doc = " Get the number of buttons on a joystick."] + pub fn SDL_JoystickNumButtons(joystick: *mut SDL_Joystick) -> libc::c_int; +} +extern "C" { + #[doc = " Update the current state of the open joysticks."] + #[doc = ""] + #[doc = " This is called automatically by the event loop if any joystick"] + #[doc = " events are enabled."] + pub fn SDL_JoystickUpdate(); +} +extern "C" { + #[doc = " Enable/disable joystick event polling."] + #[doc = ""] + #[doc = " If joystick events are disabled, you must call SDL_JoystickUpdate()"] + #[doc = " yourself and check the state of the joystick when you want joystick"] + #[doc = " information."] + #[doc = ""] + #[doc = " The state can be one of ::SDL_QUERY, ::SDL_ENABLE or ::SDL_IGNORE."] + pub fn SDL_JoystickEventState(state: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " Get the current state of an axis control on a joystick."] + #[doc = ""] + #[doc = " The state is a value ranging from -32768 to 32767."] + #[doc = ""] + #[doc = " The axis indices start at index 0."] + pub fn SDL_JoystickGetAxis(joystick: *mut SDL_Joystick, axis: libc::c_int) -> Sint16; +} +extern "C" { + #[doc = " Get the initial state of an axis control on a joystick."] + #[doc = ""] + #[doc = " The state is a value ranging from -32768 to 32767."] + #[doc = ""] + #[doc = " The axis indices start at index 0."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if this axis has any initial value, or SDL_FALSE if not."] + pub fn SDL_JoystickGetAxisInitialState( + joystick: *mut SDL_Joystick, + axis: libc::c_int, + state: *mut Sint16, + ) -> SDL_bool; +} +extern "C" { + #[doc = " Get the current state of a POV hat on a joystick."] + #[doc = ""] + #[doc = " The hat indices start at index 0."] + #[doc = ""] + #[doc = " \\return The return value is one of the following positions:"] + #[doc = " - ::SDL_HAT_CENTERED"] + #[doc = " - ::SDL_HAT_UP"] + #[doc = " - ::SDL_HAT_RIGHT"] + #[doc = " - ::SDL_HAT_DOWN"] + #[doc = " - ::SDL_HAT_LEFT"] + #[doc = " - ::SDL_HAT_RIGHTUP"] + #[doc = " - ::SDL_HAT_RIGHTDOWN"] + #[doc = " - ::SDL_HAT_LEFTUP"] + #[doc = " - ::SDL_HAT_LEFTDOWN"] + pub fn SDL_JoystickGetHat(joystick: *mut SDL_Joystick, hat: libc::c_int) -> Uint8; +} +extern "C" { + #[doc = " Get the ball axis change since the last poll."] + #[doc = ""] + #[doc = " \\return 0, or -1 if you passed it invalid parameters."] + #[doc = ""] + #[doc = " The ball indices start at index 0."] + pub fn SDL_JoystickGetBall( + joystick: *mut SDL_Joystick, + ball: libc::c_int, + dx: *mut libc::c_int, + dy: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Get the current state of a button on a joystick."] + #[doc = ""] + #[doc = " The button indices start at index 0."] + pub fn SDL_JoystickGetButton(joystick: *mut SDL_Joystick, button: libc::c_int) -> Uint8; +} +extern "C" { + #[doc = " Start a rumble effect"] + #[doc = " Each call to this function cancels any previous rumble effect, and calling it with 0 intensity stops any rumbling."] + #[doc = ""] + #[doc = " \\param joystick The joystick to vibrate"] + #[doc = " \\param low_frequency_rumble The intensity of the low frequency (left) rumble motor, from 0 to 0xFFFF"] + #[doc = " \\param high_frequency_rumble The intensity of the high frequency (right) rumble motor, from 0 to 0xFFFF"] + #[doc = " \\param duration_ms The duration of the rumble effect, in milliseconds"] + #[doc = ""] + #[doc = " \\return 0, or -1 if rumble isn't supported on this joystick"] + pub fn SDL_JoystickRumble( + joystick: *mut SDL_Joystick, + low_frequency_rumble: Uint16, + high_frequency_rumble: Uint16, + duration_ms: Uint32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Start a rumble effect in the joystick's triggers"] + #[doc = " Each call to this function cancels any previous trigger rumble effect, and calling it with 0 intensity stops any rumbling."] + #[doc = ""] + #[doc = " \\param joystick The joystick to vibrate"] + #[doc = " \\param left_rumble The intensity of the left trigger rumble motor, from 0 to 0xFFFF"] + #[doc = " \\param right_rumble The intensity of the right trigger rumble motor, from 0 to 0xFFFF"] + #[doc = " \\param duration_ms The duration of the rumble effect, in milliseconds"] + #[doc = ""] + #[doc = " \\return 0, or -1 if trigger rumble isn't supported on this joystick"] + pub fn SDL_JoystickRumbleTriggers( + joystick: *mut SDL_Joystick, + left_rumble: Uint16, + right_rumble: Uint16, + duration_ms: Uint32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Return whether a joystick has an LED"] + #[doc = ""] + #[doc = " \\param joystick The joystick to query"] + #[doc = ""] + #[doc = " \\return SDL_TRUE, or SDL_FALSE if this joystick does not have a modifiable LED"] + pub fn SDL_JoystickHasLED(joystick: *mut SDL_Joystick) -> SDL_bool; +} +extern "C" { + #[doc = " Update a joystick's LED color."] + #[doc = ""] + #[doc = " \\param joystick The joystick to update"] + #[doc = " \\param red The intensity of the red LED"] + #[doc = " \\param green The intensity of the green LED"] + #[doc = " \\param blue The intensity of the blue LED"] + #[doc = ""] + #[doc = " \\return 0, or -1 if this joystick does not have a modifiable LED"] + pub fn SDL_JoystickSetLED( + joystick: *mut SDL_Joystick, + red: Uint8, + green: Uint8, + blue: Uint8, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Close a joystick previously opened with SDL_JoystickOpen()."] + pub fn SDL_JoystickClose(joystick: *mut SDL_Joystick); +} +extern "C" { + #[doc = " Return the battery level of this joystick"] + pub fn SDL_JoystickCurrentPowerLevel(joystick: *mut SDL_Joystick) -> SDL_JoystickPowerLevel; +} +#[doc = " \\brief SDL_sensor.h"] +#[doc = ""] +#[doc = " In order to use these functions, SDL_Init() must have been called"] +#[doc = " with the ::SDL_INIT_SENSOR flag. This causes SDL to scan the system"] +#[doc = " for sensors, and load appropriate drivers."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _SDL_Sensor { + _unused: [u8; 0], +} +pub type SDL_Sensor = _SDL_Sensor; +#[doc = " This is a unique ID for a sensor for the time it is connected to the system,"] +#[doc = " and is never reused for the lifetime of the application."] +#[doc = ""] +#[doc = " The ID value starts at 0 and increments from there. The value -1 is an invalid ID."] +pub type SDL_SensorID = Sint32; +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_SensorType { + #[doc = "< Returned for an invalid sensor"] + SDL_SENSOR_INVALID = -1, + #[doc = "< Unknown sensor type"] + SDL_SENSOR_UNKNOWN = 0, + #[doc = "< Accelerometer"] + SDL_SENSOR_ACCEL = 1, + #[doc = "< Gyroscope"] + SDL_SENSOR_GYRO = 2, +} +extern "C" { + #[doc = " Locking for multi-threaded access to the sensor API"] + #[doc = ""] + #[doc = " If you are using the sensor API or handling events from multiple threads"] + #[doc = " you should use these locking functions to protect access to the sensors."] + #[doc = ""] + #[doc = " In particular, you are guaranteed that the sensor list won't change, so"] + #[doc = " the API functions that take a sensor index will be valid, and sensor"] + #[doc = " events will not be delivered."] + pub fn SDL_LockSensors(); +} +extern "C" { + pub fn SDL_UnlockSensors(); +} +extern "C" { + #[doc = " \\brief Count the number of sensors attached to the system right now"] + pub fn SDL_NumSensors() -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the implementation dependent name of a sensor."] + #[doc = ""] + #[doc = " This can be called before any sensors are opened."] + #[doc = ""] + #[doc = " \\return The sensor name, or NULL if device_index is out of range."] + pub fn SDL_SensorGetDeviceName(device_index: libc::c_int) -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Get the type of a sensor."] + #[doc = ""] + #[doc = " This can be called before any sensors are opened."] + #[doc = ""] + #[doc = " \\return The sensor type, or SDL_SENSOR_INVALID if device_index is out of range."] + pub fn SDL_SensorGetDeviceType(device_index: libc::c_int) -> SDL_SensorType; +} +extern "C" { + #[doc = " \\brief Get the platform dependent type of a sensor."] + #[doc = ""] + #[doc = " This can be called before any sensors are opened."] + #[doc = ""] + #[doc = " \\return The sensor platform dependent type, or -1 if device_index is out of range."] + pub fn SDL_SensorGetDeviceNonPortableType(device_index: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the instance ID of a sensor."] + #[doc = ""] + #[doc = " This can be called before any sensors are opened."] + #[doc = ""] + #[doc = " \\return The sensor instance ID, or -1 if device_index is out of range."] + pub fn SDL_SensorGetDeviceInstanceID(device_index: libc::c_int) -> SDL_SensorID; +} +extern "C" { + #[doc = " \\brief Open a sensor for use."] + #[doc = ""] + #[doc = " The index passed as an argument refers to the N'th sensor on the system."] + #[doc = ""] + #[doc = " \\return A sensor identifier, or NULL if an error occurred."] + pub fn SDL_SensorOpen(device_index: libc::c_int) -> *mut SDL_Sensor; +} +extern "C" { + #[doc = " Return the SDL_Sensor associated with an instance id."] + pub fn SDL_SensorFromInstanceID(instance_id: SDL_SensorID) -> *mut SDL_Sensor; +} +extern "C" { + #[doc = " \\brief Get the implementation dependent name of a sensor."] + #[doc = ""] + #[doc = " \\return The sensor name, or NULL if the sensor is NULL."] + pub fn SDL_SensorGetName(sensor: *mut SDL_Sensor) -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Get the type of a sensor."] + #[doc = ""] + #[doc = " This can be called before any sensors are opened."] + #[doc = ""] + #[doc = " \\return The sensor type, or SDL_SENSOR_INVALID if the sensor is NULL."] + pub fn SDL_SensorGetType(sensor: *mut SDL_Sensor) -> SDL_SensorType; +} +extern "C" { + #[doc = " \\brief Get the platform dependent type of a sensor."] + #[doc = ""] + #[doc = " This can be called before any sensors are opened."] + #[doc = ""] + #[doc = " \\return The sensor platform dependent type, or -1 if the sensor is NULL."] + pub fn SDL_SensorGetNonPortableType(sensor: *mut SDL_Sensor) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the instance ID of a sensor."] + #[doc = ""] + #[doc = " This can be called before any sensors are opened."] + #[doc = ""] + #[doc = " \\return The sensor instance ID, or -1 if the sensor is NULL."] + pub fn SDL_SensorGetInstanceID(sensor: *mut SDL_Sensor) -> SDL_SensorID; +} +extern "C" { + #[doc = " Get the current state of an opened sensor."] + #[doc = ""] + #[doc = " The number of values and interpretation of the data is sensor dependent."] + #[doc = ""] + #[doc = " \\param sensor The sensor to query"] + #[doc = " \\param data A pointer filled with the current sensor state"] + #[doc = " \\param num_values The number of values to write to data"] + #[doc = ""] + #[doc = " \\return 0 or -1 if an error occurred."] + pub fn SDL_SensorGetData( + sensor: *mut SDL_Sensor, + data: *mut f32, + num_values: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Close a sensor previously opened with SDL_SensorOpen()"] + pub fn SDL_SensorClose(sensor: *mut SDL_Sensor); +} +extern "C" { + #[doc = " Update the current state of the open sensors."] + #[doc = ""] + #[doc = " This is called automatically by the event loop if sensor events are enabled."] + #[doc = ""] + #[doc = " This needs to be called from the thread that initialized the sensor subsystem."] + pub fn SDL_SensorUpdate(); +} +#[doc = " The gamecontroller structure used to identify an SDL game controller"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _SDL_GameController { + _unused: [u8; 0], +} +pub type SDL_GameController = _SDL_GameController; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_GameControllerType { + SDL_CONTROLLER_TYPE_UNKNOWN = 0, + SDL_CONTROLLER_TYPE_XBOX360 = 1, + SDL_CONTROLLER_TYPE_XBOXONE = 2, + SDL_CONTROLLER_TYPE_PS3 = 3, + SDL_CONTROLLER_TYPE_PS4 = 4, + SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_PRO = 5, + SDL_CONTROLLER_TYPE_VIRTUAL = 6, + SDL_CONTROLLER_TYPE_PS5 = 7, +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_GameControllerBindType { + SDL_CONTROLLER_BINDTYPE_NONE = 0, + SDL_CONTROLLER_BINDTYPE_BUTTON = 1, + SDL_CONTROLLER_BINDTYPE_AXIS = 2, + SDL_CONTROLLER_BINDTYPE_HAT = 3, +} +#[doc = " Get the SDL joystick layer binding for this controller button/axis mapping"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_GameControllerButtonBind { + pub bindType: SDL_GameControllerBindType, + pub value: SDL_GameControllerButtonBind__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union SDL_GameControllerButtonBind__bindgen_ty_1 { + pub button: libc::c_int, + pub axis: libc::c_int, + pub hat: SDL_GameControllerButtonBind__bindgen_ty_1__bindgen_ty_1, + _bindgen_union_align: [u32; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_GameControllerButtonBind__bindgen_ty_1__bindgen_ty_1 { + pub hat: libc::c_int, + pub hat_mask: libc::c_int, +} +#[test] +fn bindgen_test_layout_SDL_GameControllerButtonBind__bindgen_ty_1__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!( + "Size of: ", + stringify!(SDL_GameControllerButtonBind__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(SDL_GameControllerButtonBind__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())) + .hat as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_GameControllerButtonBind__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(hat) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())) + .hat_mask as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_GameControllerButtonBind__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(hat_mask) + ) + ); +} +#[test] +fn bindgen_test_layout_SDL_GameControllerButtonBind__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!( + "Size of: ", + stringify!(SDL_GameControllerButtonBind__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(SDL_GameControllerButtonBind__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).button + as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_GameControllerButtonBind__bindgen_ty_1), + "::", + stringify!(button) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).axis as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_GameControllerButtonBind__bindgen_ty_1), + "::", + stringify!(axis) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).hat as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_GameControllerButtonBind__bindgen_ty_1), + "::", + stringify!(hat) + ) + ); +} +#[test] +fn bindgen_test_layout_SDL_GameControllerButtonBind() { + assert_eq!( + ::core::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(SDL_GameControllerButtonBind)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_GameControllerButtonBind)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).bindType as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_GameControllerButtonBind), + "::", + stringify!(bindType) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).value as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_GameControllerButtonBind), + "::", + stringify!(value) + ) + ); +} +extern "C" { + #[doc = " Load a set of mappings from a seekable SDL data stream (memory or file), filtered by the current SDL_GetPlatform()"] + #[doc = " A community sourced database of controllers is available at https://raw.github.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt"] + #[doc = ""] + #[doc = " If \\c freerw is non-zero, the stream will be closed after being read."] + #[doc = ""] + #[doc = " \\return number of mappings added, -1 on error"] + pub fn SDL_GameControllerAddMappingsFromRW( + rw: *mut SDL_RWops, + freerw: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Add or update an existing mapping configuration"] + #[doc = ""] + #[doc = " \\return 1 if mapping is added, 0 if updated, -1 on error"] + pub fn SDL_GameControllerAddMapping(mappingString: *const libc::c_char) -> libc::c_int; +} +extern "C" { + #[doc = " Get the number of mappings installed"] + #[doc = ""] + #[doc = " \\return the number of mappings"] + pub fn SDL_GameControllerNumMappings() -> libc::c_int; +} +extern "C" { + #[doc = " Get the mapping at a particular index."] + #[doc = ""] + #[doc = " \\return the mapping string. Must be freed with SDL_free(). Returns NULL if the index is out of range."] + pub fn SDL_GameControllerMappingForIndex(mapping_index: libc::c_int) -> *mut libc::c_char; +} +extern "C" { + #[doc = " Get a mapping string for a GUID"] + #[doc = ""] + #[doc = " \\return the mapping string. Must be freed with SDL_free(). Returns NULL if no mapping is available"] + pub fn SDL_GameControllerMappingForGUID(guid: SDL_JoystickGUID) -> *mut libc::c_char; +} +extern "C" { + #[doc = " Get a mapping string for an open GameController"] + #[doc = ""] + #[doc = " \\return the mapping string. Must be freed with SDL_free(). Returns NULL if no mapping is available"] + pub fn SDL_GameControllerMapping(gamecontroller: *mut SDL_GameController) -> *mut libc::c_char; +} +extern "C" { + #[doc = " Is the joystick on this index supported by the game controller interface?"] + pub fn SDL_IsGameController(joystick_index: libc::c_int) -> SDL_bool; +} +extern "C" { + #[doc = " Get the implementation dependent name of a game controller."] + #[doc = " This can be called before any controllers are opened."] + #[doc = " If no name can be found, this function returns NULL."] + pub fn SDL_GameControllerNameForIndex(joystick_index: libc::c_int) -> *const libc::c_char; +} +extern "C" { + #[doc = " Get the type of a game controller."] + #[doc = " This can be called before any controllers are opened."] + pub fn SDL_GameControllerTypeForIndex(joystick_index: libc::c_int) -> SDL_GameControllerType; +} +extern "C" { + #[doc = " Get the mapping of a game controller."] + #[doc = " This can be called before any controllers are opened."] + #[doc = ""] + #[doc = " \\return the mapping string. Must be freed with SDL_free(). Returns NULL if no mapping is available"] + pub fn SDL_GameControllerMappingForDeviceIndex( + joystick_index: libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + #[doc = " Open a game controller for use."] + #[doc = " The index passed as an argument refers to the N'th game controller on the system."] + #[doc = " This index is not the value which will identify this controller in future"] + #[doc = " controller events. The joystick's instance id (::SDL_JoystickID) will be"] + #[doc = " used there instead."] + #[doc = ""] + #[doc = " \\return A controller identifier, or NULL if an error occurred."] + pub fn SDL_GameControllerOpen(joystick_index: libc::c_int) -> *mut SDL_GameController; +} +extern "C" { + #[doc = " Return the SDL_GameController associated with an instance id."] + pub fn SDL_GameControllerFromInstanceID(joyid: SDL_JoystickID) -> *mut SDL_GameController; +} +extern "C" { + #[doc = " Return the SDL_GameController associated with a player index."] + pub fn SDL_GameControllerFromPlayerIndex(player_index: libc::c_int) -> *mut SDL_GameController; +} +extern "C" { + #[doc = " Return the name for this currently opened controller"] + pub fn SDL_GameControllerName(gamecontroller: *mut SDL_GameController) -> *const libc::c_char; +} +extern "C" { + #[doc = " Return the type of this currently opened controller"] + pub fn SDL_GameControllerGetType( + gamecontroller: *mut SDL_GameController, + ) -> SDL_GameControllerType; +} +extern "C" { + #[doc = " Get the player index of an opened game controller, or -1 if it's not available"] + #[doc = ""] + #[doc = " For XInput controllers this returns the XInput user index."] + pub fn SDL_GameControllerGetPlayerIndex(gamecontroller: *mut SDL_GameController) + -> libc::c_int; +} +extern "C" { + #[doc = " Set the player index of an opened game controller"] + pub fn SDL_GameControllerSetPlayerIndex( + gamecontroller: *mut SDL_GameController, + player_index: libc::c_int, + ); +} +extern "C" { + #[doc = " Get the USB vendor ID of an opened controller, if available."] + #[doc = " If the vendor ID isn't available this function returns 0."] + pub fn SDL_GameControllerGetVendor(gamecontroller: *mut SDL_GameController) -> Uint16; +} +extern "C" { + #[doc = " Get the USB product ID of an opened controller, if available."] + #[doc = " If the product ID isn't available this function returns 0."] + pub fn SDL_GameControllerGetProduct(gamecontroller: *mut SDL_GameController) -> Uint16; +} +extern "C" { + #[doc = " Get the product version of an opened controller, if available."] + #[doc = " If the product version isn't available this function returns 0."] + pub fn SDL_GameControllerGetProductVersion(gamecontroller: *mut SDL_GameController) -> Uint16; +} +extern "C" { + #[doc = " Get the serial number of an opened controller, if available."] + #[doc = ""] + #[doc = " Returns the serial number of the controller, or NULL if it is not available."] + pub fn SDL_GameControllerGetSerial( + gamecontroller: *mut SDL_GameController, + ) -> *const libc::c_char; +} +extern "C" { + #[doc = " Returns SDL_TRUE if the controller has been opened and currently connected,"] + #[doc = " or SDL_FALSE if it has not."] + pub fn SDL_GameControllerGetAttached(gamecontroller: *mut SDL_GameController) -> SDL_bool; +} +extern "C" { + #[doc = " Get the underlying joystick object used by a controller"] + pub fn SDL_GameControllerGetJoystick( + gamecontroller: *mut SDL_GameController, + ) -> *mut SDL_Joystick; +} +extern "C" { + #[doc = " Enable/disable controller event polling."] + #[doc = ""] + #[doc = " If controller events are disabled, you must call SDL_GameControllerUpdate()"] + #[doc = " yourself and check the state of the controller when you want controller"] + #[doc = " information."] + #[doc = ""] + #[doc = " The state can be one of ::SDL_QUERY, ::SDL_ENABLE or ::SDL_IGNORE."] + pub fn SDL_GameControllerEventState(state: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " Update the current state of the open game controllers."] + #[doc = ""] + #[doc = " This is called automatically by the event loop if any game controller"] + #[doc = " events are enabled."] + pub fn SDL_GameControllerUpdate(); +} +#[repr(i32)] +#[doc = " The list of axes available from a controller"] +#[doc = ""] +#[doc = " Thumbstick axis values range from SDL_JOYSTICK_AXIS_MIN to SDL_JOYSTICK_AXIS_MAX,"] +#[doc = " and are centered within ~8000 of zero, though advanced UI will allow users to set"] +#[doc = " or autodetect the dead zone, which varies between controllers."] +#[doc = ""] +#[doc = " Trigger axis values range from 0 to SDL_JOYSTICK_AXIS_MAX."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_GameControllerAxis { + SDL_CONTROLLER_AXIS_INVALID = -1, + SDL_CONTROLLER_AXIS_LEFTX = 0, + SDL_CONTROLLER_AXIS_LEFTY = 1, + SDL_CONTROLLER_AXIS_RIGHTX = 2, + SDL_CONTROLLER_AXIS_RIGHTY = 3, + SDL_CONTROLLER_AXIS_TRIGGERLEFT = 4, + SDL_CONTROLLER_AXIS_TRIGGERRIGHT = 5, + SDL_CONTROLLER_AXIS_MAX = 6, +} +extern "C" { + #[doc = " turn this string into a axis mapping"] + pub fn SDL_GameControllerGetAxisFromString( + pchString: *const libc::c_char, + ) -> SDL_GameControllerAxis; +} +extern "C" { + #[doc = " turn this axis enum into a string mapping"] + pub fn SDL_GameControllerGetStringForAxis(axis: SDL_GameControllerAxis) -> *const libc::c_char; +} +extern "C" { + #[doc = " Get the SDL joystick layer binding for this controller button mapping"] + pub fn SDL_GameControllerGetBindForAxis( + gamecontroller: *mut SDL_GameController, + axis: SDL_GameControllerAxis, + ) -> SDL_GameControllerButtonBind; +} +extern "C" { + #[doc = " Return whether a game controller has a given axis"] + pub fn SDL_GameControllerHasAxis( + gamecontroller: *mut SDL_GameController, + axis: SDL_GameControllerAxis, + ) -> SDL_bool; +} +extern "C" { + #[doc = " Get the current state of an axis control on a game controller."] + #[doc = ""] + #[doc = " The state is a value ranging from -32768 to 32767 (except for the triggers,"] + #[doc = " which range from 0 to 32767)."] + #[doc = ""] + #[doc = " The axis indices start at index 0."] + pub fn SDL_GameControllerGetAxis( + gamecontroller: *mut SDL_GameController, + axis: SDL_GameControllerAxis, + ) -> Sint16; +} +#[repr(i32)] +#[doc = " The list of buttons available from a controller"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_GameControllerButton { + SDL_CONTROLLER_BUTTON_INVALID = -1, + SDL_CONTROLLER_BUTTON_A = 0, + SDL_CONTROLLER_BUTTON_B = 1, + SDL_CONTROLLER_BUTTON_X = 2, + SDL_CONTROLLER_BUTTON_Y = 3, + SDL_CONTROLLER_BUTTON_BACK = 4, + SDL_CONTROLLER_BUTTON_GUIDE = 5, + SDL_CONTROLLER_BUTTON_START = 6, + SDL_CONTROLLER_BUTTON_LEFTSTICK = 7, + SDL_CONTROLLER_BUTTON_RIGHTSTICK = 8, + SDL_CONTROLLER_BUTTON_LEFTSHOULDER = 9, + SDL_CONTROLLER_BUTTON_RIGHTSHOULDER = 10, + SDL_CONTROLLER_BUTTON_DPAD_UP = 11, + SDL_CONTROLLER_BUTTON_DPAD_DOWN = 12, + SDL_CONTROLLER_BUTTON_DPAD_LEFT = 13, + SDL_CONTROLLER_BUTTON_DPAD_RIGHT = 14, + SDL_CONTROLLER_BUTTON_MISC1 = 15, + SDL_CONTROLLER_BUTTON_PADDLE1 = 16, + SDL_CONTROLLER_BUTTON_PADDLE2 = 17, + SDL_CONTROLLER_BUTTON_PADDLE3 = 18, + SDL_CONTROLLER_BUTTON_PADDLE4 = 19, + SDL_CONTROLLER_BUTTON_TOUCHPAD = 20, + SDL_CONTROLLER_BUTTON_MAX = 21, +} +extern "C" { + #[doc = " turn this string into a button mapping"] + pub fn SDL_GameControllerGetButtonFromString( + pchString: *const libc::c_char, + ) -> SDL_GameControllerButton; +} +extern "C" { + #[doc = " turn this button enum into a string mapping"] + pub fn SDL_GameControllerGetStringForButton( + button: SDL_GameControllerButton, + ) -> *const libc::c_char; +} +extern "C" { + #[doc = " Get the SDL joystick layer binding for this controller button mapping"] + pub fn SDL_GameControllerGetBindForButton( + gamecontroller: *mut SDL_GameController, + button: SDL_GameControllerButton, + ) -> SDL_GameControllerButtonBind; +} +extern "C" { + #[doc = " Return whether a game controller has a given button"] + pub fn SDL_GameControllerHasButton( + gamecontroller: *mut SDL_GameController, + button: SDL_GameControllerButton, + ) -> SDL_bool; +} +extern "C" { + #[doc = " Get the current state of a button on a game controller."] + #[doc = ""] + #[doc = " The button indices start at index 0."] + pub fn SDL_GameControllerGetButton( + gamecontroller: *mut SDL_GameController, + button: SDL_GameControllerButton, + ) -> Uint8; +} +extern "C" { + #[doc = " Get the number of touchpads on a game controller."] + pub fn SDL_GameControllerGetNumTouchpads( + gamecontroller: *mut SDL_GameController, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Get the number of supported simultaneous fingers on a touchpad on a game controller."] + pub fn SDL_GameControllerGetNumTouchpadFingers( + gamecontroller: *mut SDL_GameController, + touchpad: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Get the current state of a finger on a touchpad on a game controller."] + pub fn SDL_GameControllerGetTouchpadFinger( + gamecontroller: *mut SDL_GameController, + touchpad: libc::c_int, + finger: libc::c_int, + state: *mut Uint8, + x: *mut f32, + y: *mut f32, + pressure: *mut f32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Return whether a game controller has a particular sensor."] + #[doc = ""] + #[doc = " \\param gamecontroller The controller to query"] + #[doc = " \\param type The type of sensor to query"] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the sensor exists, SDL_FALSE otherwise."] + pub fn SDL_GameControllerHasSensor( + gamecontroller: *mut SDL_GameController, + type_: SDL_SensorType, + ) -> SDL_bool; +} +extern "C" { + #[doc = " Set whether data reporting for a game controller sensor is enabled"] + #[doc = ""] + #[doc = " \\param gamecontroller The controller to update"] + #[doc = " \\param type The type of sensor to enable/disable"] + #[doc = " \\param enabled Whether data reporting should be enabled"] + #[doc = ""] + #[doc = " \\return 0 or -1 if an error occurred."] + pub fn SDL_GameControllerSetSensorEnabled( + gamecontroller: *mut SDL_GameController, + type_: SDL_SensorType, + enabled: SDL_bool, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Query whether sensor data reporting is enabled for a game controller"] + #[doc = ""] + #[doc = " \\param gamecontroller The controller to query"] + #[doc = " \\param type The type of sensor to query"] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the sensor is enabled, SDL_FALSE otherwise."] + pub fn SDL_GameControllerIsSensorEnabled( + gamecontroller: *mut SDL_GameController, + type_: SDL_SensorType, + ) -> SDL_bool; +} +extern "C" { + #[doc = " Get the current state of a game controller sensor."] + #[doc = ""] + #[doc = " The number of values and interpretation of the data is sensor dependent."] + #[doc = " See SDL_sensor.h for the details for each type of sensor."] + #[doc = ""] + #[doc = " \\param gamecontroller The controller to query"] + #[doc = " \\param type The type of sensor to query"] + #[doc = " \\param data A pointer filled with the current sensor state"] + #[doc = " \\param num_values The number of values to write to data"] + #[doc = ""] + #[doc = " \\return 0 or -1 if an error occurred."] + pub fn SDL_GameControllerGetSensorData( + gamecontroller: *mut SDL_GameController, + type_: SDL_SensorType, + data: *mut f32, + num_values: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Start a rumble effect"] + #[doc = " Each call to this function cancels any previous rumble effect, and calling it with 0 intensity stops any rumbling."] + #[doc = ""] + #[doc = " \\param gamecontroller The controller to vibrate"] + #[doc = " \\param low_frequency_rumble The intensity of the low frequency (left) rumble motor, from 0 to 0xFFFF"] + #[doc = " \\param high_frequency_rumble The intensity of the high frequency (right) rumble motor, from 0 to 0xFFFF"] + #[doc = " \\param duration_ms The duration of the rumble effect, in milliseconds"] + #[doc = ""] + #[doc = " \\return 0, or -1 if rumble isn't supported on this controller"] + pub fn SDL_GameControllerRumble( + gamecontroller: *mut SDL_GameController, + low_frequency_rumble: Uint16, + high_frequency_rumble: Uint16, + duration_ms: Uint32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Start a rumble effect in the game controller's triggers"] + #[doc = " Each call to this function cancels any previous trigger rumble effect, and calling it with 0 intensity stops any rumbling."] + #[doc = ""] + #[doc = " \\param gamecontroller The controller to vibrate"] + #[doc = " \\param left_rumble The intensity of the left trigger rumble motor, from 0 to 0xFFFF"] + #[doc = " \\param right_rumble The intensity of the right trigger rumble motor, from 0 to 0xFFFF"] + #[doc = " \\param duration_ms The duration of the rumble effect, in milliseconds"] + #[doc = ""] + #[doc = " \\return 0, or -1 if rumble isn't supported on this controller"] + pub fn SDL_GameControllerRumbleTriggers( + gamecontroller: *mut SDL_GameController, + left_rumble: Uint16, + right_rumble: Uint16, + duration_ms: Uint32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Return whether a controller has an LED"] + #[doc = ""] + #[doc = " \\param gamecontroller The controller to query"] + #[doc = ""] + #[doc = " \\return SDL_TRUE, or SDL_FALSE if this controller does not have a modifiable LED"] + pub fn SDL_GameControllerHasLED(gamecontroller: *mut SDL_GameController) -> SDL_bool; +} +extern "C" { + #[doc = " Update a controller's LED color."] + #[doc = ""] + #[doc = " \\param gamecontroller The controller to update"] + #[doc = " \\param red The intensity of the red LED"] + #[doc = " \\param green The intensity of the green LED"] + #[doc = " \\param blue The intensity of the blue LED"] + #[doc = ""] + #[doc = " \\return 0, or -1 if this controller does not have a modifiable LED"] + pub fn SDL_GameControllerSetLED( + gamecontroller: *mut SDL_GameController, + red: Uint8, + green: Uint8, + blue: Uint8, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Close a controller previously opened with SDL_GameControllerOpen()."] + pub fn SDL_GameControllerClose(gamecontroller: *mut SDL_GameController); +} +pub type SDL_TouchID = Sint64; +pub type SDL_FingerID = Sint64; +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_TouchDeviceType { + SDL_TOUCH_DEVICE_INVALID = -1, + SDL_TOUCH_DEVICE_DIRECT = 0, + SDL_TOUCH_DEVICE_INDIRECT_ABSOLUTE = 1, + SDL_TOUCH_DEVICE_INDIRECT_RELATIVE = 2, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Finger { + pub id: SDL_FingerID, + pub x: f32, + pub y: f32, + pub pressure: f32, +} +#[test] +fn bindgen_test_layout_SDL_Finger() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(SDL_Finger)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_Finger)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).id as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Finger), + "::", + stringify!(id) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_Finger), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_Finger), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).pressure as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_Finger), + "::", + stringify!(pressure) + ) + ); +} +extern "C" { + #[doc = " \\brief Get the number of registered touch devices."] + pub fn SDL_GetNumTouchDevices() -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the touch ID with the given index, or 0 if the index is invalid."] + pub fn SDL_GetTouchDevice(index: libc::c_int) -> SDL_TouchID; +} +extern "C" { + #[doc = " \\brief Get the type of the given touch device."] + pub fn SDL_GetTouchDeviceType(touchID: SDL_TouchID) -> SDL_TouchDeviceType; +} +extern "C" { + #[doc = " \\brief Get the number of active fingers for a given touch device."] + pub fn SDL_GetNumTouchFingers(touchID: SDL_TouchID) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the finger object of the given touch, with the given index."] + pub fn SDL_GetTouchFinger(touchID: SDL_TouchID, index: libc::c_int) -> *mut SDL_Finger; +} +pub type SDL_GestureID = Sint64; +extern "C" { + #[doc = " \\brief Begin Recording a gesture on the specified touch, or all touches (-1)"] + #[doc = ""] + #[doc = ""] + pub fn SDL_RecordGesture(touchId: SDL_TouchID) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Save all currently loaded Dollar Gesture templates"] + #[doc = ""] + #[doc = ""] + pub fn SDL_SaveAllDollarTemplates(dst: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Save a currently loaded Dollar Gesture template"] + #[doc = ""] + #[doc = ""] + pub fn SDL_SaveDollarTemplate(gestureId: SDL_GestureID, dst: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Load Dollar Gesture templates from a file"] + #[doc = ""] + #[doc = ""] + pub fn SDL_LoadDollarTemplates(touchId: SDL_TouchID, src: *mut SDL_RWops) -> libc::c_int; +} +#[repr(u32)] +#[doc = " \\brief The types of events that can be delivered."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_EventType { + #[doc = "< Unused (do not remove)"] + SDL_FIRSTEVENT = 0, + #[doc = "< User-requested quit"] + SDL_QUIT = 256, + #[doc = "< The application is being terminated by the OS"] + #[doc = "Called on iOS in applicationWillTerminate()"] + #[doc = "Called on Android in onDestroy()"] + SDL_APP_TERMINATING = 257, + #[doc = "< The application is low on memory, free memory if possible."] + #[doc = "Called on iOS in applicationDidReceiveMemoryWarning()"] + #[doc = "Called on Android in onLowMemory()"] + SDL_APP_LOWMEMORY = 258, + #[doc = "< The application is about to enter the background"] + #[doc = "Called on iOS in applicationWillResignActive()"] + #[doc = "Called on Android in onPause()"] + SDL_APP_WILLENTERBACKGROUND = 259, + #[doc = "< The application did enter the background and may not get CPU for some time"] + #[doc = "Called on iOS in applicationDidEnterBackground()"] + #[doc = "Called on Android in onPause()"] + SDL_APP_DIDENTERBACKGROUND = 260, + #[doc = "< The application is about to enter the foreground"] + #[doc = "Called on iOS in applicationWillEnterForeground()"] + #[doc = "Called on Android in onResume()"] + SDL_APP_WILLENTERFOREGROUND = 261, + #[doc = "< The application is now interactive"] + #[doc = "Called on iOS in applicationDidBecomeActive()"] + #[doc = "Called on Android in onResume()"] + SDL_APP_DIDENTERFOREGROUND = 262, + #[doc = "< The user's locale preferences have changed."] + SDL_LOCALECHANGED = 263, + #[doc = "< Display state change"] + SDL_DISPLAYEVENT = 336, + #[doc = "< Window state change"] + SDL_WINDOWEVENT = 512, + #[doc = "< System specific event"] + SDL_SYSWMEVENT = 513, + #[doc = "< Key pressed"] + SDL_KEYDOWN = 768, + #[doc = "< Key released"] + SDL_KEYUP = 769, + #[doc = "< Keyboard text editing (composition)"] + SDL_TEXTEDITING = 770, + #[doc = "< Keyboard text input"] + SDL_TEXTINPUT = 771, + #[doc = "< Keymap changed due to a system event such as an"] + #[doc = "input language or keyboard layout change."] + SDL_KEYMAPCHANGED = 772, + #[doc = "< Mouse moved"] + SDL_MOUSEMOTION = 1024, + #[doc = "< Mouse button pressed"] + SDL_MOUSEBUTTONDOWN = 1025, + #[doc = "< Mouse button released"] + SDL_MOUSEBUTTONUP = 1026, + #[doc = "< Mouse wheel motion"] + SDL_MOUSEWHEEL = 1027, + #[doc = "< Joystick axis motion"] + SDL_JOYAXISMOTION = 1536, + #[doc = "< Joystick trackball motion"] + SDL_JOYBALLMOTION = 1537, + #[doc = "< Joystick hat position change"] + SDL_JOYHATMOTION = 1538, + #[doc = "< Joystick button pressed"] + SDL_JOYBUTTONDOWN = 1539, + #[doc = "< Joystick button released"] + SDL_JOYBUTTONUP = 1540, + #[doc = "< A new joystick has been inserted into the system"] + SDL_JOYDEVICEADDED = 1541, + #[doc = "< An opened joystick has been removed"] + SDL_JOYDEVICEREMOVED = 1542, + #[doc = "< Game controller axis motion"] + SDL_CONTROLLERAXISMOTION = 1616, + #[doc = "< Game controller button pressed"] + SDL_CONTROLLERBUTTONDOWN = 1617, + #[doc = "< Game controller button released"] + SDL_CONTROLLERBUTTONUP = 1618, + #[doc = "< A new Game controller has been inserted into the system"] + SDL_CONTROLLERDEVICEADDED = 1619, + #[doc = "< An opened Game controller has been removed"] + SDL_CONTROLLERDEVICEREMOVED = 1620, + #[doc = "< The controller mapping was updated"] + SDL_CONTROLLERDEVICEREMAPPED = 1621, + #[doc = "< Game controller touchpad was touched"] + SDL_CONTROLLERTOUCHPADDOWN = 1622, + #[doc = "< Game controller touchpad finger was moved"] + SDL_CONTROLLERTOUCHPADMOTION = 1623, + #[doc = "< Game controller touchpad finger was lifted"] + SDL_CONTROLLERTOUCHPADUP = 1624, + #[doc = "< Game controller sensor was updated"] + SDL_CONTROLLERSENSORUPDATE = 1625, + SDL_FINGERDOWN = 1792, + SDL_FINGERUP = 1793, + SDL_FINGERMOTION = 1794, + SDL_DOLLARGESTURE = 2048, + SDL_DOLLARRECORD = 2049, + SDL_MULTIGESTURE = 2050, + #[doc = "< The clipboard changed"] + SDL_CLIPBOARDUPDATE = 2304, + #[doc = "< The system requests a file open"] + SDL_DROPFILE = 4096, + #[doc = "< text/plain drag-and-drop event"] + SDL_DROPTEXT = 4097, + #[doc = "< A new set of drops is beginning (NULL filename)"] + SDL_DROPBEGIN = 4098, + #[doc = "< Current set of drops is now complete (NULL filename)"] + SDL_DROPCOMPLETE = 4099, + #[doc = "< A new audio device is available"] + SDL_AUDIODEVICEADDED = 4352, + #[doc = "< An audio device has been removed."] + SDL_AUDIODEVICEREMOVED = 4353, + #[doc = "< A sensor was updated"] + SDL_SENSORUPDATE = 4608, + #[doc = "< The render targets have been reset and their contents need to be updated"] + SDL_RENDER_TARGETS_RESET = 8192, + #[doc = "< The device has been reset and all textures need to be recreated"] + SDL_RENDER_DEVICE_RESET = 8193, + #[doc = " Events ::SDL_USEREVENT through ::SDL_LASTEVENT are for your use,"] + #[doc = " and should be allocated with SDL_RegisterEvents()"] + SDL_USEREVENT = 32768, + #[doc = " This last event is only for bounding internal arrays"] + SDL_LASTEVENT = 65535, +} +#[doc = " \\brief Fields shared by every event"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_CommonEvent { + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, +} +#[test] +fn bindgen_test_layout_SDL_CommonEvent() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(SDL_CommonEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_CommonEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_CommonEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_CommonEvent), + "::", + stringify!(timestamp) + ) + ); +} +#[doc = " \\brief Display state change event data (event.display.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_DisplayEvent { + #[doc = "< ::SDL_DISPLAYEVENT"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The associated display index"] + pub display: Uint32, + #[doc = "< ::SDL_DisplayEventID"] + pub event: Uint8, + pub padding1: Uint8, + pub padding2: Uint8, + pub padding3: Uint8, + #[doc = "< event dependent data"] + pub data1: Sint32, +} +#[test] +fn bindgen_test_layout_SDL_DisplayEvent() { + assert_eq!( + ::core::mem::size_of::(), + 20usize, + concat!("Size of: ", stringify!(SDL_DisplayEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_DisplayEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).event as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayEvent), + "::", + stringify!(event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding1 as *const _ as usize }, + 13usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayEvent), + "::", + stringify!(padding1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding2 as *const _ as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayEvent), + "::", + stringify!(padding2) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding3 as *const _ as usize }, + 15usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayEvent), + "::", + stringify!(padding3) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).data1 as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_DisplayEvent), + "::", + stringify!(data1) + ) + ); +} +#[doc = " \\brief Window state change event data (event.window.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_WindowEvent { + #[doc = "< ::SDL_WINDOWEVENT"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The associated window"] + pub windowID: Uint32, + #[doc = "< ::SDL_WindowEventID"] + pub event: Uint8, + pub padding1: Uint8, + pub padding2: Uint8, + pub padding3: Uint8, + #[doc = "< event dependent data"] + pub data1: Sint32, + #[doc = "< event dependent data"] + pub data2: Sint32, +} +#[test] +fn bindgen_test_layout_SDL_WindowEvent() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(SDL_WindowEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_WindowEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).windowID as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowEvent), + "::", + stringify!(windowID) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).event as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowEvent), + "::", + stringify!(event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding1 as *const _ as usize }, + 13usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowEvent), + "::", + stringify!(padding1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding2 as *const _ as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowEvent), + "::", + stringify!(padding2) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding3 as *const _ as usize }, + 15usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowEvent), + "::", + stringify!(padding3) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).data1 as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowEvent), + "::", + stringify!(data1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).data2 as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowEvent), + "::", + stringify!(data2) + ) + ); +} +#[doc = " \\brief Keyboard button event structure (event.key.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_KeyboardEvent { + #[doc = "< ::SDL_KEYDOWN or ::SDL_KEYUP"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The window with keyboard focus, if any"] + pub windowID: Uint32, + #[doc = "< ::SDL_PRESSED or ::SDL_RELEASED"] + pub state: Uint8, + #[doc = "< Non-zero if this is a key repeat"] + pub repeat: Uint8, + pub padding2: Uint8, + pub padding3: Uint8, + #[doc = "< The key that was pressed or released"] + pub keysym: SDL_Keysym, +} +#[test] +fn bindgen_test_layout_SDL_KeyboardEvent() { + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(SDL_KeyboardEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_KeyboardEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_KeyboardEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_KeyboardEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).windowID as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_KeyboardEvent), + "::", + stringify!(windowID) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_KeyboardEvent), + "::", + stringify!(state) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).repeat as *const _ as usize }, + 13usize, + concat!( + "Offset of field: ", + stringify!(SDL_KeyboardEvent), + "::", + stringify!(repeat) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding2 as *const _ as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(SDL_KeyboardEvent), + "::", + stringify!(padding2) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding3 as *const _ as usize }, + 15usize, + concat!( + "Offset of field: ", + stringify!(SDL_KeyboardEvent), + "::", + stringify!(padding3) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).keysym as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_KeyboardEvent), + "::", + stringify!(keysym) + ) + ); +} +#[doc = " \\brief Keyboard text editing event structure (event.edit.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_TextEditingEvent { + #[doc = "< ::SDL_TEXTEDITING"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The window with keyboard focus, if any"] + pub windowID: Uint32, + #[doc = "< The editing text"] + pub text: [libc::c_char; 32usize], + #[doc = "< The start cursor of selected editing text"] + pub start: Sint32, + #[doc = "< The length of selected editing text"] + pub length: Sint32, +} +#[test] +fn bindgen_test_layout_SDL_TextEditingEvent() { + assert_eq!( + ::core::mem::size_of::(), + 52usize, + concat!("Size of: ", stringify!(SDL_TextEditingEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_TextEditingEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_TextEditingEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_TextEditingEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).windowID as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_TextEditingEvent), + "::", + stringify!(windowID) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).text as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_TextEditingEvent), + "::", + stringify!(text) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).start as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(SDL_TextEditingEvent), + "::", + stringify!(start) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).length as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(SDL_TextEditingEvent), + "::", + stringify!(length) + ) + ); +} +#[doc = " \\brief Keyboard text input event structure (event.text.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_TextInputEvent { + #[doc = "< ::SDL_TEXTINPUT"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The window with keyboard focus, if any"] + pub windowID: Uint32, + #[doc = "< The input text"] + pub text: [libc::c_char; 32usize], +} +#[test] +fn bindgen_test_layout_SDL_TextInputEvent() { + assert_eq!( + ::core::mem::size_of::(), + 44usize, + concat!("Size of: ", stringify!(SDL_TextInputEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_TextInputEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_TextInputEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_TextInputEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).windowID as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_TextInputEvent), + "::", + stringify!(windowID) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).text as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_TextInputEvent), + "::", + stringify!(text) + ) + ); +} +#[doc = " \\brief Mouse motion event structure (event.motion.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_MouseMotionEvent { + #[doc = "< ::SDL_MOUSEMOTION"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The window with mouse focus, if any"] + pub windowID: Uint32, + #[doc = "< The mouse instance id, or SDL_TOUCH_MOUSEID"] + pub which: Uint32, + #[doc = "< The current button state"] + pub state: Uint32, + #[doc = "< X coordinate, relative to window"] + pub x: Sint32, + #[doc = "< Y coordinate, relative to window"] + pub y: Sint32, + #[doc = "< The relative motion in the X direction"] + pub xrel: Sint32, + #[doc = "< The relative motion in the Y direction"] + pub yrel: Sint32, +} +#[test] +fn bindgen_test_layout_SDL_MouseMotionEvent() { + assert_eq!( + ::core::mem::size_of::(), + 36usize, + concat!("Size of: ", stringify!(SDL_MouseMotionEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_MouseMotionEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseMotionEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseMotionEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).windowID as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseMotionEvent), + "::", + stringify!(windowID) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).which as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseMotionEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseMotionEvent), + "::", + stringify!(state) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseMotionEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseMotionEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).xrel as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseMotionEvent), + "::", + stringify!(xrel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).yrel as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseMotionEvent), + "::", + stringify!(yrel) + ) + ); +} +#[doc = " \\brief Mouse button event structure (event.button.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_MouseButtonEvent { + #[doc = "< ::SDL_MOUSEBUTTONDOWN or ::SDL_MOUSEBUTTONUP"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The window with mouse focus, if any"] + pub windowID: Uint32, + #[doc = "< The mouse instance id, or SDL_TOUCH_MOUSEID"] + pub which: Uint32, + #[doc = "< The mouse button index"] + pub button: Uint8, + #[doc = "< ::SDL_PRESSED or ::SDL_RELEASED"] + pub state: Uint8, + #[doc = "< 1 for single-click, 2 for double-click, etc."] + pub clicks: Uint8, + pub padding1: Uint8, + #[doc = "< X coordinate, relative to window"] + pub x: Sint32, + #[doc = "< Y coordinate, relative to window"] + pub y: Sint32, +} +#[test] +fn bindgen_test_layout_SDL_MouseButtonEvent() { + assert_eq!( + ::core::mem::size_of::(), + 28usize, + concat!("Size of: ", stringify!(SDL_MouseButtonEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_MouseButtonEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseButtonEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseButtonEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).windowID as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseButtonEvent), + "::", + stringify!(windowID) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).which as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseButtonEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).button as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseButtonEvent), + "::", + stringify!(button) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 17usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseButtonEvent), + "::", + stringify!(state) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).clicks as *const _ as usize }, + 18usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseButtonEvent), + "::", + stringify!(clicks) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding1 as *const _ as usize }, + 19usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseButtonEvent), + "::", + stringify!(padding1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseButtonEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseButtonEvent), + "::", + stringify!(y) + ) + ); +} +#[doc = " \\brief Mouse wheel event structure (event.wheel.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_MouseWheelEvent { + #[doc = "< ::SDL_MOUSEWHEEL"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The window with mouse focus, if any"] + pub windowID: Uint32, + #[doc = "< The mouse instance id, or SDL_TOUCH_MOUSEID"] + pub which: Uint32, + #[doc = "< The amount scrolled horizontally, positive to the right and negative to the left"] + pub x: Sint32, + #[doc = "< The amount scrolled vertically, positive away from the user and negative toward the user"] + pub y: Sint32, + #[doc = "< Set to one of the SDL_MOUSEWHEEL_* defines. When FLIPPED the values in X and Y will be opposite. Multiply by -1 to change them back"] + pub direction: Uint32, +} +#[test] +fn bindgen_test_layout_SDL_MouseWheelEvent() { + assert_eq!( + ::core::mem::size_of::(), + 28usize, + concat!("Size of: ", stringify!(SDL_MouseWheelEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_MouseWheelEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseWheelEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseWheelEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).windowID as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseWheelEvent), + "::", + stringify!(windowID) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).which as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseWheelEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseWheelEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseWheelEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).direction as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_MouseWheelEvent), + "::", + stringify!(direction) + ) + ); +} +#[doc = " \\brief Joystick axis motion event structure (event.jaxis.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_JoyAxisEvent { + #[doc = "< ::SDL_JOYAXISMOTION"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The joystick instance id"] + pub which: SDL_JoystickID, + #[doc = "< The joystick axis index"] + pub axis: Uint8, + pub padding1: Uint8, + pub padding2: Uint8, + pub padding3: Uint8, + #[doc = "< The axis value (range: -32768 to 32767)"] + pub value: Sint16, + pub padding4: Uint16, +} +#[test] +fn bindgen_test_layout_SDL_JoyAxisEvent() { + assert_eq!( + ::core::mem::size_of::(), + 20usize, + concat!("Size of: ", stringify!(SDL_JoyAxisEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_JoyAxisEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyAxisEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyAxisEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).which as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyAxisEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).axis as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyAxisEvent), + "::", + stringify!(axis) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding1 as *const _ as usize }, + 13usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyAxisEvent), + "::", + stringify!(padding1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding2 as *const _ as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyAxisEvent), + "::", + stringify!(padding2) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding3 as *const _ as usize }, + 15usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyAxisEvent), + "::", + stringify!(padding3) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).value as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyAxisEvent), + "::", + stringify!(value) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding4 as *const _ as usize }, + 18usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyAxisEvent), + "::", + stringify!(padding4) + ) + ); +} +#[doc = " \\brief Joystick trackball motion event structure (event.jball.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_JoyBallEvent { + #[doc = "< ::SDL_JOYBALLMOTION"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The joystick instance id"] + pub which: SDL_JoystickID, + #[doc = "< The joystick trackball index"] + pub ball: Uint8, + pub padding1: Uint8, + pub padding2: Uint8, + pub padding3: Uint8, + #[doc = "< The relative motion in the X direction"] + pub xrel: Sint16, + #[doc = "< The relative motion in the Y direction"] + pub yrel: Sint16, +} +#[test] +fn bindgen_test_layout_SDL_JoyBallEvent() { + assert_eq!( + ::core::mem::size_of::(), + 20usize, + concat!("Size of: ", stringify!(SDL_JoyBallEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_JoyBallEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyBallEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyBallEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).which as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyBallEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ball as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyBallEvent), + "::", + stringify!(ball) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding1 as *const _ as usize }, + 13usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyBallEvent), + "::", + stringify!(padding1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding2 as *const _ as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyBallEvent), + "::", + stringify!(padding2) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding3 as *const _ as usize }, + 15usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyBallEvent), + "::", + stringify!(padding3) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).xrel as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyBallEvent), + "::", + stringify!(xrel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).yrel as *const _ as usize }, + 18usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyBallEvent), + "::", + stringify!(yrel) + ) + ); +} +#[doc = " \\brief Joystick hat position change event structure (event.jhat.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_JoyHatEvent { + #[doc = "< ::SDL_JOYHATMOTION"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The joystick instance id"] + pub which: SDL_JoystickID, + #[doc = "< The joystick hat index"] + pub hat: Uint8, + #[doc = "< The hat position value."] + #[doc = " \\sa ::SDL_HAT_LEFTUP ::SDL_HAT_UP ::SDL_HAT_RIGHTUP"] + #[doc = " \\sa ::SDL_HAT_LEFT ::SDL_HAT_CENTERED ::SDL_HAT_RIGHT"] + #[doc = " \\sa ::SDL_HAT_LEFTDOWN ::SDL_HAT_DOWN ::SDL_HAT_RIGHTDOWN"] + #[doc = ""] + #[doc = " Note that zero means the POV is centered."] + pub value: Uint8, + pub padding1: Uint8, + pub padding2: Uint8, +} +#[test] +fn bindgen_test_layout_SDL_JoyHatEvent() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_JoyHatEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_JoyHatEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyHatEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyHatEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).which as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyHatEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).hat as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyHatEvent), + "::", + stringify!(hat) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).value as *const _ as usize }, + 13usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyHatEvent), + "::", + stringify!(value) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding1 as *const _ as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyHatEvent), + "::", + stringify!(padding1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding2 as *const _ as usize }, + 15usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyHatEvent), + "::", + stringify!(padding2) + ) + ); +} +#[doc = " \\brief Joystick button event structure (event.jbutton.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_JoyButtonEvent { + #[doc = "< ::SDL_JOYBUTTONDOWN or ::SDL_JOYBUTTONUP"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The joystick instance id"] + pub which: SDL_JoystickID, + #[doc = "< The joystick button index"] + pub button: Uint8, + #[doc = "< ::SDL_PRESSED or ::SDL_RELEASED"] + pub state: Uint8, + pub padding1: Uint8, + pub padding2: Uint8, +} +#[test] +fn bindgen_test_layout_SDL_JoyButtonEvent() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_JoyButtonEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_JoyButtonEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyButtonEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyButtonEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).which as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyButtonEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).button as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyButtonEvent), + "::", + stringify!(button) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 13usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyButtonEvent), + "::", + stringify!(state) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding1 as *const _ as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyButtonEvent), + "::", + stringify!(padding1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding2 as *const _ as usize }, + 15usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyButtonEvent), + "::", + stringify!(padding2) + ) + ); +} +#[doc = " \\brief Joystick device event structure (event.jdevice.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_JoyDeviceEvent { + #[doc = "< ::SDL_JOYDEVICEADDED or ::SDL_JOYDEVICEREMOVED"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The joystick device index for the ADDED event, instance id for the REMOVED event"] + pub which: Sint32, +} +#[test] +fn bindgen_test_layout_SDL_JoyDeviceEvent() { + assert_eq!( + ::core::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(SDL_JoyDeviceEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_JoyDeviceEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyDeviceEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyDeviceEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).which as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_JoyDeviceEvent), + "::", + stringify!(which) + ) + ); +} +#[doc = " \\brief Game controller axis motion event structure (event.caxis.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_ControllerAxisEvent { + #[doc = "< ::SDL_CONTROLLERAXISMOTION"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The joystick instance id"] + pub which: SDL_JoystickID, + #[doc = "< The controller axis (SDL_GameControllerAxis)"] + pub axis: Uint8, + pub padding1: Uint8, + pub padding2: Uint8, + pub padding3: Uint8, + #[doc = "< The axis value (range: -32768 to 32767)"] + pub value: Sint16, + pub padding4: Uint16, +} +#[test] +fn bindgen_test_layout_SDL_ControllerAxisEvent() { + assert_eq!( + ::core::mem::size_of::(), + 20usize, + concat!("Size of: ", stringify!(SDL_ControllerAxisEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_ControllerAxisEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerAxisEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).timestamp as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerAxisEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).which as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerAxisEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).axis as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerAxisEvent), + "::", + stringify!(axis) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).padding1 as *const _ as usize + }, + 13usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerAxisEvent), + "::", + stringify!(padding1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).padding2 as *const _ as usize + }, + 14usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerAxisEvent), + "::", + stringify!(padding2) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).padding3 as *const _ as usize + }, + 15usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerAxisEvent), + "::", + stringify!(padding3) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).value as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerAxisEvent), + "::", + stringify!(value) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).padding4 as *const _ as usize + }, + 18usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerAxisEvent), + "::", + stringify!(padding4) + ) + ); +} +#[doc = " \\brief Game controller button event structure (event.cbutton.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_ControllerButtonEvent { + #[doc = "< ::SDL_CONTROLLERBUTTONDOWN or ::SDL_CONTROLLERBUTTONUP"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The joystick instance id"] + pub which: SDL_JoystickID, + #[doc = "< The controller button (SDL_GameControllerButton)"] + pub button: Uint8, + #[doc = "< ::SDL_PRESSED or ::SDL_RELEASED"] + pub state: Uint8, + pub padding1: Uint8, + pub padding2: Uint8, +} +#[test] +fn bindgen_test_layout_SDL_ControllerButtonEvent() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_ControllerButtonEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_ControllerButtonEvent)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).type_ as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerButtonEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).timestamp as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerButtonEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).which as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerButtonEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).button as *const _ as usize + }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerButtonEvent), + "::", + stringify!(button) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).state as *const _ as usize + }, + 13usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerButtonEvent), + "::", + stringify!(state) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).padding1 as *const _ as usize + }, + 14usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerButtonEvent), + "::", + stringify!(padding1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).padding2 as *const _ as usize + }, + 15usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerButtonEvent), + "::", + stringify!(padding2) + ) + ); +} +#[doc = " \\brief Controller device event structure (event.cdevice.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_ControllerDeviceEvent { + #[doc = "< ::SDL_CONTROLLERDEVICEADDED, ::SDL_CONTROLLERDEVICEREMOVED, or ::SDL_CONTROLLERDEVICEREMAPPED"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The joystick device index for the ADDED event, instance id for the REMOVED or REMAPPED event"] + pub which: Sint32, +} +#[test] +fn bindgen_test_layout_SDL_ControllerDeviceEvent() { + assert_eq!( + ::core::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(SDL_ControllerDeviceEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_ControllerDeviceEvent)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).type_ as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerDeviceEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).timestamp as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerDeviceEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).which as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerDeviceEvent), + "::", + stringify!(which) + ) + ); +} +#[doc = " \\brief Game controller touchpad event structure (event.ctouchpad.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_ControllerTouchpadEvent { + #[doc = "< ::SDL_CONTROLLERTOUCHPADDOWN or ::SDL_CONTROLLERTOUCHPADMOTION or ::SDL_CONTROLLERTOUCHPADUP"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The joystick instance id"] + pub which: SDL_JoystickID, + #[doc = "< The index of the touchpad"] + pub touchpad: Sint32, + #[doc = "< The index of the finger on the touchpad"] + pub finger: Sint32, + #[doc = "< Normalized in the range 0...1 with 0 being on the left"] + pub x: f32, + #[doc = "< Normalized in the range 0...1 with 0 being at the top"] + pub y: f32, + #[doc = "< Normalized in the range 0...1"] + pub pressure: f32, +} +#[test] +fn bindgen_test_layout_SDL_ControllerTouchpadEvent() { + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(SDL_ControllerTouchpadEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_ControllerTouchpadEvent)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).type_ as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerTouchpadEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).timestamp as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerTouchpadEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).which as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerTouchpadEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).touchpad as *const _ as usize + }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerTouchpadEvent), + "::", + stringify!(touchpad) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).finger as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerTouchpadEvent), + "::", + stringify!(finger) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerTouchpadEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerTouchpadEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).pressure as *const _ as usize + }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerTouchpadEvent), + "::", + stringify!(pressure) + ) + ); +} +#[doc = " \\brief Game controller sensor event structure (event.csensor.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_ControllerSensorEvent { + #[doc = "< ::SDL_CONTROLLERSENSORUPDATE"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The joystick instance id"] + pub which: SDL_JoystickID, + #[doc = "< The type of the sensor, one of the values of ::SDL_SensorType"] + pub sensor: Sint32, + #[doc = "< Up to 3 values from the sensor, as defined in SDL_sensor.h"] + pub data: [f32; 3usize], +} +#[test] +fn bindgen_test_layout_SDL_ControllerSensorEvent() { + assert_eq!( + ::core::mem::size_of::(), + 28usize, + concat!("Size of: ", stringify!(SDL_ControllerSensorEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_ControllerSensorEvent)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).type_ as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerSensorEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).timestamp as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerSensorEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).which as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerSensorEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).sensor as *const _ as usize + }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerSensorEvent), + "::", + stringify!(sensor) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).data as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_ControllerSensorEvent), + "::", + stringify!(data) + ) + ); +} +#[doc = " \\brief Audio device event structure (event.adevice.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_AudioDeviceEvent { + #[doc = "< ::SDL_AUDIODEVICEADDED, or ::SDL_AUDIODEVICEREMOVED"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The audio device index for the ADDED event (valid until next SDL_GetNumAudioDevices() call), SDL_AudioDeviceID for the REMOVED event"] + pub which: Uint32, + #[doc = "< zero if an output device, non-zero if a capture device."] + pub iscapture: Uint8, + pub padding1: Uint8, + pub padding2: Uint8, + pub padding3: Uint8, +} +#[test] +fn bindgen_test_layout_SDL_AudioDeviceEvent() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_AudioDeviceEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_AudioDeviceEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioDeviceEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioDeviceEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).which as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioDeviceEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).iscapture as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioDeviceEvent), + "::", + stringify!(iscapture) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding1 as *const _ as usize }, + 13usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioDeviceEvent), + "::", + stringify!(padding1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding2 as *const _ as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioDeviceEvent), + "::", + stringify!(padding2) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding3 as *const _ as usize }, + 15usize, + concat!( + "Offset of field: ", + stringify!(SDL_AudioDeviceEvent), + "::", + stringify!(padding3) + ) + ); +} +#[doc = " \\brief Touch finger event structure (event.tfinger.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_TouchFingerEvent { + #[doc = "< ::SDL_FINGERMOTION or ::SDL_FINGERDOWN or ::SDL_FINGERUP"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The touch device id"] + pub touchId: SDL_TouchID, + pub fingerId: SDL_FingerID, + #[doc = "< Normalized in the range 0...1"] + pub x: f32, + #[doc = "< Normalized in the range 0...1"] + pub y: f32, + #[doc = "< Normalized in the range -1...1"] + pub dx: f32, + #[doc = "< Normalized in the range -1...1"] + pub dy: f32, + #[doc = "< Normalized in the range 0...1"] + pub pressure: f32, + #[doc = "< The window underneath the finger, if any"] + pub windowID: Uint32, +} +#[test] +fn bindgen_test_layout_SDL_TouchFingerEvent() { + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(SDL_TouchFingerEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_TouchFingerEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_TouchFingerEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_TouchFingerEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).touchId as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_TouchFingerEvent), + "::", + stringify!(touchId) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fingerId as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_TouchFingerEvent), + "::", + stringify!(fingerId) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_TouchFingerEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_TouchFingerEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).dx as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_TouchFingerEvent), + "::", + stringify!(dx) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).dy as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(SDL_TouchFingerEvent), + "::", + stringify!(dy) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).pressure as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(SDL_TouchFingerEvent), + "::", + stringify!(pressure) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).windowID as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(SDL_TouchFingerEvent), + "::", + stringify!(windowID) + ) + ); +} +#[doc = " \\brief Multiple Finger Gesture Event (event.mgesture.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_MultiGestureEvent { + #[doc = "< ::SDL_MULTIGESTURE"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The touch device id"] + pub touchId: SDL_TouchID, + pub dTheta: f32, + pub dDist: f32, + pub x: f32, + pub y: f32, + pub numFingers: Uint16, + pub padding: Uint16, +} +#[test] +fn bindgen_test_layout_SDL_MultiGestureEvent() { + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(SDL_MultiGestureEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_MultiGestureEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_MultiGestureEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).timestamp as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_MultiGestureEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).touchId as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_MultiGestureEvent), + "::", + stringify!(touchId) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).dTheta as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_MultiGestureEvent), + "::", + stringify!(dTheta) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).dDist as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_MultiGestureEvent), + "::", + stringify!(dDist) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_MultiGestureEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_MultiGestureEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).numFingers as *const _ as usize + }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_MultiGestureEvent), + "::", + stringify!(numFingers) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding as *const _ as usize }, + 34usize, + concat!( + "Offset of field: ", + stringify!(SDL_MultiGestureEvent), + "::", + stringify!(padding) + ) + ); +} +#[doc = " \\brief Dollar Gesture Event (event.dgesture.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_DollarGestureEvent { + #[doc = "< ::SDL_DOLLARGESTURE or ::SDL_DOLLARRECORD"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The touch device id"] + pub touchId: SDL_TouchID, + pub gestureId: SDL_GestureID, + pub numFingers: Uint32, + pub error: f32, + #[doc = "< Normalized center of gesture"] + pub x: f32, + #[doc = "< Normalized center of gesture"] + pub y: f32, +} +#[test] +fn bindgen_test_layout_SDL_DollarGestureEvent() { + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(SDL_DollarGestureEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_DollarGestureEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_DollarGestureEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).timestamp as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_DollarGestureEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).touchId as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_DollarGestureEvent), + "::", + stringify!(touchId) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).gestureId as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_DollarGestureEvent), + "::", + stringify!(gestureId) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).numFingers as *const _ as usize + }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_DollarGestureEvent), + "::", + stringify!(numFingers) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).error as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_DollarGestureEvent), + "::", + stringify!(error) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_DollarGestureEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(SDL_DollarGestureEvent), + "::", + stringify!(y) + ) + ); +} +#[doc = " \\brief An event used to request a file open by the system (event.drop.*)"] +#[doc = " This event is enabled by default, you can disable it with SDL_EventState()."] +#[doc = " \\note If this event is enabled, you must free the filename in the event."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_DropEvent { + #[doc = "< ::SDL_DROPBEGIN or ::SDL_DROPFILE or ::SDL_DROPTEXT or ::SDL_DROPCOMPLETE"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The file name, which should be freed with SDL_free(), is NULL on begin/complete"] + pub file: *mut libc::c_char, + #[doc = "< The window that was dropped on, if any"] + pub windowID: Uint32, +} +#[test] +fn bindgen_test_layout_SDL_DropEvent() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(SDL_DropEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_DropEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_DropEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_DropEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).file as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_DropEvent), + "::", + stringify!(file) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).windowID as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_DropEvent), + "::", + stringify!(windowID) + ) + ); +} +#[doc = " \\brief Sensor event structure (event.sensor.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_SensorEvent { + #[doc = "< ::SDL_SENSORUPDATE"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The instance ID of the sensor"] + pub which: Sint32, + #[doc = "< Up to 6 values from the sensor - additional values can be queried using SDL_SensorGetData()"] + pub data: [f32; 6usize], +} +#[test] +fn bindgen_test_layout_SDL_SensorEvent() { + assert_eq!( + ::core::mem::size_of::(), + 36usize, + concat!("Size of: ", stringify!(SDL_SensorEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_SensorEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SensorEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_SensorEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).which as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_SensorEvent), + "::", + stringify!(which) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).data as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_SensorEvent), + "::", + stringify!(data) + ) + ); +} +#[doc = " \\brief The \"quit requested\" event"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_QuitEvent { + #[doc = "< ::SDL_QUIT"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, +} +#[test] +fn bindgen_test_layout_SDL_QuitEvent() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(SDL_QuitEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_QuitEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_QuitEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_QuitEvent), + "::", + stringify!(timestamp) + ) + ); +} +#[doc = " \\brief OS Specific event"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_OSEvent { + #[doc = "< ::SDL_QUIT"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, +} +#[test] +fn bindgen_test_layout_SDL_OSEvent() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(SDL_OSEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_OSEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_OSEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_OSEvent), + "::", + stringify!(timestamp) + ) + ); +} +#[doc = " \\brief A user-defined event type (event.user.*)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_UserEvent { + #[doc = "< ::SDL_USEREVENT through ::SDL_LASTEVENT-1"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< The associated window if any"] + pub windowID: Uint32, + #[doc = "< User defined event code"] + pub code: Sint32, + #[doc = "< User defined data pointer"] + pub data1: *mut libc::c_void, + #[doc = "< User defined data pointer"] + pub data2: *mut libc::c_void, +} +#[test] +fn bindgen_test_layout_SDL_UserEvent() { + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(SDL_UserEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_UserEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_UserEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_UserEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).windowID as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_UserEvent), + "::", + stringify!(windowID) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).code as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_UserEvent), + "::", + stringify!(code) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).data1 as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_UserEvent), + "::", + stringify!(data1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).data2 as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_UserEvent), + "::", + stringify!(data2) + ) + ); +} +#[doc = " \\brief A video driver dependent system event (event.syswm.*)"] +#[doc = " This event is disabled by default, you can enable it with SDL_EventState()"] +#[doc = ""] +#[doc = " \\note If you want to use this event, you should include SDL_syswm.h."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_SysWMEvent { + #[doc = "< ::SDL_SYSWMEVENT"] + pub type_: Uint32, + #[doc = "< In milliseconds, populated using SDL_GetTicks()"] + pub timestamp: Uint32, + #[doc = "< driver dependent data, defined in SDL_syswm.h"] + pub msg: *mut SDL_SysWMmsg, +} +#[test] +fn bindgen_test_layout_SDL_SysWMEvent() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_SysWMEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_SysWMEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).timestamp as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMEvent), + "::", + stringify!(timestamp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).msg as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMEvent), + "::", + stringify!(msg) + ) + ); +} +#[doc = " \\brief General event structure"] +#[repr(C)] +#[derive(Copy, Clone)] +pub union SDL_Event { + #[doc = "< Event type, shared with all events"] + pub type_: Uint32, + #[doc = "< Common event data"] + pub common: SDL_CommonEvent, + #[doc = "< Display event data"] + pub display: SDL_DisplayEvent, + #[doc = "< Window event data"] + pub window: SDL_WindowEvent, + #[doc = "< Keyboard event data"] + pub key: SDL_KeyboardEvent, + #[doc = "< Text editing event data"] + pub edit: SDL_TextEditingEvent, + #[doc = "< Text input event data"] + pub text: SDL_TextInputEvent, + #[doc = "< Mouse motion event data"] + pub motion: SDL_MouseMotionEvent, + #[doc = "< Mouse button event data"] + pub button: SDL_MouseButtonEvent, + #[doc = "< Mouse wheel event data"] + pub wheel: SDL_MouseWheelEvent, + #[doc = "< Joystick axis event data"] + pub jaxis: SDL_JoyAxisEvent, + #[doc = "< Joystick ball event data"] + pub jball: SDL_JoyBallEvent, + #[doc = "< Joystick hat event data"] + pub jhat: SDL_JoyHatEvent, + #[doc = "< Joystick button event data"] + pub jbutton: SDL_JoyButtonEvent, + #[doc = "< Joystick device change event data"] + pub jdevice: SDL_JoyDeviceEvent, + #[doc = "< Game Controller axis event data"] + pub caxis: SDL_ControllerAxisEvent, + #[doc = "< Game Controller button event data"] + pub cbutton: SDL_ControllerButtonEvent, + #[doc = "< Game Controller device event data"] + pub cdevice: SDL_ControllerDeviceEvent, + #[doc = "< Game Controller touchpad event data"] + pub ctouchpad: SDL_ControllerTouchpadEvent, + #[doc = "< Game Controller sensor event data"] + pub csensor: SDL_ControllerSensorEvent, + #[doc = "< Audio device event data"] + pub adevice: SDL_AudioDeviceEvent, + #[doc = "< Sensor event data"] + pub sensor: SDL_SensorEvent, + #[doc = "< Quit request event data"] + pub quit: SDL_QuitEvent, + #[doc = "< Custom event data"] + pub user: SDL_UserEvent, + #[doc = "< System dependent window event data"] + pub syswm: SDL_SysWMEvent, + #[doc = "< Touch finger event data"] + pub tfinger: SDL_TouchFingerEvent, + #[doc = "< Gesture event data"] + pub mgesture: SDL_MultiGestureEvent, + #[doc = "< Gesture event data"] + pub dgesture: SDL_DollarGestureEvent, + #[doc = "< Drag and drop event data"] + pub drop: SDL_DropEvent, + pub padding: [Uint8; 56usize], + _bindgen_union_align: [u64; 7usize], +} +#[test] +fn bindgen_test_layout_SDL_Event() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(SDL_Event)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_Event)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).common as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(common) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).key as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(key) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).edit as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(edit) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).text as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(text) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).motion as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(motion) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).button as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(button) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).wheel as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(wheel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).jaxis as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(jaxis) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).jball as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(jball) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).jhat as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(jhat) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).jbutton as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(jbutton) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).jdevice as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(jdevice) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).caxis as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(caxis) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).cbutton as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(cbutton) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).cdevice as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(cdevice) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ctouchpad as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(ctouchpad) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).csensor as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(csensor) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).adevice as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(adevice) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).sensor as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(sensor) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).quit as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(quit) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).user as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(user) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).syswm as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(syswm) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).tfinger as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(tfinger) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).mgesture as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(mgesture) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).dgesture as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(dgesture) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).drop as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(drop) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).padding as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Event), + "::", + stringify!(padding) + ) + ); +} +pub type SDL_compile_time_assert_SDL_Event = [libc::c_int; 1usize]; +extern "C" { + #[doc = " Pumps the event loop, gathering events from the input devices."] + #[doc = ""] + #[doc = " This function updates the event queue and internal input device state."] + #[doc = ""] + #[doc = " This should only be run in the thread that sets the video mode."] + pub fn SDL_PumpEvents(); +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_eventaction { + SDL_ADDEVENT = 0, + SDL_PEEKEVENT = 1, + SDL_GETEVENT = 2, +} +extern "C" { + #[doc = " Checks the event queue for messages and optionally returns them."] + #[doc = ""] + #[doc = " If \\c action is ::SDL_ADDEVENT, up to \\c numevents events will be added to"] + #[doc = " the back of the event queue."] + #[doc = ""] + #[doc = " If \\c action is ::SDL_PEEKEVENT, up to \\c numevents events at the front"] + #[doc = " of the event queue, within the specified minimum and maximum type,"] + #[doc = " will be returned and will not be removed from the queue."] + #[doc = ""] + #[doc = " If \\c action is ::SDL_GETEVENT, up to \\c numevents events at the front"] + #[doc = " of the event queue, within the specified minimum and maximum type,"] + #[doc = " will be returned and will be removed from the queue."] + #[doc = ""] + #[doc = " \\return The number of events actually stored, or -1 if there was an error."] + #[doc = ""] + #[doc = " This function is thread-safe."] + pub fn SDL_PeepEvents( + events: *mut SDL_Event, + numevents: libc::c_int, + action: SDL_eventaction, + minType: Uint32, + maxType: Uint32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " Checks to see if certain event types are in the event queue."] + pub fn SDL_HasEvent(type_: Uint32) -> SDL_bool; +} +extern "C" { + pub fn SDL_HasEvents(minType: Uint32, maxType: Uint32) -> SDL_bool; +} +extern "C" { + #[doc = " This function clears events from the event queue"] + #[doc = " This function only affects currently queued events. If you want to make"] + #[doc = " sure that all pending OS events are flushed, you can call SDL_PumpEvents()"] + #[doc = " on the main thread immediately before the flush call."] + pub fn SDL_FlushEvent(type_: Uint32); +} +extern "C" { + pub fn SDL_FlushEvents(minType: Uint32, maxType: Uint32); +} +extern "C" { + #[doc = " \\brief Polls for currently pending events."] + #[doc = ""] + #[doc = " \\return 1 if there are any pending events, or 0 if there are none available."] + #[doc = ""] + #[doc = " \\param event If not NULL, the next event is removed from the queue and"] + #[doc = " stored in that area."] + pub fn SDL_PollEvent(event: *mut SDL_Event) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Waits indefinitely for the next available event."] + #[doc = ""] + #[doc = " \\return 1, or 0 if there was an error while waiting for events."] + #[doc = ""] + #[doc = " \\param event If not NULL, the next event is removed from the queue and"] + #[doc = " stored in that area."] + pub fn SDL_WaitEvent(event: *mut SDL_Event) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Waits until the specified timeout (in milliseconds) for the next"] + #[doc = " available event."] + #[doc = ""] + #[doc = " \\return 1, or 0 if there was an error while waiting for events."] + #[doc = ""] + #[doc = " \\param event If not NULL, the next event is removed from the queue and"] + #[doc = " stored in that area."] + #[doc = " \\param timeout The timeout (in milliseconds) to wait for next event."] + pub fn SDL_WaitEventTimeout(event: *mut SDL_Event, timeout: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Add an event to the event queue."] + #[doc = ""] + #[doc = " \\return 1 on success, 0 if the event was filtered, or -1 if the event queue"] + #[doc = " was full or there was some other error."] + pub fn SDL_PushEvent(event: *mut SDL_Event) -> libc::c_int; +} +pub type SDL_EventFilter = ::core::option::Option< + unsafe extern "C" fn(userdata: *mut libc::c_void, event: *mut SDL_Event) -> libc::c_int, +>; +extern "C" { + #[doc = " Sets up a filter to process all events before they change internal state and"] + #[doc = " are posted to the internal event queue."] + #[doc = ""] + #[doc = " The filter is prototyped as:"] + #[doc = " \\code"] + #[doc = " int SDL_EventFilter(void *userdata, SDL_Event * event);"] + #[doc = " \\endcode"] + #[doc = ""] + #[doc = " If the filter returns 1, then the event will be added to the internal queue."] + #[doc = " If it returns 0, then the event will be dropped from the queue, but the"] + #[doc = " internal state will still be updated. This allows selective filtering of"] + #[doc = " dynamically arriving events."] + #[doc = ""] + #[doc = " \\warning Be very careful of what you do in the event filter function, as"] + #[doc = " it may run in a different thread!"] + #[doc = ""] + #[doc = " There is one caveat when dealing with the ::SDL_QuitEvent event type. The"] + #[doc = " event filter is only called when the window manager desires to close the"] + #[doc = " application window. If the event filter returns 1, then the window will"] + #[doc = " be closed, otherwise the window will remain open if possible."] + #[doc = ""] + #[doc = " If the quit event is generated by an interrupt signal, it will bypass the"] + #[doc = " internal queue and be delivered to the application at the next event poll."] + pub fn SDL_SetEventFilter(filter: SDL_EventFilter, userdata: *mut libc::c_void); +} +extern "C" { + #[doc = " Return the current event filter - can be used to \"chain\" filters."] + #[doc = " If there is no event filter set, this function returns SDL_FALSE."] + pub fn SDL_GetEventFilter( + filter: *mut SDL_EventFilter, + userdata: *mut *mut libc::c_void, + ) -> SDL_bool; +} +extern "C" { + #[doc = " Add a function which is called when an event is added to the queue."] + pub fn SDL_AddEventWatch(filter: SDL_EventFilter, userdata: *mut libc::c_void); +} +extern "C" { + #[doc = " Remove an event watch function added with SDL_AddEventWatch()"] + pub fn SDL_DelEventWatch(filter: SDL_EventFilter, userdata: *mut libc::c_void); +} +extern "C" { + #[doc = " Run the filter function on the current event queue, removing any"] + #[doc = " events for which the filter returns 0."] + pub fn SDL_FilterEvents(filter: SDL_EventFilter, userdata: *mut libc::c_void); +} +extern "C" { + #[doc = " This function allows you to set the state of processing certain events."] + #[doc = " - If \\c state is set to ::SDL_IGNORE, that event will be automatically"] + #[doc = " dropped from the event queue and will not be filtered."] + #[doc = " - If \\c state is set to ::SDL_ENABLE, that event will be processed"] + #[doc = " normally."] + #[doc = " - If \\c state is set to ::SDL_QUERY, SDL_EventState() will return the"] + #[doc = " current processing state of the specified event."] + pub fn SDL_EventState(type_: Uint32, state: libc::c_int) -> Uint8; +} +extern "C" { + #[doc = " This function allocates a set of user-defined events, and returns"] + #[doc = " the beginning event number for that set of events."] + #[doc = ""] + #[doc = " If there aren't enough user-defined events left, this function"] + #[doc = " returns (Uint32)-1"] + pub fn SDL_RegisterEvents(numevents: libc::c_int) -> Uint32; +} +extern "C" { + #[doc = " \\brief Get the path where the application resides."] + #[doc = ""] + #[doc = " Get the \"base path\". This is the directory where the application was run"] + #[doc = " from, which is probably the installation directory, and may or may not"] + #[doc = " be the process's current working directory."] + #[doc = ""] + #[doc = " This returns an absolute path in UTF-8 encoding, and is guaranteed to"] + #[doc = " end with a path separator ('\\\\' on Windows, '/' most other places)."] + #[doc = ""] + #[doc = " The pointer returned by this function is owned by you. Please call"] + #[doc = " SDL_free() on the pointer when you are done with it, or it will be a"] + #[doc = " memory leak. This is not necessarily a fast call, though, so you should"] + #[doc = " call this once near startup and save the string if you need it."] + #[doc = ""] + #[doc = " Some platforms can't determine the application's path, and on other"] + #[doc = " platforms, this might be meaningless. In such cases, this function will"] + #[doc = " return NULL."] + #[doc = ""] + #[doc = " \\return String of base dir in UTF-8 encoding, or NULL on error."] + #[doc = ""] + #[doc = " \\sa SDL_GetPrefPath"] + pub fn SDL_GetBasePath() -> *mut libc::c_char; +} +extern "C" { + #[doc = " \\brief Get the user-and-app-specific path where files can be written."] + #[doc = ""] + #[doc = " Get the \"pref dir\". This is meant to be where users can write personal"] + #[doc = " files (preferences and save games, etc) that are specific to your"] + #[doc = " application. This directory is unique per user, per application."] + #[doc = ""] + #[doc = " This function will decide the appropriate location in the native filesystem,"] + #[doc = " create the directory if necessary, and return a string of the absolute"] + #[doc = " path to the directory in UTF-8 encoding."] + #[doc = ""] + #[doc = " On Windows, the string might look like:"] + #[doc = " \"C:\\\\Users\\\\bob\\\\AppData\\\\Roaming\\\\My Company\\\\My Program Name\\\\\""] + #[doc = ""] + #[doc = " On Linux, the string might look like:"] + #[doc = " \"/home/bob/.local/share/My Program Name/\""] + #[doc = ""] + #[doc = " On Mac OS X, the string might look like:"] + #[doc = " \"/Users/bob/Library/Application Support/My Program Name/\""] + #[doc = ""] + #[doc = " (etc.)"] + #[doc = ""] + #[doc = " You specify the name of your organization (if it's not a real organization,"] + #[doc = " your name or an Internet domain you own might do) and the name of your"] + #[doc = " application. These should be untranslated proper names."] + #[doc = ""] + #[doc = " Both the org and app strings may become part of a directory name, so"] + #[doc = " please follow these rules:"] + #[doc = ""] + #[doc = " - Try to use the same org string (including case-sensitivity) for"] + #[doc = " all your applications that use this function."] + #[doc = " - Always use a unique app string for each one, and make sure it never"] + #[doc = " changes for an app once you've decided on it."] + #[doc = " - Unicode characters are legal, as long as it's UTF-8 encoded, but..."] + #[doc = " - ...only use letters, numbers, and spaces. Avoid punctuation like"] + #[doc = " \"Game Name 2: Bad Guy's Revenge!\" ... \"Game Name 2\" is sufficient."] + #[doc = ""] + #[doc = " This returns an absolute path in UTF-8 encoding, and is guaranteed to"] + #[doc = " end with a path separator ('\\\\' on Windows, '/' most other places)."] + #[doc = ""] + #[doc = " The pointer returned by this function is owned by you. Please call"] + #[doc = " SDL_free() on the pointer when you are done with it, or it will be a"] + #[doc = " memory leak. This is not necessarily a fast call, though, so you should"] + #[doc = " call this once near startup and save the string if you need it."] + #[doc = ""] + #[doc = " You should assume the path returned by this function is the only safe"] + #[doc = " place to write files (and that SDL_GetBasePath(), while it might be"] + #[doc = " writable, or even the parent of the returned path, aren't where you"] + #[doc = " should be writing things)."] + #[doc = ""] + #[doc = " Some platforms can't determine the pref path, and on other"] + #[doc = " platforms, this might be meaningless. In such cases, this function will"] + #[doc = " return NULL."] + #[doc = ""] + #[doc = " \\param org The name of your organization."] + #[doc = " \\param app The name of your application."] + #[doc = " \\return UTF-8 string of user dir in platform-dependent notation. NULL"] + #[doc = " if there's a problem (creating directory failed, etc)."] + #[doc = ""] + #[doc = " \\sa SDL_GetBasePath"] + pub fn SDL_GetPrefPath(org: *const libc::c_char, app: *const libc::c_char) + -> *mut libc::c_char; +} +#[doc = " \\typedef SDL_Haptic"] +#[doc = ""] +#[doc = " \\brief The haptic structure used to identify an SDL haptic."] +#[doc = ""] +#[doc = " \\sa SDL_HapticOpen"] +#[doc = " \\sa SDL_HapticOpenFromJoystick"] +#[doc = " \\sa SDL_HapticClose"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _SDL_Haptic { + _unused: [u8; 0], +} +pub type SDL_Haptic = _SDL_Haptic; +#[doc = " \\brief Structure that represents a haptic direction."] +#[doc = ""] +#[doc = " This is the direction where the force comes from,"] +#[doc = " instead of the direction in which the force is exerted."] +#[doc = ""] +#[doc = " Directions can be specified by:"] +#[doc = " - ::SDL_HAPTIC_POLAR : Specified by polar coordinates."] +#[doc = " - ::SDL_HAPTIC_CARTESIAN : Specified by cartesian coordinates."] +#[doc = " - ::SDL_HAPTIC_SPHERICAL : Specified by spherical coordinates."] +#[doc = ""] +#[doc = " Cardinal directions of the haptic device are relative to the positioning"] +#[doc = " of the device. North is considered to be away from the user."] +#[doc = ""] +#[doc = " The following diagram represents the cardinal directions:"] +#[doc = " \\verbatim"] +#[doc = ".--."] +#[doc = "|__| .-------."] +#[doc = "|=.| |.-----.|"] +#[doc = "|--| || ||"] +#[doc = "| | |'-----'|"] +#[doc = "|__|~')_____('"] +#[doc = "[ COMPUTER ]"] +#[doc = ""] +#[doc = ""] +#[doc = "North (0,-1)"] +#[doc = "^"] +#[doc = "|"] +#[doc = "|"] +#[doc = "(-1,0) West <----[ HAPTIC ]----> East (1,0)"] +#[doc = "|"] +#[doc = "|"] +#[doc = "v"] +#[doc = "South (0,1)"] +#[doc = ""] +#[doc = ""] +#[doc = "[ USER ]"] +#[doc = "\\|||/"] +#[doc = "(o o)"] +#[doc = "---ooO-(_)-Ooo---"] +#[doc = "\\endverbatim"] +#[doc = ""] +#[doc = " If type is ::SDL_HAPTIC_POLAR, direction is encoded by hundredths of a"] +#[doc = " degree starting north and turning clockwise. ::SDL_HAPTIC_POLAR only uses"] +#[doc = " the first \\c dir parameter. The cardinal directions would be:"] +#[doc = " - North: 0 (0 degrees)"] +#[doc = " - East: 9000 (90 degrees)"] +#[doc = " - South: 18000 (180 degrees)"] +#[doc = " - West: 27000 (270 degrees)"] +#[doc = ""] +#[doc = " If type is ::SDL_HAPTIC_CARTESIAN, direction is encoded by three positions"] +#[doc = " (X axis, Y axis and Z axis (with 3 axes)). ::SDL_HAPTIC_CARTESIAN uses"] +#[doc = " the first three \\c dir parameters. The cardinal directions would be:"] +#[doc = " - North: 0,-1, 0"] +#[doc = " - East: 1, 0, 0"] +#[doc = " - South: 0, 1, 0"] +#[doc = " - West: -1, 0, 0"] +#[doc = ""] +#[doc = " The Z axis represents the height of the effect if supported, otherwise"] +#[doc = " it's unused. In cartesian encoding (1, 2) would be the same as (2, 4), you"] +#[doc = " can use any multiple you want, only the direction matters."] +#[doc = ""] +#[doc = " If type is ::SDL_HAPTIC_SPHERICAL, direction is encoded by two rotations."] +#[doc = " The first two \\c dir parameters are used. The \\c dir parameters are as"] +#[doc = " follows (all values are in hundredths of degrees):"] +#[doc = " - Degrees from (1, 0) rotated towards (0, 1)."] +#[doc = " - Degrees towards (0, 0, 1) (device needs at least 3 axes)."] +#[doc = ""] +#[doc = ""] +#[doc = " Example of force coming from the south with all encodings (force coming"] +#[doc = " from the south means the user will have to pull the stick to counteract):"] +#[doc = " \\code"] +#[doc = " SDL_HapticDirection direction;"] +#[doc = ""] +#[doc = " // Cartesian directions"] +#[doc = " direction.type = SDL_HAPTIC_CARTESIAN; // Using cartesian direction encoding."] +#[doc = " direction.dir[0] = 0; // X position"] +#[doc = " direction.dir[1] = 1; // Y position"] +#[doc = " // Assuming the device has 2 axes, we don't need to specify third parameter."] +#[doc = ""] +#[doc = " // Polar directions"] +#[doc = " direction.type = SDL_HAPTIC_POLAR; // We'll be using polar direction encoding."] +#[doc = " direction.dir[0] = 18000; // Polar only uses first parameter"] +#[doc = ""] +#[doc = " // Spherical coordinates"] +#[doc = " direction.type = SDL_HAPTIC_SPHERICAL; // Spherical encoding"] +#[doc = " direction.dir[0] = 9000; // Since we only have two axes we don't need more parameters."] +#[doc = " \\endcode"] +#[doc = ""] +#[doc = " \\sa SDL_HAPTIC_POLAR"] +#[doc = " \\sa SDL_HAPTIC_CARTESIAN"] +#[doc = " \\sa SDL_HAPTIC_SPHERICAL"] +#[doc = " \\sa SDL_HAPTIC_STEERING_AXIS"] +#[doc = " \\sa SDL_HapticEffect"] +#[doc = " \\sa SDL_HapticNumAxes"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_HapticDirection { + #[doc = "< The type of encoding."] + pub type_: Uint8, + #[doc = "< The encoded direction."] + pub dir: [Sint32; 3usize], +} +#[test] +fn bindgen_test_layout_SDL_HapticDirection() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_HapticDirection)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_HapticDirection)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticDirection), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).dir as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticDirection), + "::", + stringify!(dir) + ) + ); +} +#[doc = " \\brief A structure containing a template for a Constant effect."] +#[doc = ""] +#[doc = " This struct is exclusively for the ::SDL_HAPTIC_CONSTANT effect."] +#[doc = ""] +#[doc = " A constant effect applies a constant force in the specified direction"] +#[doc = " to the joystick."] +#[doc = ""] +#[doc = " \\sa SDL_HAPTIC_CONSTANT"] +#[doc = " \\sa SDL_HapticEffect"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_HapticConstant { + #[doc = "< ::SDL_HAPTIC_CONSTANT"] + pub type_: Uint16, + #[doc = "< Direction of the effect."] + pub direction: SDL_HapticDirection, + #[doc = "< Duration of the effect."] + pub length: Uint32, + #[doc = "< Delay before starting the effect."] + pub delay: Uint16, + #[doc = "< Button that triggers the effect."] + pub button: Uint16, + #[doc = "< How soon it can be triggered again after button."] + pub interval: Uint16, + #[doc = "< Strength of the constant effect."] + pub level: Sint16, + #[doc = "< Duration of the attack."] + pub attack_length: Uint16, + #[doc = "< Level at the start of the attack."] + pub attack_level: Uint16, + #[doc = "< Duration of the fade."] + pub fade_length: Uint16, + #[doc = "< Level at the end of the fade."] + pub fade_level: Uint16, +} +#[test] +fn bindgen_test_layout_SDL_HapticConstant() { + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(SDL_HapticConstant)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_HapticConstant)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticConstant), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).direction as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticConstant), + "::", + stringify!(direction) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).length as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticConstant), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).delay as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticConstant), + "::", + stringify!(delay) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).button as *const _ as usize }, + 26usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticConstant), + "::", + stringify!(button) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).interval as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticConstant), + "::", + stringify!(interval) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).level as *const _ as usize }, + 30usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticConstant), + "::", + stringify!(level) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).attack_length as *const _ as usize + }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticConstant), + "::", + stringify!(attack_length) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).attack_level as *const _ as usize + }, + 34usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticConstant), + "::", + stringify!(attack_level) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fade_length as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticConstant), + "::", + stringify!(fade_length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fade_level as *const _ as usize }, + 38usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticConstant), + "::", + stringify!(fade_level) + ) + ); +} +#[doc = " \\brief A structure containing a template for a Periodic effect."] +#[doc = ""] +#[doc = " The struct handles the following effects:"] +#[doc = " - ::SDL_HAPTIC_SINE"] +#[doc = " - ::SDL_HAPTIC_LEFTRIGHT"] +#[doc = " - ::SDL_HAPTIC_TRIANGLE"] +#[doc = " - ::SDL_HAPTIC_SAWTOOTHUP"] +#[doc = " - ::SDL_HAPTIC_SAWTOOTHDOWN"] +#[doc = ""] +#[doc = " A periodic effect consists in a wave-shaped effect that repeats itself"] +#[doc = " over time. The type determines the shape of the wave and the parameters"] +#[doc = " determine the dimensions of the wave."] +#[doc = ""] +#[doc = " Phase is given by hundredth of a degree meaning that giving the phase a value"] +#[doc = " of 9000 will displace it 25% of its period. Here are sample values:"] +#[doc = " - 0: No phase displacement."] +#[doc = " - 9000: Displaced 25% of its period."] +#[doc = " - 18000: Displaced 50% of its period."] +#[doc = " - 27000: Displaced 75% of its period."] +#[doc = " - 36000: Displaced 100% of its period, same as 0, but 0 is preferred."] +#[doc = ""] +#[doc = " Examples:"] +#[doc = " \\verbatim"] +#[doc = "SDL_HAPTIC_SINE"] +#[doc = "__ __ __ __"] +#[doc = ""] +#[doc = "SDL_HAPTIC_SQUARE"] +#[doc = "__ __ __ __ __"] +#[doc = "| | | | | | | | | |"] +#[doc = "| |__| |__| |__| |__| |"] +#[doc = ""] +#[doc = "SDL_HAPTIC_TRIANGLE"] +#[doc = ""] +#[doc = "SDL_HAPTIC_SAWTOOTHUP"] +#[doc = ""] +#[doc = "SDL_HAPTIC_SAWTOOTHDOWN"] +#[doc = "\\ |\\ |\\ |\\ |\\ |\\ |\\ |"] +#[doc = "\\ | \\ | \\ | \\ | \\ | \\ | \\ |"] +#[doc = "\\| \\| \\| \\| \\| \\| \\|"] +#[doc = "\\endverbatim"] +#[doc = ""] +#[doc = " \\sa SDL_HAPTIC_SINE"] +#[doc = " \\sa SDL_HAPTIC_LEFTRIGHT"] +#[doc = " \\sa SDL_HAPTIC_TRIANGLE"] +#[doc = " \\sa SDL_HAPTIC_SAWTOOTHUP"] +#[doc = " \\sa SDL_HAPTIC_SAWTOOTHDOWN"] +#[doc = " \\sa SDL_HapticEffect"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_HapticPeriodic { + #[doc = "< ::SDL_HAPTIC_SINE, ::SDL_HAPTIC_LEFTRIGHT,"] + #[doc = "::SDL_HAPTIC_TRIANGLE, ::SDL_HAPTIC_SAWTOOTHUP or"] + #[doc = "::SDL_HAPTIC_SAWTOOTHDOWN"] + pub type_: Uint16, + #[doc = "< Direction of the effect."] + pub direction: SDL_HapticDirection, + #[doc = "< Duration of the effect."] + pub length: Uint32, + #[doc = "< Delay before starting the effect."] + pub delay: Uint16, + #[doc = "< Button that triggers the effect."] + pub button: Uint16, + #[doc = "< How soon it can be triggered again after button."] + pub interval: Uint16, + #[doc = "< Period of the wave."] + pub period: Uint16, + #[doc = "< Peak value; if negative, equivalent to 180 degrees extra phase shift."] + pub magnitude: Sint16, + #[doc = "< Mean value of the wave."] + pub offset: Sint16, + #[doc = "< Positive phase shift given by hundredth of a degree."] + pub phase: Uint16, + #[doc = "< Duration of the attack."] + pub attack_length: Uint16, + #[doc = "< Level at the start of the attack."] + pub attack_level: Uint16, + #[doc = "< Duration of the fade."] + pub fade_length: Uint16, + #[doc = "< Level at the end of the fade."] + pub fade_level: Uint16, +} +#[test] +fn bindgen_test_layout_SDL_HapticPeriodic() { + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(SDL_HapticPeriodic)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_HapticPeriodic)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).direction as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(direction) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).length as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).delay as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(delay) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).button as *const _ as usize }, + 26usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(button) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).interval as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(interval) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).period as *const _ as usize }, + 30usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(period) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).magnitude as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(magnitude) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).offset as *const _ as usize }, + 34usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(offset) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).phase as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(phase) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).attack_length as *const _ as usize + }, + 38usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(attack_length) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).attack_level as *const _ as usize + }, + 40usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(attack_level) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fade_length as *const _ as usize }, + 42usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(fade_length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fade_level as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticPeriodic), + "::", + stringify!(fade_level) + ) + ); +} +#[doc = " \\brief A structure containing a template for a Condition effect."] +#[doc = ""] +#[doc = " The struct handles the following effects:"] +#[doc = " - ::SDL_HAPTIC_SPRING: Effect based on axes position."] +#[doc = " - ::SDL_HAPTIC_DAMPER: Effect based on axes velocity."] +#[doc = " - ::SDL_HAPTIC_INERTIA: Effect based on axes acceleration."] +#[doc = " - ::SDL_HAPTIC_FRICTION: Effect based on axes movement."] +#[doc = ""] +#[doc = " Direction is handled by condition internals instead of a direction member."] +#[doc = " The condition effect specific members have three parameters. The first"] +#[doc = " refers to the X axis, the second refers to the Y axis and the third"] +#[doc = " refers to the Z axis. The right terms refer to the positive side of the"] +#[doc = " axis and the left terms refer to the negative side of the axis. Please"] +#[doc = " refer to the ::SDL_HapticDirection diagram for which side is positive and"] +#[doc = " which is negative."] +#[doc = ""] +#[doc = " \\sa SDL_HapticDirection"] +#[doc = " \\sa SDL_HAPTIC_SPRING"] +#[doc = " \\sa SDL_HAPTIC_DAMPER"] +#[doc = " \\sa SDL_HAPTIC_INERTIA"] +#[doc = " \\sa SDL_HAPTIC_FRICTION"] +#[doc = " \\sa SDL_HapticEffect"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_HapticCondition { + #[doc = "< ::SDL_HAPTIC_SPRING, ::SDL_HAPTIC_DAMPER,"] + #[doc = "::SDL_HAPTIC_INERTIA or ::SDL_HAPTIC_FRICTION"] + pub type_: Uint16, + #[doc = "< Direction of the effect - Not used ATM."] + pub direction: SDL_HapticDirection, + #[doc = "< Duration of the effect."] + pub length: Uint32, + #[doc = "< Delay before starting the effect."] + pub delay: Uint16, + #[doc = "< Button that triggers the effect."] + pub button: Uint16, + #[doc = "< How soon it can be triggered again after button."] + pub interval: Uint16, + #[doc = "< Level when joystick is to the positive side; max 0xFFFF."] + pub right_sat: [Uint16; 3usize], + #[doc = "< Level when joystick is to the negative side; max 0xFFFF."] + pub left_sat: [Uint16; 3usize], + #[doc = "< How fast to increase the force towards the positive side."] + pub right_coeff: [Sint16; 3usize], + #[doc = "< How fast to increase the force towards the negative side."] + pub left_coeff: [Sint16; 3usize], + #[doc = "< Size of the dead zone; max 0xFFFF: whole axis-range when 0-centered."] + pub deadband: [Uint16; 3usize], + #[doc = "< Position of the dead zone."] + pub center: [Sint16; 3usize], +} +#[test] +fn bindgen_test_layout_SDL_HapticCondition() { + assert_eq!( + ::core::mem::size_of::(), + 68usize, + concat!("Size of: ", stringify!(SDL_HapticCondition)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_HapticCondition)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).direction as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(direction) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).length as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).delay as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(delay) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).button as *const _ as usize }, + 26usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(button) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).interval as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(interval) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).right_sat as *const _ as usize }, + 30usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(right_sat) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).left_sat as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(left_sat) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).right_coeff as *const _ as usize + }, + 42usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(right_coeff) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).left_coeff as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(left_coeff) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).deadband as *const _ as usize }, + 54usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(deadband) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).center as *const _ as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCondition), + "::", + stringify!(center) + ) + ); +} +#[doc = " \\brief A structure containing a template for a Ramp effect."] +#[doc = ""] +#[doc = " This struct is exclusively for the ::SDL_HAPTIC_RAMP effect."] +#[doc = ""] +#[doc = " The ramp effect starts at start strength and ends at end strength."] +#[doc = " It augments in linear fashion. If you use attack and fade with a ramp"] +#[doc = " the effects get added to the ramp effect making the effect become"] +#[doc = " quadratic instead of linear."] +#[doc = ""] +#[doc = " \\sa SDL_HAPTIC_RAMP"] +#[doc = " \\sa SDL_HapticEffect"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_HapticRamp { + #[doc = "< ::SDL_HAPTIC_RAMP"] + pub type_: Uint16, + #[doc = "< Direction of the effect."] + pub direction: SDL_HapticDirection, + #[doc = "< Duration of the effect."] + pub length: Uint32, + #[doc = "< Delay before starting the effect."] + pub delay: Uint16, + #[doc = "< Button that triggers the effect."] + pub button: Uint16, + #[doc = "< How soon it can be triggered again after button."] + pub interval: Uint16, + #[doc = "< Beginning strength level."] + pub start: Sint16, + #[doc = "< Ending strength level."] + pub end: Sint16, + #[doc = "< Duration of the attack."] + pub attack_length: Uint16, + #[doc = "< Level at the start of the attack."] + pub attack_level: Uint16, + #[doc = "< Duration of the fade."] + pub fade_length: Uint16, + #[doc = "< Level at the end of the fade."] + pub fade_level: Uint16, +} +#[test] +fn bindgen_test_layout_SDL_HapticRamp() { + assert_eq!( + ::core::mem::size_of::(), + 44usize, + concat!("Size of: ", stringify!(SDL_HapticRamp)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_HapticRamp)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).direction as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(direction) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).length as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).delay as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(delay) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).button as *const _ as usize }, + 26usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(button) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).interval as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(interval) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).start as *const _ as usize }, + 30usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(start) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).end as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(end) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).attack_length as *const _ as usize }, + 34usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(attack_length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).attack_level as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(attack_level) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fade_length as *const _ as usize }, + 38usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(fade_length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fade_level as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticRamp), + "::", + stringify!(fade_level) + ) + ); +} +#[doc = " \\brief A structure containing a template for a Left/Right effect."] +#[doc = ""] +#[doc = " This struct is exclusively for the ::SDL_HAPTIC_LEFTRIGHT effect."] +#[doc = ""] +#[doc = " The Left/Right effect is used to explicitly control the large and small"] +#[doc = " motors, commonly found in modern game controllers. The small (right) motor"] +#[doc = " is high frequency, and the large (left) motor is low frequency."] +#[doc = ""] +#[doc = " \\sa SDL_HAPTIC_LEFTRIGHT"] +#[doc = " \\sa SDL_HapticEffect"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_HapticLeftRight { + #[doc = "< ::SDL_HAPTIC_LEFTRIGHT"] + pub type_: Uint16, + #[doc = "< Duration of the effect in milliseconds."] + pub length: Uint32, + #[doc = "< Control of the large controller motor."] + pub large_magnitude: Uint16, + #[doc = "< Control of the small controller motor."] + pub small_magnitude: Uint16, +} +#[test] +fn bindgen_test_layout_SDL_HapticLeftRight() { + assert_eq!( + ::core::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(SDL_HapticLeftRight)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_HapticLeftRight)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticLeftRight), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).length as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticLeftRight), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).large_magnitude as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticLeftRight), + "::", + stringify!(large_magnitude) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).small_magnitude as *const _ as usize + }, + 10usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticLeftRight), + "::", + stringify!(small_magnitude) + ) + ); +} +#[doc = " \\brief A structure containing a template for the ::SDL_HAPTIC_CUSTOM effect."] +#[doc = ""] +#[doc = " This struct is exclusively for the ::SDL_HAPTIC_CUSTOM effect."] +#[doc = ""] +#[doc = " A custom force feedback effect is much like a periodic effect, where the"] +#[doc = " application can define its exact shape. You will have to allocate the"] +#[doc = " data yourself. Data should consist of channels * samples Uint16 samples."] +#[doc = ""] +#[doc = " If channels is one, the effect is rotated using the defined direction."] +#[doc = " Otherwise it uses the samples in data for the different axes."] +#[doc = ""] +#[doc = " \\sa SDL_HAPTIC_CUSTOM"] +#[doc = " \\sa SDL_HapticEffect"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_HapticCustom { + #[doc = "< ::SDL_HAPTIC_CUSTOM"] + pub type_: Uint16, + #[doc = "< Direction of the effect."] + pub direction: SDL_HapticDirection, + #[doc = "< Duration of the effect."] + pub length: Uint32, + #[doc = "< Delay before starting the effect."] + pub delay: Uint16, + #[doc = "< Button that triggers the effect."] + pub button: Uint16, + #[doc = "< How soon it can be triggered again after button."] + pub interval: Uint16, + #[doc = "< Axes to use, minimum of one."] + pub channels: Uint8, + #[doc = "< Sample periods."] + pub period: Uint16, + #[doc = "< Amount of samples."] + pub samples: Uint16, + #[doc = "< Should contain channels*samples items."] + pub data: *mut Uint16, + #[doc = "< Duration of the attack."] + pub attack_length: Uint16, + #[doc = "< Level at the start of the attack."] + pub attack_level: Uint16, + #[doc = "< Duration of the fade."] + pub fade_length: Uint16, + #[doc = "< Level at the end of the fade."] + pub fade_level: Uint16, +} +#[test] +fn bindgen_test_layout_SDL_HapticCustom() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(SDL_HapticCustom)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_HapticCustom)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).direction as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(direction) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).length as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).delay as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(delay) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).button as *const _ as usize }, + 26usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(button) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).interval as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(interval) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).channels as *const _ as usize }, + 30usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(channels) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).period as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(period) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).samples as *const _ as usize }, + 34usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(samples) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).data as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).attack_length as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(attack_length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).attack_level as *const _ as usize }, + 50usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(attack_level) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fade_length as *const _ as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(fade_length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fade_level as *const _ as usize }, + 54usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticCustom), + "::", + stringify!(fade_level) + ) + ); +} +#[doc = " \\brief The generic template for any haptic effect."] +#[doc = ""] +#[doc = " All values max at 32767 (0x7FFF). Signed values also can be negative."] +#[doc = " Time values unless specified otherwise are in milliseconds."] +#[doc = ""] +#[doc = " You can also pass ::SDL_HAPTIC_INFINITY to length instead of a 0-32767"] +#[doc = " value. Neither delay, interval, attack_length nor fade_length support"] +#[doc = " ::SDL_HAPTIC_INFINITY. Fade will also not be used since effect never ends."] +#[doc = ""] +#[doc = " Additionally, the ::SDL_HAPTIC_RAMP effect does not support a duration of"] +#[doc = " ::SDL_HAPTIC_INFINITY."] +#[doc = ""] +#[doc = " Button triggers may not be supported on all devices, it is advised to not"] +#[doc = " use them if possible. Buttons start at index 1 instead of index 0 like"] +#[doc = " the joystick."] +#[doc = ""] +#[doc = " If both attack_length and fade_level are 0, the envelope is not used,"] +#[doc = " otherwise both values are used."] +#[doc = ""] +#[doc = " Common parts:"] +#[doc = " \\code"] +#[doc = " // Replay - All effects have this"] +#[doc = " Uint32 length; // Duration of effect (ms)."] +#[doc = " Uint16 delay; // Delay before starting effect."] +#[doc = ""] +#[doc = " // Trigger - All effects have this"] +#[doc = " Uint16 button; // Button that triggers effect."] +#[doc = " Uint16 interval; // How soon before effect can be triggered again."] +#[doc = ""] +#[doc = " // Envelope - All effects except condition effects have this"] +#[doc = " Uint16 attack_length; // Duration of the attack (ms)."] +#[doc = " Uint16 attack_level; // Level at the start of the attack."] +#[doc = " Uint16 fade_length; // Duration of the fade out (ms)."] +#[doc = " Uint16 fade_level; // Level at the end of the fade."] +#[doc = " \\endcode"] +#[doc = ""] +#[doc = ""] +#[doc = " Here we have an example of a constant effect evolution in time:"] +#[doc = " \\verbatim"] +#[doc = "Strength"] +#[doc = "^"] +#[doc = "|"] +#[doc = "| effect level --> _________________"] +#[doc = "| / \\"] +#[doc = "| / \\"] +#[doc = "| / \\"] +#[doc = "| / \\"] +#[doc = "| attack_level --> | \\"] +#[doc = "| | | <--- fade_level"] +#[doc = "|"] +#[doc = "+--------------------------------------------------> Time"] +#[doc = "[--] [---]"] +#[doc = "attack_length fade_length"] +#[doc = ""] +#[doc = "[------------------][-----------------------]"] +#[doc = "delay length"] +#[doc = "\\endverbatim"] +#[doc = ""] +#[doc = " Note either the attack_level or the fade_level may be above the actual"] +#[doc = " effect level."] +#[doc = ""] +#[doc = " \\sa SDL_HapticConstant"] +#[doc = " \\sa SDL_HapticPeriodic"] +#[doc = " \\sa SDL_HapticCondition"] +#[doc = " \\sa SDL_HapticRamp"] +#[doc = " \\sa SDL_HapticLeftRight"] +#[doc = " \\sa SDL_HapticCustom"] +#[repr(C)] +#[derive(Copy, Clone)] +pub union SDL_HapticEffect { + #[doc = "< Effect type."] + pub type_: Uint16, + #[doc = "< Constant effect."] + pub constant: SDL_HapticConstant, + #[doc = "< Periodic effect."] + pub periodic: SDL_HapticPeriodic, + #[doc = "< Condition effect."] + pub condition: SDL_HapticCondition, + #[doc = "< Ramp effect."] + pub ramp: SDL_HapticRamp, + #[doc = "< Left/Right effect."] + pub leftright: SDL_HapticLeftRight, + #[doc = "< Custom effect."] + pub custom: SDL_HapticCustom, + _bindgen_union_align: [u64; 9usize], +} +#[test] +fn bindgen_test_layout_SDL_HapticEffect() { + assert_eq!( + ::core::mem::size_of::(), + 72usize, + concat!("Size of: ", stringify!(SDL_HapticEffect)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_HapticEffect)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticEffect), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).constant as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticEffect), + "::", + stringify!(constant) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).periodic as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticEffect), + "::", + stringify!(periodic) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).condition as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticEffect), + "::", + stringify!(condition) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ramp as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticEffect), + "::", + stringify!(ramp) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).leftright as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticEffect), + "::", + stringify!(leftright) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).custom as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_HapticEffect), + "::", + stringify!(custom) + ) + ); +} +extern "C" { + #[doc = " \\brief Count the number of haptic devices attached to the system."] + #[doc = ""] + #[doc = " \\return Number of haptic devices detected on the system."] + pub fn SDL_NumHaptics() -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the implementation dependent name of a haptic device."] + #[doc = ""] + #[doc = " This can be called before any joysticks are opened."] + #[doc = " If no name can be found, this function returns NULL."] + #[doc = ""] + #[doc = " \\param device_index Index of the device to get its name."] + #[doc = " \\return Name of the device or NULL on error."] + #[doc = ""] + #[doc = " \\sa SDL_NumHaptics"] + pub fn SDL_HapticName(device_index: libc::c_int) -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Opens a haptic device for use."] + #[doc = ""] + #[doc = " The index passed as an argument refers to the N'th haptic device on this"] + #[doc = " system."] + #[doc = ""] + #[doc = " When opening a haptic device, its gain will be set to maximum and"] + #[doc = " autocenter will be disabled. To modify these values use"] + #[doc = " SDL_HapticSetGain() and SDL_HapticSetAutocenter()."] + #[doc = ""] + #[doc = " \\param device_index Index of the device to open."] + #[doc = " \\return Device identifier or NULL on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticIndex"] + #[doc = " \\sa SDL_HapticOpenFromMouse"] + #[doc = " \\sa SDL_HapticOpenFromJoystick"] + #[doc = " \\sa SDL_HapticClose"] + #[doc = " \\sa SDL_HapticSetGain"] + #[doc = " \\sa SDL_HapticSetAutocenter"] + #[doc = " \\sa SDL_HapticPause"] + #[doc = " \\sa SDL_HapticStopAll"] + pub fn SDL_HapticOpen(device_index: libc::c_int) -> *mut SDL_Haptic; +} +extern "C" { + #[doc = " \\brief Checks if the haptic device at index has been opened."] + #[doc = ""] + #[doc = " \\param device_index Index to check to see if it has been opened."] + #[doc = " \\return 1 if it has been opened or 0 if it hasn't."] + #[doc = ""] + #[doc = " \\sa SDL_HapticOpen"] + #[doc = " \\sa SDL_HapticIndex"] + pub fn SDL_HapticOpened(device_index: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Gets the index of a haptic device."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to get the index of."] + #[doc = " \\return The index of the haptic device or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticOpen"] + #[doc = " \\sa SDL_HapticOpened"] + pub fn SDL_HapticIndex(haptic: *mut SDL_Haptic) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Gets whether or not the current mouse has haptic capabilities."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the mouse is haptic, SDL_FALSE if it isn't."] + #[doc = ""] + #[doc = " \\sa SDL_HapticOpenFromMouse"] + pub fn SDL_MouseIsHaptic() -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Tries to open a haptic device from the current mouse."] + #[doc = ""] + #[doc = " \\return The haptic device identifier or NULL on error."] + #[doc = ""] + #[doc = " \\sa SDL_MouseIsHaptic"] + #[doc = " \\sa SDL_HapticOpen"] + pub fn SDL_HapticOpenFromMouse() -> *mut SDL_Haptic; +} +extern "C" { + #[doc = " \\brief Checks to see if a joystick has haptic features."] + #[doc = ""] + #[doc = " \\param joystick Joystick to test for haptic capabilities."] + #[doc = " \\return SDL_TRUE if the joystick is haptic, SDL_FALSE if it isn't"] + #[doc = " or -1 if an error occurred."] + #[doc = ""] + #[doc = " \\sa SDL_HapticOpenFromJoystick"] + pub fn SDL_JoystickIsHaptic(joystick: *mut SDL_Joystick) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Opens a haptic device for use from a joystick device."] + #[doc = ""] + #[doc = " You must still close the haptic device separately. It will not be closed"] + #[doc = " with the joystick."] + #[doc = ""] + #[doc = " When opening from a joystick you should first close the haptic device before"] + #[doc = " closing the joystick device. If not, on some implementations the haptic"] + #[doc = " device will also get unallocated and you'll be unable to use force feedback"] + #[doc = " on that device."] + #[doc = ""] + #[doc = " \\param joystick Joystick to create a haptic device from."] + #[doc = " \\return A valid haptic device identifier on success or NULL on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticOpen"] + #[doc = " \\sa SDL_HapticClose"] + pub fn SDL_HapticOpenFromJoystick(joystick: *mut SDL_Joystick) -> *mut SDL_Haptic; +} +extern "C" { + #[doc = " \\brief Closes a haptic device previously opened with SDL_HapticOpen()."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to close."] + pub fn SDL_HapticClose(haptic: *mut SDL_Haptic); +} +extern "C" { + #[doc = " \\brief Returns the number of effects a haptic device can store."] + #[doc = ""] + #[doc = " On some platforms this isn't fully supported, and therefore is an"] + #[doc = " approximation. Always check to see if your created effect was actually"] + #[doc = " created and do not rely solely on SDL_HapticNumEffects()."] + #[doc = ""] + #[doc = " \\param haptic The haptic device to query effect max."] + #[doc = " \\return The number of effects the haptic device can store or"] + #[doc = " -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticNumEffectsPlaying"] + #[doc = " \\sa SDL_HapticQuery"] + pub fn SDL_HapticNumEffects(haptic: *mut SDL_Haptic) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Returns the number of effects a haptic device can play at the same"] + #[doc = " time."] + #[doc = ""] + #[doc = " This is not supported on all platforms, but will always return a value."] + #[doc = " Added here for the sake of completeness."] + #[doc = ""] + #[doc = " \\param haptic The haptic device to query maximum playing effects."] + #[doc = " \\return The number of effects the haptic device can play at the same time"] + #[doc = " or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticNumEffects"] + #[doc = " \\sa SDL_HapticQuery"] + pub fn SDL_HapticNumEffectsPlaying(haptic: *mut SDL_Haptic) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Gets the haptic device's supported features in bitwise manner."] + #[doc = ""] + #[doc = " Example:"] + #[doc = " \\code"] + #[doc = " if (SDL_HapticQuery(haptic) & SDL_HAPTIC_CONSTANT) {"] + #[doc = " printf(\"We have constant haptic effect!\\n\");"] + #[doc = " }"] + #[doc = " \\endcode"] + #[doc = ""] + #[doc = " \\param haptic The haptic device to query."] + #[doc = " \\return Haptic features in bitwise manner (OR'd)."] + #[doc = ""] + #[doc = " \\sa SDL_HapticNumEffects"] + #[doc = " \\sa SDL_HapticEffectSupported"] + pub fn SDL_HapticQuery(haptic: *mut SDL_Haptic) -> libc::c_uint; +} +extern "C" { + #[doc = " \\brief Gets the number of haptic axes the device has."] + #[doc = ""] + #[doc = " \\sa SDL_HapticDirection"] + pub fn SDL_HapticNumAxes(haptic: *mut SDL_Haptic) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Checks to see if effect is supported by haptic."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to check on."] + #[doc = " \\param effect Effect to check to see if it is supported."] + #[doc = " \\return SDL_TRUE if effect is supported, SDL_FALSE if it isn't or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticQuery"] + #[doc = " \\sa SDL_HapticNewEffect"] + pub fn SDL_HapticEffectSupported( + haptic: *mut SDL_Haptic, + effect: *mut SDL_HapticEffect, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Creates a new haptic effect on the device."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to create the effect on."] + #[doc = " \\param effect Properties of the effect to create."] + #[doc = " \\return The identifier of the effect on success or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticUpdateEffect"] + #[doc = " \\sa SDL_HapticRunEffect"] + #[doc = " \\sa SDL_HapticDestroyEffect"] + pub fn SDL_HapticNewEffect( + haptic: *mut SDL_Haptic, + effect: *mut SDL_HapticEffect, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Updates the properties of an effect."] + #[doc = ""] + #[doc = " Can be used dynamically, although behavior when dynamically changing"] + #[doc = " direction may be strange. Specifically the effect may reupload itself"] + #[doc = " and start playing from the start. You cannot change the type either when"] + #[doc = " running SDL_HapticUpdateEffect()."] + #[doc = ""] + #[doc = " \\param haptic Haptic device that has the effect."] + #[doc = " \\param effect Identifier of the effect to update."] + #[doc = " \\param data New effect properties to use."] + #[doc = " \\return 0 on success or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticNewEffect"] + #[doc = " \\sa SDL_HapticRunEffect"] + #[doc = " \\sa SDL_HapticDestroyEffect"] + pub fn SDL_HapticUpdateEffect( + haptic: *mut SDL_Haptic, + effect: libc::c_int, + data: *mut SDL_HapticEffect, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Runs the haptic effect on its associated haptic device."] + #[doc = ""] + #[doc = " If iterations are ::SDL_HAPTIC_INFINITY, it'll run the effect over and over"] + #[doc = " repeating the envelope (attack and fade) every time. If you only want the"] + #[doc = " effect to last forever, set ::SDL_HAPTIC_INFINITY in the effect's length"] + #[doc = " parameter."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to run the effect on."] + #[doc = " \\param effect Identifier of the haptic effect to run."] + #[doc = " \\param iterations Number of iterations to run the effect. Use"] + #[doc = " ::SDL_HAPTIC_INFINITY for infinity."] + #[doc = " \\return 0 on success or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticStopEffect"] + #[doc = " \\sa SDL_HapticDestroyEffect"] + #[doc = " \\sa SDL_HapticGetEffectStatus"] + pub fn SDL_HapticRunEffect( + haptic: *mut SDL_Haptic, + effect: libc::c_int, + iterations: Uint32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Stops the haptic effect on its associated haptic device."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to stop the effect on."] + #[doc = " \\param effect Identifier of the effect to stop."] + #[doc = " \\return 0 on success or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticRunEffect"] + #[doc = " \\sa SDL_HapticDestroyEffect"] + pub fn SDL_HapticStopEffect(haptic: *mut SDL_Haptic, effect: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Destroys a haptic effect on the device."] + #[doc = ""] + #[doc = " This will stop the effect if it's running. Effects are automatically"] + #[doc = " destroyed when the device is closed."] + #[doc = ""] + #[doc = " \\param haptic Device to destroy the effect on."] + #[doc = " \\param effect Identifier of the effect to destroy."] + #[doc = ""] + #[doc = " \\sa SDL_HapticNewEffect"] + pub fn SDL_HapticDestroyEffect(haptic: *mut SDL_Haptic, effect: libc::c_int); +} +extern "C" { + #[doc = " \\brief Gets the status of the current effect on the haptic device."] + #[doc = ""] + #[doc = " Device must support the ::SDL_HAPTIC_STATUS feature."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to query the effect status on."] + #[doc = " \\param effect Identifier of the effect to query its status."] + #[doc = " \\return 0 if it isn't playing, 1 if it is playing or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticRunEffect"] + #[doc = " \\sa SDL_HapticStopEffect"] + pub fn SDL_HapticGetEffectStatus(haptic: *mut SDL_Haptic, effect: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Sets the global gain of the device."] + #[doc = ""] + #[doc = " Device must support the ::SDL_HAPTIC_GAIN feature."] + #[doc = ""] + #[doc = " The user may specify the maximum gain by setting the environment variable"] + #[doc = " SDL_HAPTIC_GAIN_MAX which should be between 0 and 100. All calls to"] + #[doc = " SDL_HapticSetGain() will scale linearly using SDL_HAPTIC_GAIN_MAX as the"] + #[doc = " maximum."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to set the gain on."] + #[doc = " \\param gain Value to set the gain to, should be between 0 and 100."] + #[doc = " \\return 0 on success or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticQuery"] + pub fn SDL_HapticSetGain(haptic: *mut SDL_Haptic, gain: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Sets the global autocenter of the device."] + #[doc = ""] + #[doc = " Autocenter should be between 0 and 100. Setting it to 0 will disable"] + #[doc = " autocentering."] + #[doc = ""] + #[doc = " Device must support the ::SDL_HAPTIC_AUTOCENTER feature."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to set autocentering on."] + #[doc = " \\param autocenter Value to set autocenter to, 0 disables autocentering."] + #[doc = " \\return 0 on success or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticQuery"] + pub fn SDL_HapticSetAutocenter(haptic: *mut SDL_Haptic, autocenter: libc::c_int) + -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Pauses a haptic device."] + #[doc = ""] + #[doc = " Device must support the ::SDL_HAPTIC_PAUSE feature. Call"] + #[doc = " SDL_HapticUnpause() to resume playback."] + #[doc = ""] + #[doc = " Do not modify the effects nor add new ones while the device is paused."] + #[doc = " That can cause all sorts of weird errors."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to pause."] + #[doc = " \\return 0 on success or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticUnpause"] + pub fn SDL_HapticPause(haptic: *mut SDL_Haptic) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Unpauses a haptic device."] + #[doc = ""] + #[doc = " Call to unpause after SDL_HapticPause()."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to unpause."] + #[doc = " \\return 0 on success or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticPause"] + pub fn SDL_HapticUnpause(haptic: *mut SDL_Haptic) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Stops all the currently playing effects on a haptic device."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to stop."] + #[doc = " \\return 0 on success or -1 on error."] + pub fn SDL_HapticStopAll(haptic: *mut SDL_Haptic) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Checks to see if rumble is supported on a haptic device."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to check to see if it supports rumble."] + #[doc = " \\return SDL_TRUE if effect is supported, SDL_FALSE if it isn't or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticRumbleInit"] + #[doc = " \\sa SDL_HapticRumblePlay"] + #[doc = " \\sa SDL_HapticRumbleStop"] + pub fn SDL_HapticRumbleSupported(haptic: *mut SDL_Haptic) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Initializes the haptic device for simple rumble playback."] + #[doc = ""] + #[doc = " \\param haptic Haptic device to initialize for simple rumble playback."] + #[doc = " \\return 0 on success or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticOpen"] + #[doc = " \\sa SDL_HapticRumbleSupported"] + #[doc = " \\sa SDL_HapticRumblePlay"] + #[doc = " \\sa SDL_HapticRumbleStop"] + pub fn SDL_HapticRumbleInit(haptic: *mut SDL_Haptic) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Runs simple rumble on a haptic device"] + #[doc = ""] + #[doc = " \\param haptic Haptic device to play rumble effect on."] + #[doc = " \\param strength Strength of the rumble to play as a 0-1 float value."] + #[doc = " \\param length Length of the rumble to play in milliseconds."] + #[doc = " \\return 0 on success or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticRumbleSupported"] + #[doc = " \\sa SDL_HapticRumbleInit"] + #[doc = " \\sa SDL_HapticRumbleStop"] + pub fn SDL_HapticRumblePlay( + haptic: *mut SDL_Haptic, + strength: f32, + length: Uint32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Stops the simple rumble on a haptic device."] + #[doc = ""] + #[doc = " \\param haptic Haptic to stop the rumble on."] + #[doc = " \\return 0 on success or -1 on error."] + #[doc = ""] + #[doc = " \\sa SDL_HapticRumbleSupported"] + #[doc = " \\sa SDL_HapticRumbleInit"] + #[doc = " \\sa SDL_HapticRumblePlay"] + pub fn SDL_HapticRumbleStop(haptic: *mut SDL_Haptic) -> libc::c_int; +} +#[repr(u32)] +#[doc = " \\brief An enumeration of hint priorities"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_HintPriority { + SDL_HINT_DEFAULT = 0, + SDL_HINT_NORMAL = 1, + SDL_HINT_OVERRIDE = 2, +} +extern "C" { + #[doc = " \\brief Set a hint with a specific priority"] + #[doc = ""] + #[doc = " The priority controls the behavior when setting a hint that already"] + #[doc = " has a value. Hints will replace existing hints of their priority and"] + #[doc = " lower. Environment variables are considered to have override priority."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the hint was set, SDL_FALSE otherwise"] + pub fn SDL_SetHintWithPriority( + name: *const libc::c_char, + value: *const libc::c_char, + priority: SDL_HintPriority, + ) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Set a hint with normal priority"] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the hint was set, SDL_FALSE otherwise"] + pub fn SDL_SetHint(name: *const libc::c_char, value: *const libc::c_char) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Get a hint"] + #[doc = ""] + #[doc = " \\return The string value of a hint variable."] + pub fn SDL_GetHint(name: *const libc::c_char) -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Get a hint"] + #[doc = ""] + #[doc = " \\return The boolean value of a hint variable."] + pub fn SDL_GetHintBoolean(name: *const libc::c_char, default_value: SDL_bool) -> SDL_bool; +} +#[doc = " \\brief type definition of the hint callback function."] +pub type SDL_HintCallback = ::core::option::Option< + unsafe extern "C" fn( + userdata: *mut libc::c_void, + name: *const libc::c_char, + oldValue: *const libc::c_char, + newValue: *const libc::c_char, + ), +>; +extern "C" { + #[doc = " \\brief Add a function to watch a particular hint"] + #[doc = ""] + #[doc = " \\param name The hint to watch"] + #[doc = " \\param callback The function to call when the hint value changes"] + #[doc = " \\param userdata A pointer to pass to the callback function"] + pub fn SDL_AddHintCallback( + name: *const libc::c_char, + callback: SDL_HintCallback, + userdata: *mut libc::c_void, + ); +} +extern "C" { + #[doc = " \\brief Remove a function watching a particular hint"] + #[doc = ""] + #[doc = " \\param name The hint being watched"] + #[doc = " \\param callback The function being called when the hint value changes"] + #[doc = " \\param userdata A pointer being passed to the callback function"] + pub fn SDL_DelHintCallback( + name: *const libc::c_char, + callback: SDL_HintCallback, + userdata: *mut libc::c_void, + ); +} +extern "C" { + #[doc = " \\brief Clear all hints"] + #[doc = ""] + #[doc = " This function is called during SDL_Quit() to free stored hints."] + pub fn SDL_ClearHints(); +} +extern "C" { + #[doc = " This function dynamically loads a shared object and returns a pointer"] + #[doc = " to the object handle (or NULL if there was an error)."] + #[doc = " The 'sofile' parameter is a system dependent name of the object file."] + pub fn SDL_LoadObject(sofile: *const libc::c_char) -> *mut libc::c_void; +} +extern "C" { + #[doc = " Given an object handle, this function looks up the address of the"] + #[doc = " named function in the shared object and returns it. This address"] + #[doc = " is no longer valid after calling SDL_UnloadObject()."] + pub fn SDL_LoadFunction( + handle: *mut libc::c_void, + name: *const libc::c_char, + ) -> *mut libc::c_void; +} +extern "C" { + #[doc = " Unload a shared object from memory."] + pub fn SDL_UnloadObject(handle: *mut libc::c_void); +} +#[repr(u32)] +#[doc = " \\brief The predefined log categories"] +#[doc = ""] +#[doc = " By default the application category is enabled at the INFO level,"] +#[doc = " the assert category is enabled at the WARN level, test is enabled"] +#[doc = " at the VERBOSE level and all other categories are enabled at the"] +#[doc = " CRITICAL level."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_LogCategory { + SDL_LOG_CATEGORY_APPLICATION = 0, + SDL_LOG_CATEGORY_ERROR = 1, + SDL_LOG_CATEGORY_ASSERT = 2, + SDL_LOG_CATEGORY_SYSTEM = 3, + SDL_LOG_CATEGORY_AUDIO = 4, + SDL_LOG_CATEGORY_VIDEO = 5, + SDL_LOG_CATEGORY_RENDER = 6, + SDL_LOG_CATEGORY_INPUT = 7, + SDL_LOG_CATEGORY_TEST = 8, + SDL_LOG_CATEGORY_RESERVED1 = 9, + SDL_LOG_CATEGORY_RESERVED2 = 10, + SDL_LOG_CATEGORY_RESERVED3 = 11, + SDL_LOG_CATEGORY_RESERVED4 = 12, + SDL_LOG_CATEGORY_RESERVED5 = 13, + SDL_LOG_CATEGORY_RESERVED6 = 14, + SDL_LOG_CATEGORY_RESERVED7 = 15, + SDL_LOG_CATEGORY_RESERVED8 = 16, + SDL_LOG_CATEGORY_RESERVED9 = 17, + SDL_LOG_CATEGORY_RESERVED10 = 18, + SDL_LOG_CATEGORY_CUSTOM = 19, +} +#[repr(u32)] +#[doc = " \\brief The predefined log priorities"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_LogPriority { + SDL_LOG_PRIORITY_VERBOSE = 1, + SDL_LOG_PRIORITY_DEBUG = 2, + SDL_LOG_PRIORITY_INFO = 3, + SDL_LOG_PRIORITY_WARN = 4, + SDL_LOG_PRIORITY_ERROR = 5, + SDL_LOG_PRIORITY_CRITICAL = 6, + SDL_NUM_LOG_PRIORITIES = 7, +} +extern "C" { + #[doc = " \\brief Set the priority of all log categories"] + pub fn SDL_LogSetAllPriority(priority: SDL_LogPriority); +} +extern "C" { + #[doc = " \\brief Set the priority of a particular log category"] + pub fn SDL_LogSetPriority(category: libc::c_int, priority: SDL_LogPriority); +} +extern "C" { + #[doc = " \\brief Get the priority of a particular log category"] + pub fn SDL_LogGetPriority(category: libc::c_int) -> SDL_LogPriority; +} +extern "C" { + #[doc = " \\brief Reset all priorities to default."] + #[doc = ""] + #[doc = " \\note This is called in SDL_Quit()."] + pub fn SDL_LogResetPriorities(); +} +extern "C" { + #[doc = " \\brief Log a message with SDL_LOG_CATEGORY_APPLICATION and SDL_LOG_PRIORITY_INFO"] + pub fn SDL_Log(fmt: *const libc::c_char, ...); +} +extern "C" { + #[doc = " \\brief Log a message with SDL_LOG_PRIORITY_VERBOSE"] + pub fn SDL_LogVerbose(category: libc::c_int, fmt: *const libc::c_char, ...); +} +extern "C" { + #[doc = " \\brief Log a message with SDL_LOG_PRIORITY_DEBUG"] + pub fn SDL_LogDebug(category: libc::c_int, fmt: *const libc::c_char, ...); +} +extern "C" { + #[doc = " \\brief Log a message with SDL_LOG_PRIORITY_INFO"] + pub fn SDL_LogInfo(category: libc::c_int, fmt: *const libc::c_char, ...); +} +extern "C" { + #[doc = " \\brief Log a message with SDL_LOG_PRIORITY_WARN"] + pub fn SDL_LogWarn(category: libc::c_int, fmt: *const libc::c_char, ...); +} +extern "C" { + #[doc = " \\brief Log a message with SDL_LOG_PRIORITY_ERROR"] + pub fn SDL_LogError(category: libc::c_int, fmt: *const libc::c_char, ...); +} +extern "C" { + #[doc = " \\brief Log a message with SDL_LOG_PRIORITY_CRITICAL"] + pub fn SDL_LogCritical(category: libc::c_int, fmt: *const libc::c_char, ...); +} +extern "C" { + #[doc = " \\brief Log a message with the specified category and priority."] + pub fn SDL_LogMessage( + category: libc::c_int, + priority: SDL_LogPriority, + fmt: *const libc::c_char, + ... + ); +} +extern "C" { + #[doc = " \\brief Log a message with the specified category and priority."] + pub fn SDL_LogMessageV( + category: libc::c_int, + priority: SDL_LogPriority, + fmt: *const libc::c_char, + ap: *mut __va_list_tag, + ); +} +#[doc = " \\brief The prototype for the log output function"] +pub type SDL_LogOutputFunction = ::core::option::Option< + unsafe extern "C" fn( + userdata: *mut libc::c_void, + category: libc::c_int, + priority: SDL_LogPriority, + message: *const libc::c_char, + ), +>; +extern "C" { + #[doc = " \\brief Get the current log output function."] + pub fn SDL_LogGetOutputFunction( + callback: *mut SDL_LogOutputFunction, + userdata: *mut *mut libc::c_void, + ); +} +extern "C" { + #[doc = " \\brief This function allows you to replace the default log output"] + #[doc = " function with one of your own."] + pub fn SDL_LogSetOutputFunction(callback: SDL_LogOutputFunction, userdata: *mut libc::c_void); +} +#[repr(u32)] +#[doc = " \\brief SDL_MessageBox flags. If supported will display warning icon, etc."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_MessageBoxFlags { + #[doc = "< error dialog"] + SDL_MESSAGEBOX_ERROR = 16, + #[doc = "< warning dialog"] + SDL_MESSAGEBOX_WARNING = 32, + #[doc = "< informational dialog"] + SDL_MESSAGEBOX_INFORMATION = 64, + #[doc = "< buttons placed left to right"] + SDL_MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT = 128, + #[doc = "< buttons placed right to left"] + SDL_MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT = 256, +} +#[repr(u32)] +#[doc = " \\brief Flags for SDL_MessageBoxButtonData."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_MessageBoxButtonFlags { + #[doc = "< Marks the default button when return is hit"] + SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT = 1, + #[doc = "< Marks the default button when escape is hit"] + SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT = 2, +} +#[doc = " \\brief Individual button data."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_MessageBoxButtonData { + #[doc = "< ::SDL_MessageBoxButtonFlags"] + pub flags: Uint32, + #[doc = "< User defined button id (value returned via SDL_ShowMessageBox)"] + pub buttonid: libc::c_int, + #[doc = "< The UTF-8 button text"] + pub text: *const libc::c_char, +} +#[test] +fn bindgen_test_layout_SDL_MessageBoxButtonData() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_MessageBoxButtonData)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_MessageBoxButtonData)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).flags as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxButtonData), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).buttonid as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxButtonData), + "::", + stringify!(buttonid) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).text as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxButtonData), + "::", + stringify!(text) + ) + ); +} +#[doc = " \\brief RGB value used in a message box color scheme"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_MessageBoxColor { + pub r: Uint8, + pub g: Uint8, + pub b: Uint8, +} +#[test] +fn bindgen_test_layout_SDL_MessageBoxColor() { + assert_eq!( + ::core::mem::size_of::(), + 3usize, + concat!("Size of: ", stringify!(SDL_MessageBoxColor)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(SDL_MessageBoxColor)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).r as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxColor), + "::", + stringify!(r) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).g as *const _ as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxColor), + "::", + stringify!(g) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).b as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxColor), + "::", + stringify!(b) + ) + ); +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_MessageBoxColorType { + SDL_MESSAGEBOX_COLOR_BACKGROUND = 0, + SDL_MESSAGEBOX_COLOR_TEXT = 1, + SDL_MESSAGEBOX_COLOR_BUTTON_BORDER = 2, + SDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND = 3, + SDL_MESSAGEBOX_COLOR_BUTTON_SELECTED = 4, + SDL_MESSAGEBOX_COLOR_MAX = 5, +} +#[doc = " \\brief A set of colors to use for message box dialogs"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_MessageBoxColorScheme { + pub colors: [SDL_MessageBoxColor; 5usize], +} +#[test] +fn bindgen_test_layout_SDL_MessageBoxColorScheme() { + assert_eq!( + ::core::mem::size_of::(), + 15usize, + concat!("Size of: ", stringify!(SDL_MessageBoxColorScheme)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(SDL_MessageBoxColorScheme)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).colors as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxColorScheme), + "::", + stringify!(colors) + ) + ); +} +#[doc = " \\brief MessageBox structure containing title, text, window, etc."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_MessageBoxData { + #[doc = "< ::SDL_MessageBoxFlags"] + pub flags: Uint32, + #[doc = "< Parent window, can be NULL"] + pub window: *mut SDL_Window, + #[doc = "< UTF-8 title"] + pub title: *const libc::c_char, + #[doc = "< UTF-8 message text"] + pub message: *const libc::c_char, + pub numbuttons: libc::c_int, + pub buttons: *const SDL_MessageBoxButtonData, + #[doc = "< ::SDL_MessageBoxColorScheme, can be NULL to use system settings"] + pub colorScheme: *const SDL_MessageBoxColorScheme, +} +#[test] +fn bindgen_test_layout_SDL_MessageBoxData() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(SDL_MessageBoxData)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_MessageBoxData)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).flags as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxData), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxData), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).title as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxData), + "::", + stringify!(title) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).message as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxData), + "::", + stringify!(message) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).numbuttons as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxData), + "::", + stringify!(numbuttons) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).buttons as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxData), + "::", + stringify!(buttons) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).colorScheme as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(SDL_MessageBoxData), + "::", + stringify!(colorScheme) + ) + ); +} +extern "C" { + #[doc = " \\brief Create a modal message box."] + #[doc = ""] + #[doc = " \\param messageboxdata The SDL_MessageBoxData structure with title, text, etc."] + #[doc = " \\param buttonid The pointer to which user id of hit button should be copied."] + #[doc = ""] + #[doc = " \\return -1 on error, otherwise 0 and buttonid contains user id of button"] + #[doc = " hit or -1 if dialog was closed."] + #[doc = ""] + #[doc = " \\note This function should be called on the thread that created the parent"] + #[doc = " window, or on the main thread if the messagebox has no parent. It will"] + #[doc = " block execution of that thread until the user clicks a button or"] + #[doc = " closes the messagebox."] + pub fn SDL_ShowMessageBox( + messageboxdata: *const SDL_MessageBoxData, + buttonid: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Create a simple modal message box"] + #[doc = ""] + #[doc = " \\param flags ::SDL_MessageBoxFlags"] + #[doc = " \\param title UTF-8 title text"] + #[doc = " \\param message UTF-8 message text"] + #[doc = " \\param window The parent window, or NULL for no parent"] + #[doc = ""] + #[doc = " \\return 0 on success, -1 on error"] + #[doc = ""] + #[doc = " \\sa SDL_ShowMessageBox"] + pub fn SDL_ShowSimpleMessageBox( + flags: Uint32, + title: *const libc::c_char, + message: *const libc::c_char, + window: *mut SDL_Window, + ) -> libc::c_int; +} +#[doc = " \\brief A handle to a CAMetalLayer-backed NSView (macOS) or UIView (iOS/tvOS)."] +#[doc = ""] +#[doc = " \\note This can be cast directly to an NSView or UIView."] +pub type SDL_MetalView = *mut libc::c_void; +extern "C" { + #[doc = " \\brief Create a CAMetalLayer-backed NSView/UIView and attach it to the"] + #[doc = " specified window."] + #[doc = ""] + #[doc = " On macOS, this does *not* associate a MTLDevice with the CAMetalLayer on its"] + #[doc = " own. It is up to user code to do that."] + #[doc = ""] + #[doc = " The returned handle can be casted directly to a NSView or UIView."] + #[doc = " To access the backing CAMetalLayer, call SDL_Metal_GetLayer()."] + #[doc = ""] + #[doc = " \\note \\a window must be created with the SDL_WINDOW_METAL flag."] + #[doc = ""] + #[doc = " \\sa SDL_Metal_DestroyView"] + #[doc = " \\sa SDL_Metal_GetLayer"] + pub fn SDL_Metal_CreateView(window: *mut SDL_Window) -> SDL_MetalView; +} +extern "C" { + #[doc = " \\brief Destroy an existing SDL_MetalView object."] + #[doc = ""] + #[doc = " This should be called before SDL_DestroyWindow, if SDL_Metal_CreateView was"] + #[doc = " called after SDL_CreateWindow."] + #[doc = ""] + #[doc = " \\sa SDL_Metal_CreateView"] + pub fn SDL_Metal_DestroyView(view: SDL_MetalView); +} +extern "C" { + #[doc = " \\brief Get a pointer to the backing CAMetalLayer for the given view."] + #[doc = ""] + #[doc = " \\sa SDL_MetalCreateView"] + pub fn SDL_Metal_GetLayer(view: SDL_MetalView) -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Get the size of a window's underlying drawable in pixels (for use"] + #[doc = " with setting viewport, scissor & etc)."] + #[doc = ""] + #[doc = " \\param window SDL_Window from which the drawable size should be queried"] + #[doc = " \\param w Pointer to variable for storing the width in pixels,"] + #[doc = " may be NULL"] + #[doc = " \\param h Pointer to variable for storing the height in pixels,"] + #[doc = " may be NULL"] + #[doc = ""] + #[doc = " This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI"] + #[doc = " drawable, i.e. the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a"] + #[doc = " platform with high-DPI support (Apple calls this \"Retina\"), and not disabled"] + #[doc = " by the \\c SDL_HINT_VIDEO_HIGHDPI_DISABLED hint."] + #[doc = ""] + #[doc = " \\note On macOS high-DPI support must be enabled for an application by"] + #[doc = " setting NSHighResolutionCapable to true in its Info.plist."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowSize()"] + #[doc = " \\sa SDL_CreateWindow()"] + pub fn SDL_Metal_GetDrawableSize( + window: *mut SDL_Window, + w: *mut libc::c_int, + h: *mut libc::c_int, + ); +} +#[repr(u32)] +#[doc = " \\brief The basic state for the system's power supply."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_PowerState { + #[doc = "< cannot determine power status"] + SDL_POWERSTATE_UNKNOWN = 0, + #[doc = "< Not plugged in, running on the battery"] + SDL_POWERSTATE_ON_BATTERY = 1, + #[doc = "< Plugged in, no battery available"] + SDL_POWERSTATE_NO_BATTERY = 2, + #[doc = "< Plugged in, charging battery"] + SDL_POWERSTATE_CHARGING = 3, + #[doc = "< Plugged in, battery charged"] + SDL_POWERSTATE_CHARGED = 4, +} +extern "C" { + #[doc = " \\brief Get the current power supply details."] + #[doc = ""] + #[doc = " \\param secs Seconds of battery life left. You can pass a NULL here if"] + #[doc = " you don't care. Will return -1 if we can't determine a"] + #[doc = " value, or we're not running on a battery."] + #[doc = ""] + #[doc = " \\param pct Percentage of battery life left, between 0 and 100. You can"] + #[doc = " pass a NULL here if you don't care. Will return -1 if we"] + #[doc = " can't determine a value, or we're not running on a battery."] + #[doc = ""] + #[doc = " \\return The state of the battery (if any)."] + pub fn SDL_GetPowerInfo(secs: *mut libc::c_int, pct: *mut libc::c_int) -> SDL_PowerState; +} +#[repr(u32)] +#[doc = " \\brief Flags used when creating a rendering context"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_RendererFlags { + #[doc = "< The renderer is a software fallback"] + SDL_RENDERER_SOFTWARE = 1, + #[doc = "< The renderer uses hardware"] + #[doc = "acceleration"] + SDL_RENDERER_ACCELERATED = 2, + #[doc = "< Present is synchronized"] + #[doc = "with the refresh rate"] + SDL_RENDERER_PRESENTVSYNC = 4, + #[doc = "< The renderer supports"] + #[doc = "rendering to texture"] + SDL_RENDERER_TARGETTEXTURE = 8, +} +#[doc = " \\brief Information on the capabilities of a render driver or context."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_RendererInfo { + #[doc = "< The name of the renderer"] + pub name: *const libc::c_char, + #[doc = "< Supported ::SDL_RendererFlags"] + pub flags: Uint32, + #[doc = "< The number of available texture formats"] + pub num_texture_formats: Uint32, + #[doc = "< The available texture formats"] + pub texture_formats: [Uint32; 16usize], + #[doc = "< The maximum texture width"] + pub max_texture_width: libc::c_int, + #[doc = "< The maximum texture height"] + pub max_texture_height: libc::c_int, +} +#[test] +fn bindgen_test_layout_SDL_RendererInfo() { + assert_eq!( + ::core::mem::size_of::(), + 88usize, + concat!("Size of: ", stringify!(SDL_RendererInfo)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_RendererInfo)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).name as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_RendererInfo), + "::", + stringify!(name) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).flags as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_RendererInfo), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).num_texture_formats as *const _ as usize + }, + 12usize, + concat!( + "Offset of field: ", + stringify!(SDL_RendererInfo), + "::", + stringify!(num_texture_formats) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).texture_formats as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_RendererInfo), + "::", + stringify!(texture_formats) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).max_texture_width as *const _ as usize + }, + 80usize, + concat!( + "Offset of field: ", + stringify!(SDL_RendererInfo), + "::", + stringify!(max_texture_width) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).max_texture_height as *const _ as usize + }, + 84usize, + concat!( + "Offset of field: ", + stringify!(SDL_RendererInfo), + "::", + stringify!(max_texture_height) + ) + ); +} +#[repr(u32)] +#[doc = " \\brief The scaling mode for a texture."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_ScaleMode { + #[doc = "< nearest pixel sampling"] + SDL_ScaleModeNearest = 0, + #[doc = "< linear filtering"] + SDL_ScaleModeLinear = 1, + #[doc = "< anisotropic filtering"] + SDL_ScaleModeBest = 2, +} +#[repr(u32)] +#[doc = " \\brief The access pattern allowed for a texture."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_TextureAccess { + #[doc = "< Changes rarely, not lockable"] + SDL_TEXTUREACCESS_STATIC = 0, + #[doc = "< Changes frequently, lockable"] + SDL_TEXTUREACCESS_STREAMING = 1, + #[doc = "< Texture can be used as a render target"] + SDL_TEXTUREACCESS_TARGET = 2, +} +#[repr(u32)] +#[doc = " \\brief The texture channel modulation used in SDL_RenderCopy()."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_TextureModulate { + #[doc = "< No modulation"] + SDL_TEXTUREMODULATE_NONE = 0, + #[doc = "< srcC = srcC * color"] + SDL_TEXTUREMODULATE_COLOR = 1, + #[doc = "< srcA = srcA * alpha"] + SDL_TEXTUREMODULATE_ALPHA = 2, +} +#[repr(u32)] +#[doc = " \\brief Flip constants for SDL_RenderCopyEx"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_RendererFlip { + #[doc = "< Do not flip"] + SDL_FLIP_NONE = 0, + #[doc = "< flip horizontally"] + SDL_FLIP_HORIZONTAL = 1, + #[doc = "< flip vertically"] + SDL_FLIP_VERTICAL = 2, +} +#[doc = " \\brief A structure representing rendering state"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Renderer { + _unused: [u8; 0], +} +#[doc = " \\brief An efficient driver-specific representation of pixel data"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Texture { + _unused: [u8; 0], +} +extern "C" { + #[doc = " \\brief Get the number of 2D rendering drivers available for the current"] + #[doc = " display."] + #[doc = ""] + #[doc = " A render driver is a set of code that handles rendering and texture"] + #[doc = " management on a particular display. Normally there is only one, but"] + #[doc = " some drivers may have several available with different capabilities."] + #[doc = ""] + #[doc = " \\sa SDL_GetRenderDriverInfo()"] + #[doc = " \\sa SDL_CreateRenderer()"] + pub fn SDL_GetNumRenderDrivers() -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get information about a specific 2D rendering driver for the current"] + #[doc = " display."] + #[doc = ""] + #[doc = " \\param index The index of the driver to query information about."] + #[doc = " \\param info A pointer to an SDL_RendererInfo struct to be filled with"] + #[doc = " information on the rendering driver."] + #[doc = ""] + #[doc = " \\return 0 on success, -1 if the index was out of range."] + #[doc = ""] + #[doc = " \\sa SDL_CreateRenderer()"] + pub fn SDL_GetRenderDriverInfo(index: libc::c_int, info: *mut SDL_RendererInfo) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Create a window and default renderer"] + #[doc = ""] + #[doc = " \\param width The width of the window"] + #[doc = " \\param height The height of the window"] + #[doc = " \\param window_flags The flags used to create the window"] + #[doc = " \\param window A pointer filled with the window, or NULL on error"] + #[doc = " \\param renderer A pointer filled with the renderer, or NULL on error"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_CreateWindowAndRenderer( + width: libc::c_int, + height: libc::c_int, + window_flags: Uint32, + window: *mut *mut SDL_Window, + renderer: *mut *mut SDL_Renderer, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Create a 2D rendering context for a window."] + #[doc = ""] + #[doc = " \\param window The window where rendering is displayed."] + #[doc = " \\param index The index of the rendering driver to initialize, or -1 to"] + #[doc = " initialize the first one supporting the requested flags."] + #[doc = " \\param flags ::SDL_RendererFlags."] + #[doc = ""] + #[doc = " \\return A valid rendering context or NULL if there was an error."] + #[doc = ""] + #[doc = " \\sa SDL_CreateSoftwareRenderer()"] + #[doc = " \\sa SDL_GetRendererInfo()"] + #[doc = " \\sa SDL_DestroyRenderer()"] + pub fn SDL_CreateRenderer( + window: *mut SDL_Window, + index: libc::c_int, + flags: Uint32, + ) -> *mut SDL_Renderer; +} +extern "C" { + #[doc = " \\brief Create a 2D software rendering context for a surface."] + #[doc = ""] + #[doc = " \\param surface The surface where rendering is done."] + #[doc = ""] + #[doc = " \\return A valid rendering context or NULL if there was an error."] + #[doc = ""] + #[doc = " \\sa SDL_CreateRenderer()"] + #[doc = " \\sa SDL_DestroyRenderer()"] + pub fn SDL_CreateSoftwareRenderer(surface: *mut SDL_Surface) -> *mut SDL_Renderer; +} +extern "C" { + #[doc = " \\brief Get the renderer associated with a window."] + pub fn SDL_GetRenderer(window: *mut SDL_Window) -> *mut SDL_Renderer; +} +extern "C" { + #[doc = " \\brief Get information about a rendering context."] + pub fn SDL_GetRendererInfo( + renderer: *mut SDL_Renderer, + info: *mut SDL_RendererInfo, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the output size in pixels of a rendering context."] + pub fn SDL_GetRendererOutputSize( + renderer: *mut SDL_Renderer, + w: *mut libc::c_int, + h: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Create a texture for a rendering context."] + #[doc = ""] + #[doc = " \\param renderer The renderer."] + #[doc = " \\param format The format of the texture."] + #[doc = " \\param access One of the enumerated values in ::SDL_TextureAccess."] + #[doc = " \\param w The width of the texture in pixels."] + #[doc = " \\param h The height of the texture in pixels."] + #[doc = ""] + #[doc = " \\return The created texture is returned, or NULL if no rendering context was"] + #[doc = " active, the format was unsupported, or the width or height were out"] + #[doc = " of range."] + #[doc = ""] + #[doc = " \\note The contents of the texture are not defined at creation."] + #[doc = ""] + #[doc = " \\sa SDL_QueryTexture()"] + #[doc = " \\sa SDL_UpdateTexture()"] + #[doc = " \\sa SDL_DestroyTexture()"] + pub fn SDL_CreateTexture( + renderer: *mut SDL_Renderer, + format: Uint32, + access: libc::c_int, + w: libc::c_int, + h: libc::c_int, + ) -> *mut SDL_Texture; +} +extern "C" { + #[doc = " \\brief Create a texture from an existing surface."] + #[doc = ""] + #[doc = " \\param renderer The renderer."] + #[doc = " \\param surface The surface containing pixel data used to fill the texture."] + #[doc = ""] + #[doc = " \\return The created texture is returned, or NULL on error."] + #[doc = ""] + #[doc = " \\note The surface is not modified or freed by this function."] + #[doc = ""] + #[doc = " \\sa SDL_QueryTexture()"] + #[doc = " \\sa SDL_DestroyTexture()"] + pub fn SDL_CreateTextureFromSurface( + renderer: *mut SDL_Renderer, + surface: *mut SDL_Surface, + ) -> *mut SDL_Texture; +} +extern "C" { + #[doc = " \\brief Query the attributes of a texture"] + #[doc = ""] + #[doc = " \\param texture A texture to be queried."] + #[doc = " \\param format A pointer filled in with the raw format of the texture. The"] + #[doc = " actual format may differ, but pixel transfers will use this"] + #[doc = " format."] + #[doc = " \\param access A pointer filled in with the actual access to the texture."] + #[doc = " \\param w A pointer filled in with the width of the texture in pixels."] + #[doc = " \\param h A pointer filled in with the height of the texture in pixels."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid."] + pub fn SDL_QueryTexture( + texture: *mut SDL_Texture, + format: *mut Uint32, + access: *mut libc::c_int, + w: *mut libc::c_int, + h: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set an additional color value used in render copy operations."] + #[doc = ""] + #[doc = " \\param texture The texture to update."] + #[doc = " \\param r The red color value multiplied into copy operations."] + #[doc = " \\param g The green color value multiplied into copy operations."] + #[doc = " \\param b The blue color value multiplied into copy operations."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid or color modulation"] + #[doc = " is not supported."] + #[doc = ""] + #[doc = " \\sa SDL_GetTextureColorMod()"] + pub fn SDL_SetTextureColorMod( + texture: *mut SDL_Texture, + r: Uint8, + g: Uint8, + b: Uint8, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the additional color value used in render copy operations."] + #[doc = ""] + #[doc = " \\param texture The texture to query."] + #[doc = " \\param r A pointer filled in with the current red color value."] + #[doc = " \\param g A pointer filled in with the current green color value."] + #[doc = " \\param b A pointer filled in with the current blue color value."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid."] + #[doc = ""] + #[doc = " \\sa SDL_SetTextureColorMod()"] + pub fn SDL_GetTextureColorMod( + texture: *mut SDL_Texture, + r: *mut Uint8, + g: *mut Uint8, + b: *mut Uint8, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set an additional alpha value used in render copy operations."] + #[doc = ""] + #[doc = " \\param texture The texture to update."] + #[doc = " \\param alpha The alpha value multiplied into copy operations."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid or alpha modulation"] + #[doc = " is not supported."] + #[doc = ""] + #[doc = " \\sa SDL_GetTextureAlphaMod()"] + pub fn SDL_SetTextureAlphaMod(texture: *mut SDL_Texture, alpha: Uint8) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the additional alpha value used in render copy operations."] + #[doc = ""] + #[doc = " \\param texture The texture to query."] + #[doc = " \\param alpha A pointer filled in with the current alpha value."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid."] + #[doc = ""] + #[doc = " \\sa SDL_SetTextureAlphaMod()"] + pub fn SDL_GetTextureAlphaMod(texture: *mut SDL_Texture, alpha: *mut Uint8) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set the blend mode used for texture copy operations."] + #[doc = ""] + #[doc = " \\param texture The texture to update."] + #[doc = " \\param blendMode ::SDL_BlendMode to use for texture blending."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid or the blend mode is"] + #[doc = " not supported."] + #[doc = ""] + #[doc = " \\note If the blend mode is not supported, the closest supported mode is"] + #[doc = " chosen."] + #[doc = ""] + #[doc = " \\sa SDL_GetTextureBlendMode()"] + pub fn SDL_SetTextureBlendMode( + texture: *mut SDL_Texture, + blendMode: SDL_BlendMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the blend mode used for texture copy operations."] + #[doc = ""] + #[doc = " \\param texture The texture to query."] + #[doc = " \\param blendMode A pointer filled in with the current blend mode."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid."] + #[doc = ""] + #[doc = " \\sa SDL_SetTextureBlendMode()"] + pub fn SDL_GetTextureBlendMode( + texture: *mut SDL_Texture, + blendMode: *mut SDL_BlendMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set the scale mode used for texture scale operations."] + #[doc = ""] + #[doc = " \\param texture The texture to update."] + #[doc = " \\param scaleMode ::SDL_ScaleMode to use for texture scaling."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid."] + #[doc = ""] + #[doc = " \\note If the scale mode is not supported, the closest supported mode is"] + #[doc = " chosen."] + #[doc = ""] + #[doc = " \\sa SDL_GetTextureScaleMode()"] + pub fn SDL_SetTextureScaleMode( + texture: *mut SDL_Texture, + scaleMode: SDL_ScaleMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the scale mode used for texture scale operations."] + #[doc = ""] + #[doc = " \\param texture The texture to query."] + #[doc = " \\param scaleMode A pointer filled in with the current scale mode."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid."] + #[doc = ""] + #[doc = " \\sa SDL_SetTextureScaleMode()"] + pub fn SDL_GetTextureScaleMode( + texture: *mut SDL_Texture, + scaleMode: *mut SDL_ScaleMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Update the given texture rectangle with new pixel data."] + #[doc = ""] + #[doc = " \\param texture The texture to update"] + #[doc = " \\param rect A pointer to the rectangle of pixels to update, or NULL to"] + #[doc = " update the entire texture."] + #[doc = " \\param pixels The raw pixel data in the format of the texture."] + #[doc = " \\param pitch The number of bytes in a row of pixel data, including padding between lines."] + #[doc = ""] + #[doc = " The pixel data must be in the format of the texture. The pixel format can be"] + #[doc = " queried with SDL_QueryTexture."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid."] + #[doc = ""] + #[doc = " \\note This is a fairly slow function."] + pub fn SDL_UpdateTexture( + texture: *mut SDL_Texture, + rect: *const SDL_Rect, + pixels: *const libc::c_void, + pitch: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Update a rectangle within a planar YV12 or IYUV texture with new pixel data."] + #[doc = ""] + #[doc = " \\param texture The texture to update"] + #[doc = " \\param rect A pointer to the rectangle of pixels to update, or NULL to"] + #[doc = " update the entire texture."] + #[doc = " \\param Yplane The raw pixel data for the Y plane."] + #[doc = " \\param Ypitch The number of bytes between rows of pixel data for the Y plane."] + #[doc = " \\param Uplane The raw pixel data for the U plane."] + #[doc = " \\param Upitch The number of bytes between rows of pixel data for the U plane."] + #[doc = " \\param Vplane The raw pixel data for the V plane."] + #[doc = " \\param Vpitch The number of bytes between rows of pixel data for the V plane."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid."] + #[doc = ""] + #[doc = " \\note You can use SDL_UpdateTexture() as long as your pixel data is"] + #[doc = " a contiguous block of Y and U/V planes in the proper order, but"] + #[doc = " this function is available if your pixel data is not contiguous."] + pub fn SDL_UpdateYUVTexture( + texture: *mut SDL_Texture, + rect: *const SDL_Rect, + Yplane: *const Uint8, + Ypitch: libc::c_int, + Uplane: *const Uint8, + Upitch: libc::c_int, + Vplane: *const Uint8, + Vpitch: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Lock a portion of the texture for write-only pixel access."] + #[doc = ""] + #[doc = " \\param texture The texture to lock for access, which was created with"] + #[doc = " ::SDL_TEXTUREACCESS_STREAMING."] + #[doc = " \\param rect A pointer to the rectangle to lock for access. If the rect"] + #[doc = " is NULL, the entire texture will be locked."] + #[doc = " \\param pixels This is filled in with a pointer to the locked pixels,"] + #[doc = " appropriately offset by the locked area."] + #[doc = " \\param pitch This is filled in with the pitch of the locked pixels."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid or was not created with ::SDL_TEXTUREACCESS_STREAMING."] + #[doc = ""] + #[doc = " \\sa SDL_UnlockTexture()"] + pub fn SDL_LockTexture( + texture: *mut SDL_Texture, + rect: *const SDL_Rect, + pixels: *mut *mut libc::c_void, + pitch: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Lock a portion of the texture for write-only pixel access."] + #[doc = " Expose it as a SDL surface."] + #[doc = ""] + #[doc = " \\param texture The texture to lock for access, which was created with"] + #[doc = " ::SDL_TEXTUREACCESS_STREAMING."] + #[doc = " \\param rect A pointer to the rectangle to lock for access. If the rect"] + #[doc = " is NULL, the entire texture will be locked."] + #[doc = " \\param surface This is filled in with a SDL surface representing the locked area"] + #[doc = " Surface is freed internally after calling SDL_UnlockTexture or SDL_DestroyTexture."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the texture is not valid or was not created with ::SDL_TEXTUREACCESS_STREAMING."] + #[doc = ""] + #[doc = " \\sa SDL_UnlockTexture()"] + pub fn SDL_LockTextureToSurface( + texture: *mut SDL_Texture, + rect: *const SDL_Rect, + surface: *mut *mut SDL_Surface, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Unlock a texture, uploading the changes to video memory, if needed."] + #[doc = " If SDL_LockTextureToSurface() was called for locking, the SDL surface is freed."] + #[doc = ""] + #[doc = " \\sa SDL_LockTexture()"] + #[doc = " \\sa SDL_LockTextureToSurface()"] + pub fn SDL_UnlockTexture(texture: *mut SDL_Texture); +} +extern "C" { + #[doc = " \\brief Determines whether a window supports the use of render targets"] + #[doc = ""] + #[doc = " \\param renderer The renderer that will be checked"] + #[doc = ""] + #[doc = " \\return SDL_TRUE if supported, SDL_FALSE if not."] + pub fn SDL_RenderTargetSupported(renderer: *mut SDL_Renderer) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Set a texture as the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer."] + #[doc = " \\param texture The targeted texture, which must be created with the SDL_TEXTUREACCESS_TARGET flag, or NULL for the default render target"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + #[doc = ""] + #[doc = " \\sa SDL_GetRenderTarget()"] + pub fn SDL_SetRenderTarget( + renderer: *mut SDL_Renderer, + texture: *mut SDL_Texture, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the current render target or NULL for the default render target."] + #[doc = ""] + #[doc = " \\return The current render target"] + #[doc = ""] + #[doc = " \\sa SDL_SetRenderTarget()"] + pub fn SDL_GetRenderTarget(renderer: *mut SDL_Renderer) -> *mut SDL_Texture; +} +extern "C" { + #[doc = " \\brief Set device independent resolution for rendering"] + #[doc = ""] + #[doc = " \\param renderer The renderer for which resolution should be set."] + #[doc = " \\param w The width of the logical resolution"] + #[doc = " \\param h The height of the logical resolution"] + #[doc = ""] + #[doc = " This function uses the viewport and scaling functionality to allow a fixed logical"] + #[doc = " resolution for rendering, regardless of the actual output resolution. If the actual"] + #[doc = " output resolution doesn't have the same aspect ratio the output rendering will be"] + #[doc = " centered within the output display."] + #[doc = ""] + #[doc = " If the output display is a window, mouse events in the window will be filtered"] + #[doc = " and scaled so they seem to arrive within the logical resolution."] + #[doc = ""] + #[doc = " \\note If this function results in scaling or subpixel drawing by the"] + #[doc = " rendering backend, it will be handled using the appropriate"] + #[doc = " quality hints."] + #[doc = ""] + #[doc = " \\sa SDL_RenderGetLogicalSize()"] + #[doc = " \\sa SDL_RenderSetScale()"] + #[doc = " \\sa SDL_RenderSetViewport()"] + pub fn SDL_RenderSetLogicalSize( + renderer: *mut SDL_Renderer, + w: libc::c_int, + h: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get device independent resolution for rendering"] + #[doc = ""] + #[doc = " \\param renderer The renderer from which resolution should be queried."] + #[doc = " \\param w A pointer filled with the width of the logical resolution"] + #[doc = " \\param h A pointer filled with the height of the logical resolution"] + #[doc = ""] + #[doc = " \\sa SDL_RenderSetLogicalSize()"] + pub fn SDL_RenderGetLogicalSize( + renderer: *mut SDL_Renderer, + w: *mut libc::c_int, + h: *mut libc::c_int, + ); +} +extern "C" { + #[doc = " \\brief Set whether to force integer scales for resolution-independent rendering"] + #[doc = ""] + #[doc = " \\param renderer The renderer for which integer scaling should be set."] + #[doc = " \\param enable Enable or disable integer scaling"] + #[doc = ""] + #[doc = " This function restricts the logical viewport to integer values - that is, when"] + #[doc = " a resolution is between two multiples of a logical size, the viewport size is"] + #[doc = " rounded down to the lower multiple."] + #[doc = ""] + #[doc = " \\sa SDL_RenderSetLogicalSize()"] + pub fn SDL_RenderSetIntegerScale(renderer: *mut SDL_Renderer, enable: SDL_bool) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get whether integer scales are forced for resolution-independent rendering"] + #[doc = ""] + #[doc = " \\param renderer The renderer from which integer scaling should be queried."] + #[doc = ""] + #[doc = " \\sa SDL_RenderSetIntegerScale()"] + pub fn SDL_RenderGetIntegerScale(renderer: *mut SDL_Renderer) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Set the drawing area for rendering on the current target."] + #[doc = ""] + #[doc = " \\param renderer The renderer for which the drawing area should be set."] + #[doc = " \\param rect The rectangle representing the drawing area, or NULL to set the viewport to the entire target."] + #[doc = ""] + #[doc = " The x,y of the viewport rect represents the origin for rendering."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + #[doc = ""] + #[doc = " \\note If the window associated with the renderer is resized, the viewport is automatically reset."] + #[doc = ""] + #[doc = " \\sa SDL_RenderGetViewport()"] + #[doc = " \\sa SDL_RenderSetLogicalSize()"] + pub fn SDL_RenderSetViewport(renderer: *mut SDL_Renderer, rect: *const SDL_Rect) + -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the drawing area for the current target."] + #[doc = ""] + #[doc = " \\sa SDL_RenderSetViewport()"] + pub fn SDL_RenderGetViewport(renderer: *mut SDL_Renderer, rect: *mut SDL_Rect); +} +extern "C" { + #[doc = " \\brief Set the clip rectangle for the current target."] + #[doc = ""] + #[doc = " \\param renderer The renderer for which clip rectangle should be set."] + #[doc = " \\param rect A pointer to the rectangle to set as the clip rectangle,"] + #[doc = " relative to the viewport, or NULL to disable clipping."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + #[doc = ""] + #[doc = " \\sa SDL_RenderGetClipRect()"] + pub fn SDL_RenderSetClipRect(renderer: *mut SDL_Renderer, rect: *const SDL_Rect) + -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the clip rectangle for the current target."] + #[doc = ""] + #[doc = " \\param renderer The renderer from which clip rectangle should be queried."] + #[doc = " \\param rect A pointer filled in with the current clip rectangle, or"] + #[doc = " an empty rectangle if clipping is disabled."] + #[doc = ""] + #[doc = " \\sa SDL_RenderSetClipRect()"] + pub fn SDL_RenderGetClipRect(renderer: *mut SDL_Renderer, rect: *mut SDL_Rect); +} +extern "C" { + #[doc = " \\brief Get whether clipping is enabled on the given renderer."] + #[doc = ""] + #[doc = " \\param renderer The renderer from which clip state should be queried."] + #[doc = ""] + #[doc = " \\sa SDL_RenderGetClipRect()"] + pub fn SDL_RenderIsClipEnabled(renderer: *mut SDL_Renderer) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Set the drawing scale for rendering on the current target."] + #[doc = ""] + #[doc = " \\param renderer The renderer for which the drawing scale should be set."] + #[doc = " \\param scaleX The horizontal scaling factor"] + #[doc = " \\param scaleY The vertical scaling factor"] + #[doc = ""] + #[doc = " The drawing coordinates are scaled by the x/y scaling factors"] + #[doc = " before they are used by the renderer. This allows resolution"] + #[doc = " independent drawing with a single coordinate system."] + #[doc = ""] + #[doc = " \\note If this results in scaling or subpixel drawing by the"] + #[doc = " rendering backend, it will be handled using the appropriate"] + #[doc = " quality hints. For best results use integer scaling factors."] + #[doc = ""] + #[doc = " \\sa SDL_RenderGetScale()"] + #[doc = " \\sa SDL_RenderSetLogicalSize()"] + pub fn SDL_RenderSetScale(renderer: *mut SDL_Renderer, scaleX: f32, scaleY: f32) + -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the drawing scale for the current target."] + #[doc = ""] + #[doc = " \\param renderer The renderer from which drawing scale should be queried."] + #[doc = " \\param scaleX A pointer filled in with the horizontal scaling factor"] + #[doc = " \\param scaleY A pointer filled in with the vertical scaling factor"] + #[doc = ""] + #[doc = " \\sa SDL_RenderSetScale()"] + pub fn SDL_RenderGetScale(renderer: *mut SDL_Renderer, scaleX: *mut f32, scaleY: *mut f32); +} +extern "C" { + #[doc = " \\brief Set the color used for drawing operations (Rect, Line and Clear)."] + #[doc = ""] + #[doc = " \\param renderer The renderer for which drawing color should be set."] + #[doc = " \\param r The red value used to draw on the rendering target."] + #[doc = " \\param g The green value used to draw on the rendering target."] + #[doc = " \\param b The blue value used to draw on the rendering target."] + #[doc = " \\param a The alpha value used to draw on the rendering target, usually"] + #[doc = " ::SDL_ALPHA_OPAQUE (255)."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_SetRenderDrawColor( + renderer: *mut SDL_Renderer, + r: Uint8, + g: Uint8, + b: Uint8, + a: Uint8, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the color used for drawing operations (Rect, Line and Clear)."] + #[doc = ""] + #[doc = " \\param renderer The renderer from which drawing color should be queried."] + #[doc = " \\param r A pointer to the red value used to draw on the rendering target."] + #[doc = " \\param g A pointer to the green value used to draw on the rendering target."] + #[doc = " \\param b A pointer to the blue value used to draw on the rendering target."] + #[doc = " \\param a A pointer to the alpha value used to draw on the rendering target,"] + #[doc = " usually ::SDL_ALPHA_OPAQUE (255)."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_GetRenderDrawColor( + renderer: *mut SDL_Renderer, + r: *mut Uint8, + g: *mut Uint8, + b: *mut Uint8, + a: *mut Uint8, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Set the blend mode used for drawing operations (Fill and Line)."] + #[doc = ""] + #[doc = " \\param renderer The renderer for which blend mode should be set."] + #[doc = " \\param blendMode ::SDL_BlendMode to use for blending."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + #[doc = ""] + #[doc = " \\note If the blend mode is not supported, the closest supported mode is"] + #[doc = " chosen."] + #[doc = ""] + #[doc = " \\sa SDL_GetRenderDrawBlendMode()"] + pub fn SDL_SetRenderDrawBlendMode( + renderer: *mut SDL_Renderer, + blendMode: SDL_BlendMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the blend mode used for drawing operations."] + #[doc = ""] + #[doc = " \\param renderer The renderer from which blend mode should be queried."] + #[doc = " \\param blendMode A pointer filled in with the current blend mode."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + #[doc = ""] + #[doc = " \\sa SDL_SetRenderDrawBlendMode()"] + pub fn SDL_GetRenderDrawBlendMode( + renderer: *mut SDL_Renderer, + blendMode: *mut SDL_BlendMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Clear the current rendering target with the drawing color"] + #[doc = ""] + #[doc = " This function clears the entire rendering target, ignoring the viewport and"] + #[doc = " the clip rectangle."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderClear(renderer: *mut SDL_Renderer) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw a point on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw a point."] + #[doc = " \\param x The x coordinate of the point."] + #[doc = " \\param y The y coordinate of the point."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawPoint( + renderer: *mut SDL_Renderer, + x: libc::c_int, + y: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw multiple points on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw multiple points."] + #[doc = " \\param points The points to draw"] + #[doc = " \\param count The number of points to draw"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawPoints( + renderer: *mut SDL_Renderer, + points: *const SDL_Point, + count: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw a line on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw a line."] + #[doc = " \\param x1 The x coordinate of the start point."] + #[doc = " \\param y1 The y coordinate of the start point."] + #[doc = " \\param x2 The x coordinate of the end point."] + #[doc = " \\param y2 The y coordinate of the end point."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawLine( + renderer: *mut SDL_Renderer, + x1: libc::c_int, + y1: libc::c_int, + x2: libc::c_int, + y2: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw a series of connected lines on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw multiple lines."] + #[doc = " \\param points The points along the lines"] + #[doc = " \\param count The number of points, drawing count-1 lines"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawLines( + renderer: *mut SDL_Renderer, + points: *const SDL_Point, + count: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw a rectangle on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw a rectangle."] + #[doc = " \\param rect A pointer to the destination rectangle, or NULL to outline the entire rendering target."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawRect(renderer: *mut SDL_Renderer, rect: *const SDL_Rect) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw some number of rectangles on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw multiple rectangles."] + #[doc = " \\param rects A pointer to an array of destination rectangles."] + #[doc = " \\param count The number of rectangles."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawRects( + renderer: *mut SDL_Renderer, + rects: *const SDL_Rect, + count: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Fill a rectangle on the current rendering target with the drawing color."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should fill a rectangle."] + #[doc = " \\param rect A pointer to the destination rectangle, or NULL for the entire"] + #[doc = " rendering target."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderFillRect(renderer: *mut SDL_Renderer, rect: *const SDL_Rect) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Fill some number of rectangles on the current rendering target with the drawing color."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should fill multiple rectangles."] + #[doc = " \\param rects A pointer to an array of destination rectangles."] + #[doc = " \\param count The number of rectangles."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderFillRects( + renderer: *mut SDL_Renderer, + rects: *const SDL_Rect, + count: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Copy a portion of the texture to the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should copy parts of a texture."] + #[doc = " \\param texture The source texture."] + #[doc = " \\param srcrect A pointer to the source rectangle, or NULL for the entire"] + #[doc = " texture."] + #[doc = " \\param dstrect A pointer to the destination rectangle, or NULL for the"] + #[doc = " entire rendering target."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderCopy( + renderer: *mut SDL_Renderer, + texture: *mut SDL_Texture, + srcrect: *const SDL_Rect, + dstrect: *const SDL_Rect, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Copy a portion of the source texture to the current rendering target, rotating it by angle around the given center"] + #[doc = ""] + #[doc = " \\param renderer The renderer which should copy parts of a texture."] + #[doc = " \\param texture The source texture."] + #[doc = " \\param srcrect A pointer to the source rectangle, or NULL for the entire"] + #[doc = " texture."] + #[doc = " \\param dstrect A pointer to the destination rectangle, or NULL for the"] + #[doc = " entire rendering target."] + #[doc = " \\param angle An angle in degrees that indicates the rotation that will be applied to dstrect, rotating it in a clockwise direction"] + #[doc = " \\param center A pointer to a point indicating the point around which dstrect will be rotated (if NULL, rotation will be done around dstrect.w/2, dstrect.h/2)."] + #[doc = " \\param flip An SDL_RendererFlip value stating which flipping actions should be performed on the texture"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderCopyEx( + renderer: *mut SDL_Renderer, + texture: *mut SDL_Texture, + srcrect: *const SDL_Rect, + dstrect: *const SDL_Rect, + angle: f64, + center: *const SDL_Point, + flip: SDL_RendererFlip, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw a point on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw a point."] + #[doc = " \\param x The x coordinate of the point."] + #[doc = " \\param y The y coordinate of the point."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawPointF(renderer: *mut SDL_Renderer, x: f32, y: f32) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw multiple points on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw multiple points."] + #[doc = " \\param points The points to draw"] + #[doc = " \\param count The number of points to draw"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawPointsF( + renderer: *mut SDL_Renderer, + points: *const SDL_FPoint, + count: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw a line on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw a line."] + #[doc = " \\param x1 The x coordinate of the start point."] + #[doc = " \\param y1 The y coordinate of the start point."] + #[doc = " \\param x2 The x coordinate of the end point."] + #[doc = " \\param y2 The y coordinate of the end point."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawLineF( + renderer: *mut SDL_Renderer, + x1: f32, + y1: f32, + x2: f32, + y2: f32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw a series of connected lines on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw multiple lines."] + #[doc = " \\param points The points along the lines"] + #[doc = " \\param count The number of points, drawing count-1 lines"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawLinesF( + renderer: *mut SDL_Renderer, + points: *const SDL_FPoint, + count: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw a rectangle on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw a rectangle."] + #[doc = " \\param rect A pointer to the destination rectangle, or NULL to outline the entire rendering target."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawRectF(renderer: *mut SDL_Renderer, rect: *const SDL_FRect) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Draw some number of rectangles on the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should draw multiple rectangles."] + #[doc = " \\param rects A pointer to an array of destination rectangles."] + #[doc = " \\param count The number of rectangles."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderDrawRectsF( + renderer: *mut SDL_Renderer, + rects: *const SDL_FRect, + count: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Fill a rectangle on the current rendering target with the drawing color."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should fill a rectangle."] + #[doc = " \\param rect A pointer to the destination rectangle, or NULL for the entire"] + #[doc = " rendering target."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderFillRectF(renderer: *mut SDL_Renderer, rect: *const SDL_FRect) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Fill some number of rectangles on the current rendering target with the drawing color."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should fill multiple rectangles."] + #[doc = " \\param rects A pointer to an array of destination rectangles."] + #[doc = " \\param count The number of rectangles."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderFillRectsF( + renderer: *mut SDL_Renderer, + rects: *const SDL_FRect, + count: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Copy a portion of the texture to the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer which should copy parts of a texture."] + #[doc = " \\param texture The source texture."] + #[doc = " \\param srcrect A pointer to the source rectangle, or NULL for the entire"] + #[doc = " texture."] + #[doc = " \\param dstrect A pointer to the destination rectangle, or NULL for the"] + #[doc = " entire rendering target."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderCopyF( + renderer: *mut SDL_Renderer, + texture: *mut SDL_Texture, + srcrect: *const SDL_Rect, + dstrect: *const SDL_FRect, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Copy a portion of the source texture to the current rendering target, rotating it by angle around the given center"] + #[doc = ""] + #[doc = " \\param renderer The renderer which should copy parts of a texture."] + #[doc = " \\param texture The source texture."] + #[doc = " \\param srcrect A pointer to the source rectangle, or NULL for the entire"] + #[doc = " texture."] + #[doc = " \\param dstrect A pointer to the destination rectangle, or NULL for the"] + #[doc = " entire rendering target."] + #[doc = " \\param angle An angle in degrees that indicates the rotation that will be applied to dstrect, rotating it in a clockwise direction"] + #[doc = " \\param center A pointer to a point indicating the point around which dstrect will be rotated (if NULL, rotation will be done around dstrect.w/2, dstrect.h/2)."] + #[doc = " \\param flip An SDL_RendererFlip value stating which flipping actions should be performed on the texture"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 on error"] + pub fn SDL_RenderCopyExF( + renderer: *mut SDL_Renderer, + texture: *mut SDL_Texture, + srcrect: *const SDL_Rect, + dstrect: *const SDL_FRect, + angle: f64, + center: *const SDL_FPoint, + flip: SDL_RendererFlip, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Read pixels from the current rendering target."] + #[doc = ""] + #[doc = " \\param renderer The renderer from which pixels should be read."] + #[doc = " \\param rect A pointer to the rectangle to read, or NULL for the entire"] + #[doc = " render target."] + #[doc = " \\param format The desired format of the pixel data, or 0 to use the format"] + #[doc = " of the rendering target"] + #[doc = " \\param pixels A pointer to be filled in with the pixel data"] + #[doc = " \\param pitch The pitch of the pixels parameter."] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if pixel reading is not supported."] + #[doc = ""] + #[doc = " \\warning This is a very slow operation, and should not be used frequently."] + pub fn SDL_RenderReadPixels( + renderer: *mut SDL_Renderer, + rect: *const SDL_Rect, + format: Uint32, + pixels: *mut libc::c_void, + pitch: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Update the screen with rendering performed."] + pub fn SDL_RenderPresent(renderer: *mut SDL_Renderer); +} +extern "C" { + #[doc = " \\brief Destroy the specified texture."] + #[doc = ""] + #[doc = " \\sa SDL_CreateTexture()"] + #[doc = " \\sa SDL_CreateTextureFromSurface()"] + pub fn SDL_DestroyTexture(texture: *mut SDL_Texture); +} +extern "C" { + #[doc = " \\brief Destroy the rendering context for a window and free associated"] + #[doc = " textures."] + #[doc = ""] + #[doc = " \\sa SDL_CreateRenderer()"] + pub fn SDL_DestroyRenderer(renderer: *mut SDL_Renderer); +} +extern "C" { + #[doc = " \\brief Force the rendering context to flush any pending commands to the"] + #[doc = " underlying rendering API."] + #[doc = ""] + #[doc = " You do not need to (and in fact, shouldn't) call this function unless"] + #[doc = " you are planning to call into OpenGL/Direct3D/Metal/whatever directly"] + #[doc = " in addition to using an SDL_Renderer."] + #[doc = ""] + #[doc = " This is for a very-specific case: if you are using SDL's render API,"] + #[doc = " you asked for a specific renderer backend (OpenGL, Direct3D, etc),"] + #[doc = " you set SDL_HINT_RENDER_BATCHING to \"1\", and you plan to make"] + #[doc = " OpenGL/D3D/whatever calls in addition to SDL render API calls. If all of"] + #[doc = " this applies, you should call SDL_RenderFlush() between calls to SDL's"] + #[doc = " render API and the low-level API you're using in cooperation."] + #[doc = ""] + #[doc = " In all other cases, you can ignore this function. This is only here to"] + #[doc = " get maximum performance out of a specific situation. In all other cases,"] + #[doc = " SDL will do the right thing, perhaps at a performance loss."] + #[doc = ""] + #[doc = " This function is first available in SDL 2.0.10, and is not needed in"] + #[doc = " 2.0.9 and earlier, as earlier versions did not queue rendering commands"] + #[doc = " at all, instead flushing them to the OS immediately."] + pub fn SDL_RenderFlush(renderer: *mut SDL_Renderer) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Bind the texture to the current OpenGL/ES/ES2 context for use with"] + #[doc = " OpenGL instructions."] + #[doc = ""] + #[doc = " \\param texture The SDL texture to bind"] + #[doc = " \\param texw A pointer to a float that will be filled with the texture width"] + #[doc = " \\param texh A pointer to a float that will be filled with the texture height"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the operation is not supported"] + pub fn SDL_GL_BindTexture( + texture: *mut SDL_Texture, + texw: *mut f32, + texh: *mut f32, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Unbind a texture from the current OpenGL/ES/ES2 context."] + #[doc = ""] + #[doc = " \\param texture The SDL texture to unbind"] + #[doc = ""] + #[doc = " \\return 0 on success, or -1 if the operation is not supported"] + pub fn SDL_GL_UnbindTexture(texture: *mut SDL_Texture) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the CAMetalLayer associated with the given Metal renderer"] + #[doc = ""] + #[doc = " \\param renderer The renderer to query"] + #[doc = ""] + #[doc = " \\return CAMetalLayer* on success, or NULL if the renderer isn't a Metal renderer"] + #[doc = ""] + #[doc = " \\sa SDL_RenderGetMetalCommandEncoder()"] + pub fn SDL_RenderGetMetalLayer(renderer: *mut SDL_Renderer) -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Get the Metal command encoder for the current frame"] + #[doc = ""] + #[doc = " \\param renderer The renderer to query"] + #[doc = ""] + #[doc = " \\return id on success, or NULL if the renderer isn't a Metal renderer"] + #[doc = ""] + #[doc = " \\sa SDL_RenderGetMetalLayer()"] + pub fn SDL_RenderGetMetalCommandEncoder(renderer: *mut SDL_Renderer) -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Create a window that can be shaped with the specified position, dimensions, and flags."] + #[doc = ""] + #[doc = " \\param title The title of the window, in UTF-8 encoding."] + #[doc = " \\param x The x position of the window, ::SDL_WINDOWPOS_CENTERED, or"] + #[doc = " ::SDL_WINDOWPOS_UNDEFINED."] + #[doc = " \\param y The y position of the window, ::SDL_WINDOWPOS_CENTERED, or"] + #[doc = " ::SDL_WINDOWPOS_UNDEFINED."] + #[doc = " \\param w The width of the window."] + #[doc = " \\param h The height of the window."] + #[doc = " \\param flags The flags for the window, a mask of SDL_WINDOW_BORDERLESS with any of the following:"] + #[doc = " ::SDL_WINDOW_OPENGL, ::SDL_WINDOW_INPUT_GRABBED,"] + #[doc = " ::SDL_WINDOW_HIDDEN, ::SDL_WINDOW_RESIZABLE,"] + #[doc = " ::SDL_WINDOW_MAXIMIZED, ::SDL_WINDOW_MINIMIZED,"] + #[doc = " ::SDL_WINDOW_BORDERLESS is always set, and ::SDL_WINDOW_FULLSCREEN is always unset."] + #[doc = ""] + #[doc = " \\return The window created, or NULL if window creation failed."] + #[doc = ""] + #[doc = " \\sa SDL_DestroyWindow()"] + pub fn SDL_CreateShapedWindow( + title: *const libc::c_char, + x: libc::c_uint, + y: libc::c_uint, + w: libc::c_uint, + h: libc::c_uint, + flags: Uint32, + ) -> *mut SDL_Window; +} +extern "C" { + #[doc = " \\brief Return whether the given window is a shaped window."] + #[doc = ""] + #[doc = " \\param window The window to query for being shaped."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the window is a window that can be shaped, SDL_FALSE if the window is unshaped or NULL."] + #[doc = ""] + #[doc = " \\sa SDL_CreateShapedWindow"] + pub fn SDL_IsShapedWindow(window: *const SDL_Window) -> SDL_bool; +} +#[repr(u32)] +#[doc = " \\brief An enum denoting the specific type of contents present in an SDL_WindowShapeParams union."] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum WindowShapeMode { + #[doc = " \\brief The default mode, a binarized alpha cutoff of 1."] + ShapeModeDefault = 0, + #[doc = " \\brief A binarized alpha cutoff with a given integer value."] + ShapeModeBinarizeAlpha = 1, + #[doc = " \\brief A binarized alpha cutoff with a given integer value, but with the opposite comparison."] + ShapeModeReverseBinarizeAlpha = 2, + #[doc = " \\brief A color key is applied."] + ShapeModeColorKey = 3, +} +#[doc = " \\brief A union containing parameters for shaped windows."] +#[repr(C)] +#[derive(Copy, Clone)] +pub union SDL_WindowShapeParams { + #[doc = " \\brief A cutoff alpha value for binarization of the window shape's alpha channel."] + pub binarizationCutoff: Uint8, + pub colorKey: SDL_Color, + _bindgen_union_align: [u8; 4usize], +} +#[test] +fn bindgen_test_layout_SDL_WindowShapeParams() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(SDL_WindowShapeParams)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(SDL_WindowShapeParams)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).binarizationCutoff as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowShapeParams), + "::", + stringify!(binarizationCutoff) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).colorKey as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowShapeParams), + "::", + stringify!(colorKey) + ) + ); +} +#[doc = " \\brief A struct that tags the SDL_WindowShapeParams union with an enum describing the type of its contents."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_WindowShapeMode { + #[doc = " \\brief The mode of these window-shape parameters."] + pub mode: WindowShapeMode, + #[doc = " \\brief Window-shape parameters."] + pub parameters: SDL_WindowShapeParams, +} +#[test] +fn bindgen_test_layout_SDL_WindowShapeMode() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(SDL_WindowShapeMode)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(SDL_WindowShapeMode)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).mode as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowShapeMode), + "::", + stringify!(mode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).parameters as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_WindowShapeMode), + "::", + stringify!(parameters) + ) + ); +} +extern "C" { + #[doc = " \\brief Set the shape and parameters of a shaped window."] + #[doc = ""] + #[doc = " \\param window The shaped window whose parameters should be set."] + #[doc = " \\param shape A surface encoding the desired shape for the window."] + #[doc = " \\param shape_mode The parameters to set for the shaped window."] + #[doc = ""] + #[doc = " \\return 0 on success, SDL_INVALID_SHAPE_ARGUMENT on an invalid shape argument, or SDL_NONSHAPEABLE_WINDOW"] + #[doc = " if the SDL_Window given does not reference a valid shaped window."] + #[doc = ""] + #[doc = " \\sa SDL_WindowShapeMode"] + #[doc = " \\sa SDL_GetShapedWindowMode."] + pub fn SDL_SetWindowShape( + window: *mut SDL_Window, + shape: *mut SDL_Surface, + shape_mode: *mut SDL_WindowShapeMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the shape parameters of a shaped window."] + #[doc = ""] + #[doc = " \\param window The shaped window whose parameters should be retrieved."] + #[doc = " \\param shape_mode An empty shape-mode structure to fill, or NULL to check whether the window has a shape."] + #[doc = ""] + #[doc = " \\return 0 if the window has a shape and, provided shape_mode was not NULL, shape_mode has been filled with the mode"] + #[doc = " data, SDL_NONSHAPEABLE_WINDOW if the SDL_Window given is not a shaped window, or SDL_WINDOW_LACKS_SHAPE if"] + #[doc = " the SDL_Window given is a shapeable window currently lacking a shape."] + #[doc = ""] + #[doc = " \\sa SDL_WindowShapeMode"] + #[doc = " \\sa SDL_SetWindowShape"] + pub fn SDL_GetShapedWindowMode( + window: *mut SDL_Window, + shape_mode: *mut SDL_WindowShapeMode, + ) -> libc::c_int; +} +extern "C" { + #[doc = "\\brief Sets the UNIX nice value for a thread, using setpriority() if possible, and RealtimeKit if available."] + #[doc = ""] + #[doc = "\\return 0 on success, or -1 on error."] + pub fn SDL_LinuxSetThreadPriority(threadID: Sint64, priority: libc::c_int) -> libc::c_int; +} +extern "C" { + #[doc = "\\brief Return true if the current device is a tablet."] + pub fn SDL_IsTablet() -> SDL_bool; +} +extern "C" { + pub fn SDL_OnApplicationWillTerminate(); +} +extern "C" { + pub fn SDL_OnApplicationDidReceiveMemoryWarning(); +} +extern "C" { + pub fn SDL_OnApplicationWillResignActive(); +} +extern "C" { + pub fn SDL_OnApplicationDidEnterBackground(); +} +extern "C" { + pub fn SDL_OnApplicationWillEnterForeground(); +} +extern "C" { + pub fn SDL_OnApplicationDidBecomeActive(); +} +extern "C" { + #[doc = " \\brief Get the number of milliseconds since the SDL library initialization."] + #[doc = ""] + #[doc = " \\note This value wraps if the program runs for more than ~49 days."] + pub fn SDL_GetTicks() -> Uint32; +} +extern "C" { + #[doc = " \\brief Get the current value of the high resolution counter"] + pub fn SDL_GetPerformanceCounter() -> Uint64; +} +extern "C" { + #[doc = " \\brief Get the count per second of the high resolution counter"] + pub fn SDL_GetPerformanceFrequency() -> Uint64; +} +extern "C" { + #[doc = " \\brief Wait a specified number of milliseconds before returning."] + pub fn SDL_Delay(ms: Uint32); +} +#[doc = " Function prototype for the timer callback function."] +#[doc = ""] +#[doc = " The callback function is passed the current timer interval and returns"] +#[doc = " the next timer interval. If the returned value is the same as the one"] +#[doc = " passed in, the periodic alarm continues, otherwise a new alarm is"] +#[doc = " scheduled. If the callback returns 0, the periodic alarm is cancelled."] +pub type SDL_TimerCallback = ::core::option::Option< + unsafe extern "C" fn(interval: Uint32, param: *mut libc::c_void) -> Uint32, +>; +#[doc = " Definition of the timer ID type."] +pub type SDL_TimerID = libc::c_int; +extern "C" { + #[doc = " \\brief Add a new timer to the pool of timers already running."] + #[doc = ""] + #[doc = " \\return A timer ID, or 0 when an error occurs."] + pub fn SDL_AddTimer( + interval: Uint32, + callback: SDL_TimerCallback, + param: *mut libc::c_void, + ) -> SDL_TimerID; +} +extern "C" { + #[doc = " \\brief Remove a timer knowing its ID."] + #[doc = ""] + #[doc = " \\return A boolean value indicating success or failure."] + #[doc = ""] + #[doc = " \\warning It is not safe to remove a timer multiple times."] + pub fn SDL_RemoveTimer(id: SDL_TimerID) -> SDL_bool; +} +#[doc = " \\brief Information the version of SDL in use."] +#[doc = ""] +#[doc = " Represents the library's version as three levels: major revision"] +#[doc = " (increments with massive changes, additions, and enhancements),"] +#[doc = " minor revision (increments with backwards-compatible changes to the"] +#[doc = " major revision), and patchlevel (increments with fixes to the minor"] +#[doc = " revision)."] +#[doc = ""] +#[doc = " \\sa SDL_VERSION"] +#[doc = " \\sa SDL_GetVersion"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_version { + #[doc = "< major version"] + pub major: Uint8, + #[doc = "< minor version"] + pub minor: Uint8, + #[doc = "< update version"] + pub patch: Uint8, +} +#[test] +fn bindgen_test_layout_SDL_version() { + assert_eq!( + ::core::mem::size_of::(), + 3usize, + concat!("Size of: ", stringify!(SDL_version)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(SDL_version)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).major as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_version), + "::", + stringify!(major) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).minor as *const _ as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(SDL_version), + "::", + stringify!(minor) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).patch as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(SDL_version), + "::", + stringify!(patch) + ) + ); +} +extern "C" { + #[doc = " \\brief Get the version of SDL that is linked against your program."] + #[doc = ""] + #[doc = " If you are linking to SDL dynamically, then it is possible that the"] + #[doc = " current version will be different than the version you compiled against."] + #[doc = " This function returns the current version, while SDL_VERSION() is a"] + #[doc = " macro that tells you what version you compiled with."] + #[doc = ""] + #[doc = " \\code"] + #[doc = " SDL_version compiled;"] + #[doc = " SDL_version linked;"] + #[doc = ""] + #[doc = " SDL_VERSION(&compiled);"] + #[doc = " SDL_GetVersion(&linked);"] + #[doc = " printf(\"We compiled against SDL version %d.%d.%d ...\\n\","] + #[doc = " compiled.major, compiled.minor, compiled.patch);"] + #[doc = " printf(\"But we linked against SDL version %d.%d.%d.\\n\","] + #[doc = " linked.major, linked.minor, linked.patch);"] + #[doc = " \\endcode"] + #[doc = ""] + #[doc = " This function may be called safely at any time, even before SDL_Init()."] + #[doc = ""] + #[doc = " \\sa SDL_VERSION"] + pub fn SDL_GetVersion(ver: *mut SDL_version); +} +extern "C" { + #[doc = " \\brief Get the code revision of SDL that is linked against your program."] + #[doc = ""] + #[doc = " Returns an arbitrary string (a hash value) uniquely identifying the"] + #[doc = " exact revision of the SDL library in use, and is only useful in comparing"] + #[doc = " against other revisions. It is NOT an incrementing number."] + pub fn SDL_GetRevision() -> *const libc::c_char; +} +extern "C" { + #[doc = " \\brief Get the revision number of SDL that is linked against your program."] + #[doc = ""] + #[doc = " Returns a number uniquely identifying the exact revision of the SDL"] + #[doc = " library in use. It is an incrementing number based on commits to"] + #[doc = " hg.libsdl.org."] + pub fn SDL_GetRevisionNumber() -> libc::c_int; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_Locale { + #[doc = "< A language name, like \"en\" for English."] + pub language: *const libc::c_char, + #[doc = "< A country, like \"US\" for America. Can be NULL."] + pub country: *const libc::c_char, +} +#[test] +fn bindgen_test_layout_SDL_Locale() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(SDL_Locale)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_Locale)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).language as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_Locale), + "::", + stringify!(language) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).country as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_Locale), + "::", + stringify!(country) + ) + ); +} +extern "C" { + #[doc = " \\brief Report the user's preferred locale."] + #[doc = ""] + #[doc = " This returns an array of SDL_Locale structs, the final item zeroed out."] + #[doc = " When the caller is done with this array, it should call SDL_free() on"] + #[doc = " the returned value; all the memory involved is allocated in a single"] + #[doc = " block, so a single SDL_free() will suffice."] + #[doc = ""] + #[doc = " Returned language strings are in the format xx, where 'xx' is an ISO-639"] + #[doc = " language specifier (such as \"en\" for English, \"de\" for German, etc)."] + #[doc = " Country strings are in the format YY, where \"YY\" is an ISO-3166 country"] + #[doc = " code (such as \"US\" for the United States, \"CA\" for Canada, etc). Country"] + #[doc = " might be NULL if there's no specific guidance on them (so you might get"] + #[doc = " { \"en\", \"US\" } for American English, but { \"en\", NULL } means \"English"] + #[doc = " language, generically\"). Language strings are never NULL, except to"] + #[doc = " terminate the array."] + #[doc = ""] + #[doc = " Please note that not all of these strings are 2 characters; some are"] + #[doc = " three or more."] + #[doc = ""] + #[doc = " The returned list of locales are in the order of the user's preference."] + #[doc = " For example, a German citizen that is fluent in US English and knows"] + #[doc = " enough Japanese to navigate around Tokyo might have a list like:"] + #[doc = " { \"de\", \"en_US\", \"jp\", NULL }. Someone from England might prefer British"] + #[doc = " English (where \"color\" is spelled \"colour\", etc), but will settle for"] + #[doc = " anything like it: { \"en_GB\", \"en\", NULL }."] + #[doc = ""] + #[doc = " This function returns NULL on error, including when the platform does not"] + #[doc = " supply this information at all."] + #[doc = ""] + #[doc = " This might be a \"slow\" call that has to query the operating system. It's"] + #[doc = " best to ask for this once and save the results. However, this list can"] + #[doc = " change, usually because the user has changed a system preference outside"] + #[doc = " of your program; SDL will send an SDL_LOCALECHANGED event in this case,"] + #[doc = " if possible, and you can call this function again to get an updated copy"] + #[doc = " of preferred locales."] + #[doc = ""] + #[doc = " \\return array of locales, terminated with a locale with a NULL language"] + #[doc = " field. Will return NULL on error."] + pub fn SDL_GetPreferredLocales() -> *mut SDL_Locale; +} +extern "C" { + #[doc = " \\brief Open an URL / URI in the browser or other"] + #[doc = ""] + #[doc = " Open a URL in a separate, system-provided application. How this works will"] + #[doc = " vary wildly depending on the platform. This will likely launch what"] + #[doc = " makes sense to handle a specific URL's protocol (a web browser for http://,"] + #[doc = " etc), but it might also be able to launch file managers for directories"] + #[doc = " and other things."] + #[doc = ""] + #[doc = " What happens when you open a URL varies wildly as well: your game window"] + #[doc = " may lose focus (and may or may not lose focus if your game was fullscreen"] + #[doc = " or grabbing input at the time). On mobile devices, your app will likely"] + #[doc = " move to the background or your process might be paused. Any given platform"] + #[doc = " may or may not handle a given URL."] + #[doc = ""] + #[doc = " If this is unimplemented (or simply unavailable) for a platform, this will"] + #[doc = " fail with an error. A successful result does not mean the URL loaded, just"] + #[doc = " that we launched something to handle it (or at least believe we did)."] + #[doc = ""] + #[doc = " All this to say: this function can be useful, but you should definitely"] + #[doc = " test it on every platform you target."] + #[doc = ""] + #[doc = " \\param url A valid URL to open."] + #[doc = " \\return 0 on success, or -1 on error."] + pub fn SDL_OpenURL(url: *const libc::c_char) -> libc::c_int; +} +extern "C" { + #[doc = " This function initializes the subsystems specified by \\c flags"] + pub fn SDL_Init(flags: Uint32) -> libc::c_int; +} +extern "C" { + #[doc = " This function initializes specific SDL subsystems"] + #[doc = ""] + #[doc = " Subsystem initialization is ref-counted, you must call"] + #[doc = " SDL_QuitSubSystem() for each SDL_InitSubSystem() to correctly"] + #[doc = " shutdown a subsystem manually (or call SDL_Quit() to force shutdown)."] + #[doc = " If a subsystem is already loaded then this call will"] + #[doc = " increase the ref-count and return."] + pub fn SDL_InitSubSystem(flags: Uint32) -> libc::c_int; +} +extern "C" { + #[doc = " This function cleans up specific SDL subsystems"] + pub fn SDL_QuitSubSystem(flags: Uint32); +} +extern "C" { + #[doc = " This function returns a mask of the specified subsystems which have"] + #[doc = " previously been initialized."] + #[doc = ""] + #[doc = " If \\c flags is 0, it returns a mask of all initialized subsystems."] + pub fn SDL_WasInit(flags: Uint32) -> Uint32; +} +extern "C" { + #[doc = " This function cleans up all initialized subsystems. You should"] + #[doc = " call it upon all exit conditions."] + pub fn SDL_Quit(); +} +pub type XID = libc::c_ulong; +pub type Mask = libc::c_ulong; +pub type Atom = libc::c_ulong; +pub type VisualID = libc::c_ulong; +pub type Time = libc::c_ulong; +pub type Window = XID; +pub type Drawable = XID; +pub type Font = XID; +pub type Pixmap = XID; +pub type Cursor = XID; +pub type Colormap = XID; +pub type GContext = XID; +pub type KeySym = XID; +pub type KeyCode = libc::c_uchar; +extern "C" { + pub fn _Xmblen(str: *mut libc::c_char, len: libc::c_int) -> libc::c_int; +} +pub type XPointer = *mut libc::c_char; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XExtData { + pub number: libc::c_int, + pub next: *mut _XExtData, + pub free_private: + ::core::option::Option libc::c_int>, + pub private_data: XPointer, +} +#[test] +fn bindgen_test_layout__XExtData() { + assert_eq!( + ::core::mem::size_of::<_XExtData>(), + 32usize, + concat!("Size of: ", stringify!(_XExtData)) + ); + assert_eq!( + ::core::mem::align_of::<_XExtData>(), + 8usize, + concat!("Alignment of ", stringify!(_XExtData)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XExtData>())).number as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XExtData), + "::", + stringify!(number) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XExtData>())).next as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_XExtData), + "::", + stringify!(next) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XExtData>())).free_private as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_XExtData), + "::", + stringify!(free_private) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XExtData>())).private_data as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_XExtData), + "::", + stringify!(private_data) + ) + ); +} +pub type XExtData = _XExtData; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XExtCodes { + pub extension: libc::c_int, + pub major_opcode: libc::c_int, + pub first_event: libc::c_int, + pub first_error: libc::c_int, +} +#[test] +fn bindgen_test_layout_XExtCodes() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XExtCodes)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(XExtCodes)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).extension as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XExtCodes), + "::", + stringify!(extension) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).major_opcode as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XExtCodes), + "::", + stringify!(major_opcode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).first_event as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XExtCodes), + "::", + stringify!(first_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).first_error as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(XExtCodes), + "::", + stringify!(first_error) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XPixmapFormatValues { + pub depth: libc::c_int, + pub bits_per_pixel: libc::c_int, + pub scanline_pad: libc::c_int, +} +#[test] +fn bindgen_test_layout_XPixmapFormatValues() { + assert_eq!( + ::core::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(XPixmapFormatValues)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(XPixmapFormatValues)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).depth as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XPixmapFormatValues), + "::", + stringify!(depth) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).bits_per_pixel as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XPixmapFormatValues), + "::", + stringify!(bits_per_pixel) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).scanline_pad as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XPixmapFormatValues), + "::", + stringify!(scanline_pad) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XGCValues { + pub function: libc::c_int, + pub plane_mask: libc::c_ulong, + pub foreground: libc::c_ulong, + pub background: libc::c_ulong, + pub line_width: libc::c_int, + pub line_style: libc::c_int, + pub cap_style: libc::c_int, + pub join_style: libc::c_int, + pub fill_style: libc::c_int, + pub fill_rule: libc::c_int, + pub arc_mode: libc::c_int, + pub tile: Pixmap, + pub stipple: Pixmap, + pub ts_x_origin: libc::c_int, + pub ts_y_origin: libc::c_int, + pub font: Font, + pub subwindow_mode: libc::c_int, + pub graphics_exposures: libc::c_int, + pub clip_x_origin: libc::c_int, + pub clip_y_origin: libc::c_int, + pub clip_mask: Pixmap, + pub dash_offset: libc::c_int, + pub dashes: libc::c_char, +} +#[test] +fn bindgen_test_layout_XGCValues() { + assert_eq!( + ::core::mem::size_of::(), + 128usize, + concat!("Size of: ", stringify!(XGCValues)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XGCValues)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).function as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(function) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).plane_mask as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(plane_mask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).foreground as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(foreground) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).background as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(background) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).line_width as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(line_width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).line_style as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(line_style) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).cap_style as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(cap_style) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).join_style as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(join_style) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fill_style as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(fill_style) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fill_rule as *const _ as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(fill_rule) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).arc_mode as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(arc_mode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).tile as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(tile) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).stipple as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(stipple) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ts_x_origin as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(ts_x_origin) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ts_y_origin as *const _ as usize }, + 84usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(ts_y_origin) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).font as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(font) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).subwindow_mode as *const _ as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(subwindow_mode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).graphics_exposures as *const _ as usize }, + 100usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(graphics_exposures) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).clip_x_origin as *const _ as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(clip_x_origin) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).clip_y_origin as *const _ as usize }, + 108usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(clip_y_origin) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).clip_mask as *const _ as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(clip_mask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).dash_offset as *const _ as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(dash_offset) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).dashes as *const _ as usize }, + 124usize, + concat!( + "Offset of field: ", + stringify!(XGCValues), + "::", + stringify!(dashes) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XGC { + _unused: [u8; 0], +} +pub type GC = *mut _XGC; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct Visual { + pub ext_data: *mut XExtData, + pub visualid: VisualID, + pub class: libc::c_int, + pub red_mask: libc::c_ulong, + pub green_mask: libc::c_ulong, + pub blue_mask: libc::c_ulong, + pub bits_per_rgb: libc::c_int, + pub map_entries: libc::c_int, +} +#[test] +fn bindgen_test_layout_Visual() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(Visual)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(Visual)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ext_data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Visual), + "::", + stringify!(ext_data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).visualid as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Visual), + "::", + stringify!(visualid) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).class as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(Visual), + "::", + stringify!(class) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).red_mask as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(Visual), + "::", + stringify!(red_mask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).green_mask as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(Visual), + "::", + stringify!(green_mask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).blue_mask as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(Visual), + "::", + stringify!(blue_mask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).bits_per_rgb as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(Visual), + "::", + stringify!(bits_per_rgb) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).map_entries as *const _ as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(Visual), + "::", + stringify!(map_entries) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct Depth { + pub depth: libc::c_int, + pub nvisuals: libc::c_int, + pub visuals: *mut Visual, +} +#[test] +fn bindgen_test_layout_Depth() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(Depth)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(Depth)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).depth as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Depth), + "::", + stringify!(depth) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).nvisuals as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(Depth), + "::", + stringify!(nvisuals) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).visuals as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Depth), + "::", + stringify!(visuals) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XDisplay { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct Screen { + pub ext_data: *mut XExtData, + pub display: *mut _XDisplay, + pub root: Window, + pub width: libc::c_int, + pub height: libc::c_int, + pub mwidth: libc::c_int, + pub mheight: libc::c_int, + pub ndepths: libc::c_int, + pub depths: *mut Depth, + pub root_depth: libc::c_int, + pub root_visual: *mut Visual, + pub default_gc: GC, + pub cmap: Colormap, + pub white_pixel: libc::c_ulong, + pub black_pixel: libc::c_ulong, + pub max_maps: libc::c_int, + pub min_maps: libc::c_int, + pub backing_store: libc::c_int, + pub save_unders: libc::c_int, + pub root_input_mask: libc::c_long, +} +#[test] +fn bindgen_test_layout_Screen() { + assert_eq!( + ::core::mem::size_of::(), + 128usize, + concat!("Size of: ", stringify!(Screen)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(Screen)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ext_data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(ext_data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).root as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).height as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).mwidth as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(mwidth) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).mheight as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(mheight) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ndepths as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(ndepths) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).depths as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(depths) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).root_depth as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(root_depth) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).root_visual as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(root_visual) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).default_gc as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(default_gc) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).cmap as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(cmap) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).white_pixel as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(white_pixel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).black_pixel as *const _ as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(black_pixel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).max_maps as *const _ as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(max_maps) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).min_maps as *const _ as usize }, + 108usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(min_maps) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).backing_store as *const _ as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(backing_store) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).save_unders as *const _ as usize }, + 116usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(save_unders) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).root_input_mask as *const _ as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(Screen), + "::", + stringify!(root_input_mask) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ScreenFormat { + pub ext_data: *mut XExtData, + pub depth: libc::c_int, + pub bits_per_pixel: libc::c_int, + pub scanline_pad: libc::c_int, +} +#[test] +fn bindgen_test_layout_ScreenFormat() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(ScreenFormat)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ScreenFormat)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ext_data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ScreenFormat), + "::", + stringify!(ext_data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).depth as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ScreenFormat), + "::", + stringify!(depth) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).bits_per_pixel as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(ScreenFormat), + "::", + stringify!(bits_per_pixel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).scanline_pad as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ScreenFormat), + "::", + stringify!(scanline_pad) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XSetWindowAttributes { + pub background_pixmap: Pixmap, + pub background_pixel: libc::c_ulong, + pub border_pixmap: Pixmap, + pub border_pixel: libc::c_ulong, + pub bit_gravity: libc::c_int, + pub win_gravity: libc::c_int, + pub backing_store: libc::c_int, + pub backing_planes: libc::c_ulong, + pub backing_pixel: libc::c_ulong, + pub save_under: libc::c_int, + pub event_mask: libc::c_long, + pub do_not_propagate_mask: libc::c_long, + pub override_redirect: libc::c_int, + pub colormap: Colormap, + pub cursor: Cursor, +} +#[test] +fn bindgen_test_layout_XSetWindowAttributes() { + assert_eq!( + ::core::mem::size_of::(), + 112usize, + concat!("Size of: ", stringify!(XSetWindowAttributes)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XSetWindowAttributes)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).background_pixmap as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(background_pixmap) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).background_pixel as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(background_pixel) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).border_pixmap as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(border_pixmap) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).border_pixel as *const _ as usize + }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(border_pixel) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).bit_gravity as *const _ as usize + }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(bit_gravity) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).win_gravity as *const _ as usize + }, + 36usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(win_gravity) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).backing_store as *const _ as usize + }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(backing_store) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).backing_planes as *const _ as usize + }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(backing_planes) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).backing_pixel as *const _ as usize + }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(backing_pixel) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).save_under as *const _ as usize + }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(save_under) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).event_mask as *const _ as usize + }, + 72usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(event_mask) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).do_not_propagate_mask as *const _ + as usize + }, + 80usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(do_not_propagate_mask) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).override_redirect as *const _ as usize + }, + 88usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(override_redirect) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).colormap as *const _ as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(colormap) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).cursor as *const _ as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(XSetWindowAttributes), + "::", + stringify!(cursor) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XWindowAttributes { + pub x: libc::c_int, + pub y: libc::c_int, + pub width: libc::c_int, + pub height: libc::c_int, + pub border_width: libc::c_int, + pub depth: libc::c_int, + pub visual: *mut Visual, + pub root: Window, + pub class: libc::c_int, + pub bit_gravity: libc::c_int, + pub win_gravity: libc::c_int, + pub backing_store: libc::c_int, + pub backing_planes: libc::c_ulong, + pub backing_pixel: libc::c_ulong, + pub save_under: libc::c_int, + pub colormap: Colormap, + pub map_installed: libc::c_int, + pub map_state: libc::c_int, + pub all_event_masks: libc::c_long, + pub your_event_mask: libc::c_long, + pub do_not_propagate_mask: libc::c_long, + pub override_redirect: libc::c_int, + pub screen: *mut Screen, +} +#[test] +fn bindgen_test_layout_XWindowAttributes() { + assert_eq!( + ::core::mem::size_of::(), + 136usize, + concat!("Size of: ", stringify!(XWindowAttributes)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XWindowAttributes)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).height as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).border_width as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(border_width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).depth as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(depth) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).visual as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(visual) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).root as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).class as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(class) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).bit_gravity as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(bit_gravity) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).win_gravity as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(win_gravity) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).backing_store as *const _ as usize + }, + 52usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(backing_store) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).backing_planes as *const _ as usize + }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(backing_planes) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).backing_pixel as *const _ as usize + }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(backing_pixel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).save_under as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(save_under) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).colormap as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(colormap) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).map_installed as *const _ as usize + }, + 88usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(map_installed) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).map_state as *const _ as usize }, + 92usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(map_state) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).all_event_masks as *const _ as usize + }, + 96usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(all_event_masks) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).your_event_mask as *const _ as usize + }, + 104usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(your_event_mask) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).do_not_propagate_mask as *const _ + as usize + }, + 112usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(do_not_propagate_mask) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).override_redirect as *const _ as usize + }, + 120usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(override_redirect) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).screen as *const _ as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(XWindowAttributes), + "::", + stringify!(screen) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XHostAddress { + pub family: libc::c_int, + pub length: libc::c_int, + pub address: *mut libc::c_char, +} +#[test] +fn bindgen_test_layout_XHostAddress() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XHostAddress)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XHostAddress)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).family as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XHostAddress), + "::", + stringify!(family) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).length as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XHostAddress), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).address as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XHostAddress), + "::", + stringify!(address) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XServerInterpretedAddress { + pub typelength: libc::c_int, + pub valuelength: libc::c_int, + pub type_: *mut libc::c_char, + pub value: *mut libc::c_char, +} +#[test] +fn bindgen_test_layout_XServerInterpretedAddress() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(XServerInterpretedAddress)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XServerInterpretedAddress)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).typelength as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XServerInterpretedAddress), + "::", + stringify!(typelength) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).valuelength as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XServerInterpretedAddress), + "::", + stringify!(valuelength) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).type_ as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XServerInterpretedAddress), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).value as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XServerInterpretedAddress), + "::", + stringify!(value) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XImage { + pub width: libc::c_int, + pub height: libc::c_int, + pub xoffset: libc::c_int, + pub format: libc::c_int, + pub data: *mut libc::c_char, + pub byte_order: libc::c_int, + pub bitmap_unit: libc::c_int, + pub bitmap_bit_order: libc::c_int, + pub bitmap_pad: libc::c_int, + pub depth: libc::c_int, + pub bytes_per_line: libc::c_int, + pub bits_per_pixel: libc::c_int, + pub red_mask: libc::c_ulong, + pub green_mask: libc::c_ulong, + pub blue_mask: libc::c_ulong, + pub obdata: XPointer, + pub f: _XImage_funcs, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XImage_funcs { + pub create_image: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut _XDisplay, + arg2: *mut Visual, + arg3: libc::c_uint, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *mut libc::c_char, + arg7: libc::c_uint, + arg8: libc::c_uint, + arg9: libc::c_int, + arg10: libc::c_int, + ) -> *mut _XImage, + >, + pub destroy_image: + ::core::option::Option libc::c_int>, + pub get_pixel: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut _XImage, + arg2: libc::c_int, + arg3: libc::c_int, + ) -> libc::c_ulong, + >, + pub put_pixel: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut _XImage, + arg2: libc::c_int, + arg3: libc::c_int, + arg4: libc::c_ulong, + ) -> libc::c_int, + >, + pub sub_image: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut _XImage, + arg2: libc::c_int, + arg3: libc::c_int, + arg4: libc::c_uint, + arg5: libc::c_uint, + ) -> *mut _XImage, + >, + pub add_pixel: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut _XImage, arg2: libc::c_long) -> libc::c_int, + >, +} +#[test] +fn bindgen_test_layout__XImage_funcs() { + assert_eq!( + ::core::mem::size_of::<_XImage_funcs>(), + 48usize, + concat!("Size of: ", stringify!(_XImage_funcs)) + ); + assert_eq!( + ::core::mem::align_of::<_XImage_funcs>(), + 8usize, + concat!("Alignment of ", stringify!(_XImage_funcs)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage_funcs>())).create_image as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XImage_funcs), + "::", + stringify!(create_image) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage_funcs>())).destroy_image as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_XImage_funcs), + "::", + stringify!(destroy_image) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage_funcs>())).get_pixel as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_XImage_funcs), + "::", + stringify!(get_pixel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage_funcs>())).put_pixel as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_XImage_funcs), + "::", + stringify!(put_pixel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage_funcs>())).sub_image as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_XImage_funcs), + "::", + stringify!(sub_image) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage_funcs>())).add_pixel as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_XImage_funcs), + "::", + stringify!(add_pixel) + ) + ); +} +#[test] +fn bindgen_test_layout__XImage() { + assert_eq!( + ::core::mem::size_of::<_XImage>(), + 136usize, + concat!("Size of: ", stringify!(_XImage)) + ); + assert_eq!( + ::core::mem::align_of::<_XImage>(), + 8usize, + concat!("Alignment of ", stringify!(_XImage)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).width as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).height as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).xoffset as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(xoffset) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).format as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(format) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).data as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).byte_order as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(byte_order) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).bitmap_unit as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(bitmap_unit) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).bitmap_bit_order as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(bitmap_bit_order) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).bitmap_pad as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(bitmap_pad) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).depth as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(depth) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).bytes_per_line as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(bytes_per_line) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).bits_per_pixel as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(bits_per_pixel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).red_mask as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(red_mask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).green_mask as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(green_mask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).blue_mask as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(blue_mask) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).obdata as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(obdata) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XImage>())).f as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(_XImage), + "::", + stringify!(f) + ) + ); +} +pub type XImage = _XImage; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XWindowChanges { + pub x: libc::c_int, + pub y: libc::c_int, + pub width: libc::c_int, + pub height: libc::c_int, + pub border_width: libc::c_int, + pub sibling: Window, + pub stack_mode: libc::c_int, +} +#[test] +fn bindgen_test_layout_XWindowChanges() { + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(XWindowChanges)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XWindowChanges)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XWindowChanges), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XWindowChanges), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XWindowChanges), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).height as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(XWindowChanges), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).border_width as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XWindowChanges), + "::", + stringify!(border_width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).sibling as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XWindowChanges), + "::", + stringify!(sibling) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).stack_mode as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XWindowChanges), + "::", + stringify!(stack_mode) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XColor { + pub pixel: libc::c_ulong, + pub red: libc::c_ushort, + pub green: libc::c_ushort, + pub blue: libc::c_ushort, + pub flags: libc::c_char, + pub pad: libc::c_char, +} +#[test] +fn bindgen_test_layout_XColor() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XColor)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XColor)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).pixel as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XColor), + "::", + stringify!(pixel) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).red as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XColor), + "::", + stringify!(red) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).green as *const _ as usize }, + 10usize, + concat!( + "Offset of field: ", + stringify!(XColor), + "::", + stringify!(green) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).blue as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(XColor), + "::", + stringify!(blue) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).flags as *const _ as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(XColor), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).pad as *const _ as usize }, + 15usize, + concat!( + "Offset of field: ", + stringify!(XColor), + "::", + stringify!(pad) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XSegment { + pub x1: libc::c_short, + pub y1: libc::c_short, + pub x2: libc::c_short, + pub y2: libc::c_short, +} +#[test] +fn bindgen_test_layout_XSegment() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(XSegment)) + ); + assert_eq!( + ::core::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(XSegment)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x1 as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XSegment), + "::", + stringify!(x1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y1 as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(XSegment), + "::", + stringify!(y1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x2 as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XSegment), + "::", + stringify!(x2) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y2 as *const _ as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(XSegment), + "::", + stringify!(y2) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XPoint { + pub x: libc::c_short, + pub y: libc::c_short, +} +#[test] +fn bindgen_test_layout_XPoint() { + assert_eq!( + ::core::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(XPoint)) + ); + assert_eq!( + ::core::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(XPoint)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 0usize, + concat!("Offset of field: ", stringify!(XPoint), "::", stringify!(x)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 2usize, + concat!("Offset of field: ", stringify!(XPoint), "::", stringify!(y)) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XRectangle { + pub x: libc::c_short, + pub y: libc::c_short, + pub width: libc::c_ushort, + pub height: libc::c_ushort, +} +#[test] +fn bindgen_test_layout_XRectangle() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(XRectangle)) + ); + assert_eq!( + ::core::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(XRectangle)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XRectangle), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(XRectangle), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XRectangle), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).height as *const _ as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(XRectangle), + "::", + stringify!(height) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XArc { + pub x: libc::c_short, + pub y: libc::c_short, + pub width: libc::c_ushort, + pub height: libc::c_ushort, + pub angle1: libc::c_short, + pub angle2: libc::c_short, +} +#[test] +fn bindgen_test_layout_XArc() { + assert_eq!( + ::core::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(XArc)) + ); + assert_eq!( + ::core::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(XArc)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 0usize, + concat!("Offset of field: ", stringify!(XArc), "::", stringify!(x)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 2usize, + concat!("Offset of field: ", stringify!(XArc), "::", stringify!(y)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XArc), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).height as *const _ as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(XArc), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).angle1 as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XArc), + "::", + stringify!(angle1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).angle2 as *const _ as usize }, + 10usize, + concat!( + "Offset of field: ", + stringify!(XArc), + "::", + stringify!(angle2) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XKeyboardControl { + pub key_click_percent: libc::c_int, + pub bell_percent: libc::c_int, + pub bell_pitch: libc::c_int, + pub bell_duration: libc::c_int, + pub led: libc::c_int, + pub led_mode: libc::c_int, + pub key: libc::c_int, + pub auto_repeat_mode: libc::c_int, +} +#[test] +fn bindgen_test_layout_XKeyboardControl() { + assert_eq!( + ::core::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(XKeyboardControl)) + ); + assert_eq!( + ::core::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(XKeyboardControl)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).key_click_percent as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardControl), + "::", + stringify!(key_click_percent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).bell_percent as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardControl), + "::", + stringify!(bell_percent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).bell_pitch as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardControl), + "::", + stringify!(bell_pitch) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).bell_duration as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardControl), + "::", + stringify!(bell_duration) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).led as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardControl), + "::", + stringify!(led) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).led_mode as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardControl), + "::", + stringify!(led_mode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).key as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardControl), + "::", + stringify!(key) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).auto_repeat_mode as *const _ as usize + }, + 28usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardControl), + "::", + stringify!(auto_repeat_mode) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XKeyboardState { + pub key_click_percent: libc::c_int, + pub bell_percent: libc::c_int, + pub bell_pitch: libc::c_uint, + pub bell_duration: libc::c_uint, + pub led_mask: libc::c_ulong, + pub global_auto_repeat: libc::c_int, + pub auto_repeats: [libc::c_char; 32usize], +} +#[test] +fn bindgen_test_layout_XKeyboardState() { + assert_eq!( + ::core::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(XKeyboardState)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XKeyboardState)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).key_click_percent as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardState), + "::", + stringify!(key_click_percent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).bell_percent as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardState), + "::", + stringify!(bell_percent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).bell_pitch as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardState), + "::", + stringify!(bell_pitch) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).bell_duration as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardState), + "::", + stringify!(bell_duration) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).led_mask as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardState), + "::", + stringify!(led_mask) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).global_auto_repeat as *const _ as usize + }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardState), + "::", + stringify!(global_auto_repeat) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).auto_repeats as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(XKeyboardState), + "::", + stringify!(auto_repeats) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XTimeCoord { + pub time: Time, + pub x: libc::c_short, + pub y: libc::c_short, +} +#[test] +fn bindgen_test_layout_XTimeCoord() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XTimeCoord)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XTimeCoord)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).time as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XTimeCoord), + "::", + stringify!(time) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XTimeCoord), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 10usize, + concat!( + "Offset of field: ", + stringify!(XTimeCoord), + "::", + stringify!(y) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XModifierKeymap { + pub max_keypermod: libc::c_int, + pub modifiermap: *mut KeyCode, +} +#[test] +fn bindgen_test_layout_XModifierKeymap() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XModifierKeymap)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XModifierKeymap)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).max_keypermod as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XModifierKeymap), + "::", + stringify!(max_keypermod) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).modifiermap as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XModifierKeymap), + "::", + stringify!(modifiermap) + ) + ); +} +pub type Display = _XDisplay; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XPrivate { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XrmHashBucketRec { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _bindgen_ty_1 { + pub ext_data: *mut XExtData, + pub private1: *mut _XPrivate, + pub fd: libc::c_int, + pub private2: libc::c_int, + pub proto_major_version: libc::c_int, + pub proto_minor_version: libc::c_int, + pub vendor: *mut libc::c_char, + pub private3: XID, + pub private4: XID, + pub private5: XID, + pub private6: libc::c_int, + pub resource_alloc: ::core::option::Option XID>, + pub byte_order: libc::c_int, + pub bitmap_unit: libc::c_int, + pub bitmap_pad: libc::c_int, + pub bitmap_bit_order: libc::c_int, + pub nformats: libc::c_int, + pub pixmap_format: *mut ScreenFormat, + pub private8: libc::c_int, + pub release: libc::c_int, + pub private9: *mut _XPrivate, + pub private10: *mut _XPrivate, + pub qlen: libc::c_int, + pub last_request_read: libc::c_ulong, + pub request: libc::c_ulong, + pub private11: XPointer, + pub private12: XPointer, + pub private13: XPointer, + pub private14: XPointer, + pub max_request_size: libc::c_uint, + pub db: *mut _XrmHashBucketRec, + pub private15: + ::core::option::Option libc::c_int>, + pub display_name: *mut libc::c_char, + pub default_screen: libc::c_int, + pub nscreens: libc::c_int, + pub screens: *mut Screen, + pub motion_buffer: libc::c_ulong, + pub private16: libc::c_ulong, + pub min_keycode: libc::c_int, + pub max_keycode: libc::c_int, + pub private17: XPointer, + pub private18: XPointer, + pub private19: libc::c_int, + pub xdefaults: *mut libc::c_char, +} +#[test] +fn bindgen_test_layout__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::<_bindgen_ty_1>(), + 296usize, + concat!("Size of: ", stringify!(_bindgen_ty_1)) + ); + assert_eq!( + ::core::mem::align_of::<_bindgen_ty_1>(), + 8usize, + concat!("Alignment of ", stringify!(_bindgen_ty_1)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).ext_data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(ext_data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private1 as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).fd as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(fd) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private2 as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private2) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_bindgen_ty_1>())).proto_major_version as *const _ as usize + }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(proto_major_version) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_bindgen_ty_1>())).proto_minor_version as *const _ as usize + }, + 28usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(proto_minor_version) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).vendor as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(vendor) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private3 as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private3) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private4 as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private4) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private5 as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private5) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private6 as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private6) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).resource_alloc as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(resource_alloc) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).byte_order as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(byte_order) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).bitmap_unit as *const _ as usize }, + 84usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(bitmap_unit) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).bitmap_pad as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(bitmap_pad) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).bitmap_bit_order as *const _ as usize }, + 92usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(bitmap_bit_order) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).nformats as *const _ as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(nformats) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).pixmap_format as *const _ as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(pixmap_format) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private8 as *const _ as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private8) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).release as *const _ as usize }, + 116usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(release) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private9 as *const _ as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private9) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private10 as *const _ as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private10) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).qlen as *const _ as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(qlen) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_bindgen_ty_1>())).last_request_read as *const _ as usize + }, + 144usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(last_request_read) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).request as *const _ as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(request) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private11 as *const _ as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private11) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private12 as *const _ as usize }, + 168usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private12) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private13 as *const _ as usize }, + 176usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private13) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private14 as *const _ as usize }, + 184usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private14) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).max_request_size as *const _ as usize }, + 192usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(max_request_size) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).db as *const _ as usize }, + 200usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(db) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private15 as *const _ as usize }, + 208usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private15) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).display_name as *const _ as usize }, + 216usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(display_name) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).default_screen as *const _ as usize }, + 224usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(default_screen) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).nscreens as *const _ as usize }, + 228usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(nscreens) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).screens as *const _ as usize }, + 232usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(screens) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).motion_buffer as *const _ as usize }, + 240usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(motion_buffer) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private16 as *const _ as usize }, + 248usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private16) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).min_keycode as *const _ as usize }, + 256usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(min_keycode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).max_keycode as *const _ as usize }, + 260usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(max_keycode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private17 as *const _ as usize }, + 264usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private17) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private18 as *const _ as usize }, + 272usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private18) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).private19 as *const _ as usize }, + 280usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(private19) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_bindgen_ty_1>())).xdefaults as *const _ as usize }, + 288usize, + concat!( + "Offset of field: ", + stringify!(_bindgen_ty_1), + "::", + stringify!(xdefaults) + ) + ); +} +pub type _XPrivDisplay = *mut _bindgen_ty_1; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XKeyEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub root: Window, + pub subwindow: Window, + pub time: Time, + pub x: libc::c_int, + pub y: libc::c_int, + pub x_root: libc::c_int, + pub y_root: libc::c_int, + pub state: libc::c_uint, + pub keycode: libc::c_uint, + pub same_screen: libc::c_int, +} +#[test] +fn bindgen_test_layout_XKeyEvent() { + assert_eq!( + ::core::mem::size_of::(), + 96usize, + concat!("Size of: ", stringify!(XKeyEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XKeyEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).root as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).subwindow as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(subwindow) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).time as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(time) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 68usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x_root as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(x_root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y_root as *const _ as usize }, + 76usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(y_root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(state) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).keycode as *const _ as usize }, + 84usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(keycode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).same_screen as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(XKeyEvent), + "::", + stringify!(same_screen) + ) + ); +} +pub type XKeyPressedEvent = XKeyEvent; +pub type XKeyReleasedEvent = XKeyEvent; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XButtonEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub root: Window, + pub subwindow: Window, + pub time: Time, + pub x: libc::c_int, + pub y: libc::c_int, + pub x_root: libc::c_int, + pub y_root: libc::c_int, + pub state: libc::c_uint, + pub button: libc::c_uint, + pub same_screen: libc::c_int, +} +#[test] +fn bindgen_test_layout_XButtonEvent() { + assert_eq!( + ::core::mem::size_of::(), + 96usize, + concat!("Size of: ", stringify!(XButtonEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XButtonEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).root as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).subwindow as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(subwindow) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).time as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(time) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 68usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x_root as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(x_root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y_root as *const _ as usize }, + 76usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(y_root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(state) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).button as *const _ as usize }, + 84usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(button) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).same_screen as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(XButtonEvent), + "::", + stringify!(same_screen) + ) + ); +} +pub type XButtonPressedEvent = XButtonEvent; +pub type XButtonReleasedEvent = XButtonEvent; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XMotionEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub root: Window, + pub subwindow: Window, + pub time: Time, + pub x: libc::c_int, + pub y: libc::c_int, + pub x_root: libc::c_int, + pub y_root: libc::c_int, + pub state: libc::c_uint, + pub is_hint: libc::c_char, + pub same_screen: libc::c_int, +} +#[test] +fn bindgen_test_layout_XMotionEvent() { + assert_eq!( + ::core::mem::size_of::(), + 96usize, + concat!("Size of: ", stringify!(XMotionEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XMotionEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).root as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).subwindow as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(subwindow) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).time as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(time) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 68usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x_root as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(x_root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y_root as *const _ as usize }, + 76usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(y_root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(state) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).is_hint as *const _ as usize }, + 84usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(is_hint) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).same_screen as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(XMotionEvent), + "::", + stringify!(same_screen) + ) + ); +} +pub type XPointerMovedEvent = XMotionEvent; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XCrossingEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub root: Window, + pub subwindow: Window, + pub time: Time, + pub x: libc::c_int, + pub y: libc::c_int, + pub x_root: libc::c_int, + pub y_root: libc::c_int, + pub mode: libc::c_int, + pub detail: libc::c_int, + pub same_screen: libc::c_int, + pub focus: libc::c_int, + pub state: libc::c_uint, +} +#[test] +fn bindgen_test_layout_XCrossingEvent() { + assert_eq!( + ::core::mem::size_of::(), + 104usize, + concat!("Size of: ", stringify!(XCrossingEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XCrossingEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).root as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).subwindow as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(subwindow) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).time as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(time) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 68usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x_root as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(x_root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y_root as *const _ as usize }, + 76usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(y_root) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).mode as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(mode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).detail as *const _ as usize }, + 84usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(detail) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).same_screen as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(same_screen) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).focus as *const _ as usize }, + 92usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(focus) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(XCrossingEvent), + "::", + stringify!(state) + ) + ); +} +pub type XEnterWindowEvent = XCrossingEvent; +pub type XLeaveWindowEvent = XCrossingEvent; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XFocusChangeEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub mode: libc::c_int, + pub detail: libc::c_int, +} +#[test] +fn bindgen_test_layout_XFocusChangeEvent() { + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(XFocusChangeEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XFocusChangeEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XFocusChangeEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XFocusChangeEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XFocusChangeEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XFocusChangeEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XFocusChangeEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).mode as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XFocusChangeEvent), + "::", + stringify!(mode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).detail as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(XFocusChangeEvent), + "::", + stringify!(detail) + ) + ); +} +pub type XFocusInEvent = XFocusChangeEvent; +pub type XFocusOutEvent = XFocusChangeEvent; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XKeymapEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub key_vector: [libc::c_char; 32usize], +} +#[test] +fn bindgen_test_layout_XKeymapEvent() { + assert_eq!( + ::core::mem::size_of::(), + 72usize, + concat!("Size of: ", stringify!(XKeymapEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XKeymapEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XKeymapEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XKeymapEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XKeymapEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XKeymapEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XKeymapEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).key_vector as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XKeymapEvent), + "::", + stringify!(key_vector) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XExposeEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub x: libc::c_int, + pub y: libc::c_int, + pub width: libc::c_int, + pub height: libc::c_int, + pub count: libc::c_int, +} +#[test] +fn bindgen_test_layout_XExposeEvent() { + assert_eq!( + ::core::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(XExposeEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XExposeEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XExposeEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XExposeEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XExposeEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XExposeEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XExposeEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XExposeEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(XExposeEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XExposeEvent), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).height as *const _ as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(XExposeEvent), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).count as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XExposeEvent), + "::", + stringify!(count) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XGraphicsExposeEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub drawable: Drawable, + pub x: libc::c_int, + pub y: libc::c_int, + pub width: libc::c_int, + pub height: libc::c_int, + pub count: libc::c_int, + pub major_code: libc::c_int, + pub minor_code: libc::c_int, +} +#[test] +fn bindgen_test_layout_XGraphicsExposeEvent() { + assert_eq!( + ::core::mem::size_of::(), + 72usize, + concat!("Size of: ", stringify!(XGraphicsExposeEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XGraphicsExposeEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).send_event as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).drawable as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(drawable) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).height as *const _ as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).count as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(count) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).major_code as *const _ as usize + }, + 60usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(major_code) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).minor_code as *const _ as usize + }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XGraphicsExposeEvent), + "::", + stringify!(minor_code) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XNoExposeEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub drawable: Drawable, + pub major_code: libc::c_int, + pub minor_code: libc::c_int, +} +#[test] +fn bindgen_test_layout_XNoExposeEvent() { + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(XNoExposeEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XNoExposeEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XNoExposeEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XNoExposeEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XNoExposeEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XNoExposeEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).drawable as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XNoExposeEvent), + "::", + stringify!(drawable) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).major_code as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XNoExposeEvent), + "::", + stringify!(major_code) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).minor_code as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(XNoExposeEvent), + "::", + stringify!(minor_code) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XVisibilityEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub state: libc::c_int, +} +#[test] +fn bindgen_test_layout_XVisibilityEvent() { + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(XVisibilityEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XVisibilityEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XVisibilityEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XVisibilityEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XVisibilityEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XVisibilityEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XVisibilityEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XVisibilityEvent), + "::", + stringify!(state) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XCreateWindowEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub parent: Window, + pub window: Window, + pub x: libc::c_int, + pub y: libc::c_int, + pub width: libc::c_int, + pub height: libc::c_int, + pub border_width: libc::c_int, + pub override_redirect: libc::c_int, +} +#[test] +fn bindgen_test_layout_XCreateWindowEvent() { + assert_eq!( + ::core::mem::size_of::(), + 72usize, + concat!("Size of: ", stringify!(XCreateWindowEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XCreateWindowEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).parent as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(parent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).height as *const _ as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).border_width as *const _ as usize + }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(border_width) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).override_redirect as *const _ as usize + }, + 68usize, + concat!( + "Offset of field: ", + stringify!(XCreateWindowEvent), + "::", + stringify!(override_redirect) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XDestroyWindowEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub event: Window, + pub window: Window, +} +#[test] +fn bindgen_test_layout_XDestroyWindowEvent() { + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(XDestroyWindowEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XDestroyWindowEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XDestroyWindowEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XDestroyWindowEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XDestroyWindowEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XDestroyWindowEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).event as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XDestroyWindowEvent), + "::", + stringify!(event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XDestroyWindowEvent), + "::", + stringify!(window) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XUnmapEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub event: Window, + pub window: Window, + pub from_configure: libc::c_int, +} +#[test] +fn bindgen_test_layout_XUnmapEvent() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(XUnmapEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XUnmapEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XUnmapEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XUnmapEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XUnmapEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XUnmapEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).event as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XUnmapEvent), + "::", + stringify!(event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XUnmapEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).from_configure as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XUnmapEvent), + "::", + stringify!(from_configure) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XMapEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub event: Window, + pub window: Window, + pub override_redirect: libc::c_int, +} +#[test] +fn bindgen_test_layout_XMapEvent() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(XMapEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XMapEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XMapEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XMapEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XMapEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XMapEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).event as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XMapEvent), + "::", + stringify!(event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XMapEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).override_redirect as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XMapEvent), + "::", + stringify!(override_redirect) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XMapRequestEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub parent: Window, + pub window: Window, +} +#[test] +fn bindgen_test_layout_XMapRequestEvent() { + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(XMapRequestEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XMapRequestEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XMapRequestEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XMapRequestEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XMapRequestEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XMapRequestEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).parent as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XMapRequestEvent), + "::", + stringify!(parent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XMapRequestEvent), + "::", + stringify!(window) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XReparentEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub event: Window, + pub window: Window, + pub parent: Window, + pub x: libc::c_int, + pub y: libc::c_int, + pub override_redirect: libc::c_int, +} +#[test] +fn bindgen_test_layout_XReparentEvent() { + assert_eq!( + ::core::mem::size_of::(), + 72usize, + concat!("Size of: ", stringify!(XReparentEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XReparentEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XReparentEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XReparentEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XReparentEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XReparentEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).event as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XReparentEvent), + "::", + stringify!(event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XReparentEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).parent as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XReparentEvent), + "::", + stringify!(parent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XReparentEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(XReparentEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).override_redirect as *const _ as usize + }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XReparentEvent), + "::", + stringify!(override_redirect) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XConfigureEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub event: Window, + pub window: Window, + pub x: libc::c_int, + pub y: libc::c_int, + pub width: libc::c_int, + pub height: libc::c_int, + pub border_width: libc::c_int, + pub above: Window, + pub override_redirect: libc::c_int, +} +#[test] +fn bindgen_test_layout_XConfigureEvent() { + assert_eq!( + ::core::mem::size_of::(), + 88usize, + concat!("Size of: ", stringify!(XConfigureEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XConfigureEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).event as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).height as *const _ as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).border_width as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(border_width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).above as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(above) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).override_redirect as *const _ as usize + }, + 80usize, + concat!( + "Offset of field: ", + stringify!(XConfigureEvent), + "::", + stringify!(override_redirect) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XGravityEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub event: Window, + pub window: Window, + pub x: libc::c_int, + pub y: libc::c_int, +} +#[test] +fn bindgen_test_layout_XGravityEvent() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(XGravityEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XGravityEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XGravityEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XGravityEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XGravityEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XGravityEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).event as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XGravityEvent), + "::", + stringify!(event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XGravityEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XGravityEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(XGravityEvent), + "::", + stringify!(y) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XResizeRequestEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub width: libc::c_int, + pub height: libc::c_int, +} +#[test] +fn bindgen_test_layout_XResizeRequestEvent() { + assert_eq!( + ::core::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(XResizeRequestEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XResizeRequestEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XResizeRequestEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XResizeRequestEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XResizeRequestEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XResizeRequestEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XResizeRequestEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XResizeRequestEvent), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).height as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(XResizeRequestEvent), + "::", + stringify!(height) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XConfigureRequestEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub parent: Window, + pub window: Window, + pub x: libc::c_int, + pub y: libc::c_int, + pub width: libc::c_int, + pub height: libc::c_int, + pub border_width: libc::c_int, + pub above: Window, + pub detail: libc::c_int, + pub value_mask: libc::c_ulong, +} +#[test] +fn bindgen_test_layout_XConfigureRequestEvent() { + assert_eq!( + ::core::mem::size_of::(), + 96usize, + concat!("Size of: ", stringify!(XConfigureRequestEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XConfigureRequestEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).send_event as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).parent as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(parent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).y as *const _ as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(y) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).height as *const _ as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(height) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).border_width as *const _ as usize + }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(border_width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).above as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(above) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).detail as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(detail) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).value_mask as *const _ as usize + }, + 88usize, + concat!( + "Offset of field: ", + stringify!(XConfigureRequestEvent), + "::", + stringify!(value_mask) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XCirculateEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub event: Window, + pub window: Window, + pub place: libc::c_int, +} +#[test] +fn bindgen_test_layout_XCirculateEvent() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(XCirculateEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XCirculateEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XCirculateEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XCirculateEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XCirculateEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XCirculateEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).event as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XCirculateEvent), + "::", + stringify!(event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XCirculateEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).place as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XCirculateEvent), + "::", + stringify!(place) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XCirculateRequestEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub parent: Window, + pub window: Window, + pub place: libc::c_int, +} +#[test] +fn bindgen_test_layout_XCirculateRequestEvent() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(XCirculateRequestEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XCirculateRequestEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XCirculateRequestEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XCirculateRequestEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).send_event as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XCirculateRequestEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XCirculateRequestEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).parent as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XCirculateRequestEvent), + "::", + stringify!(parent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XCirculateRequestEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).place as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XCirculateRequestEvent), + "::", + stringify!(place) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XPropertyEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub atom: Atom, + pub time: Time, + pub state: libc::c_int, +} +#[test] +fn bindgen_test_layout_XPropertyEvent() { + assert_eq!( + ::core::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(XPropertyEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XPropertyEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XPropertyEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XPropertyEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XPropertyEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XPropertyEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XPropertyEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).atom as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XPropertyEvent), + "::", + stringify!(atom) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).time as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XPropertyEvent), + "::", + stringify!(time) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XPropertyEvent), + "::", + stringify!(state) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XSelectionClearEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub selection: Atom, + pub time: Time, +} +#[test] +fn bindgen_test_layout_XSelectionClearEvent() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(XSelectionClearEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XSelectionClearEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XSelectionClearEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XSelectionClearEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).send_event as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XSelectionClearEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XSelectionClearEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XSelectionClearEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).selection as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XSelectionClearEvent), + "::", + stringify!(selection) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).time as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XSelectionClearEvent), + "::", + stringify!(time) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XSelectionRequestEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub owner: Window, + pub requestor: Window, + pub selection: Atom, + pub target: Atom, + pub property: Atom, + pub time: Time, +} +#[test] +fn bindgen_test_layout_XSelectionRequestEvent() { + assert_eq!( + ::core::mem::size_of::(), + 80usize, + concat!("Size of: ", stringify!(XSelectionRequestEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XSelectionRequestEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XSelectionRequestEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XSelectionRequestEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).send_event as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XSelectionRequestEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XSelectionRequestEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).owner as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XSelectionRequestEvent), + "::", + stringify!(owner) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).requestor as *const _ as usize + }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XSelectionRequestEvent), + "::", + stringify!(requestor) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).selection as *const _ as usize + }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XSelectionRequestEvent), + "::", + stringify!(selection) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).target as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XSelectionRequestEvent), + "::", + stringify!(target) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).property as *const _ as usize + }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XSelectionRequestEvent), + "::", + stringify!(property) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).time as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(XSelectionRequestEvent), + "::", + stringify!(time) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XSelectionEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub requestor: Window, + pub selection: Atom, + pub target: Atom, + pub property: Atom, + pub time: Time, +} +#[test] +fn bindgen_test_layout_XSelectionEvent() { + assert_eq!( + ::core::mem::size_of::(), + 72usize, + concat!("Size of: ", stringify!(XSelectionEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XSelectionEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XSelectionEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XSelectionEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XSelectionEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XSelectionEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).requestor as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XSelectionEvent), + "::", + stringify!(requestor) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).selection as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XSelectionEvent), + "::", + stringify!(selection) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).target as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XSelectionEvent), + "::", + stringify!(target) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).property as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XSelectionEvent), + "::", + stringify!(property) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).time as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(XSelectionEvent), + "::", + stringify!(time) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XColormapEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub colormap: Colormap, + pub new: libc::c_int, + pub state: libc::c_int, +} +#[test] +fn bindgen_test_layout_XColormapEvent() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(XColormapEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XColormapEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XColormapEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XColormapEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XColormapEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XColormapEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XColormapEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).colormap as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XColormapEvent), + "::", + stringify!(colormap) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).new as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XColormapEvent), + "::", + stringify!(new) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).state as *const _ as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(XColormapEvent), + "::", + stringify!(state) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XClientMessageEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub message_type: Atom, + pub format: libc::c_int, + pub data: XClientMessageEvent__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union XClientMessageEvent__bindgen_ty_1 { + pub b: [libc::c_char; 20usize], + pub s: [libc::c_short; 10usize], + pub l: [libc::c_long; 5usize], + _bindgen_union_align: [u64; 5usize], +} +#[test] +fn bindgen_test_layout_XClientMessageEvent__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(XClientMessageEvent__bindgen_ty_1)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(XClientMessageEvent__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).b as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XClientMessageEvent__bindgen_ty_1), + "::", + stringify!(b) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).s as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XClientMessageEvent__bindgen_ty_1), + "::", + stringify!(s) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).l as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XClientMessageEvent__bindgen_ty_1), + "::", + stringify!(l) + ) + ); +} +#[test] +fn bindgen_test_layout_XClientMessageEvent() { + assert_eq!( + ::core::mem::size_of::(), + 96usize, + concat!("Size of: ", stringify!(XClientMessageEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XClientMessageEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XClientMessageEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XClientMessageEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XClientMessageEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XClientMessageEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XClientMessageEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).message_type as *const _ as usize + }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XClientMessageEvent), + "::", + stringify!(message_type) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).format as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XClientMessageEvent), + "::", + stringify!(format) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).data as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XClientMessageEvent), + "::", + stringify!(data) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XMappingEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, + pub request: libc::c_int, + pub first_keycode: libc::c_int, + pub count: libc::c_int, +} +#[test] +fn bindgen_test_layout_XMappingEvent() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(XMappingEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XMappingEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XMappingEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XMappingEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XMappingEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XMappingEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XMappingEvent), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).request as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XMappingEvent), + "::", + stringify!(request) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).first_keycode as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(XMappingEvent), + "::", + stringify!(first_keycode) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).count as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XMappingEvent), + "::", + stringify!(count) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XErrorEvent { + pub type_: libc::c_int, + pub display: *mut Display, + pub resourceid: XID, + pub serial: libc::c_ulong, + pub error_code: libc::c_uchar, + pub request_code: libc::c_uchar, + pub minor_code: libc::c_uchar, +} +#[test] +fn bindgen_test_layout_XErrorEvent() { + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(XErrorEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XErrorEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XErrorEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XErrorEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).resourceid as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XErrorEvent), + "::", + stringify!(resourceid) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XErrorEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).error_code as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XErrorEvent), + "::", + stringify!(error_code) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).request_code as *const _ as usize }, + 33usize, + concat!( + "Offset of field: ", + stringify!(XErrorEvent), + "::", + stringify!(request_code) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).minor_code as *const _ as usize }, + 34usize, + concat!( + "Offset of field: ", + stringify!(XErrorEvent), + "::", + stringify!(minor_code) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XAnyEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub window: Window, +} +#[test] +fn bindgen_test_layout_XAnyEvent() { + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(XAnyEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XAnyEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XAnyEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XAnyEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XAnyEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XAnyEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).window as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XAnyEvent), + "::", + stringify!(window) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XGenericEvent { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub extension: libc::c_int, + pub evtype: libc::c_int, +} +#[test] +fn bindgen_test_layout_XGenericEvent() { + assert_eq!( + ::core::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(XGenericEvent)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XGenericEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XGenericEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XGenericEvent), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XGenericEvent), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XGenericEvent), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).extension as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XGenericEvent), + "::", + stringify!(extension) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).evtype as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(XGenericEvent), + "::", + stringify!(evtype) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XGenericEventCookie { + pub type_: libc::c_int, + pub serial: libc::c_ulong, + pub send_event: libc::c_int, + pub display: *mut Display, + pub extension: libc::c_int, + pub evtype: libc::c_int, + pub cookie: libc::c_uint, + pub data: *mut libc::c_void, +} +#[test] +fn bindgen_test_layout_XGenericEventCookie() { + assert_eq!( + ::core::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(XGenericEventCookie)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XGenericEventCookie)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XGenericEventCookie), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).serial as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XGenericEventCookie), + "::", + stringify!(serial) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).send_event as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XGenericEventCookie), + "::", + stringify!(send_event) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XGenericEventCookie), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).extension as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XGenericEventCookie), + "::", + stringify!(extension) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).evtype as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(XGenericEventCookie), + "::", + stringify!(evtype) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).cookie as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XGenericEventCookie), + "::", + stringify!(cookie) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).data as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XGenericEventCookie), + "::", + stringify!(data) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union _XEvent { + pub type_: libc::c_int, + pub xany: XAnyEvent, + pub xkey: XKeyEvent, + pub xbutton: XButtonEvent, + pub xmotion: XMotionEvent, + pub xcrossing: XCrossingEvent, + pub xfocus: XFocusChangeEvent, + pub xexpose: XExposeEvent, + pub xgraphicsexpose: XGraphicsExposeEvent, + pub xnoexpose: XNoExposeEvent, + pub xvisibility: XVisibilityEvent, + pub xcreatewindow: XCreateWindowEvent, + pub xdestroywindow: XDestroyWindowEvent, + pub xunmap: XUnmapEvent, + pub xmap: XMapEvent, + pub xmaprequest: XMapRequestEvent, + pub xreparent: XReparentEvent, + pub xconfigure: XConfigureEvent, + pub xgravity: XGravityEvent, + pub xresizerequest: XResizeRequestEvent, + pub xconfigurerequest: XConfigureRequestEvent, + pub xcirculate: XCirculateEvent, + pub xcirculaterequest: XCirculateRequestEvent, + pub xproperty: XPropertyEvent, + pub xselectionclear: XSelectionClearEvent, + pub xselectionrequest: XSelectionRequestEvent, + pub xselection: XSelectionEvent, + pub xcolormap: XColormapEvent, + pub xclient: XClientMessageEvent, + pub xmapping: XMappingEvent, + pub xerror: XErrorEvent, + pub xkeymap: XKeymapEvent, + pub xgeneric: XGenericEvent, + pub xcookie: XGenericEventCookie, + pub pad: [libc::c_long; 24usize], + _bindgen_union_align: [u64; 24usize], +} +#[test] +fn bindgen_test_layout__XEvent() { + assert_eq!( + ::core::mem::size_of::<_XEvent>(), + 192usize, + concat!("Size of: ", stringify!(_XEvent)) + ); + assert_eq!( + ::core::mem::align_of::<_XEvent>(), + 8usize, + concat!("Alignment of ", stringify!(_XEvent)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xany as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xany) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xkey as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xkey) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xbutton as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xbutton) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xmotion as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xmotion) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xcrossing as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xcrossing) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xfocus as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xfocus) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xexpose as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xexpose) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xgraphicsexpose as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xgraphicsexpose) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xnoexpose as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xnoexpose) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xvisibility as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xvisibility) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xcreatewindow as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xcreatewindow) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xdestroywindow as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xdestroywindow) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xunmap as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xunmap) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xmap as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xmap) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xmaprequest as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xmaprequest) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xreparent as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xreparent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xconfigure as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xconfigure) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xgravity as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xgravity) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xresizerequest as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xresizerequest) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xconfigurerequest as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xconfigurerequest) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xcirculate as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xcirculate) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xcirculaterequest as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xcirculaterequest) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xproperty as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xproperty) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xselectionclear as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xselectionclear) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xselectionrequest as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xselectionrequest) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xselection as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xselection) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xcolormap as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xcolormap) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xclient as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xclient) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xmapping as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xmapping) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xerror as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xerror) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xkeymap as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xkeymap) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xgeneric as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xgeneric) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).xcookie as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(xcookie) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XEvent>())).pad as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XEvent), + "::", + stringify!(pad) + ) + ); +} +pub type XEvent = _XEvent; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XCharStruct { + pub lbearing: libc::c_short, + pub rbearing: libc::c_short, + pub width: libc::c_short, + pub ascent: libc::c_short, + pub descent: libc::c_short, + pub attributes: libc::c_ushort, +} +#[test] +fn bindgen_test_layout_XCharStruct() { + assert_eq!( + ::core::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(XCharStruct)) + ); + assert_eq!( + ::core::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(XCharStruct)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).lbearing as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XCharStruct), + "::", + stringify!(lbearing) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).rbearing as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(XCharStruct), + "::", + stringify!(rbearing) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).width as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(XCharStruct), + "::", + stringify!(width) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ascent as *const _ as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(XCharStruct), + "::", + stringify!(ascent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).descent as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XCharStruct), + "::", + stringify!(descent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).attributes as *const _ as usize }, + 10usize, + concat!( + "Offset of field: ", + stringify!(XCharStruct), + "::", + stringify!(attributes) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XFontProp { + pub name: Atom, + pub card32: libc::c_ulong, +} +#[test] +fn bindgen_test_layout_XFontProp() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XFontProp)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XFontProp)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).name as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XFontProp), + "::", + stringify!(name) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).card32 as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XFontProp), + "::", + stringify!(card32) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XFontStruct { + pub ext_data: *mut XExtData, + pub fid: Font, + pub direction: libc::c_uint, + pub min_char_or_byte2: libc::c_uint, + pub max_char_or_byte2: libc::c_uint, + pub min_byte1: libc::c_uint, + pub max_byte1: libc::c_uint, + pub all_chars_exist: libc::c_int, + pub default_char: libc::c_uint, + pub n_properties: libc::c_int, + pub properties: *mut XFontProp, + pub min_bounds: XCharStruct, + pub max_bounds: XCharStruct, + pub per_char: *mut XCharStruct, + pub ascent: libc::c_int, + pub descent: libc::c_int, +} +#[test] +fn bindgen_test_layout_XFontStruct() { + assert_eq!( + ::core::mem::size_of::(), + 96usize, + concat!("Size of: ", stringify!(XFontStruct)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XFontStruct)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ext_data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(ext_data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).fid as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(fid) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).direction as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(direction) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).min_char_or_byte2 as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(min_char_or_byte2) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).max_char_or_byte2 as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(max_char_or_byte2) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).min_byte1 as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(min_byte1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).max_byte1 as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(max_byte1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).all_chars_exist as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(all_chars_exist) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).default_char as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(default_char) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).n_properties as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(n_properties) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).properties as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(properties) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).min_bounds as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(min_bounds) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).max_bounds as *const _ as usize }, + 68usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(max_bounds) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).per_char as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(per_char) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).ascent as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(ascent) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).descent as *const _ as usize }, + 92usize, + concat!( + "Offset of field: ", + stringify!(XFontStruct), + "::", + stringify!(descent) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XTextItem { + pub chars: *mut libc::c_char, + pub nchars: libc::c_int, + pub delta: libc::c_int, + pub font: Font, +} +#[test] +fn bindgen_test_layout_XTextItem() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(XTextItem)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XTextItem)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).chars as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XTextItem), + "::", + stringify!(chars) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).nchars as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XTextItem), + "::", + stringify!(nchars) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).delta as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(XTextItem), + "::", + stringify!(delta) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).font as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XTextItem), + "::", + stringify!(font) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XChar2b { + pub byte1: libc::c_uchar, + pub byte2: libc::c_uchar, +} +#[test] +fn bindgen_test_layout_XChar2b() { + assert_eq!( + ::core::mem::size_of::(), + 2usize, + concat!("Size of: ", stringify!(XChar2b)) + ); + assert_eq!( + ::core::mem::align_of::(), + 1usize, + concat!("Alignment of ", stringify!(XChar2b)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).byte1 as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XChar2b), + "::", + stringify!(byte1) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).byte2 as *const _ as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(XChar2b), + "::", + stringify!(byte2) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XTextItem16 { + pub chars: *mut XChar2b, + pub nchars: libc::c_int, + pub delta: libc::c_int, + pub font: Font, +} +#[test] +fn bindgen_test_layout_XTextItem16() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(XTextItem16)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XTextItem16)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).chars as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XTextItem16), + "::", + stringify!(chars) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).nchars as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XTextItem16), + "::", + stringify!(nchars) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).delta as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(XTextItem16), + "::", + stringify!(delta) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).font as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XTextItem16), + "::", + stringify!(font) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union XEDataObject { + pub display: *mut Display, + pub gc: GC, + pub visual: *mut Visual, + pub screen: *mut Screen, + pub pixmap_format: *mut ScreenFormat, + pub font: *mut XFontStruct, + _bindgen_union_align: u64, +} +#[test] +fn bindgen_test_layout_XEDataObject() { + assert_eq!( + ::core::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(XEDataObject)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XEDataObject)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).display as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XEDataObject), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).gc as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XEDataObject), + "::", + stringify!(gc) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).visual as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XEDataObject), + "::", + stringify!(visual) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).screen as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XEDataObject), + "::", + stringify!(screen) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).pixmap_format as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XEDataObject), + "::", + stringify!(pixmap_format) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).font as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XEDataObject), + "::", + stringify!(font) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XFontSetExtents { + pub max_ink_extent: XRectangle, + pub max_logical_extent: XRectangle, +} +#[test] +fn bindgen_test_layout_XFontSetExtents() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XFontSetExtents)) + ); + assert_eq!( + ::core::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(XFontSetExtents)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).max_ink_extent as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XFontSetExtents), + "::", + stringify!(max_ink_extent) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).max_logical_extent as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XFontSetExtents), + "::", + stringify!(max_logical_extent) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XOM { + _unused: [u8; 0], +} +pub type XOM = *mut _XOM; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XOC { + _unused: [u8; 0], +} +pub type XOC = *mut _XOC; +pub type XFontSet = *mut _XOC; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XmbTextItem { + pub chars: *mut libc::c_char, + pub nchars: libc::c_int, + pub delta: libc::c_int, + pub font_set: XFontSet, +} +#[test] +fn bindgen_test_layout_XmbTextItem() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(XmbTextItem)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XmbTextItem)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).chars as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XmbTextItem), + "::", + stringify!(chars) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).nchars as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XmbTextItem), + "::", + stringify!(nchars) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).delta as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(XmbTextItem), + "::", + stringify!(delta) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).font_set as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XmbTextItem), + "::", + stringify!(font_set) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XwcTextItem { + pub chars: *mut wchar_t, + pub nchars: libc::c_int, + pub delta: libc::c_int, + pub font_set: XFontSet, +} +#[test] +fn bindgen_test_layout_XwcTextItem() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(XwcTextItem)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XwcTextItem)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).chars as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XwcTextItem), + "::", + stringify!(chars) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).nchars as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XwcTextItem), + "::", + stringify!(nchars) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).delta as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(XwcTextItem), + "::", + stringify!(delta) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).font_set as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XwcTextItem), + "::", + stringify!(font_set) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XOMCharSetList { + pub charset_count: libc::c_int, + pub charset_list: *mut *mut libc::c_char, +} +#[test] +fn bindgen_test_layout_XOMCharSetList() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XOMCharSetList)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XOMCharSetList)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).charset_count as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XOMCharSetList), + "::", + stringify!(charset_count) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).charset_list as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XOMCharSetList), + "::", + stringify!(charset_list) + ) + ); +} +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum XOrientation { + XOMOrientation_LTR_TTB = 0, + XOMOrientation_RTL_TTB = 1, + XOMOrientation_TTB_LTR = 2, + XOMOrientation_TTB_RTL = 3, + XOMOrientation_Context = 4, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XOMOrientation { + pub num_orientation: libc::c_int, + pub orientation: *mut XOrientation, +} +#[test] +fn bindgen_test_layout_XOMOrientation() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XOMOrientation)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XOMOrientation)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).num_orientation as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XOMOrientation), + "::", + stringify!(num_orientation) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).orientation as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XOMOrientation), + "::", + stringify!(orientation) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XOMFontInfo { + pub num_font: libc::c_int, + pub font_struct_list: *mut *mut XFontStruct, + pub font_name_list: *mut *mut libc::c_char, +} +#[test] +fn bindgen_test_layout_XOMFontInfo() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(XOMFontInfo)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XOMFontInfo)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).num_font as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XOMFontInfo), + "::", + stringify!(num_font) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).font_struct_list as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XOMFontInfo), + "::", + stringify!(font_struct_list) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).font_name_list as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(XOMFontInfo), + "::", + stringify!(font_name_list) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XIM { + _unused: [u8; 0], +} +pub type XIM = *mut _XIM; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XIC { + _unused: [u8; 0], +} +pub type XIC = *mut _XIC; +pub type XIMProc = + ::core::option::Option; +pub type XICProc = ::core::option::Option< + unsafe extern "C" fn(arg1: XIC, arg2: XPointer, arg3: XPointer) -> libc::c_int, +>; +pub type XIDProc = ::core::option::Option< + unsafe extern "C" fn(arg1: *mut Display, arg2: XPointer, arg3: XPointer), +>; +pub type XIMStyle = libc::c_ulong; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XIMStyles { + pub count_styles: libc::c_ushort, + pub supported_styles: *mut XIMStyle, +} +#[test] +fn bindgen_test_layout_XIMStyles() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XIMStyles)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XIMStyles)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).count_styles as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XIMStyles), + "::", + stringify!(count_styles) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).supported_styles as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XIMStyles), + "::", + stringify!(supported_styles) + ) + ); +} +pub type XVaNestedList = *mut libc::c_void; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XIMCallback { + pub client_data: XPointer, + pub callback: XIMProc, +} +#[test] +fn bindgen_test_layout_XIMCallback() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XIMCallback)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XIMCallback)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).client_data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XIMCallback), + "::", + stringify!(client_data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).callback as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XIMCallback), + "::", + stringify!(callback) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XICCallback { + pub client_data: XPointer, + pub callback: XICProc, +} +#[test] +fn bindgen_test_layout_XICCallback() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XICCallback)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XICCallback)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).client_data as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XICCallback), + "::", + stringify!(client_data) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).callback as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XICCallback), + "::", + stringify!(callback) + ) + ); +} +pub type XIMFeedback = libc::c_ulong; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XIMText { + pub length: libc::c_ushort, + pub feedback: *mut XIMFeedback, + pub encoding_is_wchar: libc::c_int, + pub string: _XIMText__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union _XIMText__bindgen_ty_1 { + pub multi_byte: *mut libc::c_char, + pub wide_char: *mut wchar_t, + _bindgen_union_align: u64, +} +#[test] +fn bindgen_test_layout__XIMText__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::<_XIMText__bindgen_ty_1>(), + 8usize, + concat!("Size of: ", stringify!(_XIMText__bindgen_ty_1)) + ); + assert_eq!( + ::core::mem::align_of::<_XIMText__bindgen_ty_1>(), + 8usize, + concat!("Alignment of ", stringify!(_XIMText__bindgen_ty_1)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMText__bindgen_ty_1>())).multi_byte as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMText__bindgen_ty_1), + "::", + stringify!(multi_byte) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMText__bindgen_ty_1>())).wide_char as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMText__bindgen_ty_1), + "::", + stringify!(wide_char) + ) + ); +} +#[test] +fn bindgen_test_layout__XIMText() { + assert_eq!( + ::core::mem::size_of::<_XIMText>(), + 32usize, + concat!("Size of: ", stringify!(_XIMText)) + ); + assert_eq!( + ::core::mem::align_of::<_XIMText>(), + 8usize, + concat!("Alignment of ", stringify!(_XIMText)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XIMText>())).length as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMText), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XIMText>())).feedback as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_XIMText), + "::", + stringify!(feedback) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XIMText>())).encoding_is_wchar as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_XIMText), + "::", + stringify!(encoding_is_wchar) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XIMText>())).string as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_XIMText), + "::", + stringify!(string) + ) + ); +} +pub type XIMText = _XIMText; +pub type XIMPreeditState = libc::c_ulong; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XIMPreeditStateNotifyCallbackStruct { + pub state: XIMPreeditState, +} +#[test] +fn bindgen_test_layout__XIMPreeditStateNotifyCallbackStruct() { + assert_eq!( + ::core::mem::size_of::<_XIMPreeditStateNotifyCallbackStruct>(), + 8usize, + concat!( + "Size of: ", + stringify!(_XIMPreeditStateNotifyCallbackStruct) + ) + ); + assert_eq!( + ::core::mem::align_of::<_XIMPreeditStateNotifyCallbackStruct>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_XIMPreeditStateNotifyCallbackStruct) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMPreeditStateNotifyCallbackStruct>())).state as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMPreeditStateNotifyCallbackStruct), + "::", + stringify!(state) + ) + ); +} +pub type XIMPreeditStateNotifyCallbackStruct = _XIMPreeditStateNotifyCallbackStruct; +pub type XIMResetState = libc::c_ulong; +pub type XIMStringConversionFeedback = libc::c_ulong; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XIMStringConversionText { + pub length: libc::c_ushort, + pub feedback: *mut XIMStringConversionFeedback, + pub encoding_is_wchar: libc::c_int, + pub string: _XIMStringConversionText__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union _XIMStringConversionText__bindgen_ty_1 { + pub mbs: *mut libc::c_char, + pub wcs: *mut wchar_t, + _bindgen_union_align: u64, +} +#[test] +fn bindgen_test_layout__XIMStringConversionText__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::<_XIMStringConversionText__bindgen_ty_1>(), + 8usize, + concat!( + "Size of: ", + stringify!(_XIMStringConversionText__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::<_XIMStringConversionText__bindgen_ty_1>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_XIMStringConversionText__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStringConversionText__bindgen_ty_1>())).mbs as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMStringConversionText__bindgen_ty_1), + "::", + stringify!(mbs) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStringConversionText__bindgen_ty_1>())).wcs as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMStringConversionText__bindgen_ty_1), + "::", + stringify!(wcs) + ) + ); +} +#[test] +fn bindgen_test_layout__XIMStringConversionText() { + assert_eq!( + ::core::mem::size_of::<_XIMStringConversionText>(), + 32usize, + concat!("Size of: ", stringify!(_XIMStringConversionText)) + ); + assert_eq!( + ::core::mem::align_of::<_XIMStringConversionText>(), + 8usize, + concat!("Alignment of ", stringify!(_XIMStringConversionText)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStringConversionText>())).length as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMStringConversionText), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStringConversionText>())).feedback as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_XIMStringConversionText), + "::", + stringify!(feedback) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStringConversionText>())).encoding_is_wchar as *const _ + as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_XIMStringConversionText), + "::", + stringify!(encoding_is_wchar) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStringConversionText>())).string as *const _ as usize + }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_XIMStringConversionText), + "::", + stringify!(string) + ) + ); +} +pub type XIMStringConversionText = _XIMStringConversionText; +pub type XIMStringConversionPosition = libc::c_ushort; +pub type XIMStringConversionType = libc::c_ushort; +pub type XIMStringConversionOperation = libc::c_ushort; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum XIMCaretDirection { + XIMForwardChar = 0, + XIMBackwardChar = 1, + XIMForwardWord = 2, + XIMBackwardWord = 3, + XIMCaretUp = 4, + XIMCaretDown = 5, + XIMNextLine = 6, + XIMPreviousLine = 7, + XIMLineStart = 8, + XIMLineEnd = 9, + XIMAbsolutePosition = 10, + XIMDontChange = 11, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XIMStringConversionCallbackStruct { + pub position: XIMStringConversionPosition, + pub direction: XIMCaretDirection, + pub operation: XIMStringConversionOperation, + pub factor: libc::c_ushort, + pub text: *mut XIMStringConversionText, +} +#[test] +fn bindgen_test_layout__XIMStringConversionCallbackStruct() { + assert_eq!( + ::core::mem::size_of::<_XIMStringConversionCallbackStruct>(), + 24usize, + concat!("Size of: ", stringify!(_XIMStringConversionCallbackStruct)) + ); + assert_eq!( + ::core::mem::align_of::<_XIMStringConversionCallbackStruct>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_XIMStringConversionCallbackStruct) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStringConversionCallbackStruct>())).position as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMStringConversionCallbackStruct), + "::", + stringify!(position) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStringConversionCallbackStruct>())).direction as *const _ + as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_XIMStringConversionCallbackStruct), + "::", + stringify!(direction) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStringConversionCallbackStruct>())).operation as *const _ + as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_XIMStringConversionCallbackStruct), + "::", + stringify!(operation) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStringConversionCallbackStruct>())).factor as *const _ + as usize + }, + 10usize, + concat!( + "Offset of field: ", + stringify!(_XIMStringConversionCallbackStruct), + "::", + stringify!(factor) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStringConversionCallbackStruct>())).text as *const _ + as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_XIMStringConversionCallbackStruct), + "::", + stringify!(text) + ) + ); +} +pub type XIMStringConversionCallbackStruct = _XIMStringConversionCallbackStruct; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XIMPreeditDrawCallbackStruct { + pub caret: libc::c_int, + pub chg_first: libc::c_int, + pub chg_length: libc::c_int, + pub text: *mut XIMText, +} +#[test] +fn bindgen_test_layout__XIMPreeditDrawCallbackStruct() { + assert_eq!( + ::core::mem::size_of::<_XIMPreeditDrawCallbackStruct>(), + 24usize, + concat!("Size of: ", stringify!(_XIMPreeditDrawCallbackStruct)) + ); + assert_eq!( + ::core::mem::align_of::<_XIMPreeditDrawCallbackStruct>(), + 8usize, + concat!("Alignment of ", stringify!(_XIMPreeditDrawCallbackStruct)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMPreeditDrawCallbackStruct>())).caret as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMPreeditDrawCallbackStruct), + "::", + stringify!(caret) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMPreeditDrawCallbackStruct>())).chg_first as *const _ + as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_XIMPreeditDrawCallbackStruct), + "::", + stringify!(chg_first) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMPreeditDrawCallbackStruct>())).chg_length as *const _ + as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_XIMPreeditDrawCallbackStruct), + "::", + stringify!(chg_length) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMPreeditDrawCallbackStruct>())).text as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_XIMPreeditDrawCallbackStruct), + "::", + stringify!(text) + ) + ); +} +pub type XIMPreeditDrawCallbackStruct = _XIMPreeditDrawCallbackStruct; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum XIMCaretStyle { + XIMIsInvisible = 0, + XIMIsPrimary = 1, + XIMIsSecondary = 2, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XIMPreeditCaretCallbackStruct { + pub position: libc::c_int, + pub direction: XIMCaretDirection, + pub style: XIMCaretStyle, +} +#[test] +fn bindgen_test_layout__XIMPreeditCaretCallbackStruct() { + assert_eq!( + ::core::mem::size_of::<_XIMPreeditCaretCallbackStruct>(), + 12usize, + concat!("Size of: ", stringify!(_XIMPreeditCaretCallbackStruct)) + ); + assert_eq!( + ::core::mem::align_of::<_XIMPreeditCaretCallbackStruct>(), + 4usize, + concat!("Alignment of ", stringify!(_XIMPreeditCaretCallbackStruct)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMPreeditCaretCallbackStruct>())).position as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMPreeditCaretCallbackStruct), + "::", + stringify!(position) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMPreeditCaretCallbackStruct>())).direction as *const _ + as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_XIMPreeditCaretCallbackStruct), + "::", + stringify!(direction) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMPreeditCaretCallbackStruct>())).style as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_XIMPreeditCaretCallbackStruct), + "::", + stringify!(style) + ) + ); +} +pub type XIMPreeditCaretCallbackStruct = _XIMPreeditCaretCallbackStruct; +#[repr(u32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum XIMStatusDataType { + XIMTextType = 0, + XIMBitmapType = 1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XIMStatusDrawCallbackStruct { + pub type_: XIMStatusDataType, + pub data: _XIMStatusDrawCallbackStruct__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union _XIMStatusDrawCallbackStruct__bindgen_ty_1 { + pub text: *mut XIMText, + pub bitmap: Pixmap, + _bindgen_union_align: u64, +} +#[test] +fn bindgen_test_layout__XIMStatusDrawCallbackStruct__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::<_XIMStatusDrawCallbackStruct__bindgen_ty_1>(), + 8usize, + concat!( + "Size of: ", + stringify!(_XIMStatusDrawCallbackStruct__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::<_XIMStatusDrawCallbackStruct__bindgen_ty_1>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_XIMStatusDrawCallbackStruct__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStatusDrawCallbackStruct__bindgen_ty_1>())).text as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMStatusDrawCallbackStruct__bindgen_ty_1), + "::", + stringify!(text) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStatusDrawCallbackStruct__bindgen_ty_1>())).bitmap + as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMStatusDrawCallbackStruct__bindgen_ty_1), + "::", + stringify!(bitmap) + ) + ); +} +#[test] +fn bindgen_test_layout__XIMStatusDrawCallbackStruct() { + assert_eq!( + ::core::mem::size_of::<_XIMStatusDrawCallbackStruct>(), + 16usize, + concat!("Size of: ", stringify!(_XIMStatusDrawCallbackStruct)) + ); + assert_eq!( + ::core::mem::align_of::<_XIMStatusDrawCallbackStruct>(), + 8usize, + concat!("Alignment of ", stringify!(_XIMStatusDrawCallbackStruct)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStatusDrawCallbackStruct>())).type_ as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMStatusDrawCallbackStruct), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMStatusDrawCallbackStruct>())).data as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_XIMStatusDrawCallbackStruct), + "::", + stringify!(data) + ) + ); +} +pub type XIMStatusDrawCallbackStruct = _XIMStatusDrawCallbackStruct; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XIMHotKeyTrigger { + pub keysym: KeySym, + pub modifier: libc::c_int, + pub modifier_mask: libc::c_int, +} +#[test] +fn bindgen_test_layout__XIMHotKeyTrigger() { + assert_eq!( + ::core::mem::size_of::<_XIMHotKeyTrigger>(), + 16usize, + concat!("Size of: ", stringify!(_XIMHotKeyTrigger)) + ); + assert_eq!( + ::core::mem::align_of::<_XIMHotKeyTrigger>(), + 8usize, + concat!("Alignment of ", stringify!(_XIMHotKeyTrigger)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XIMHotKeyTrigger>())).keysym as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMHotKeyTrigger), + "::", + stringify!(keysym) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XIMHotKeyTrigger>())).modifier as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_XIMHotKeyTrigger), + "::", + stringify!(modifier) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<_XIMHotKeyTrigger>())).modifier_mask as *const _ as usize + }, + 12usize, + concat!( + "Offset of field: ", + stringify!(_XIMHotKeyTrigger), + "::", + stringify!(modifier_mask) + ) + ); +} +pub type XIMHotKeyTrigger = _XIMHotKeyTrigger; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _XIMHotKeyTriggers { + pub num_hot_key: libc::c_int, + pub key: *mut XIMHotKeyTrigger, +} +#[test] +fn bindgen_test_layout__XIMHotKeyTriggers() { + assert_eq!( + ::core::mem::size_of::<_XIMHotKeyTriggers>(), + 16usize, + concat!("Size of: ", stringify!(_XIMHotKeyTriggers)) + ); + assert_eq!( + ::core::mem::align_of::<_XIMHotKeyTriggers>(), + 8usize, + concat!("Alignment of ", stringify!(_XIMHotKeyTriggers)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XIMHotKeyTriggers>())).num_hot_key as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_XIMHotKeyTriggers), + "::", + stringify!(num_hot_key) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<_XIMHotKeyTriggers>())).key as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_XIMHotKeyTriggers), + "::", + stringify!(key) + ) + ); +} +pub type XIMHotKeyTriggers = _XIMHotKeyTriggers; +pub type XIMHotKeyState = libc::c_ulong; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct XIMValuesList { + pub count_values: libc::c_ushort, + pub supported_values: *mut *mut libc::c_char, +} +#[test] +fn bindgen_test_layout_XIMValuesList() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(XIMValuesList)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(XIMValuesList)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).count_values as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(XIMValuesList), + "::", + stringify!(count_values) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).supported_values as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(XIMValuesList), + "::", + stringify!(supported_values) + ) + ); +} +extern "C" { + pub static mut _Xdebug: libc::c_int; +} +extern "C" { + pub fn XLoadQueryFont(arg1: *mut Display, arg2: *const libc::c_char) -> *mut XFontStruct; +} +extern "C" { + pub fn XQueryFont(arg1: *mut Display, arg2: XID) -> *mut XFontStruct; +} +extern "C" { + pub fn XGetMotionEvents( + arg1: *mut Display, + arg2: Window, + arg3: Time, + arg4: Time, + arg5: *mut libc::c_int, + ) -> *mut XTimeCoord; +} +extern "C" { + pub fn XDeleteModifiermapEntry( + arg1: *mut XModifierKeymap, + arg2: KeyCode, + arg3: libc::c_int, + ) -> *mut XModifierKeymap; +} +extern "C" { + pub fn XGetModifierMapping(arg1: *mut Display) -> *mut XModifierKeymap; +} +extern "C" { + pub fn XInsertModifiermapEntry( + arg1: *mut XModifierKeymap, + arg2: KeyCode, + arg3: libc::c_int, + ) -> *mut XModifierKeymap; +} +extern "C" { + pub fn XNewModifiermap(arg1: libc::c_int) -> *mut XModifierKeymap; +} +extern "C" { + pub fn XCreateImage( + arg1: *mut Display, + arg2: *mut Visual, + arg3: libc::c_uint, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *mut libc::c_char, + arg7: libc::c_uint, + arg8: libc::c_uint, + arg9: libc::c_int, + arg10: libc::c_int, + ) -> *mut XImage; +} +extern "C" { + pub fn XInitImage(arg1: *mut XImage) -> libc::c_int; +} +extern "C" { + pub fn XGetImage( + arg1: *mut Display, + arg2: Drawable, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: libc::c_uint, + arg6: libc::c_uint, + arg7: libc::c_ulong, + arg8: libc::c_int, + ) -> *mut XImage; +} +extern "C" { + pub fn XGetSubImage( + arg1: *mut Display, + arg2: Drawable, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: libc::c_uint, + arg6: libc::c_uint, + arg7: libc::c_ulong, + arg8: libc::c_int, + arg9: *mut XImage, + arg10: libc::c_int, + arg11: libc::c_int, + ) -> *mut XImage; +} +extern "C" { + pub fn XOpenDisplay(arg1: *const libc::c_char) -> *mut Display; +} +extern "C" { + pub fn XrmInitialize(); +} +extern "C" { + pub fn XFetchBytes(arg1: *mut Display, arg2: *mut libc::c_int) -> *mut libc::c_char; +} +extern "C" { + pub fn XFetchBuffer( + arg1: *mut Display, + arg2: *mut libc::c_int, + arg3: libc::c_int, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn XGetAtomName(arg1: *mut Display, arg2: Atom) -> *mut libc::c_char; +} +extern "C" { + pub fn XGetAtomNames( + arg1: *mut Display, + arg2: *mut Atom, + arg3: libc::c_int, + arg4: *mut *mut libc::c_char, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetDefault( + arg1: *mut Display, + arg2: *const libc::c_char, + arg3: *const libc::c_char, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn XDisplayName(arg1: *const libc::c_char) -> *mut libc::c_char; +} +extern "C" { + pub fn XKeysymToString(arg1: KeySym) -> *mut libc::c_char; +} +extern "C" { + pub fn XSynchronize( + arg1: *mut Display, + arg2: libc::c_int, + ) -> ::core::option::Option< + unsafe extern "C" fn(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int, + >; +} +extern "C" { + pub fn XSetAfterFunction( + arg1: *mut Display, + arg2: ::core::option::Option libc::c_int>, + ) -> ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut Display, + arg2: ::core::option::Option libc::c_int>, + ) -> libc::c_int, + >; +} +extern "C" { + pub fn XInternAtom(arg1: *mut Display, arg2: *const libc::c_char, arg3: libc::c_int) -> Atom; +} +extern "C" { + pub fn XInternAtoms( + arg1: *mut Display, + arg2: *mut *mut libc::c_char, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: *mut Atom, + ) -> libc::c_int; +} +extern "C" { + pub fn XCopyColormapAndFree(arg1: *mut Display, arg2: Colormap) -> Colormap; +} +extern "C" { + pub fn XCreateColormap( + arg1: *mut Display, + arg2: Window, + arg3: *mut Visual, + arg4: libc::c_int, + ) -> Colormap; +} +extern "C" { + pub fn XCreatePixmapCursor( + arg1: *mut Display, + arg2: Pixmap, + arg3: Pixmap, + arg4: *mut XColor, + arg5: *mut XColor, + arg6: libc::c_uint, + arg7: libc::c_uint, + ) -> Cursor; +} +extern "C" { + pub fn XCreateGlyphCursor( + arg1: *mut Display, + arg2: Font, + arg3: Font, + arg4: libc::c_uint, + arg5: libc::c_uint, + arg6: *const XColor, + arg7: *const XColor, + ) -> Cursor; +} +extern "C" { + pub fn XCreateFontCursor(arg1: *mut Display, arg2: libc::c_uint) -> Cursor; +} +extern "C" { + pub fn XLoadFont(arg1: *mut Display, arg2: *const libc::c_char) -> Font; +} +extern "C" { + pub fn XCreateGC( + arg1: *mut Display, + arg2: Drawable, + arg3: libc::c_ulong, + arg4: *mut XGCValues, + ) -> GC; +} +extern "C" { + pub fn XGContextFromGC(arg1: GC) -> GContext; +} +extern "C" { + pub fn XFlushGC(arg1: *mut Display, arg2: GC); +} +extern "C" { + pub fn XCreatePixmap( + arg1: *mut Display, + arg2: Drawable, + arg3: libc::c_uint, + arg4: libc::c_uint, + arg5: libc::c_uint, + ) -> Pixmap; +} +extern "C" { + pub fn XCreateBitmapFromData( + arg1: *mut Display, + arg2: Drawable, + arg3: *const libc::c_char, + arg4: libc::c_uint, + arg5: libc::c_uint, + ) -> Pixmap; +} +extern "C" { + pub fn XCreatePixmapFromBitmapData( + arg1: *mut Display, + arg2: Drawable, + arg3: *mut libc::c_char, + arg4: libc::c_uint, + arg5: libc::c_uint, + arg6: libc::c_ulong, + arg7: libc::c_ulong, + arg8: libc::c_uint, + ) -> Pixmap; +} +extern "C" { + pub fn XCreateSimpleWindow( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: libc::c_uint, + arg6: libc::c_uint, + arg7: libc::c_uint, + arg8: libc::c_ulong, + arg9: libc::c_ulong, + ) -> Window; +} +extern "C" { + pub fn XGetSelectionOwner(arg1: *mut Display, arg2: Atom) -> Window; +} +extern "C" { + pub fn XCreateWindow( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: libc::c_uint, + arg6: libc::c_uint, + arg7: libc::c_uint, + arg8: libc::c_int, + arg9: libc::c_uint, + arg10: *mut Visual, + arg11: libc::c_ulong, + arg12: *mut XSetWindowAttributes, + ) -> Window; +} +extern "C" { + pub fn XListInstalledColormaps( + arg1: *mut Display, + arg2: Window, + arg3: *mut libc::c_int, + ) -> *mut Colormap; +} +extern "C" { + pub fn XListFonts( + arg1: *mut Display, + arg2: *const libc::c_char, + arg3: libc::c_int, + arg4: *mut libc::c_int, + ) -> *mut *mut libc::c_char; +} +extern "C" { + pub fn XListFontsWithInfo( + arg1: *mut Display, + arg2: *const libc::c_char, + arg3: libc::c_int, + arg4: *mut libc::c_int, + arg5: *mut *mut XFontStruct, + ) -> *mut *mut libc::c_char; +} +extern "C" { + pub fn XGetFontPath(arg1: *mut Display, arg2: *mut libc::c_int) -> *mut *mut libc::c_char; +} +extern "C" { + pub fn XListExtensions(arg1: *mut Display, arg2: *mut libc::c_int) -> *mut *mut libc::c_char; +} +extern "C" { + pub fn XListProperties(arg1: *mut Display, arg2: Window, arg3: *mut libc::c_int) -> *mut Atom; +} +extern "C" { + pub fn XListHosts( + arg1: *mut Display, + arg2: *mut libc::c_int, + arg3: *mut libc::c_int, + ) -> *mut XHostAddress; +} +extern "C" { + pub fn XKeycodeToKeysym(arg1: *mut Display, arg2: KeyCode, arg3: libc::c_int) -> KeySym; +} +extern "C" { + pub fn XLookupKeysym(arg1: *mut XKeyEvent, arg2: libc::c_int) -> KeySym; +} +extern "C" { + pub fn XGetKeyboardMapping( + arg1: *mut Display, + arg2: KeyCode, + arg3: libc::c_int, + arg4: *mut libc::c_int, + ) -> *mut KeySym; +} +extern "C" { + pub fn XStringToKeysym(arg1: *const libc::c_char) -> KeySym; +} +extern "C" { + pub fn XMaxRequestSize(arg1: *mut Display) -> libc::c_long; +} +extern "C" { + pub fn XExtendedMaxRequestSize(arg1: *mut Display) -> libc::c_long; +} +extern "C" { + pub fn XResourceManagerString(arg1: *mut Display) -> *mut libc::c_char; +} +extern "C" { + pub fn XScreenResourceString(arg1: *mut Screen) -> *mut libc::c_char; +} +extern "C" { + pub fn XDisplayMotionBufferSize(arg1: *mut Display) -> libc::c_ulong; +} +extern "C" { + pub fn XVisualIDFromVisual(arg1: *mut Visual) -> VisualID; +} +extern "C" { + pub fn XInitThreads() -> libc::c_int; +} +extern "C" { + pub fn XLockDisplay(arg1: *mut Display); +} +extern "C" { + pub fn XUnlockDisplay(arg1: *mut Display); +} +extern "C" { + pub fn XInitExtension(arg1: *mut Display, arg2: *const libc::c_char) -> *mut XExtCodes; +} +extern "C" { + pub fn XAddExtension(arg1: *mut Display) -> *mut XExtCodes; +} +extern "C" { + pub fn XFindOnExtensionList(arg1: *mut *mut XExtData, arg2: libc::c_int) -> *mut XExtData; +} +extern "C" { + pub fn XEHeadOfExtensionList(arg1: XEDataObject) -> *mut *mut XExtData; +} +extern "C" { + pub fn XRootWindow(arg1: *mut Display, arg2: libc::c_int) -> Window; +} +extern "C" { + pub fn XDefaultRootWindow(arg1: *mut Display) -> Window; +} +extern "C" { + pub fn XRootWindowOfScreen(arg1: *mut Screen) -> Window; +} +extern "C" { + pub fn XDefaultVisual(arg1: *mut Display, arg2: libc::c_int) -> *mut Visual; +} +extern "C" { + pub fn XDefaultVisualOfScreen(arg1: *mut Screen) -> *mut Visual; +} +extern "C" { + pub fn XDefaultGC(arg1: *mut Display, arg2: libc::c_int) -> GC; +} +extern "C" { + pub fn XDefaultGCOfScreen(arg1: *mut Screen) -> GC; +} +extern "C" { + pub fn XBlackPixel(arg1: *mut Display, arg2: libc::c_int) -> libc::c_ulong; +} +extern "C" { + pub fn XWhitePixel(arg1: *mut Display, arg2: libc::c_int) -> libc::c_ulong; +} +extern "C" { + pub fn XAllPlanes() -> libc::c_ulong; +} +extern "C" { + pub fn XBlackPixelOfScreen(arg1: *mut Screen) -> libc::c_ulong; +} +extern "C" { + pub fn XWhitePixelOfScreen(arg1: *mut Screen) -> libc::c_ulong; +} +extern "C" { + pub fn XNextRequest(arg1: *mut Display) -> libc::c_ulong; +} +extern "C" { + pub fn XLastKnownRequestProcessed(arg1: *mut Display) -> libc::c_ulong; +} +extern "C" { + pub fn XServerVendor(arg1: *mut Display) -> *mut libc::c_char; +} +extern "C" { + pub fn XDisplayString(arg1: *mut Display) -> *mut libc::c_char; +} +extern "C" { + pub fn XDefaultColormap(arg1: *mut Display, arg2: libc::c_int) -> Colormap; +} +extern "C" { + pub fn XDefaultColormapOfScreen(arg1: *mut Screen) -> Colormap; +} +extern "C" { + pub fn XDisplayOfScreen(arg1: *mut Screen) -> *mut Display; +} +extern "C" { + pub fn XScreenOfDisplay(arg1: *mut Display, arg2: libc::c_int) -> *mut Screen; +} +extern "C" { + pub fn XDefaultScreenOfDisplay(arg1: *mut Display) -> *mut Screen; +} +extern "C" { + pub fn XEventMaskOfScreen(arg1: *mut Screen) -> libc::c_long; +} +extern "C" { + pub fn XScreenNumberOfScreen(arg1: *mut Screen) -> libc::c_int; +} +pub type XErrorHandler = ::core::option::Option< + unsafe extern "C" fn(arg1: *mut Display, arg2: *mut XErrorEvent) -> libc::c_int, +>; +extern "C" { + pub fn XSetErrorHandler(arg1: XErrorHandler) -> XErrorHandler; +} +pub type XIOErrorHandler = + ::core::option::Option libc::c_int>; +extern "C" { + pub fn XSetIOErrorHandler(arg1: XIOErrorHandler) -> XIOErrorHandler; +} +pub type XIOErrorExitHandler = + ::core::option::Option; +extern "C" { + pub fn XSetIOErrorExitHandler( + arg1: *mut Display, + arg2: XIOErrorExitHandler, + arg3: *mut libc::c_void, + ); +} +extern "C" { + pub fn XListPixmapFormats( + arg1: *mut Display, + arg2: *mut libc::c_int, + ) -> *mut XPixmapFormatValues; +} +extern "C" { + pub fn XListDepths( + arg1: *mut Display, + arg2: libc::c_int, + arg3: *mut libc::c_int, + ) -> *mut libc::c_int; +} +extern "C" { + pub fn XReconfigureWMWindow( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_int, + arg4: libc::c_uint, + arg5: *mut XWindowChanges, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetWMProtocols( + arg1: *mut Display, + arg2: Window, + arg3: *mut *mut Atom, + arg4: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetWMProtocols( + arg1: *mut Display, + arg2: Window, + arg3: *mut Atom, + arg4: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XIconifyWindow(arg1: *mut Display, arg2: Window, arg3: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XWithdrawWindow(arg1: *mut Display, arg2: Window, arg3: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XGetCommand( + arg1: *mut Display, + arg2: Window, + arg3: *mut *mut *mut libc::c_char, + arg4: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetWMColormapWindows( + arg1: *mut Display, + arg2: Window, + arg3: *mut *mut Window, + arg4: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetWMColormapWindows( + arg1: *mut Display, + arg2: Window, + arg3: *mut Window, + arg4: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XFreeStringList(arg1: *mut *mut libc::c_char); +} +extern "C" { + pub fn XSetTransientForHint(arg1: *mut Display, arg2: Window, arg3: Window) -> libc::c_int; +} +extern "C" { + pub fn XActivateScreenSaver(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XAddHost(arg1: *mut Display, arg2: *mut XHostAddress) -> libc::c_int; +} +extern "C" { + pub fn XAddHosts(arg1: *mut Display, arg2: *mut XHostAddress, arg3: libc::c_int) + -> libc::c_int; +} +extern "C" { + pub fn XAddToExtensionList(arg1: *mut *mut _XExtData, arg2: *mut XExtData) -> libc::c_int; +} +extern "C" { + pub fn XAddToSaveSet(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XAllocColor(arg1: *mut Display, arg2: Colormap, arg3: *mut XColor) -> libc::c_int; +} +extern "C" { + pub fn XAllocColorCells( + arg1: *mut Display, + arg2: Colormap, + arg3: libc::c_int, + arg4: *mut libc::c_ulong, + arg5: libc::c_uint, + arg6: *mut libc::c_ulong, + arg7: libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XAllocColorPlanes( + arg1: *mut Display, + arg2: Colormap, + arg3: libc::c_int, + arg4: *mut libc::c_ulong, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: libc::c_int, + arg8: libc::c_int, + arg9: *mut libc::c_ulong, + arg10: *mut libc::c_ulong, + arg11: *mut libc::c_ulong, + ) -> libc::c_int; +} +extern "C" { + pub fn XAllocNamedColor( + arg1: *mut Display, + arg2: Colormap, + arg3: *const libc::c_char, + arg4: *mut XColor, + arg5: *mut XColor, + ) -> libc::c_int; +} +extern "C" { + pub fn XAllowEvents(arg1: *mut Display, arg2: libc::c_int, arg3: Time) -> libc::c_int; +} +extern "C" { + pub fn XAutoRepeatOff(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XAutoRepeatOn(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XBell(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XBitmapBitOrder(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XBitmapPad(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XBitmapUnit(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XCellsOfScreen(arg1: *mut Screen) -> libc::c_int; +} +extern "C" { + pub fn XChangeActivePointerGrab( + arg1: *mut Display, + arg2: libc::c_uint, + arg3: Cursor, + arg4: Time, + ) -> libc::c_int; +} +extern "C" { + pub fn XChangeGC( + arg1: *mut Display, + arg2: GC, + arg3: libc::c_ulong, + arg4: *mut XGCValues, + ) -> libc::c_int; +} +extern "C" { + pub fn XChangeKeyboardControl( + arg1: *mut Display, + arg2: libc::c_ulong, + arg3: *mut XKeyboardControl, + ) -> libc::c_int; +} +extern "C" { + pub fn XChangeKeyboardMapping( + arg1: *mut Display, + arg2: libc::c_int, + arg3: libc::c_int, + arg4: *mut KeySym, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XChangePointerControl( + arg1: *mut Display, + arg2: libc::c_int, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XChangeProperty( + arg1: *mut Display, + arg2: Window, + arg3: Atom, + arg4: Atom, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: *const libc::c_uchar, + arg8: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XChangeSaveSet(arg1: *mut Display, arg2: Window, arg3: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XChangeWindowAttributes( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_ulong, + arg4: *mut XSetWindowAttributes, + ) -> libc::c_int; +} +extern "C" { + pub fn XCheckIfEvent( + arg1: *mut Display, + arg2: *mut XEvent, + arg3: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut Display, + arg2: *mut XEvent, + arg3: XPointer, + ) -> libc::c_int, + >, + arg4: XPointer, + ) -> libc::c_int; +} +extern "C" { + pub fn XCheckMaskEvent( + arg1: *mut Display, + arg2: libc::c_long, + arg3: *mut XEvent, + ) -> libc::c_int; +} +extern "C" { + pub fn XCheckTypedEvent( + arg1: *mut Display, + arg2: libc::c_int, + arg3: *mut XEvent, + ) -> libc::c_int; +} +extern "C" { + pub fn XCheckTypedWindowEvent( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_int, + arg4: *mut XEvent, + ) -> libc::c_int; +} +extern "C" { + pub fn XCheckWindowEvent( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_long, + arg4: *mut XEvent, + ) -> libc::c_int; +} +extern "C" { + pub fn XCirculateSubwindows(arg1: *mut Display, arg2: Window, arg3: libc::c_int) + -> libc::c_int; +} +extern "C" { + pub fn XCirculateSubwindowsDown(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XCirculateSubwindowsUp(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XClearArea( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: libc::c_uint, + arg6: libc::c_uint, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XClearWindow(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XCloseDisplay(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XConfigureWindow( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_uint, + arg4: *mut XWindowChanges, + ) -> libc::c_int; +} +extern "C" { + pub fn XConnectionNumber(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XConvertSelection( + arg1: *mut Display, + arg2: Atom, + arg3: Atom, + arg4: Atom, + arg5: Window, + arg6: Time, + ) -> libc::c_int; +} +extern "C" { + pub fn XCopyArea( + arg1: *mut Display, + arg2: Drawable, + arg3: Drawable, + arg4: GC, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: libc::c_uint, + arg8: libc::c_uint, + arg9: libc::c_int, + arg10: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XCopyGC(arg1: *mut Display, arg2: GC, arg3: libc::c_ulong, arg4: GC) -> libc::c_int; +} +extern "C" { + pub fn XCopyPlane( + arg1: *mut Display, + arg2: Drawable, + arg3: Drawable, + arg4: GC, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: libc::c_uint, + arg8: libc::c_uint, + arg9: libc::c_int, + arg10: libc::c_int, + arg11: libc::c_ulong, + ) -> libc::c_int; +} +extern "C" { + pub fn XDefaultDepth(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XDefaultDepthOfScreen(arg1: *mut Screen) -> libc::c_int; +} +extern "C" { + pub fn XDefaultScreen(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XDefineCursor(arg1: *mut Display, arg2: Window, arg3: Cursor) -> libc::c_int; +} +extern "C" { + pub fn XDeleteProperty(arg1: *mut Display, arg2: Window, arg3: Atom) -> libc::c_int; +} +extern "C" { + pub fn XDestroyWindow(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XDestroySubwindows(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XDoesBackingStore(arg1: *mut Screen) -> libc::c_int; +} +extern "C" { + pub fn XDoesSaveUnders(arg1: *mut Screen) -> libc::c_int; +} +extern "C" { + pub fn XDisableAccessControl(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XDisplayCells(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XDisplayHeight(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XDisplayHeightMM(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XDisplayKeycodes( + arg1: *mut Display, + arg2: *mut libc::c_int, + arg3: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDisplayPlanes(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XDisplayWidth(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XDisplayWidthMM(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XDrawArc( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: libc::c_uint, + arg7: libc::c_uint, + arg8: libc::c_int, + arg9: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawArcs( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: *mut XArc, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawImageString( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *const libc::c_char, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawImageString16( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *const XChar2b, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawLine( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawLines( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: *mut XPoint, + arg5: libc::c_int, + arg6: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawPoint( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawPoints( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: *mut XPoint, + arg5: libc::c_int, + arg6: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawRectangle( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: libc::c_uint, + arg7: libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawRectangles( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: *mut XRectangle, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawSegments( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: *mut XSegment, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawString( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *const libc::c_char, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawString16( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *const XChar2b, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawText( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *mut XTextItem, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XDrawText16( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *mut XTextItem16, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XEnableAccessControl(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XEventsQueued(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XFetchName( + arg1: *mut Display, + arg2: Window, + arg3: *mut *mut libc::c_char, + ) -> libc::c_int; +} +extern "C" { + pub fn XFillArc( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: libc::c_uint, + arg7: libc::c_uint, + arg8: libc::c_int, + arg9: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XFillArcs( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: *mut XArc, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XFillPolygon( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: *mut XPoint, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XFillRectangle( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: libc::c_uint, + arg7: libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XFillRectangles( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: *mut XRectangle, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XFlush(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XForceScreenSaver(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XFree(arg1: *mut libc::c_void) -> libc::c_int; +} +extern "C" { + pub fn XFreeColormap(arg1: *mut Display, arg2: Colormap) -> libc::c_int; +} +extern "C" { + pub fn XFreeColors( + arg1: *mut Display, + arg2: Colormap, + arg3: *mut libc::c_ulong, + arg4: libc::c_int, + arg5: libc::c_ulong, + ) -> libc::c_int; +} +extern "C" { + pub fn XFreeCursor(arg1: *mut Display, arg2: Cursor) -> libc::c_int; +} +extern "C" { + pub fn XFreeExtensionList(arg1: *mut *mut libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn XFreeFont(arg1: *mut Display, arg2: *mut XFontStruct) -> libc::c_int; +} +extern "C" { + pub fn XFreeFontInfo( + arg1: *mut *mut libc::c_char, + arg2: *mut XFontStruct, + arg3: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XFreeFontNames(arg1: *mut *mut libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn XFreeFontPath(arg1: *mut *mut libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn XFreeGC(arg1: *mut Display, arg2: GC) -> libc::c_int; +} +extern "C" { + pub fn XFreeModifiermap(arg1: *mut XModifierKeymap) -> libc::c_int; +} +extern "C" { + pub fn XFreePixmap(arg1: *mut Display, arg2: Pixmap) -> libc::c_int; +} +extern "C" { + pub fn XGeometry( + arg1: *mut Display, + arg2: libc::c_int, + arg3: *const libc::c_char, + arg4: *const libc::c_char, + arg5: libc::c_uint, + arg6: libc::c_uint, + arg7: libc::c_uint, + arg8: libc::c_int, + arg9: libc::c_int, + arg10: *mut libc::c_int, + arg11: *mut libc::c_int, + arg12: *mut libc::c_int, + arg13: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetErrorDatabaseText( + arg1: *mut Display, + arg2: *const libc::c_char, + arg3: *const libc::c_char, + arg4: *const libc::c_char, + arg5: *mut libc::c_char, + arg6: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetErrorText( + arg1: *mut Display, + arg2: libc::c_int, + arg3: *mut libc::c_char, + arg4: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetFontProperty( + arg1: *mut XFontStruct, + arg2: Atom, + arg3: *mut libc::c_ulong, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetGCValues( + arg1: *mut Display, + arg2: GC, + arg3: libc::c_ulong, + arg4: *mut XGCValues, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetGeometry( + arg1: *mut Display, + arg2: Drawable, + arg3: *mut Window, + arg4: *mut libc::c_int, + arg5: *mut libc::c_int, + arg6: *mut libc::c_uint, + arg7: *mut libc::c_uint, + arg8: *mut libc::c_uint, + arg9: *mut libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetIconName( + arg1: *mut Display, + arg2: Window, + arg3: *mut *mut libc::c_char, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetInputFocus( + arg1: *mut Display, + arg2: *mut Window, + arg3: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetKeyboardControl(arg1: *mut Display, arg2: *mut XKeyboardState) -> libc::c_int; +} +extern "C" { + pub fn XGetPointerControl( + arg1: *mut Display, + arg2: *mut libc::c_int, + arg3: *mut libc::c_int, + arg4: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetPointerMapping( + arg1: *mut Display, + arg2: *mut libc::c_uchar, + arg3: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetScreenSaver( + arg1: *mut Display, + arg2: *mut libc::c_int, + arg3: *mut libc::c_int, + arg4: *mut libc::c_int, + arg5: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetTransientForHint(arg1: *mut Display, arg2: Window, arg3: *mut Window) + -> libc::c_int; +} +extern "C" { + pub fn XGetWindowProperty( + arg1: *mut Display, + arg2: Window, + arg3: Atom, + arg4: libc::c_long, + arg5: libc::c_long, + arg6: libc::c_int, + arg7: Atom, + arg8: *mut Atom, + arg9: *mut libc::c_int, + arg10: *mut libc::c_ulong, + arg11: *mut libc::c_ulong, + arg12: *mut *mut libc::c_uchar, + ) -> libc::c_int; +} +extern "C" { + pub fn XGetWindowAttributes( + arg1: *mut Display, + arg2: Window, + arg3: *mut XWindowAttributes, + ) -> libc::c_int; +} +extern "C" { + pub fn XGrabButton( + arg1: *mut Display, + arg2: libc::c_uint, + arg3: libc::c_uint, + arg4: Window, + arg5: libc::c_int, + arg6: libc::c_uint, + arg7: libc::c_int, + arg8: libc::c_int, + arg9: Window, + arg10: Cursor, + ) -> libc::c_int; +} +extern "C" { + pub fn XGrabKey( + arg1: *mut Display, + arg2: libc::c_int, + arg3: libc::c_uint, + arg4: Window, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XGrabKeyboard( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: Time, + ) -> libc::c_int; +} +extern "C" { + pub fn XGrabPointer( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_int, + arg4: libc::c_uint, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: Window, + arg8: Cursor, + arg9: Time, + ) -> libc::c_int; +} +extern "C" { + pub fn XGrabServer(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XHeightMMOfScreen(arg1: *mut Screen) -> libc::c_int; +} +extern "C" { + pub fn XHeightOfScreen(arg1: *mut Screen) -> libc::c_int; +} +extern "C" { + pub fn XIfEvent( + arg1: *mut Display, + arg2: *mut XEvent, + arg3: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut Display, + arg2: *mut XEvent, + arg3: XPointer, + ) -> libc::c_int, + >, + arg4: XPointer, + ) -> libc::c_int; +} +extern "C" { + pub fn XImageByteOrder(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XInstallColormap(arg1: *mut Display, arg2: Colormap) -> libc::c_int; +} +extern "C" { + pub fn XKeysymToKeycode(arg1: *mut Display, arg2: KeySym) -> KeyCode; +} +extern "C" { + pub fn XKillClient(arg1: *mut Display, arg2: XID) -> libc::c_int; +} +extern "C" { + pub fn XLookupColor( + arg1: *mut Display, + arg2: Colormap, + arg3: *const libc::c_char, + arg4: *mut XColor, + arg5: *mut XColor, + ) -> libc::c_int; +} +extern "C" { + pub fn XLowerWindow(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XMapRaised(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XMapSubwindows(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XMapWindow(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XMaskEvent(arg1: *mut Display, arg2: libc::c_long, arg3: *mut XEvent) -> libc::c_int; +} +extern "C" { + pub fn XMaxCmapsOfScreen(arg1: *mut Screen) -> libc::c_int; +} +extern "C" { + pub fn XMinCmapsOfScreen(arg1: *mut Screen) -> libc::c_int; +} +extern "C" { + pub fn XMoveResizeWindow( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: libc::c_uint, + arg6: libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XMoveWindow( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_int, + arg4: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XNextEvent(arg1: *mut Display, arg2: *mut XEvent) -> libc::c_int; +} +extern "C" { + pub fn XNoOp(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XParseColor( + arg1: *mut Display, + arg2: Colormap, + arg3: *const libc::c_char, + arg4: *mut XColor, + ) -> libc::c_int; +} +extern "C" { + pub fn XParseGeometry( + arg1: *const libc::c_char, + arg2: *mut libc::c_int, + arg3: *mut libc::c_int, + arg4: *mut libc::c_uint, + arg5: *mut libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XPeekEvent(arg1: *mut Display, arg2: *mut XEvent) -> libc::c_int; +} +extern "C" { + pub fn XPeekIfEvent( + arg1: *mut Display, + arg2: *mut XEvent, + arg3: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut Display, + arg2: *mut XEvent, + arg3: XPointer, + ) -> libc::c_int, + >, + arg4: XPointer, + ) -> libc::c_int; +} +extern "C" { + pub fn XPending(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XPlanesOfScreen(arg1: *mut Screen) -> libc::c_int; +} +extern "C" { + pub fn XProtocolRevision(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XProtocolVersion(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XPutBackEvent(arg1: *mut Display, arg2: *mut XEvent) -> libc::c_int; +} +extern "C" { + pub fn XPutImage( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: *mut XImage, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: libc::c_int, + arg8: libc::c_int, + arg9: libc::c_uint, + arg10: libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XQLength(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XQueryBestCursor( + arg1: *mut Display, + arg2: Drawable, + arg3: libc::c_uint, + arg4: libc::c_uint, + arg5: *mut libc::c_uint, + arg6: *mut libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XQueryBestSize( + arg1: *mut Display, + arg2: libc::c_int, + arg3: Drawable, + arg4: libc::c_uint, + arg5: libc::c_uint, + arg6: *mut libc::c_uint, + arg7: *mut libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XQueryBestStipple( + arg1: *mut Display, + arg2: Drawable, + arg3: libc::c_uint, + arg4: libc::c_uint, + arg5: *mut libc::c_uint, + arg6: *mut libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XQueryBestTile( + arg1: *mut Display, + arg2: Drawable, + arg3: libc::c_uint, + arg4: libc::c_uint, + arg5: *mut libc::c_uint, + arg6: *mut libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XQueryColor(arg1: *mut Display, arg2: Colormap, arg3: *mut XColor) -> libc::c_int; +} +extern "C" { + pub fn XQueryColors( + arg1: *mut Display, + arg2: Colormap, + arg3: *mut XColor, + arg4: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XQueryExtension( + arg1: *mut Display, + arg2: *const libc::c_char, + arg3: *mut libc::c_int, + arg4: *mut libc::c_int, + arg5: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XQueryKeymap(arg1: *mut Display, arg2: *mut libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn XQueryPointer( + arg1: *mut Display, + arg2: Window, + arg3: *mut Window, + arg4: *mut Window, + arg5: *mut libc::c_int, + arg6: *mut libc::c_int, + arg7: *mut libc::c_int, + arg8: *mut libc::c_int, + arg9: *mut libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XQueryTextExtents( + arg1: *mut Display, + arg2: XID, + arg3: *const libc::c_char, + arg4: libc::c_int, + arg5: *mut libc::c_int, + arg6: *mut libc::c_int, + arg7: *mut libc::c_int, + arg8: *mut XCharStruct, + ) -> libc::c_int; +} +extern "C" { + pub fn XQueryTextExtents16( + arg1: *mut Display, + arg2: XID, + arg3: *const XChar2b, + arg4: libc::c_int, + arg5: *mut libc::c_int, + arg6: *mut libc::c_int, + arg7: *mut libc::c_int, + arg8: *mut XCharStruct, + ) -> libc::c_int; +} +extern "C" { + pub fn XQueryTree( + arg1: *mut Display, + arg2: Window, + arg3: *mut Window, + arg4: *mut Window, + arg5: *mut *mut Window, + arg6: *mut libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XRaiseWindow(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XReadBitmapFile( + arg1: *mut Display, + arg2: Drawable, + arg3: *const libc::c_char, + arg4: *mut libc::c_uint, + arg5: *mut libc::c_uint, + arg6: *mut Pixmap, + arg7: *mut libc::c_int, + arg8: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XReadBitmapFileData( + arg1: *const libc::c_char, + arg2: *mut libc::c_uint, + arg3: *mut libc::c_uint, + arg4: *mut *mut libc::c_uchar, + arg5: *mut libc::c_int, + arg6: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XRebindKeysym( + arg1: *mut Display, + arg2: KeySym, + arg3: *mut KeySym, + arg4: libc::c_int, + arg5: *const libc::c_uchar, + arg6: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XRecolorCursor( + arg1: *mut Display, + arg2: Cursor, + arg3: *mut XColor, + arg4: *mut XColor, + ) -> libc::c_int; +} +extern "C" { + pub fn XRefreshKeyboardMapping(arg1: *mut XMappingEvent) -> libc::c_int; +} +extern "C" { + pub fn XRemoveFromSaveSet(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XRemoveHost(arg1: *mut Display, arg2: *mut XHostAddress) -> libc::c_int; +} +extern "C" { + pub fn XRemoveHosts( + arg1: *mut Display, + arg2: *mut XHostAddress, + arg3: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XReparentWindow( + arg1: *mut Display, + arg2: Window, + arg3: Window, + arg4: libc::c_int, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XResetScreenSaver(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XResizeWindow( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_uint, + arg4: libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XRestackWindows(arg1: *mut Display, arg2: *mut Window, arg3: libc::c_int) + -> libc::c_int; +} +extern "C" { + pub fn XRotateBuffers(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XRotateWindowProperties( + arg1: *mut Display, + arg2: Window, + arg3: *mut Atom, + arg4: libc::c_int, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XScreenCount(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XSelectInput(arg1: *mut Display, arg2: Window, arg3: libc::c_long) -> libc::c_int; +} +extern "C" { + pub fn XSendEvent( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_int, + arg4: libc::c_long, + arg5: *mut XEvent, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetAccessControl(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XSetArcMode(arg1: *mut Display, arg2: GC, arg3: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XSetBackground(arg1: *mut Display, arg2: GC, arg3: libc::c_ulong) -> libc::c_int; +} +extern "C" { + pub fn XSetClipMask(arg1: *mut Display, arg2: GC, arg3: Pixmap) -> libc::c_int; +} +extern "C" { + pub fn XSetClipOrigin( + arg1: *mut Display, + arg2: GC, + arg3: libc::c_int, + arg4: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetClipRectangles( + arg1: *mut Display, + arg2: GC, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: *mut XRectangle, + arg6: libc::c_int, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetCloseDownMode(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XSetCommand( + arg1: *mut Display, + arg2: Window, + arg3: *mut *mut libc::c_char, + arg4: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetDashes( + arg1: *mut Display, + arg2: GC, + arg3: libc::c_int, + arg4: *const libc::c_char, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetFillRule(arg1: *mut Display, arg2: GC, arg3: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XSetFillStyle(arg1: *mut Display, arg2: GC, arg3: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XSetFont(arg1: *mut Display, arg2: GC, arg3: Font) -> libc::c_int; +} +extern "C" { + pub fn XSetFontPath( + arg1: *mut Display, + arg2: *mut *mut libc::c_char, + arg3: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetForeground(arg1: *mut Display, arg2: GC, arg3: libc::c_ulong) -> libc::c_int; +} +extern "C" { + pub fn XSetFunction(arg1: *mut Display, arg2: GC, arg3: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XSetGraphicsExposures(arg1: *mut Display, arg2: GC, arg3: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XSetIconName(arg1: *mut Display, arg2: Window, arg3: *const libc::c_char) + -> libc::c_int; +} +extern "C" { + pub fn XSetInputFocus( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_int, + arg4: Time, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetLineAttributes( + arg1: *mut Display, + arg2: GC, + arg3: libc::c_uint, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetModifierMapping(arg1: *mut Display, arg2: *mut XModifierKeymap) -> libc::c_int; +} +extern "C" { + pub fn XSetPlaneMask(arg1: *mut Display, arg2: GC, arg3: libc::c_ulong) -> libc::c_int; +} +extern "C" { + pub fn XSetPointerMapping( + arg1: *mut Display, + arg2: *const libc::c_uchar, + arg3: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetScreenSaver( + arg1: *mut Display, + arg2: libc::c_int, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetSelectionOwner( + arg1: *mut Display, + arg2: Atom, + arg3: Window, + arg4: Time, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetState( + arg1: *mut Display, + arg2: GC, + arg3: libc::c_ulong, + arg4: libc::c_ulong, + arg5: libc::c_int, + arg6: libc::c_ulong, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetStipple(arg1: *mut Display, arg2: GC, arg3: Pixmap) -> libc::c_int; +} +extern "C" { + pub fn XSetSubwindowMode(arg1: *mut Display, arg2: GC, arg3: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XSetTSOrigin( + arg1: *mut Display, + arg2: GC, + arg3: libc::c_int, + arg4: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetTile(arg1: *mut Display, arg2: GC, arg3: Pixmap) -> libc::c_int; +} +extern "C" { + pub fn XSetWindowBackground( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_ulong, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetWindowBackgroundPixmap( + arg1: *mut Display, + arg2: Window, + arg3: Pixmap, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetWindowBorder(arg1: *mut Display, arg2: Window, arg3: libc::c_ulong) -> libc::c_int; +} +extern "C" { + pub fn XSetWindowBorderPixmap(arg1: *mut Display, arg2: Window, arg3: Pixmap) -> libc::c_int; +} +extern "C" { + pub fn XSetWindowBorderWidth( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_uint, + ) -> libc::c_int; +} +extern "C" { + pub fn XSetWindowColormap(arg1: *mut Display, arg2: Window, arg3: Colormap) -> libc::c_int; +} +extern "C" { + pub fn XStoreBuffer( + arg1: *mut Display, + arg2: *const libc::c_char, + arg3: libc::c_int, + arg4: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XStoreBytes( + arg1: *mut Display, + arg2: *const libc::c_char, + arg3: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XStoreColor(arg1: *mut Display, arg2: Colormap, arg3: *mut XColor) -> libc::c_int; +} +extern "C" { + pub fn XStoreColors( + arg1: *mut Display, + arg2: Colormap, + arg3: *mut XColor, + arg4: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XStoreName(arg1: *mut Display, arg2: Window, arg3: *const libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn XStoreNamedColor( + arg1: *mut Display, + arg2: Colormap, + arg3: *const libc::c_char, + arg4: libc::c_ulong, + arg5: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSync(arg1: *mut Display, arg2: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn XTextExtents( + arg1: *mut XFontStruct, + arg2: *const libc::c_char, + arg3: libc::c_int, + arg4: *mut libc::c_int, + arg5: *mut libc::c_int, + arg6: *mut libc::c_int, + arg7: *mut XCharStruct, + ) -> libc::c_int; +} +extern "C" { + pub fn XTextExtents16( + arg1: *mut XFontStruct, + arg2: *const XChar2b, + arg3: libc::c_int, + arg4: *mut libc::c_int, + arg5: *mut libc::c_int, + arg6: *mut libc::c_int, + arg7: *mut XCharStruct, + ) -> libc::c_int; +} +extern "C" { + pub fn XTextWidth( + arg1: *mut XFontStruct, + arg2: *const libc::c_char, + arg3: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XTextWidth16( + arg1: *mut XFontStruct, + arg2: *const XChar2b, + arg3: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XTranslateCoordinates( + arg1: *mut Display, + arg2: Window, + arg3: Window, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *mut libc::c_int, + arg7: *mut libc::c_int, + arg8: *mut Window, + ) -> libc::c_int; +} +extern "C" { + pub fn XUndefineCursor(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XUngrabButton( + arg1: *mut Display, + arg2: libc::c_uint, + arg3: libc::c_uint, + arg4: Window, + ) -> libc::c_int; +} +extern "C" { + pub fn XUngrabKey( + arg1: *mut Display, + arg2: libc::c_int, + arg3: libc::c_uint, + arg4: Window, + ) -> libc::c_int; +} +extern "C" { + pub fn XUngrabKeyboard(arg1: *mut Display, arg2: Time) -> libc::c_int; +} +extern "C" { + pub fn XUngrabPointer(arg1: *mut Display, arg2: Time) -> libc::c_int; +} +extern "C" { + pub fn XUngrabServer(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XUninstallColormap(arg1: *mut Display, arg2: Colormap) -> libc::c_int; +} +extern "C" { + pub fn XUnloadFont(arg1: *mut Display, arg2: Font) -> libc::c_int; +} +extern "C" { + pub fn XUnmapSubwindows(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XUnmapWindow(arg1: *mut Display, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XVendorRelease(arg1: *mut Display) -> libc::c_int; +} +extern "C" { + pub fn XWarpPointer( + arg1: *mut Display, + arg2: Window, + arg3: Window, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: libc::c_uint, + arg7: libc::c_uint, + arg8: libc::c_int, + arg9: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XWidthMMOfScreen(arg1: *mut Screen) -> libc::c_int; +} +extern "C" { + pub fn XWidthOfScreen(arg1: *mut Screen) -> libc::c_int; +} +extern "C" { + pub fn XWindowEvent( + arg1: *mut Display, + arg2: Window, + arg3: libc::c_long, + arg4: *mut XEvent, + ) -> libc::c_int; +} +extern "C" { + pub fn XWriteBitmapFile( + arg1: *mut Display, + arg2: *const libc::c_char, + arg3: Pixmap, + arg4: libc::c_uint, + arg5: libc::c_uint, + arg6: libc::c_int, + arg7: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XSupportsLocale() -> libc::c_int; +} +extern "C" { + pub fn XSetLocaleModifiers(arg1: *const libc::c_char) -> *mut libc::c_char; +} +extern "C" { + pub fn XOpenOM( + arg1: *mut Display, + arg2: *mut _XrmHashBucketRec, + arg3: *const libc::c_char, + arg4: *const libc::c_char, + ) -> XOM; +} +extern "C" { + pub fn XCloseOM(arg1: XOM) -> libc::c_int; +} +extern "C" { + pub fn XSetOMValues(arg1: XOM, ...) -> *mut libc::c_char; +} +extern "C" { + pub fn XGetOMValues(arg1: XOM, ...) -> *mut libc::c_char; +} +extern "C" { + pub fn XDisplayOfOM(arg1: XOM) -> *mut Display; +} +extern "C" { + pub fn XLocaleOfOM(arg1: XOM) -> *mut libc::c_char; +} +extern "C" { + pub fn XCreateOC(arg1: XOM, ...) -> XOC; +} +extern "C" { + pub fn XDestroyOC(arg1: XOC); +} +extern "C" { + pub fn XOMOfOC(arg1: XOC) -> XOM; +} +extern "C" { + pub fn XSetOCValues(arg1: XOC, ...) -> *mut libc::c_char; +} +extern "C" { + pub fn XGetOCValues(arg1: XOC, ...) -> *mut libc::c_char; +} +extern "C" { + pub fn XCreateFontSet( + arg1: *mut Display, + arg2: *const libc::c_char, + arg3: *mut *mut *mut libc::c_char, + arg4: *mut libc::c_int, + arg5: *mut *mut libc::c_char, + ) -> XFontSet; +} +extern "C" { + pub fn XFreeFontSet(arg1: *mut Display, arg2: XFontSet); +} +extern "C" { + pub fn XFontsOfFontSet( + arg1: XFontSet, + arg2: *mut *mut *mut XFontStruct, + arg3: *mut *mut *mut libc::c_char, + ) -> libc::c_int; +} +extern "C" { + pub fn XBaseFontNameListOfFontSet(arg1: XFontSet) -> *mut libc::c_char; +} +extern "C" { + pub fn XLocaleOfFontSet(arg1: XFontSet) -> *mut libc::c_char; +} +extern "C" { + pub fn XContextDependentDrawing(arg1: XFontSet) -> libc::c_int; +} +extern "C" { + pub fn XDirectionalDependentDrawing(arg1: XFontSet) -> libc::c_int; +} +extern "C" { + pub fn XContextualDrawing(arg1: XFontSet) -> libc::c_int; +} +extern "C" { + pub fn XExtentsOfFontSet(arg1: XFontSet) -> *mut XFontSetExtents; +} +extern "C" { + pub fn XmbTextEscapement( + arg1: XFontSet, + arg2: *const libc::c_char, + arg3: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XwcTextEscapement( + arg1: XFontSet, + arg2: *const wchar_t, + arg3: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn Xutf8TextEscapement( + arg1: XFontSet, + arg2: *const libc::c_char, + arg3: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XmbTextExtents( + arg1: XFontSet, + arg2: *const libc::c_char, + arg3: libc::c_int, + arg4: *mut XRectangle, + arg5: *mut XRectangle, + ) -> libc::c_int; +} +extern "C" { + pub fn XwcTextExtents( + arg1: XFontSet, + arg2: *const wchar_t, + arg3: libc::c_int, + arg4: *mut XRectangle, + arg5: *mut XRectangle, + ) -> libc::c_int; +} +extern "C" { + pub fn Xutf8TextExtents( + arg1: XFontSet, + arg2: *const libc::c_char, + arg3: libc::c_int, + arg4: *mut XRectangle, + arg5: *mut XRectangle, + ) -> libc::c_int; +} +extern "C" { + pub fn XmbTextPerCharExtents( + arg1: XFontSet, + arg2: *const libc::c_char, + arg3: libc::c_int, + arg4: *mut XRectangle, + arg5: *mut XRectangle, + arg6: libc::c_int, + arg7: *mut libc::c_int, + arg8: *mut XRectangle, + arg9: *mut XRectangle, + ) -> libc::c_int; +} +extern "C" { + pub fn XwcTextPerCharExtents( + arg1: XFontSet, + arg2: *const wchar_t, + arg3: libc::c_int, + arg4: *mut XRectangle, + arg5: *mut XRectangle, + arg6: libc::c_int, + arg7: *mut libc::c_int, + arg8: *mut XRectangle, + arg9: *mut XRectangle, + ) -> libc::c_int; +} +extern "C" { + pub fn Xutf8TextPerCharExtents( + arg1: XFontSet, + arg2: *const libc::c_char, + arg3: libc::c_int, + arg4: *mut XRectangle, + arg5: *mut XRectangle, + arg6: libc::c_int, + arg7: *mut libc::c_int, + arg8: *mut XRectangle, + arg9: *mut XRectangle, + ) -> libc::c_int; +} +extern "C" { + pub fn XmbDrawText( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *mut XmbTextItem, + arg7: libc::c_int, + ); +} +extern "C" { + pub fn XwcDrawText( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *mut XwcTextItem, + arg7: libc::c_int, + ); +} +extern "C" { + pub fn Xutf8DrawText( + arg1: *mut Display, + arg2: Drawable, + arg3: GC, + arg4: libc::c_int, + arg5: libc::c_int, + arg6: *mut XmbTextItem, + arg7: libc::c_int, + ); +} +extern "C" { + pub fn XmbDrawString( + arg1: *mut Display, + arg2: Drawable, + arg3: XFontSet, + arg4: GC, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: *const libc::c_char, + arg8: libc::c_int, + ); +} +extern "C" { + pub fn XwcDrawString( + arg1: *mut Display, + arg2: Drawable, + arg3: XFontSet, + arg4: GC, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: *const wchar_t, + arg8: libc::c_int, + ); +} +extern "C" { + pub fn Xutf8DrawString( + arg1: *mut Display, + arg2: Drawable, + arg3: XFontSet, + arg4: GC, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: *const libc::c_char, + arg8: libc::c_int, + ); +} +extern "C" { + pub fn XmbDrawImageString( + arg1: *mut Display, + arg2: Drawable, + arg3: XFontSet, + arg4: GC, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: *const libc::c_char, + arg8: libc::c_int, + ); +} +extern "C" { + pub fn XwcDrawImageString( + arg1: *mut Display, + arg2: Drawable, + arg3: XFontSet, + arg4: GC, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: *const wchar_t, + arg8: libc::c_int, + ); +} +extern "C" { + pub fn Xutf8DrawImageString( + arg1: *mut Display, + arg2: Drawable, + arg3: XFontSet, + arg4: GC, + arg5: libc::c_int, + arg6: libc::c_int, + arg7: *const libc::c_char, + arg8: libc::c_int, + ); +} +extern "C" { + pub fn XOpenIM( + arg1: *mut Display, + arg2: *mut _XrmHashBucketRec, + arg3: *mut libc::c_char, + arg4: *mut libc::c_char, + ) -> XIM; +} +extern "C" { + pub fn XCloseIM(arg1: XIM) -> libc::c_int; +} +extern "C" { + pub fn XGetIMValues(arg1: XIM, ...) -> *mut libc::c_char; +} +extern "C" { + pub fn XSetIMValues(arg1: XIM, ...) -> *mut libc::c_char; +} +extern "C" { + pub fn XDisplayOfIM(arg1: XIM) -> *mut Display; +} +extern "C" { + pub fn XLocaleOfIM(arg1: XIM) -> *mut libc::c_char; +} +extern "C" { + pub fn XCreateIC(arg1: XIM, ...) -> XIC; +} +extern "C" { + pub fn XDestroyIC(arg1: XIC); +} +extern "C" { + pub fn XSetICFocus(arg1: XIC); +} +extern "C" { + pub fn XUnsetICFocus(arg1: XIC); +} +extern "C" { + pub fn XwcResetIC(arg1: XIC) -> *mut wchar_t; +} +extern "C" { + pub fn XmbResetIC(arg1: XIC) -> *mut libc::c_char; +} +extern "C" { + pub fn Xutf8ResetIC(arg1: XIC) -> *mut libc::c_char; +} +extern "C" { + pub fn XSetICValues(arg1: XIC, ...) -> *mut libc::c_char; +} +extern "C" { + pub fn XGetICValues(arg1: XIC, ...) -> *mut libc::c_char; +} +extern "C" { + pub fn XIMOfIC(arg1: XIC) -> XIM; +} +extern "C" { + pub fn XFilterEvent(arg1: *mut XEvent, arg2: Window) -> libc::c_int; +} +extern "C" { + pub fn XmbLookupString( + arg1: XIC, + arg2: *mut XKeyPressedEvent, + arg3: *mut libc::c_char, + arg4: libc::c_int, + arg5: *mut KeySym, + arg6: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XwcLookupString( + arg1: XIC, + arg2: *mut XKeyPressedEvent, + arg3: *mut wchar_t, + arg4: libc::c_int, + arg5: *mut KeySym, + arg6: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn Xutf8LookupString( + arg1: XIC, + arg2: *mut XKeyPressedEvent, + arg3: *mut libc::c_char, + arg4: libc::c_int, + arg5: *mut KeySym, + arg6: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XVaCreateNestedList(arg1: libc::c_int, ...) -> XVaNestedList; +} +extern "C" { + pub fn XRegisterIMInstantiateCallback( + arg1: *mut Display, + arg2: *mut _XrmHashBucketRec, + arg3: *mut libc::c_char, + arg4: *mut libc::c_char, + arg5: XIDProc, + arg6: XPointer, + ) -> libc::c_int; +} +extern "C" { + pub fn XUnregisterIMInstantiateCallback( + arg1: *mut Display, + arg2: *mut _XrmHashBucketRec, + arg3: *mut libc::c_char, + arg4: *mut libc::c_char, + arg5: XIDProc, + arg6: XPointer, + ) -> libc::c_int; +} +pub type XConnectionWatchProc = ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut Display, + arg2: XPointer, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: *mut XPointer, + ), +>; +extern "C" { + pub fn XInternalConnectionNumbers( + arg1: *mut Display, + arg2: *mut *mut libc::c_int, + arg3: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn XProcessInternalConnection(arg1: *mut Display, arg2: libc::c_int); +} +extern "C" { + pub fn XAddConnectionWatch( + arg1: *mut Display, + arg2: XConnectionWatchProc, + arg3: XPointer, + ) -> libc::c_int; +} +extern "C" { + pub fn XRemoveConnectionWatch(arg1: *mut Display, arg2: XConnectionWatchProc, arg3: XPointer); +} +extern "C" { + pub fn XSetAuthorization( + arg1: *mut libc::c_char, + arg2: libc::c_int, + arg3: *mut libc::c_char, + arg4: libc::c_int, + ); +} +extern "C" { + pub fn _Xmbtowc(arg1: *mut wchar_t, arg2: *mut libc::c_char, arg3: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn _Xwctomb(arg1: *mut libc::c_char, arg2: wchar_t) -> libc::c_int; +} +extern "C" { + pub fn XGetEventData(arg1: *mut Display, arg2: *mut XGenericEventCookie) -> libc::c_int; +} +extern "C" { + pub fn XFreeEventData(arg1: *mut Display, arg2: *mut XGenericEventCookie); +} +#[repr(u32)] +#[doc = " These are the various supported windowing subsystems"] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub enum SDL_SYSWM_TYPE { + SDL_SYSWM_UNKNOWN = 0, + SDL_SYSWM_WINDOWS = 1, + SDL_SYSWM_X11 = 2, + SDL_SYSWM_DIRECTFB = 3, + SDL_SYSWM_COCOA = 4, + SDL_SYSWM_UIKIT = 5, + SDL_SYSWM_WAYLAND = 6, + SDL_SYSWM_MIR = 7, + SDL_SYSWM_WINRT = 8, + SDL_SYSWM_ANDROID = 9, + SDL_SYSWM_VIVANTE = 10, + SDL_SYSWM_OS2 = 11, + SDL_SYSWM_HAIKU = 12, +} +#[doc = " The custom event structure."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_SysWMmsg { + pub version: SDL_version, + pub subsystem: SDL_SYSWM_TYPE, + pub msg: SDL_SysWMmsg__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union SDL_SysWMmsg__bindgen_ty_1 { + pub x11: SDL_SysWMmsg__bindgen_ty_1__bindgen_ty_1, + pub dummy: libc::c_int, + _bindgen_union_align: [u64; 24usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_SysWMmsg__bindgen_ty_1__bindgen_ty_1 { + pub event: XEvent, +} +#[test] +fn bindgen_test_layout_SDL_SysWMmsg__bindgen_ty_1__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::(), + 192usize, + concat!( + "Size of: ", + stringify!(SDL_SysWMmsg__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(SDL_SysWMmsg__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).event as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMmsg__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(event) + ) + ); +} +#[test] +fn bindgen_test_layout_SDL_SysWMmsg__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::(), + 192usize, + concat!("Size of: ", stringify!(SDL_SysWMmsg__bindgen_ty_1)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_SysWMmsg__bindgen_ty_1)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).x11 as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMmsg__bindgen_ty_1), + "::", + stringify!(x11) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).dummy as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMmsg__bindgen_ty_1), + "::", + stringify!(dummy) + ) + ); +} +#[test] +fn bindgen_test_layout_SDL_SysWMmsg() { + assert_eq!( + ::core::mem::size_of::(), + 200usize, + concat!("Size of: ", stringify!(SDL_SysWMmsg)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_SysWMmsg)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).version as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMmsg), + "::", + stringify!(version) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).subsystem as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMmsg), + "::", + stringify!(subsystem) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).msg as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMmsg), + "::", + stringify!(msg) + ) + ); +} +#[doc = " \\brief SDL_syswm.h"] +#[doc = ""] +#[doc = " Your application has access to a special type of event ::SDL_SYSWMEVENT,"] +#[doc = " which contains window-manager specific information and arrives whenever"] +#[doc = " an unhandled window event occurs. This event is ignored by default, but"] +#[doc = " you can enable it with SDL_EventState()."] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_SysWMinfo { + pub version: SDL_version, + pub subsystem: SDL_SYSWM_TYPE, + pub info: SDL_SysWMinfo__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union SDL_SysWMinfo__bindgen_ty_1 { + pub x11: SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_1, + pub wl: SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_2, + pub dummy: [Uint8; 64usize], + _bindgen_union_align: [u64; 8usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_1 { + #[doc = "< The X11 display"] + pub display: *mut Display, + #[doc = "< The X11 window"] + pub window: Window, +} +#[test] +fn bindgen_test_layout_SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::(), + 16usize, + concat!( + "Size of: ", + stringify!(SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).display + as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).window + as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(window) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_2 { + #[doc = "< Wayland display"] + pub display: *mut wl_display, + #[doc = "< Wayland surface"] + pub surface: *mut wl_surface, + #[doc = "< Wayland shell_surface (window manager handle)"] + pub shell_surface: *mut wl_shell_surface, +} +#[test] +fn bindgen_test_layout_SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_2() { + assert_eq!( + ::core::mem::size_of::(), + 24usize, + concat!( + "Size of: ", + stringify!(SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).display + as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(display) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).surface + as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(surface) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).shell_surface + as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMinfo__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(shell_surface) + ) + ); +} +#[test] +fn bindgen_test_layout_SDL_SysWMinfo__bindgen_ty_1() { + assert_eq!( + ::core::mem::size_of::(), + 64usize, + concat!("Size of: ", stringify!(SDL_SysWMinfo__bindgen_ty_1)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_SysWMinfo__bindgen_ty_1)) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).x11 as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMinfo__bindgen_ty_1), + "::", + stringify!(x11) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).wl as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMinfo__bindgen_ty_1), + "::", + stringify!(wl) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::())).dummy as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMinfo__bindgen_ty_1), + "::", + stringify!(dummy) + ) + ); +} +#[test] +fn bindgen_test_layout_SDL_SysWMinfo() { + assert_eq!( + ::core::mem::size_of::(), + 72usize, + concat!("Size of: ", stringify!(SDL_SysWMinfo)) + ); + assert_eq!( + ::core::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SDL_SysWMinfo)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).version as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMinfo), + "::", + stringify!(version) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).subsystem as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMinfo), + "::", + stringify!(subsystem) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::())).info as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SDL_SysWMinfo), + "::", + stringify!(info) + ) + ); +} +extern "C" { + #[doc = " \\brief This function allows access to driver-dependent window information."] + #[doc = ""] + #[doc = " \\param window The window about which information is being requested"] + #[doc = " \\param info This structure must be initialized with the SDL version, and is"] + #[doc = " then filled in with information about the given window."] + #[doc = ""] + #[doc = " \\return SDL_TRUE if the function is implemented and the version member of"] + #[doc = " the \\c info struct is valid, SDL_FALSE otherwise."] + #[doc = ""] + #[doc = " You typically use this function like this:"] + #[doc = " \\code"] + #[doc = " SDL_SysWMinfo info;"] + #[doc = " SDL_VERSION(&info.version);"] + #[doc = " if ( SDL_GetWindowWMInfo(window, &info) ) { ... }"] + #[doc = " \\endcode"] + pub fn SDL_GetWindowWMInfo(window: *mut SDL_Window, info: *mut SDL_SysWMinfo) -> SDL_bool; +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct VkInstance_T { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct VkSurfaceKHR_T { + _unused: [u8; 0], +} +pub type SDL_vulkanInstance = VkInstance; +pub type SDL_vulkanSurface = VkSurfaceKHR; +extern "C" { + #[doc = " \\brief Dynamically load a Vulkan loader library."] + #[doc = ""] + #[doc = " \\param [in] path The platform dependent Vulkan loader library name, or"] + #[doc = " \\c NULL."] + #[doc = ""] + #[doc = " \\return \\c 0 on success, or \\c -1 if the library couldn't be loaded."] + #[doc = ""] + #[doc = " If \\a path is NULL SDL will use the value of the environment variable"] + #[doc = " \\c SDL_VULKAN_LIBRARY, if set, otherwise it loads the default Vulkan"] + #[doc = " loader library."] + #[doc = ""] + #[doc = " This should be called after initializing the video driver, but before"] + #[doc = " creating any Vulkan windows. If no Vulkan loader library is loaded, the"] + #[doc = " default library will be loaded upon creation of the first Vulkan window."] + #[doc = ""] + #[doc = " \\note It is fairly common for Vulkan applications to link with \\a libvulkan"] + #[doc = " instead of explicitly loading it at run time. This will work with"] + #[doc = " SDL provided the application links to a dynamic library and both it"] + #[doc = " and SDL use the same search path."] + #[doc = ""] + #[doc = " \\note If you specify a non-NULL \\c path, an application should retrieve all"] + #[doc = " of the Vulkan functions it uses from the dynamic library using"] + #[doc = " \\c SDL_Vulkan_GetVkGetInstanceProcAddr() unless you can guarantee"] + #[doc = " \\c path points to the same vulkan loader library the application"] + #[doc = " linked to."] + #[doc = ""] + #[doc = " \\note On Apple devices, if \\a path is NULL, SDL will attempt to find"] + #[doc = " the vkGetInstanceProcAddr address within all the mach-o images of"] + #[doc = " the current process. This is because it is fairly common for Vulkan"] + #[doc = " applications to link with libvulkan (and historically MoltenVK was"] + #[doc = " provided as a static library). If it is not found then, on macOS, SDL"] + #[doc = " will attempt to load \\c vulkan.framework/vulkan, \\c libvulkan.1.dylib,"] + #[doc = " followed by \\c libvulkan.dylib, in that order."] + #[doc = " On iOS SDL will attempt to load \\c libvulkan.dylib only. Applications"] + #[doc = " using a dynamic framework or .dylib must ensure it is included in its"] + #[doc = " application bundle."] + #[doc = ""] + #[doc = " \\note On non-Apple devices, application linking with a static libvulkan is"] + #[doc = " not supported. Either do not link to the Vulkan loader or link to a"] + #[doc = " dynamic library version."] + #[doc = ""] + #[doc = " \\note This function will fail if there are no working Vulkan drivers"] + #[doc = " installed."] + #[doc = ""] + #[doc = " \\sa SDL_Vulkan_GetVkGetInstanceProcAddr()"] + #[doc = " \\sa SDL_Vulkan_UnloadLibrary()"] + pub fn SDL_Vulkan_LoadLibrary(path: *const libc::c_char) -> libc::c_int; +} +extern "C" { + #[doc = " \\brief Get the address of the \\c vkGetInstanceProcAddr function."] + #[doc = ""] + #[doc = " \\note This should be called after either calling SDL_Vulkan_LoadLibrary"] + #[doc = " or creating an SDL_Window with the SDL_WINDOW_VULKAN flag."] + pub fn SDL_Vulkan_GetVkGetInstanceProcAddr() -> *mut libc::c_void; +} +extern "C" { + #[doc = " \\brief Unload the Vulkan loader library previously loaded by"] + #[doc = " \\c SDL_Vulkan_LoadLibrary()."] + #[doc = ""] + #[doc = " \\sa SDL_Vulkan_LoadLibrary()"] + pub fn SDL_Vulkan_UnloadLibrary(); +} +extern "C" { + #[doc = " \\brief Get the names of the Vulkan instance extensions needed to create"] + #[doc = " a surface with \\c SDL_Vulkan_CreateSurface()."] + #[doc = ""] + #[doc = " \\param [in] \\c NULL or window Window for which the required Vulkan instance"] + #[doc = " extensions should be retrieved"] + #[doc = " \\param [in,out] pCount pointer to an \\c unsigned related to the number of"] + #[doc = " required Vulkan instance extensions"] + #[doc = " \\param [out] pNames \\c NULL or a pointer to an array to be filled with the"] + #[doc = " required Vulkan instance extensions"] + #[doc = ""] + #[doc = " \\return \\c SDL_TRUE on success, \\c SDL_FALSE on error."] + #[doc = ""] + #[doc = " If \\a pNames is \\c NULL, then the number of required Vulkan instance"] + #[doc = " extensions is returned in pCount. Otherwise, \\a pCount must point to a"] + #[doc = " variable set to the number of elements in the \\a pNames array, and on"] + #[doc = " return the variable is overwritten with the number of names actually"] + #[doc = " written to \\a pNames. If \\a pCount is less than the number of required"] + #[doc = " extensions, at most \\a pCount structures will be written. If \\a pCount"] + #[doc = " is smaller than the number of required extensions, \\c SDL_FALSE will be"] + #[doc = " returned instead of \\c SDL_TRUE, to indicate that not all the required"] + #[doc = " extensions were returned."] + #[doc = ""] + #[doc = " \\note If \\c window is not NULL, it will be checked against its creation"] + #[doc = " flags to ensure that the Vulkan flag is present. This parameter"] + #[doc = " will be removed in a future major release."] + #[doc = ""] + #[doc = " \\note The returned list of extensions will contain \\c VK_KHR_surface"] + #[doc = " and zero or more platform specific extensions"] + #[doc = ""] + #[doc = " \\note The extension names queried here must be enabled when calling"] + #[doc = " VkCreateInstance, otherwise surface creation will fail."] + #[doc = ""] + #[doc = " \\note \\c window should have been created with the \\c SDL_WINDOW_VULKAN flag"] + #[doc = " or be \\c NULL"] + #[doc = ""] + #[doc = " \\code"] + #[doc = " unsigned int count;"] + #[doc = " // get count of required extensions"] + #[doc = " if(!SDL_Vulkan_GetInstanceExtensions(NULL, &count, NULL))"] + #[doc = " handle_error();"] + #[doc = ""] + #[doc = " static const char *const additionalExtensions[] ="] + #[doc = " {"] + #[doc = " VK_EXT_DEBUG_REPORT_EXTENSION_NAME, // example additional extension"] + #[doc = " };"] + #[doc = " size_t additionalExtensionsCount = sizeof(additionalExtensions) / sizeof(additionalExtensions[0]);"] + #[doc = " size_t extensionCount = count + additionalExtensionsCount;"] + #[doc = " const char **names = malloc(sizeof(const char *) * extensionCount);"] + #[doc = " if(!names)"] + #[doc = " handle_error();"] + #[doc = ""] + #[doc = " // get names of required extensions"] + #[doc = " if(!SDL_Vulkan_GetInstanceExtensions(NULL, &count, names))"] + #[doc = " handle_error();"] + #[doc = ""] + #[doc = " // copy additional extensions after required extensions"] + #[doc = " for(size_t i = 0; i < additionalExtensionsCount; i++)"] + #[doc = " names[i + count] = additionalExtensions[i];"] + #[doc = ""] + #[doc = " VkInstanceCreateInfo instanceCreateInfo = {};"] + #[doc = " instanceCreateInfo.enabledExtensionCount = extensionCount;"] + #[doc = " instanceCreateInfo.ppEnabledExtensionNames = names;"] + #[doc = " // fill in rest of instanceCreateInfo"] + #[doc = ""] + #[doc = " VkInstance instance;"] + #[doc = " // create the Vulkan instance"] + #[doc = " VkResult result = vkCreateInstance(&instanceCreateInfo, NULL, &instance);"] + #[doc = " free(names);"] + #[doc = " \\endcode"] + #[doc = ""] + #[doc = " \\sa SDL_Vulkan_CreateSurface()"] + pub fn SDL_Vulkan_GetInstanceExtensions( + window: *mut SDL_Window, + pCount: *mut libc::c_uint, + pNames: *mut *const libc::c_char, + ) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Create a Vulkan rendering surface for a window."] + #[doc = ""] + #[doc = " \\param [in] window SDL_Window to which to attach the rendering surface."] + #[doc = " \\param [in] instance handle to the Vulkan instance to use."] + #[doc = " \\param [out] surface pointer to a VkSurfaceKHR handle to receive the"] + #[doc = " handle of the newly created surface."] + #[doc = ""] + #[doc = " \\return \\c SDL_TRUE on success, \\c SDL_FALSE on error."] + #[doc = ""] + #[doc = " \\code"] + #[doc = " VkInstance instance;"] + #[doc = " SDL_Window *window;"] + #[doc = ""] + #[doc = " // create instance and window"] + #[doc = ""] + #[doc = " // create the Vulkan surface"] + #[doc = " VkSurfaceKHR surface;"] + #[doc = " if(!SDL_Vulkan_CreateSurface(window, instance, &surface))"] + #[doc = " handle_error();"] + #[doc = " \\endcode"] + #[doc = ""] + #[doc = " \\note \\a window should have been created with the \\c SDL_WINDOW_VULKAN flag."] + #[doc = ""] + #[doc = " \\note \\a instance should have been created with the extensions returned"] + #[doc = " by \\c SDL_Vulkan_CreateSurface() enabled."] + #[doc = ""] + #[doc = " \\sa SDL_Vulkan_GetInstanceExtensions()"] + pub fn SDL_Vulkan_CreateSurface( + window: *mut SDL_Window, + instance: VkInstance, + surface: *mut VkSurfaceKHR, + ) -> SDL_bool; +} +extern "C" { + #[doc = " \\brief Get the size of a window's underlying drawable in pixels (for use"] + #[doc = " with setting viewport, scissor & etc)."] + #[doc = ""] + #[doc = " \\param window SDL_Window from which the drawable size should be queried"] + #[doc = " \\param w Pointer to variable for storing the width in pixels,"] + #[doc = " may be NULL"] + #[doc = " \\param h Pointer to variable for storing the height in pixels,"] + #[doc = " may be NULL"] + #[doc = ""] + #[doc = " This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI"] + #[doc = " drawable, i.e. the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a"] + #[doc = " platform with high-DPI support (Apple calls this \"Retina\"), and not disabled"] + #[doc = " by the \\c SDL_HINT_VIDEO_HIGHDPI_DISABLED hint."] + #[doc = ""] + #[doc = " \\note On macOS high-DPI support must be enabled for an application by"] + #[doc = " setting NSHighResolutionCapable to true in its Info.plist."] + #[doc = ""] + #[doc = " \\sa SDL_GetWindowSize()"] + #[doc = " \\sa SDL_CreateWindow()"] + pub fn SDL_Vulkan_GetDrawableSize( + window: *mut SDL_Window, + w: *mut libc::c_int, + h: *mut libc::c_int, + ); +} +#[doc = "
"] +pub type VkInstance = usize; +#[doc = "
"] +pub type VkSurfaceKHR = u64; +pub type __builtin_va_list = [__va_list_tag; 1usize]; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __va_list_tag { + pub gp_offset: libc::c_uint, + pub fp_offset: libc::c_uint, + pub overflow_arg_area: *mut libc::c_void, + pub reg_save_area: *mut libc::c_void, +} +#[test] +fn bindgen_test_layout___va_list_tag() { + assert_eq!( + ::core::mem::size_of::<__va_list_tag>(), + 24usize, + concat!("Size of: ", stringify!(__va_list_tag)) + ); + assert_eq!( + ::core::mem::align_of::<__va_list_tag>(), + 8usize, + concat!("Alignment of ", stringify!(__va_list_tag)) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__va_list_tag>())).gp_offset as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__va_list_tag), + "::", + stringify!(gp_offset) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__va_list_tag>())).fp_offset as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(__va_list_tag), + "::", + stringify!(fp_offset) + ) + ); + assert_eq!( + unsafe { + &(*(::core::ptr::null::<__va_list_tag>())).overflow_arg_area as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(__va_list_tag), + "::", + stringify!(overflow_arg_area) + ) + ); + assert_eq!( + unsafe { &(*(::core::ptr::null::<__va_list_tag>())).reg_save_area as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(__va_list_tag), + "::", + stringify!(reg_save_area) + ) + ); +} +#[doc = "< Private"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct SDL_BlitMap { + pub _address: u8, +} +#[doc = "< Wayland display"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct wl_display { + pub _address: u8, +} +#[doc = "< Wayland surface"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct wl_surface { + pub _address: u8, +} +#[doc = "< Wayland shell_surface (window manager handle)"] +#[repr(C)] +#[derive(Copy, Clone)] +pub struct wl_shell_surface { + pub _address: u8, +} diff --git a/target/rls/debug/build/sdl2-sys-95684d10a9311044/out/sdl_image_bindings.rs b/target/rls/debug/build/sdl2-sys-95684d10a9311044/out/sdl_image_bindings.rs new file mode 100644 index 0000000..8fa66d3 --- /dev/null +++ b/target/rls/debug/build/sdl2-sys-95684d10a9311044/out/sdl_image_bindings.rs @@ -0,0 +1,181 @@ +/* automatically generated by rust-bindgen */ + +use crate::*; + +pub type __uint8_t = libc::c_uchar; +pub type __uint32_t = libc::c_uint; +pub type __int64_t = libc::c_long; +pub type __off_t = libc::c_long; +pub type __off64_t = libc::c_long; +pub type Uint8 = u8; +pub type Uint32 = u32; +pub type Sint64 = i64; +extern "C" { + pub fn IMG_Linked_Version() -> *const SDL_version; +} +pub const IMG_InitFlags_IMG_INIT_JPG: IMG_InitFlags = 1; +pub const IMG_InitFlags_IMG_INIT_PNG: IMG_InitFlags = 2; +pub const IMG_InitFlags_IMG_INIT_TIF: IMG_InitFlags = 4; +pub const IMG_InitFlags_IMG_INIT_WEBP: IMG_InitFlags = 8; +pub type IMG_InitFlags = u32; +extern "C" { + pub fn IMG_Init(flags: libc::c_int) -> libc::c_int; +} +extern "C" { + pub fn IMG_Quit(); +} +extern "C" { + pub fn IMG_LoadTyped_RW( + src: *mut SDL_RWops, + freesrc: libc::c_int, + type_: *const libc::c_char, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_Load(file: *const libc::c_char) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_Load_RW(src: *mut SDL_RWops, freesrc: libc::c_int) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadTexture( + renderer: *mut SDL_Renderer, + file: *const libc::c_char, + ) -> *mut SDL_Texture; +} +extern "C" { + pub fn IMG_LoadTexture_RW( + renderer: *mut SDL_Renderer, + src: *mut SDL_RWops, + freesrc: libc::c_int, + ) -> *mut SDL_Texture; +} +extern "C" { + pub fn IMG_LoadTextureTyped_RW( + renderer: *mut SDL_Renderer, + src: *mut SDL_RWops, + freesrc: libc::c_int, + type_: *const libc::c_char, + ) -> *mut SDL_Texture; +} +extern "C" { + pub fn IMG_isICO(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isCUR(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isBMP(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isGIF(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isJPG(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isLBM(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isPCX(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isPNG(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isPNM(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isSVG(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isTIF(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isXCF(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isXPM(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isXV(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_isWEBP(src: *mut SDL_RWops) -> libc::c_int; +} +extern "C" { + pub fn IMG_LoadICO_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadCUR_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadBMP_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadGIF_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadJPG_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadLBM_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadPCX_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadPNG_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadPNM_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadSVG_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadTGA_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadTIF_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadXCF_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadXPM_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadXV_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_LoadWEBP_RW(src: *mut SDL_RWops) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_ReadXPMFromArray(xpm: *mut *mut libc::c_char) -> *mut SDL_Surface; +} +extern "C" { + pub fn IMG_SavePNG(surface: *mut SDL_Surface, file: *const libc::c_char) -> libc::c_int; +} +extern "C" { + pub fn IMG_SavePNG_RW( + surface: *mut SDL_Surface, + dst: *mut SDL_RWops, + freedst: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn IMG_SaveJPG( + surface: *mut SDL_Surface, + file: *const libc::c_char, + quality: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn IMG_SaveJPG_RW( + surface: *mut SDL_Surface, + dst: *mut SDL_RWops, + freedst: libc::c_int, + quality: libc::c_int, + ) -> libc::c_int; +} diff --git a/target/rls/debug/build/sdl2-sys-95684d10a9311044/out/sdl_ttf_bindings.rs b/target/rls/debug/build/sdl2-sys-95684d10a9311044/out/sdl_ttf_bindings.rs new file mode 100644 index 0000000..523764c --- /dev/null +++ b/target/rls/debug/build/sdl2-sys-95684d10a9311044/out/sdl_ttf_bindings.rs @@ -0,0 +1,287 @@ +/* automatically generated by rust-bindgen */ + +use crate::*; + +pub const TTF_MAJOR_VERSION: u32 = 2; +pub const TTF_MINOR_VERSION: u32 = 0; +pub const TTF_PATCHLEVEL: u32 = 15; +pub const TTF_STYLE_NORMAL: u32 = 0; +pub const TTF_STYLE_BOLD: u32 = 1; +pub const TTF_STYLE_ITALIC: u32 = 2; +pub const TTF_STYLE_UNDERLINE: u32 = 4; +pub const TTF_STYLE_STRIKETHROUGH: u32 = 8; +pub const TTF_HINTING_NORMAL: u32 = 0; +pub const TTF_HINTING_LIGHT: u32 = 1; +pub const TTF_HINTING_MONO: u32 = 2; +pub const TTF_HINTING_NONE: u32 = 3; +pub type __uint8_t = libc::c_uchar; +pub type __uint16_t = libc::c_ushort; +pub type __uint32_t = libc::c_uint; +pub type __int64_t = libc::c_long; +pub type __off_t = libc::c_long; +pub type __off64_t = libc::c_long; +pub type Uint8 = u8; +pub type Uint16 = u16; +pub type Uint32 = u32; +pub type Sint64 = i64; +extern "C" { + pub fn TTF_Linked_Version() -> *const SDL_version; +} +extern "C" { + pub fn TTF_ByteSwappedUNICODE(swapped: libc::c_int); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _TTF_Font { + _unused: [u8; 0], +} +pub type TTF_Font = _TTF_Font; +extern "C" { + pub fn TTF_Init() -> libc::c_int; +} +extern "C" { + pub fn TTF_OpenFont(file: *const libc::c_char, ptsize: libc::c_int) -> *mut TTF_Font; +} +extern "C" { + pub fn TTF_OpenFontIndex( + file: *const libc::c_char, + ptsize: libc::c_int, + index: libc::c_long, + ) -> *mut TTF_Font; +} +extern "C" { + pub fn TTF_OpenFontRW( + src: *mut SDL_RWops, + freesrc: libc::c_int, + ptsize: libc::c_int, + ) -> *mut TTF_Font; +} +extern "C" { + pub fn TTF_OpenFontIndexRW( + src: *mut SDL_RWops, + freesrc: libc::c_int, + ptsize: libc::c_int, + index: libc::c_long, + ) -> *mut TTF_Font; +} +extern "C" { + pub fn TTF_GetFontStyle(font: *const TTF_Font) -> libc::c_int; +} +extern "C" { + pub fn TTF_SetFontStyle(font: *mut TTF_Font, style: libc::c_int); +} +extern "C" { + pub fn TTF_GetFontOutline(font: *const TTF_Font) -> libc::c_int; +} +extern "C" { + pub fn TTF_SetFontOutline(font: *mut TTF_Font, outline: libc::c_int); +} +extern "C" { + pub fn TTF_GetFontHinting(font: *const TTF_Font) -> libc::c_int; +} +extern "C" { + pub fn TTF_SetFontHinting(font: *mut TTF_Font, hinting: libc::c_int); +} +extern "C" { + pub fn TTF_FontHeight(font: *const TTF_Font) -> libc::c_int; +} +extern "C" { + pub fn TTF_FontAscent(font: *const TTF_Font) -> libc::c_int; +} +extern "C" { + pub fn TTF_FontDescent(font: *const TTF_Font) -> libc::c_int; +} +extern "C" { + pub fn TTF_FontLineSkip(font: *const TTF_Font) -> libc::c_int; +} +extern "C" { + pub fn TTF_GetFontKerning(font: *const TTF_Font) -> libc::c_int; +} +extern "C" { + pub fn TTF_SetFontKerning(font: *mut TTF_Font, allowed: libc::c_int); +} +extern "C" { + pub fn TTF_FontFaces(font: *const TTF_Font) -> libc::c_long; +} +extern "C" { + pub fn TTF_FontFaceIsFixedWidth(font: *const TTF_Font) -> libc::c_int; +} +extern "C" { + pub fn TTF_FontFaceFamilyName(font: *const TTF_Font) -> *mut libc::c_char; +} +extern "C" { + pub fn TTF_FontFaceStyleName(font: *const TTF_Font) -> *mut libc::c_char; +} +extern "C" { + pub fn TTF_GlyphIsProvided(font: *const TTF_Font, ch: Uint16) -> libc::c_int; +} +extern "C" { + pub fn TTF_GlyphMetrics( + font: *mut TTF_Font, + ch: Uint16, + minx: *mut libc::c_int, + maxx: *mut libc::c_int, + miny: *mut libc::c_int, + maxy: *mut libc::c_int, + advance: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn TTF_SizeText( + font: *mut TTF_Font, + text: *const libc::c_char, + w: *mut libc::c_int, + h: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn TTF_SizeUTF8( + font: *mut TTF_Font, + text: *const libc::c_char, + w: *mut libc::c_int, + h: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn TTF_SizeUNICODE( + font: *mut TTF_Font, + text: *const Uint16, + w: *mut libc::c_int, + h: *mut libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn TTF_RenderText_Solid( + font: *mut TTF_Font, + text: *const libc::c_char, + fg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderUTF8_Solid( + font: *mut TTF_Font, + text: *const libc::c_char, + fg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderUNICODE_Solid( + font: *mut TTF_Font, + text: *const Uint16, + fg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderGlyph_Solid( + font: *mut TTF_Font, + ch: Uint16, + fg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderText_Shaded( + font: *mut TTF_Font, + text: *const libc::c_char, + fg: SDL_Color, + bg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderUTF8_Shaded( + font: *mut TTF_Font, + text: *const libc::c_char, + fg: SDL_Color, + bg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderUNICODE_Shaded( + font: *mut TTF_Font, + text: *const Uint16, + fg: SDL_Color, + bg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderGlyph_Shaded( + font: *mut TTF_Font, + ch: Uint16, + fg: SDL_Color, + bg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderText_Blended( + font: *mut TTF_Font, + text: *const libc::c_char, + fg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderUTF8_Blended( + font: *mut TTF_Font, + text: *const libc::c_char, + fg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderUNICODE_Blended( + font: *mut TTF_Font, + text: *const Uint16, + fg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderText_Blended_Wrapped( + font: *mut TTF_Font, + text: *const libc::c_char, + fg: SDL_Color, + wrapLength: Uint32, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderUTF8_Blended_Wrapped( + font: *mut TTF_Font, + text: *const libc::c_char, + fg: SDL_Color, + wrapLength: Uint32, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderUNICODE_Blended_Wrapped( + font: *mut TTF_Font, + text: *const Uint16, + fg: SDL_Color, + wrapLength: Uint32, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_RenderGlyph_Blended( + font: *mut TTF_Font, + ch: Uint16, + fg: SDL_Color, + ) -> *mut SDL_Surface; +} +extern "C" { + pub fn TTF_CloseFont(font: *mut TTF_Font); +} +extern "C" { + pub fn TTF_Quit(); +} +extern "C" { + pub fn TTF_WasInit() -> libc::c_int; +} +extern "C" { + pub fn TTF_GetFontKerningSize( + font: *mut TTF_Font, + prev_index: libc::c_int, + index: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn TTF_GetFontKerningSizeGlyphs( + font: *mut TTF_Font, + previous_ch: Uint16, + ch: Uint16, + ) -> libc::c_int; +} diff --git a/target/rls/debug/build/sdl2-sys-95684d10a9311044/output b/target/rls/debug/build/sdl2-sys-95684d10a9311044/output new file mode 100644 index 0000000..9ab0822 --- /dev/null +++ b/target/rls/debug/build/sdl2-sys-95684d10a9311044/output @@ -0,0 +1,4 @@ +cargo:include=/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/SDL/include +cargo:rustc-flags=-l SDL2 +cargo:rustc-flags=-l SDL2_image +cargo:rustc-flags=-l SDL2_ttf diff --git a/target/rls/debug/build/sdl2-sys-95684d10a9311044/root-output b/target/rls/debug/build/sdl2-sys-95684d10a9311044/root-output new file mode 100644 index 0000000..ca3f7fd --- /dev/null +++ b/target/rls/debug/build/sdl2-sys-95684d10a9311044/root-output @@ -0,0 +1 @@ +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/build/sdl2-sys-95684d10a9311044/out \ No newline at end of file diff --git a/target/rls/debug/build/sdl2-sys-95684d10a9311044/stderr b/target/rls/debug/build/sdl2-sys-95684d10a9311044/stderr new file mode 100644 index 0000000..e69de29 diff --git a/target/rls/debug/build/sdl2-sys-ebfe185d1c37cd3b/build-script-build b/target/rls/debug/build/sdl2-sys-ebfe185d1c37cd3b/build-script-build new file mode 100755 index 0000000..acd5121 Binary files /dev/null and b/target/rls/debug/build/sdl2-sys-ebfe185d1c37cd3b/build-script-build differ diff --git a/target/rls/debug/build/sdl2-sys-ebfe185d1c37cd3b/build_script_build-ebfe185d1c37cd3b b/target/rls/debug/build/sdl2-sys-ebfe185d1c37cd3b/build_script_build-ebfe185d1c37cd3b new file mode 100755 index 0000000..acd5121 Binary files /dev/null and b/target/rls/debug/build/sdl2-sys-ebfe185d1c37cd3b/build_script_build-ebfe185d1c37cd3b differ diff --git a/target/rls/debug/build/sdl2-sys-ebfe185d1c37cd3b/build_script_build-ebfe185d1c37cd3b.d b/target/rls/debug/build/sdl2-sys-ebfe185d1c37cd3b/build_script_build-ebfe185d1c37cd3b.d new file mode 100644 index 0000000..700ab23 --- /dev/null +++ b/target/rls/debug/build/sdl2-sys-ebfe185d1c37cd3b/build_script_build-ebfe185d1c37cd3b.d @@ -0,0 +1,5 @@ +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/build/sdl2-sys-ebfe185d1c37cd3b/build_script_build-ebfe185d1c37cd3b: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs + +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/build/sdl2-sys-ebfe185d1c37cd3b/build_script_build-ebfe185d1c37cd3b.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs: diff --git a/target/rls/debug/build/sdl2-sys-ebfe185d1c37cd3b/save-analysis/build_script_build-ebfe185d1c37cd3b.json b/target/rls/debug/build/sdl2-sys-ebfe185d1c37cd3b/save-analysis/build_script_build-ebfe185d1c37cd3b.json new file mode 100644 index 0000000..966ee4a --- /dev/null +++ b/target/rls/debug/build/sdl2-sys-ebfe185d1c37cd3b/save-analysis/build_script_build-ebfe185d1c37cd3b.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.1","compilation":{"directory":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2","program":"/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rls","arguments":["--crate-name","build_script_build","--edition=2018","/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","--json=diagnostic-rendered-ansi,future-incompat","--crate-type","bin","--emit=dep-info,link","-C","embed-bitcode=no","-C","debuginfo=2","--cfg","feature=\"default\"","--cfg","feature=\"image\"","--cfg","feature=\"ttf\"","-C","metadata=ebfe185d1c37cd3b","-C","extra-filename=-ebfe185d1c37cd3b","--out-dir","/home/gallant/Documents/RustProjects/game_test/target/rls/debug/build/sdl2-sys-ebfe185d1c37cd3b","-L","dependency=/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps","--extern","cfg_if=/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/libcfg_if-0a04e74fc4f21d18.rlib","--extern","version_compare=/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/libversion_compare-00af566e309f576b.rlib","--cap-lints","allow","--error-format=json","--sysroot","/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu"],"output":"/home/gallant/Documents/RustProjects/game_test/target/rls/debug/build/sdl2-sys-ebfe185d1c37cd3b/build_script_build-ebfe185d1c37cd3b"},"prelude":{"crate_id":{"name":"build_script_build","disambiguator":[8794540571070846379,0]},"crate_root":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2","external_crates":[{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","num":1,"id":{"name":"std","disambiguator":[14026078687029744792,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","num":2,"id":{"name":"core","disambiguator":[5443730852259234579,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","num":3,"id":{"name":"compiler_builtins","disambiguator":[4162025702538114948,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","num":4,"id":{"name":"rustc_std_workspace_core","disambiguator":[17612152343462746361,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","num":5,"id":{"name":"alloc","disambiguator":[5560808256873132085,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","num":6,"id":{"name":"libc","disambiguator":[135160560163186024,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","num":7,"id":{"name":"unwind","disambiguator":[5800521777261530329,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","num":8,"id":{"name":"cfg_if","disambiguator":[7095478770525139037,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","num":9,"id":{"name":"hashbrown","disambiguator":[17225897750877482818,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","num":10,"id":{"name":"rustc_std_workspace_alloc","disambiguator":[15613653607383163471,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","num":11,"id":{"name":"rustc_demangle","disambiguator":[12428323400248712701,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","num":12,"id":{"name":"std_detect","disambiguator":[11893279639181573711,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","num":13,"id":{"name":"addr2line","disambiguator":[13583305032161054644,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","num":14,"id":{"name":"gimli","disambiguator":[16609837797022023111,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","num":15,"id":{"name":"object","disambiguator":[18098459435141129808,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","num":16,"id":{"name":"memchr","disambiguator":[15244551393771456017,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","num":17,"id":{"name":"miniz_oxide","disambiguator":[6576340271055396708,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","num":18,"id":{"name":"adler","disambiguator":[15284510821186066958,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","num":19,"id":{"name":"panic_unwind","disambiguator":[12982807908830018159,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","num":20,"id":{"name":"cfg_if","disambiguator":[3066766633997387739,0]}}],"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","byte_start":0,"byte_end":34550,"line_start":1,"line_end":904,"column_start":1,"column_end":2}},"imports":[],"defs":[{"kind":"Mod","id":{"krate":0,"index":0},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","byte_start":0,"byte_end":34550,"line_start":1,"line_end":904,"column_start":1,"column_end":2},"name":"","qualname":"::","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/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":8},{"krate":0,"index":11},{"krate":0,"index":14},{"krate":0,"index":15},{"krate":0,"index":16},{"krate":0,"index":18},{"krate":0,"index":21},{"krate":0,"index":24},{"krate":0,"index":25},{"krate":0,"index":26},{"krate":0,"index":27},{"krate":0,"index":28},{"krate":0,"index":29},{"krate":0,"index":30},{"krate":0,"index":32},{"krate":0,"index":33},{"krate":0,"index":34}],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"allow(unused_imports, dead_code, unused_variables)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-sys-0.35.2/build.rs","byte_start":0,"byte_end":54,"line_start":1,"line_end":1,"column_start":1,"column_end":55}}]}],"impls":[],"refs":[],"macro_refs":[],"relations":[]} \ No newline at end of file diff --git a/target/rls/debug/deps/bitflags-bebecc21b0a7c1f6.d b/target/rls/debug/deps/bitflags-bebecc21b0a7c1f6.d new file mode 100644 index 0000000..f9f62d8 --- /dev/null +++ b/target/rls/debug/deps/bitflags-bebecc21b0a7c1f6.d @@ -0,0 +1,5 @@ +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/bitflags-bebecc21b0a7c1f6.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs + +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/bitflags-bebecc21b0a7c1f6.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs: diff --git a/target/rls/debug/deps/cat_box-92bcebb42a58c225.d b/target/rls/debug/deps/cat_box-92bcebb42a58c225.d new file mode 100644 index 0000000..55e5c3f --- /dev/null +++ b/target/rls/debug/deps/cat_box-92bcebb42a58c225.d @@ -0,0 +1,6 @@ +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/cat_box-92bcebb42a58c225.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/physics.rs + +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/cat_box-92bcebb42a58c225.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/physics.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/physics.rs: diff --git a/target/rls/debug/deps/cfg_if-0a04e74fc4f21d18.d b/target/rls/debug/deps/cfg_if-0a04e74fc4f21d18.d new file mode 100644 index 0000000..1536f9b --- /dev/null +++ b/target/rls/debug/deps/cfg_if-0a04e74fc4f21d18.d @@ -0,0 +1,7 @@ +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/cfg_if-0a04e74fc4f21d18.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs + +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/libcfg_if-0a04e74fc4f21d18.rlib: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs + +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/cfg_if-0a04e74fc4f21d18.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs: diff --git a/target/rls/debug/deps/cfg_if-2120cfe954d0c3f5.d b/target/rls/debug/deps/cfg_if-2120cfe954d0c3f5.d new file mode 100644 index 0000000..43685b8 --- /dev/null +++ b/target/rls/debug/deps/cfg_if-2120cfe954d0c3f5.d @@ -0,0 +1,5 @@ +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/cfg_if-2120cfe954d0c3f5.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs + +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/cfg_if-2120cfe954d0c3f5.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs: diff --git a/target/rls/debug/deps/game_test-1242469418503616.d b/target/rls/debug/deps/game_test-1242469418503616.d new file mode 100644 index 0000000..08100cd --- /dev/null +++ b/target/rls/debug/deps/game_test-1242469418503616.d @@ -0,0 +1,5 @@ +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/game_test-1242469418503616.rmeta: src/main.rs + +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/game_test-1242469418503616.d: src/main.rs + +src/main.rs: diff --git a/target/rls/debug/deps/game_test-7637ed11acfc61bf.d b/target/rls/debug/deps/game_test-7637ed11acfc61bf.d new file mode 100644 index 0000000..909b709 --- /dev/null +++ b/target/rls/debug/deps/game_test-7637ed11acfc61bf.d @@ -0,0 +1,5 @@ +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/game_test-7637ed11acfc61bf.rmeta: src/main.rs + +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/game_test-7637ed11acfc61bf.d: src/main.rs + +src/main.rs: diff --git a/target/rls/debug/deps/game_test-77779bb81049f774.d b/target/rls/debug/deps/game_test-77779bb81049f774.d new file mode 100644 index 0000000..d808a87 --- /dev/null +++ b/target/rls/debug/deps/game_test-77779bb81049f774.d @@ -0,0 +1,5 @@ +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/game_test-77779bb81049f774.rmeta: src/main.rs + +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/game_test-77779bb81049f774.d: src/main.rs + +src/main.rs: diff --git a/target/rls/debug/deps/game_test-94471307055caf70.d b/target/rls/debug/deps/game_test-94471307055caf70.d new file mode 100644 index 0000000..a1b6086 --- /dev/null +++ b/target/rls/debug/deps/game_test-94471307055caf70.d @@ -0,0 +1,5 @@ +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/game_test-94471307055caf70.rmeta: src/main.rs + +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/game_test-94471307055caf70.d: src/main.rs + +src/main.rs: diff --git a/target/rls/debug/deps/game_test-b4139fbfa055472b.d b/target/rls/debug/deps/game_test-b4139fbfa055472b.d new file mode 100644 index 0000000..de85ce4 --- /dev/null +++ b/target/rls/debug/deps/game_test-b4139fbfa055472b.d @@ -0,0 +1,5 @@ +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/game_test-b4139fbfa055472b.rmeta: src/main.rs + +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/game_test-b4139fbfa055472b.d: src/main.rs + +src/main.rs: diff --git a/target/rls/debug/deps/game_test-ca66ce09734f6d76.d b/target/rls/debug/deps/game_test-ca66ce09734f6d76.d new file mode 100644 index 0000000..7c62108 --- /dev/null +++ b/target/rls/debug/deps/game_test-ca66ce09734f6d76.d @@ -0,0 +1,5 @@ +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/game_test-ca66ce09734f6d76.rmeta: src/main.rs + +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/game_test-ca66ce09734f6d76.d: src/main.rs + +src/main.rs: diff --git a/target/rls/debug/deps/getrandom-a0120ee8da7f13ab.d b/target/rls/debug/deps/getrandom-a0120ee8da7f13ab.d new file mode 100644 index 0000000..7b5d3cd --- /dev/null +++ b/target/rls/debug/deps/getrandom-a0120ee8da7f13ab.d @@ -0,0 +1,11 @@ +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/getrandom-a0120ee8da7f13ab.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/util.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/util_libc.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/use_file.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/linux_android.rs + +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/getrandom-a0120ee8da7f13ab.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/util.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/util_libc.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/use_file.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/linux_android.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/util.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/util_libc.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/use_file.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/linux_android.rs: diff --git a/target/rls/debug/deps/lazy_static-ae46812994b3b675.d b/target/rls/debug/deps/lazy_static-ae46812994b3b675.d new file mode 100644 index 0000000..64d74a2 --- /dev/null +++ b/target/rls/debug/deps/lazy_static-ae46812994b3b675.d @@ -0,0 +1,6 @@ +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/lazy_static-ae46812994b3b675.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs + +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/lazy_static-ae46812994b3b675.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs: diff --git a/target/rls/debug/deps/libbitflags-bebecc21b0a7c1f6.rmeta b/target/rls/debug/deps/libbitflags-bebecc21b0a7c1f6.rmeta new file mode 100644 index 0000000..2a460c7 Binary files /dev/null and b/target/rls/debug/deps/libbitflags-bebecc21b0a7c1f6.rmeta differ diff --git a/target/rls/debug/deps/libc-85a1d1b767afc43e.d b/target/rls/debug/deps/libc-85a1d1b767afc43e.d new file mode 100644 index 0000000..a03a772 --- /dev/null +++ b/target/rls/debug/deps/libc-85a1d1b767afc43e.d @@ -0,0 +1,21 @@ +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/libc-85a1d1b767afc43e.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/macros.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/fixed_width_ints.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/arch/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/align.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/arch/generic/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/align.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/non_exhaustive.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/align.rs + +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/libc-85a1d1b767afc43e.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/macros.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/fixed_width_ints.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/arch/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/align.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/arch/generic/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/align.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/non_exhaustive.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/align.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/lib.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/macros.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/fixed_width_ints.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/arch/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/gnu/align.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/arch/generic/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/align.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/linux_like/linux/non_exhaustive.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.125/src/unix/align.rs: diff --git a/target/rls/debug/deps/libcat_box-92bcebb42a58c225.rmeta b/target/rls/debug/deps/libcat_box-92bcebb42a58c225.rmeta new file mode 100644 index 0000000..a267838 Binary files /dev/null and b/target/rls/debug/deps/libcat_box-92bcebb42a58c225.rmeta differ diff --git a/target/rls/debug/deps/libcfg_if-0a04e74fc4f21d18.rlib b/target/rls/debug/deps/libcfg_if-0a04e74fc4f21d18.rlib new file mode 100644 index 0000000..79feb10 Binary files /dev/null and b/target/rls/debug/deps/libcfg_if-0a04e74fc4f21d18.rlib differ diff --git a/target/rls/debug/deps/libcfg_if-0a04e74fc4f21d18.rmeta b/target/rls/debug/deps/libcfg_if-0a04e74fc4f21d18.rmeta new file mode 100644 index 0000000..4bc8191 Binary files /dev/null and b/target/rls/debug/deps/libcfg_if-0a04e74fc4f21d18.rmeta differ diff --git a/target/rls/debug/deps/libcfg_if-2120cfe954d0c3f5.rmeta b/target/rls/debug/deps/libcfg_if-2120cfe954d0c3f5.rmeta new file mode 100644 index 0000000..7af8afc Binary files /dev/null and b/target/rls/debug/deps/libcfg_if-2120cfe954d0c3f5.rmeta differ diff --git a/target/rls/debug/deps/libgame_test-1242469418503616.rmeta b/target/rls/debug/deps/libgame_test-1242469418503616.rmeta new file mode 100644 index 0000000..e69de29 diff --git a/target/rls/debug/deps/libgame_test-7637ed11acfc61bf.rmeta b/target/rls/debug/deps/libgame_test-7637ed11acfc61bf.rmeta new file mode 100644 index 0000000..e69de29 diff --git a/target/rls/debug/deps/libgame_test-77779bb81049f774.rmeta b/target/rls/debug/deps/libgame_test-77779bb81049f774.rmeta new file mode 100644 index 0000000..e69de29 diff --git a/target/rls/debug/deps/libgame_test-94471307055caf70.rmeta b/target/rls/debug/deps/libgame_test-94471307055caf70.rmeta new file mode 100644 index 0000000..e69de29 diff --git a/target/rls/debug/deps/libgame_test-b4139fbfa055472b.rmeta b/target/rls/debug/deps/libgame_test-b4139fbfa055472b.rmeta new file mode 100644 index 0000000..e69de29 diff --git a/target/rls/debug/deps/libgame_test-ca66ce09734f6d76.rmeta b/target/rls/debug/deps/libgame_test-ca66ce09734f6d76.rmeta new file mode 100644 index 0000000..e69de29 diff --git a/target/rls/debug/deps/libgetrandom-a0120ee8da7f13ab.rmeta b/target/rls/debug/deps/libgetrandom-a0120ee8da7f13ab.rmeta new file mode 100644 index 0000000..a023384 Binary files /dev/null and b/target/rls/debug/deps/libgetrandom-a0120ee8da7f13ab.rmeta differ diff --git a/target/rls/debug/deps/liblazy_static-ae46812994b3b675.rmeta b/target/rls/debug/deps/liblazy_static-ae46812994b3b675.rmeta new file mode 100644 index 0000000..d2dba87 Binary files /dev/null and b/target/rls/debug/deps/liblazy_static-ae46812994b3b675.rmeta differ diff --git a/target/rls/debug/deps/liblibc-85a1d1b767afc43e.rmeta b/target/rls/debug/deps/liblibc-85a1d1b767afc43e.rmeta new file mode 100644 index 0000000..5a293d1 Binary files /dev/null and b/target/rls/debug/deps/liblibc-85a1d1b767afc43e.rmeta differ diff --git a/target/rls/debug/deps/libppv_lite86-b170e395a41f89b2.rmeta b/target/rls/debug/deps/libppv_lite86-b170e395a41f89b2.rmeta new file mode 100644 index 0000000..4fce0d1 Binary files /dev/null and b/target/rls/debug/deps/libppv_lite86-b170e395a41f89b2.rmeta differ diff --git a/target/rls/debug/deps/librand-1af5b0ae7ab63d3f.rmeta b/target/rls/debug/deps/librand-1af5b0ae7ab63d3f.rmeta new file mode 100644 index 0000000..beacb76 Binary files /dev/null and b/target/rls/debug/deps/librand-1af5b0ae7ab63d3f.rmeta differ diff --git a/target/rls/debug/deps/librand_chacha-57972ea9c03fb30c.rmeta b/target/rls/debug/deps/librand_chacha-57972ea9c03fb30c.rmeta new file mode 100644 index 0000000..6c21f6d Binary files /dev/null and b/target/rls/debug/deps/librand_chacha-57972ea9c03fb30c.rmeta differ diff --git a/target/rls/debug/deps/librand_core-bc4694db5c0e63ca.rmeta b/target/rls/debug/deps/librand_core-bc4694db5c0e63ca.rmeta new file mode 100644 index 0000000..5d9627c Binary files /dev/null and b/target/rls/debug/deps/librand_core-bc4694db5c0e63ca.rmeta differ diff --git a/target/rls/debug/deps/libsdl2-aaedac323d9034b3.rmeta b/target/rls/debug/deps/libsdl2-aaedac323d9034b3.rmeta new file mode 100644 index 0000000..cdb0ae2 Binary files /dev/null and b/target/rls/debug/deps/libsdl2-aaedac323d9034b3.rmeta differ diff --git a/target/rls/debug/deps/libsdl2_sys-df02e3f4982c060d.rmeta b/target/rls/debug/deps/libsdl2_sys-df02e3f4982c060d.rmeta new file mode 100644 index 0000000..441b4ba Binary files /dev/null and b/target/rls/debug/deps/libsdl2_sys-df02e3f4982c060d.rmeta differ diff --git a/target/rls/debug/deps/libversion_compare-00af566e309f576b.rlib b/target/rls/debug/deps/libversion_compare-00af566e309f576b.rlib new file mode 100644 index 0000000..7ef4f6d Binary files /dev/null and b/target/rls/debug/deps/libversion_compare-00af566e309f576b.rlib differ diff --git a/target/rls/debug/deps/libversion_compare-00af566e309f576b.rmeta b/target/rls/debug/deps/libversion_compare-00af566e309f576b.rmeta new file mode 100644 index 0000000..15d0ad4 Binary files /dev/null and b/target/rls/debug/deps/libversion_compare-00af566e309f576b.rmeta differ diff --git a/target/rls/debug/deps/ppv_lite86-b170e395a41f89b2.d b/target/rls/debug/deps/ppv_lite86-b170e395a41f89b2.d new file mode 100644 index 0000000..ffca4b9 --- /dev/null +++ b/target/rls/debug/deps/ppv_lite86-b170e395a41f89b2.d @@ -0,0 +1,9 @@ +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/ppv_lite86-b170e395a41f89b2.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs + +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/ppv_lite86-b170e395a41f89b2.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/lib.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs: diff --git a/target/rls/debug/deps/rand-1af5b0ae7ab63d3f.d b/target/rls/debug/deps/rand-1af5b0ae7ab63d3f.d new file mode 100644 index 0000000..e1931a2 --- /dev/null +++ b/target/rls/debug/deps/rand-1af5b0ae7ab63d3f.d @@ -0,0 +1,27 @@ +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/rand-1af5b0ae7ab63d3f.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/integer.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/utils.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs + +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/rand-1af5b0ae7ab63d3f.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/integer.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/utils.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/integer.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/utils.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs: diff --git a/target/rls/debug/deps/rand_chacha-57972ea9c03fb30c.d b/target/rls/debug/deps/rand_chacha-57972ea9c03fb30c.d new file mode 100644 index 0000000..20bd3f2 --- /dev/null +++ b/target/rls/debug/deps/rand_chacha-57972ea9c03fb30c.d @@ -0,0 +1,7 @@ +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/rand_chacha-57972ea9c03fb30c.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_chacha-0.3.1/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_chacha-0.3.1/src/chacha.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_chacha-0.3.1/src/guts.rs + +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/rand_chacha-57972ea9c03fb30c.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_chacha-0.3.1/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_chacha-0.3.1/src/chacha.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_chacha-0.3.1/src/guts.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_chacha-0.3.1/src/lib.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_chacha-0.3.1/src/chacha.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_chacha-0.3.1/src/guts.rs: diff --git a/target/rls/debug/deps/rand_core-bc4694db5c0e63ca.d b/target/rls/debug/deps/rand_core-bc4694db5c0e63ca.d new file mode 100644 index 0000000..b41923c --- /dev/null +++ b/target/rls/debug/deps/rand_core-bc4694db5c0e63ca.d @@ -0,0 +1,10 @@ +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/rand_core-bc4694db5c0e63ca.rmeta: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/block.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/error.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/impls.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/le.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/os.rs + +/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/rand_core-bc4694db5c0e63ca.d: /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/lib.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/block.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/error.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/impls.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/le.rs /home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/os.rs + +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/lib.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/block.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/error.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/impls.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/le.rs: +/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand_core-0.6.3/src/os.rs: diff --git a/target/rls/debug/deps/save-analysis/game_test-94471307055caf70.json b/target/rls/debug/deps/save-analysis/game_test-94471307055caf70.json new file mode 100644 index 0000000..15f58f6 --- /dev/null +++ b/target/rls/debug/deps/save-analysis/game_test-94471307055caf70.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.1","compilation":{"directory":"/home/gallant/Documents/RustProjects/game_test","program":"/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rls","arguments":[],"output":"/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/libgame_test-94471307055caf70.rmeta"},"prelude":{"crate_id":{"name":"game_test","disambiguator":[7605099474142776201,0]},"crate_root":"src","external_crates":[{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":1,"id":{"name":"std","disambiguator":[14026078687029744792,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":2,"id":{"name":"core","disambiguator":[5443730852259234579,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":3,"id":{"name":"compiler_builtins","disambiguator":[4162025702538114948,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":4,"id":{"name":"rustc_std_workspace_core","disambiguator":[17612152343462746361,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":5,"id":{"name":"alloc","disambiguator":[5560808256873132085,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":6,"id":{"name":"libc","disambiguator":[135160560163186024,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":7,"id":{"name":"unwind","disambiguator":[5800521777261530329,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":8,"id":{"name":"cfg_if","disambiguator":[7095478770525139037,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":9,"id":{"name":"hashbrown","disambiguator":[17225897750877482818,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":10,"id":{"name":"rustc_std_workspace_alloc","disambiguator":[15613653607383163471,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":11,"id":{"name":"rustc_demangle","disambiguator":[12428323400248712701,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":12,"id":{"name":"std_detect","disambiguator":[11893279639181573711,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":13,"id":{"name":"addr2line","disambiguator":[13583305032161054644,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":14,"id":{"name":"gimli","disambiguator":[16609837797022023111,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":15,"id":{"name":"object","disambiguator":[18098459435141129808,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":16,"id":{"name":"memchr","disambiguator":[15244551393771456017,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":17,"id":{"name":"miniz_oxide","disambiguator":[6576340271055396708,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":18,"id":{"name":"adler","disambiguator":[15284510821186066958,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":19,"id":{"name":"panic_unwind","disambiguator":[12982807908830018159,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":20,"id":{"name":"cat_box","disambiguator":[1896556768768150680,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":21,"id":{"name":"sdl2","disambiguator":[5868353648469071053,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":22,"id":{"name":"libc","disambiguator":[14926449781656206643,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":23,"id":{"name":"lazy_static","disambiguator":[9708727071027780738,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":24,"id":{"name":"bitflags","disambiguator":[15917436305182542096,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":25,"id":{"name":"sdl2_sys","disambiguator":[7341326241932298073,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":26,"id":{"name":"test","disambiguator":[7150850000898609333,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":27,"id":{"name":"getopts","disambiguator":[13001766424292742542,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":28,"id":{"name":"rustc_std_workspace_std","disambiguator":[1475226663608427695,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":29,"id":{"name":"unicode_width","disambiguator":[4614721908838128220,0]}}],"span":{"file_name":"src/main.rs","byte_start":0,"byte_end":1192,"line_start":1,"line_end":49,"column_start":1,"column_end":2}},"imports":[{"kind":"Use","ref_id":{"krate":20,"index":170},"span":{"file_name":"src/main.rs","byte_start":14,"byte_end":23,"line_start":1,"line_end":1,"column_start":15,"column_end":24},"alias_span":null,"name":"draw_text","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":20,"index":180},"span":{"file_name":"src/main.rs","byte_start":25,"byte_end":29,"line_start":1,"line_end":1,"column_start":26,"column_end":30},"alias_span":null,"name":"Game","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":20,"index":119},"span":{"file_name":"src/main.rs","byte_start":31,"byte_end":37,"line_start":1,"line_end":1,"column_start":32,"column_end":38},"alias_span":null,"name":"Sprite","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":562},"span":{"file_name":"src/main.rs","byte_start":50,"byte_end":56,"line_start":2,"line_end":2,"column_start":11,"column_end":17},"alias_span":null,"name":"thread","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":8798},"span":{"file_name":"src/main.rs","byte_start":58,"byte_end":62,"line_start":2,"line_end":2,"column_start":19,"column_end":23},"alias_span":null,"name":"time","value":"","parent":{"krate":0,"index":0}}],"defs":[{"kind":"Mod","id":{"krate":0,"index":0},"span":{"file_name":"src/main.rs","byte_start":0,"byte_end":1192,"line_start":1,"line_end":49,"column_start":1,"column_end":2},"name":"","qualname":"::","value":"src/main.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":13},{"krate":0,"index":14},{"krate":0,"index":17},{"krate":0,"index":20},{"krate":0,"index":22}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":20},"span":{"file_name":"src/main.rs","byte_start":69,"byte_end":73,"line_start":4,"line_end":4,"column_start":4,"column_end":8},"name":"main","qualname":"::main","value":"fn main()","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"allow(dead_code)","span":{"file_name":"src/main.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":3489660948},"span":{"file_name":"src/main.rs","byte_start":86,"byte_end":90,"line_start":5,"line_end":5,"column_start":9,"column_end":13},"name":"game","qualname":"game$HirId { owner: DefId(0:20 ~ game_test[698a]::main), local_id: 11 }","value":"cat_box::Game","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4026531860},"span":{"file_name":"src/main.rs","byte_start":145,"byte_end":146,"line_start":7,"line_end":7,"column_start":13,"column_end":14},"name":"i","qualname":"i$HirId { owner: DefId(0:20 ~ game_test[698a]::main), local_id: 15 }","value":"u8","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":3355443220},"span":{"file_name":"src/main.rs","byte_start":166,"byte_end":173,"line_start":8,"line_end":8,"column_start":13,"column_end":20},"name":"sprite1","qualname":"sprite1$HirId { owner: DefId(0:20 ~ game_test[698a]::main), local_id: 19 }","value":"&str","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":3892314132},"span":{"file_name":"src/main.rs","byte_start":201,"byte_end":203,"line_start":9,"line_end":9,"column_start":13,"column_end":15},"name":"i2","qualname":"i2$HirId { owner: DefId(0:20 ~ game_test[698a]::main), local_id: 23 }","value":"u8","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":3087007764},"span":{"file_name":"src/main.rs","byte_start":232,"byte_end":235,"line_start":13,"line_end":13,"column_start":15,"column_end":18},"name":"ctx","qualname":"$HirId { owner: DefId(0:20 ~ game_test[698a]::main), local_id: 234 }::ctx","value":"&mut cat_box::Context","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":3556769812},"span":{"file_name":"src/main.rs","byte_start":264,"byte_end":265,"line_start":15,"line_end":15,"column_start":17,"column_end":18},"name":"s","qualname":"s$HirId { owner: DefId(0:20 ~ game_test[698a]::main), local_id: 43 }","value":"cat_box::Sprite","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":2617245716},"span":{"file_name":"src/main.rs","byte_start":325,"byte_end":327,"line_start":16,"line_end":16,"column_start":17,"column_end":19},"name":"s1","qualname":"s1$HirId { owner: DefId(0:20 ~ game_test[698a]::main), local_id: 57 }","value":"cat_box::Sprite","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":3791650836},"span":{"file_name":"src/main.rs","byte_start":387,"byte_end":389,"line_start":17,"line_end":17,"column_start":17,"column_end":19},"name":"s2","qualname":"s2$HirId { owner: DefId(0:20 ~ game_test[698a]::main), local_id: 71 }","value":"cat_box::Sprite","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":2986344468},"span":{"file_name":"src/main.rs","byte_start":445,"byte_end":450,"line_start":18,"line_end":18,"column_start":13,"column_end":18},"name":"sleep","qualname":"sleep$HirId { owner: DefId(0:20 ~ game_test[698a]::main), local_id: 77 }","value":"fn(std::time::Duration) {std::thread::sleep}","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]}],"impls":[],"refs":[{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":4,"byte_end":11,"line_start":1,"line_end":1,"column_start":5,"column_end":12},"ref_id":{"krate":20,"index":170}},{"kind":"Type","span":{"file_name":"src/main.rs","byte_start":4,"byte_end":11,"line_start":1,"line_end":1,"column_start":5,"column_end":12},"ref_id":{"krate":20,"index":180}},{"kind":"Type","span":{"file_name":"src/main.rs","byte_start":4,"byte_end":11,"line_start":1,"line_end":1,"column_start":5,"column_end":12},"ref_id":{"krate":20,"index":119}},{"kind":"Mod","span":{"file_name":"src/main.rs","byte_start":44,"byte_end":47,"line_start":2,"line_end":2,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":562}},{"kind":"Mod","span":{"file_name":"src/main.rs","byte_start":44,"byte_end":47,"line_start":2,"line_end":2,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":8798}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":99,"byte_end":102,"line_start":5,"line_end":5,"column_start":22,"column_end":25},"ref_id":{"krate":20,"index":186}},{"kind":"Type","span":{"file_name":"src/main.rs","byte_start":93,"byte_end":97,"line_start":5,"line_end":5,"column_start":16,"column_end":20},"ref_id":{"krate":20,"index":180}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":1181,"byte_end":1187,"line_start":48,"line_end":48,"column_start":8,"column_end":14},"ref_id":{"krate":2,"index":8860}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":227,"byte_end":230,"line_start":13,"line_end":13,"column_start":10,"column_end":13},"ref_id":{"krate":20,"index":187}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":222,"byte_end":226,"line_start":13,"line_end":13,"column_start":5,"column_end":9},"ref_id":{"krate":0,"index":3489660948}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":299,"byte_end":305,"line_start":15,"line_end":15,"column_start":52,"column_end":58},"ref_id":{"krate":2,"index":8860}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":276,"byte_end":279,"line_start":15,"line_end":15,"column_start":29,"column_end":32},"ref_id":{"krate":20,"index":124}},{"kind":"Type","span":{"file_name":"src/main.rs","byte_start":268,"byte_end":274,"line_start":15,"line_end":15,"column_start":21,"column_end":27},"ref_id":{"krate":20,"index":119}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":280,"byte_end":287,"line_start":15,"line_end":15,"column_start":33,"column_end":40},"ref_id":{"krate":0,"index":3355443220}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":361,"byte_end":367,"line_start":16,"line_end":16,"column_start":53,"column_end":59},"ref_id":{"krate":2,"index":8860}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":338,"byte_end":341,"line_start":16,"line_end":16,"column_start":30,"column_end":33},"ref_id":{"krate":20,"index":124}},{"kind":"Type","span":{"file_name":"src/main.rs","byte_start":330,"byte_end":336,"line_start":16,"line_end":16,"column_start":22,"column_end":28},"ref_id":{"krate":20,"index":119}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":342,"byte_end":349,"line_start":16,"line_end":16,"column_start":34,"column_end":41},"ref_id":{"krate":0,"index":3355443220}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":423,"byte_end":429,"line_start":17,"line_end":17,"column_start":53,"column_end":59},"ref_id":{"krate":2,"index":8860}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":400,"byte_end":403,"line_start":17,"line_end":17,"column_start":30,"column_end":33},"ref_id":{"krate":20,"index":124}},{"kind":"Type","span":{"file_name":"src/main.rs","byte_start":392,"byte_end":398,"line_start":17,"line_end":17,"column_start":22,"column_end":28},"ref_id":{"krate":20,"index":119}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":404,"byte_end":411,"line_start":17,"line_end":17,"column_start":34,"column_end":41},"ref_id":{"krate":0,"index":3355443220}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":461,"byte_end":466,"line_start":18,"line_end":18,"column_start":29,"column_end":34},"ref_id":{"krate":1,"index":784}},{"kind":"Mod","span":{"file_name":"src/main.rs","byte_start":453,"byte_end":459,"line_start":18,"line_end":18,"column_start":21,"column_end":27},"ref_id":{"krate":1,"index":562}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":477,"byte_end":482,"line_start":20,"line_end":20,"column_start":9,"column_end":14},"ref_id":{"krate":0,"index":2986344468}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":499,"byte_end":510,"line_start":20,"line_end":20,"column_start":31,"column_end":42},"ref_id":{"krate":2,"index":12745}},{"kind":"Type","span":{"file_name":"src/main.rs","byte_start":489,"byte_end":497,"line_start":20,"line_end":20,"column_start":21,"column_end":29},"ref_id":{"krate":2,"index":47686}},{"kind":"Mod","span":{"file_name":"src/main.rs","byte_start":483,"byte_end":487,"line_start":20,"line_end":20,"column_start":15,"column_end":19},"ref_id":{"krate":1,"index":8798}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":529,"byte_end":530,"line_start":21,"line_end":21,"column_start":12,"column_end":13},"ref_id":{"krate":0,"index":4026531860}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":550,"byte_end":551,"line_start":22,"line_end":22,"column_start":13,"column_end":14},"ref_id":{"krate":0,"index":4026531860}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":571,"byte_end":573,"line_start":23,"line_end":23,"column_start":13,"column_end":15},"ref_id":{"krate":0,"index":3892314132}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":595,"byte_end":602,"line_start":24,"line_end":24,"column_start":13,"column_end":20},"ref_id":{"krate":0,"index":3355443220}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":659,"byte_end":660,"line_start":27,"line_end":27,"column_start":13,"column_end":14},"ref_id":{"krate":0,"index":4026531860}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":678,"byte_end":680,"line_start":28,"line_end":28,"column_start":13,"column_end":15},"ref_id":{"krate":0,"index":3892314132}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":700,"byte_end":707,"line_start":29,"line_end":29,"column_start":13,"column_end":20},"ref_id":{"krate":0,"index":3355443220}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":752,"byte_end":773,"line_start":32,"line_end":32,"column_start":13,"column_end":34},"ref_id":{"krate":20,"index":163}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":748,"byte_end":751,"line_start":32,"line_end":32,"column_start":9,"column_end":12},"ref_id":{"krate":0,"index":3087007764}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":774,"byte_end":775,"line_start":32,"line_end":32,"column_start":35,"column_end":36},"ref_id":{"krate":0,"index":4026531860}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":782,"byte_end":783,"line_start":32,"line_end":32,"column_start":43,"column_end":44},"ref_id":{"krate":0,"index":4026531860}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":790,"byte_end":791,"line_start":32,"line_end":32,"column_start":51,"column_end":52},"ref_id":{"krate":0,"index":4026531860}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":1071,"byte_end":1077,"line_start":43,"line_end":43,"column_start":11,"column_end":17},"ref_id":{"krate":2,"index":8860}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":817,"byte_end":826,"line_start":34,"line_end":34,"column_start":9,"column_end":18},"ref_id":{"krate":20,"index":170}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":840,"byte_end":843,"line_start":35,"line_end":35,"column_start":13,"column_end":16},"ref_id":{"krate":0,"index":3087007764}},{"kind":"Mod","span":{"file_name":"src/main.rs","byte_start":978,"byte_end":985,"line_start":40,"line_end":40,"column_start":13,"column_end":20},"ref_id":{"krate":20,"index":0}},{"kind":"Type","span":{"file_name":"src/main.rs","byte_start":987,"byte_end":995,"line_start":40,"line_end":40,"column_start":22,"column_end":30},"ref_id":{"krate":20,"index":164}},{"kind":"Type","span":{"file_name":"src/main.rs","byte_start":997,"byte_end":1008,"line_start":40,"line_end":40,"column_start":32,"column_end":43},"ref_id":{"krate":20,"index":164}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":1027,"byte_end":1033,"line_start":41,"line_end":41,"column_start":17,"column_end":23},"ref_id":{"krate":20,"index":166}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":1036,"byte_end":1038,"line_start":41,"line_end":41,"column_start":26,"column_end":28},"ref_id":{"krate":0,"index":3892314132}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":1039,"byte_end":1041,"line_start":41,"line_end":41,"column_start":29,"column_end":31},"ref_id":{"krate":0,"index":3892314132}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":1042,"byte_end":1044,"line_start":41,"line_end":41,"column_start":32,"column_end":34},"ref_id":{"krate":0,"index":3892314132}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":1102,"byte_end":1108,"line_start":45,"line_end":45,"column_start":21,"column_end":27},"ref_id":{"krate":2,"index":8860}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":1092,"byte_end":1096,"line_start":45,"line_end":45,"column_start":11,"column_end":15},"ref_id":{"krate":20,"index":126}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":1090,"byte_end":1091,"line_start":45,"line_end":45,"column_start":9,"column_end":10},"ref_id":{"krate":0,"index":3556769812}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":1097,"byte_end":1100,"line_start":45,"line_end":45,"column_start":16,"column_end":19},"ref_id":{"krate":0,"index":3087007764}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":1133,"byte_end":1139,"line_start":46,"line_end":46,"column_start":22,"column_end":28},"ref_id":{"krate":2,"index":8860}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":1123,"byte_end":1127,"line_start":46,"line_end":46,"column_start":12,"column_end":16},"ref_id":{"krate":20,"index":126}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":1120,"byte_end":1122,"line_start":46,"line_end":46,"column_start":9,"column_end":11},"ref_id":{"krate":0,"index":2617245716}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":1128,"byte_end":1131,"line_start":46,"line_end":46,"column_start":17,"column_end":20},"ref_id":{"krate":0,"index":3087007764}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":1164,"byte_end":1170,"line_start":47,"line_end":47,"column_start":22,"column_end":28},"ref_id":{"krate":2,"index":8860}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":1154,"byte_end":1158,"line_start":47,"line_end":47,"column_start":12,"column_end":16},"ref_id":{"krate":20,"index":126}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":1151,"byte_end":1153,"line_start":47,"line_end":47,"column_start":9,"column_end":11},"ref_id":{"krate":0,"index":3791650836}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":1159,"byte_end":1162,"line_start":47,"line_end":47,"column_start":17,"column_end":20},"ref_id":{"krate":0,"index":3087007764}}],"macro_refs":[],"relations":[]} \ No newline at end of file diff --git a/target/rls/debug/deps/save-analysis/game_test-ca66ce09734f6d76.json b/target/rls/debug/deps/save-analysis/game_test-ca66ce09734f6d76.json new file mode 100644 index 0000000..282ca45 --- /dev/null +++ b/target/rls/debug/deps/save-analysis/game_test-ca66ce09734f6d76.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.1","compilation":{"directory":"/home/gallant/Documents/RustProjects/game_test","program":"/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rls","arguments":[],"output":"/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/libgame_test-ca66ce09734f6d76.rmeta"},"prelude":{"crate_id":{"name":"game_test","disambiguator":[7840306548837081442,0]},"crate_root":"src","external_crates":[{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":1,"id":{"name":"std","disambiguator":[14026078687029744792,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":2,"id":{"name":"core","disambiguator":[5443730852259234579,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":3,"id":{"name":"compiler_builtins","disambiguator":[4162025702538114948,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":4,"id":{"name":"rustc_std_workspace_core","disambiguator":[17612152343462746361,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":5,"id":{"name":"alloc","disambiguator":[5560808256873132085,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":6,"id":{"name":"libc","disambiguator":[135160560163186024,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":7,"id":{"name":"unwind","disambiguator":[5800521777261530329,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":8,"id":{"name":"cfg_if","disambiguator":[7095478770525139037,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":9,"id":{"name":"hashbrown","disambiguator":[17225897750877482818,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":10,"id":{"name":"rustc_std_workspace_alloc","disambiguator":[15613653607383163471,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":11,"id":{"name":"rustc_demangle","disambiguator":[12428323400248712701,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":12,"id":{"name":"std_detect","disambiguator":[11893279639181573711,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":13,"id":{"name":"addr2line","disambiguator":[13583305032161054644,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":14,"id":{"name":"gimli","disambiguator":[16609837797022023111,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":15,"id":{"name":"object","disambiguator":[18098459435141129808,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":16,"id":{"name":"memchr","disambiguator":[15244551393771456017,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":17,"id":{"name":"miniz_oxide","disambiguator":[6576340271055396708,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":18,"id":{"name":"adler","disambiguator":[15284510821186066958,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":19,"id":{"name":"panic_unwind","disambiguator":[12982807908830018159,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":20,"id":{"name":"cat_box","disambiguator":[1896556768768150680,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":21,"id":{"name":"sdl2","disambiguator":[5868353648469071053,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":22,"id":{"name":"libc","disambiguator":[14926449781656206643,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":23,"id":{"name":"lazy_static","disambiguator":[9708727071027780738,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":24,"id":{"name":"bitflags","disambiguator":[15917436305182542096,0]}},{"file_name":"/home/gallant/Documents/RustProjects/game_test/src/main.rs","num":25,"id":{"name":"sdl2_sys","disambiguator":[7341326241932298073,0]}}],"span":{"file_name":"src/main.rs","byte_start":0,"byte_end":1192,"line_start":1,"line_end":49,"column_start":1,"column_end":2}},"imports":[{"kind":"Use","ref_id":{"krate":20,"index":170},"span":{"file_name":"src/main.rs","byte_start":14,"byte_end":23,"line_start":1,"line_end":1,"column_start":15,"column_end":24},"alias_span":null,"name":"draw_text","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":20,"index":180},"span":{"file_name":"src/main.rs","byte_start":25,"byte_end":29,"line_start":1,"line_end":1,"column_start":26,"column_end":30},"alias_span":null,"name":"Game","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":20,"index":119},"span":{"file_name":"src/main.rs","byte_start":31,"byte_end":37,"line_start":1,"line_end":1,"column_start":32,"column_end":38},"alias_span":null,"name":"Sprite","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":562},"span":{"file_name":"src/main.rs","byte_start":50,"byte_end":56,"line_start":2,"line_end":2,"column_start":11,"column_end":17},"alias_span":null,"name":"thread","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":1,"index":8798},"span":{"file_name":"src/main.rs","byte_start":58,"byte_end":62,"line_start":2,"line_end":2,"column_start":19,"column_end":23},"alias_span":null,"name":"time","value":"","parent":{"krate":0,"index":0}}],"defs":[{"kind":"Mod","id":{"krate":0,"index":0},"span":{"file_name":"src/main.rs","byte_start":0,"byte_end":1192,"line_start":1,"line_end":49,"column_start":1,"column_end":2},"name":"","qualname":"::","value":"src/main.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":13},{"krate":0,"index":14},{"krate":0,"index":17},{"krate":0,"index":20}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":20},"span":{"file_name":"src/main.rs","byte_start":69,"byte_end":73,"line_start":4,"line_end":4,"column_start":4,"column_end":8},"name":"main","qualname":"::main","value":"fn main()","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":3489660948},"span":{"file_name":"src/main.rs","byte_start":86,"byte_end":90,"line_start":5,"line_end":5,"column_start":9,"column_end":13},"name":"game","qualname":"game$HirId { owner: DefId(0:20 ~ game_test[6cce]::main), local_id: 11 }","value":"cat_box::Game","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":4026531860},"span":{"file_name":"src/main.rs","byte_start":145,"byte_end":146,"line_start":7,"line_end":7,"column_start":13,"column_end":14},"name":"i","qualname":"i$HirId { owner: DefId(0:20 ~ game_test[6cce]::main), local_id: 15 }","value":"u8","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":3355443220},"span":{"file_name":"src/main.rs","byte_start":166,"byte_end":173,"line_start":8,"line_end":8,"column_start":13,"column_end":20},"name":"sprite1","qualname":"sprite1$HirId { owner: DefId(0:20 ~ game_test[6cce]::main), local_id: 19 }","value":"&str","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":3892314132},"span":{"file_name":"src/main.rs","byte_start":201,"byte_end":203,"line_start":9,"line_end":9,"column_start":13,"column_end":15},"name":"i2","qualname":"i2$HirId { owner: DefId(0:20 ~ game_test[6cce]::main), local_id: 23 }","value":"u8","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":3087007764},"span":{"file_name":"src/main.rs","byte_start":232,"byte_end":235,"line_start":13,"line_end":13,"column_start":15,"column_end":18},"name":"ctx","qualname":"$HirId { owner: DefId(0:20 ~ game_test[6cce]::main), local_id: 234 }::ctx","value":"&mut cat_box::Context","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":3556769812},"span":{"file_name":"src/main.rs","byte_start":264,"byte_end":265,"line_start":15,"line_end":15,"column_start":17,"column_end":18},"name":"s","qualname":"s$HirId { owner: DefId(0:20 ~ game_test[6cce]::main), local_id: 43 }","value":"cat_box::Sprite","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":2617245716},"span":{"file_name":"src/main.rs","byte_start":325,"byte_end":327,"line_start":16,"line_end":16,"column_start":17,"column_end":19},"name":"s1","qualname":"s1$HirId { owner: DefId(0:20 ~ game_test[6cce]::main), local_id: 57 }","value":"cat_box::Sprite","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":3791650836},"span":{"file_name":"src/main.rs","byte_start":387,"byte_end":389,"line_start":17,"line_end":17,"column_start":17,"column_end":19},"name":"s2","qualname":"s2$HirId { owner: DefId(0:20 ~ game_test[6cce]::main), local_id: 71 }","value":"cat_box::Sprite","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Local","id":{"krate":0,"index":2986344468},"span":{"file_name":"src/main.rs","byte_start":445,"byte_end":450,"line_start":18,"line_end":18,"column_start":13,"column_end":18},"name":"sleep","qualname":"sleep$HirId { owner: DefId(0:20 ~ game_test[6cce]::main), local_id: 77 }","value":"fn(std::time::Duration) {std::thread::sleep}","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]}],"impls":[],"refs":[{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":4,"byte_end":11,"line_start":1,"line_end":1,"column_start":5,"column_end":12},"ref_id":{"krate":20,"index":170}},{"kind":"Type","span":{"file_name":"src/main.rs","byte_start":4,"byte_end":11,"line_start":1,"line_end":1,"column_start":5,"column_end":12},"ref_id":{"krate":20,"index":180}},{"kind":"Type","span":{"file_name":"src/main.rs","byte_start":4,"byte_end":11,"line_start":1,"line_end":1,"column_start":5,"column_end":12},"ref_id":{"krate":20,"index":119}},{"kind":"Mod","span":{"file_name":"src/main.rs","byte_start":44,"byte_end":47,"line_start":2,"line_end":2,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":562}},{"kind":"Mod","span":{"file_name":"src/main.rs","byte_start":44,"byte_end":47,"line_start":2,"line_end":2,"column_start":5,"column_end":8},"ref_id":{"krate":1,"index":8798}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":99,"byte_end":102,"line_start":5,"line_end":5,"column_start":22,"column_end":25},"ref_id":{"krate":20,"index":186}},{"kind":"Type","span":{"file_name":"src/main.rs","byte_start":93,"byte_end":97,"line_start":5,"line_end":5,"column_start":16,"column_end":20},"ref_id":{"krate":20,"index":180}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":1181,"byte_end":1187,"line_start":48,"line_end":48,"column_start":8,"column_end":14},"ref_id":{"krate":2,"index":8860}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":227,"byte_end":230,"line_start":13,"line_end":13,"column_start":10,"column_end":13},"ref_id":{"krate":20,"index":187}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":222,"byte_end":226,"line_start":13,"line_end":13,"column_start":5,"column_end":9},"ref_id":{"krate":0,"index":3489660948}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":299,"byte_end":305,"line_start":15,"line_end":15,"column_start":52,"column_end":58},"ref_id":{"krate":2,"index":8860}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":276,"byte_end":279,"line_start":15,"line_end":15,"column_start":29,"column_end":32},"ref_id":{"krate":20,"index":124}},{"kind":"Type","span":{"file_name":"src/main.rs","byte_start":268,"byte_end":274,"line_start":15,"line_end":15,"column_start":21,"column_end":27},"ref_id":{"krate":20,"index":119}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":280,"byte_end":287,"line_start":15,"line_end":15,"column_start":33,"column_end":40},"ref_id":{"krate":0,"index":3355443220}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":361,"byte_end":367,"line_start":16,"line_end":16,"column_start":53,"column_end":59},"ref_id":{"krate":2,"index":8860}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":338,"byte_end":341,"line_start":16,"line_end":16,"column_start":30,"column_end":33},"ref_id":{"krate":20,"index":124}},{"kind":"Type","span":{"file_name":"src/main.rs","byte_start":330,"byte_end":336,"line_start":16,"line_end":16,"column_start":22,"column_end":28},"ref_id":{"krate":20,"index":119}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":342,"byte_end":349,"line_start":16,"line_end":16,"column_start":34,"column_end":41},"ref_id":{"krate":0,"index":3355443220}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":423,"byte_end":429,"line_start":17,"line_end":17,"column_start":53,"column_end":59},"ref_id":{"krate":2,"index":8860}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":400,"byte_end":403,"line_start":17,"line_end":17,"column_start":30,"column_end":33},"ref_id":{"krate":20,"index":124}},{"kind":"Type","span":{"file_name":"src/main.rs","byte_start":392,"byte_end":398,"line_start":17,"line_end":17,"column_start":22,"column_end":28},"ref_id":{"krate":20,"index":119}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":404,"byte_end":411,"line_start":17,"line_end":17,"column_start":34,"column_end":41},"ref_id":{"krate":0,"index":3355443220}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":461,"byte_end":466,"line_start":18,"line_end":18,"column_start":29,"column_end":34},"ref_id":{"krate":1,"index":784}},{"kind":"Mod","span":{"file_name":"src/main.rs","byte_start":453,"byte_end":459,"line_start":18,"line_end":18,"column_start":21,"column_end":27},"ref_id":{"krate":1,"index":562}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":477,"byte_end":482,"line_start":20,"line_end":20,"column_start":9,"column_end":14},"ref_id":{"krate":0,"index":2986344468}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":499,"byte_end":510,"line_start":20,"line_end":20,"column_start":31,"column_end":42},"ref_id":{"krate":2,"index":12745}},{"kind":"Type","span":{"file_name":"src/main.rs","byte_start":489,"byte_end":497,"line_start":20,"line_end":20,"column_start":21,"column_end":29},"ref_id":{"krate":2,"index":47686}},{"kind":"Mod","span":{"file_name":"src/main.rs","byte_start":483,"byte_end":487,"line_start":20,"line_end":20,"column_start":15,"column_end":19},"ref_id":{"krate":1,"index":8798}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":529,"byte_end":530,"line_start":21,"line_end":21,"column_start":12,"column_end":13},"ref_id":{"krate":0,"index":4026531860}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":550,"byte_end":551,"line_start":22,"line_end":22,"column_start":13,"column_end":14},"ref_id":{"krate":0,"index":4026531860}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":571,"byte_end":573,"line_start":23,"line_end":23,"column_start":13,"column_end":15},"ref_id":{"krate":0,"index":3892314132}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":595,"byte_end":602,"line_start":24,"line_end":24,"column_start":13,"column_end":20},"ref_id":{"krate":0,"index":3355443220}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":659,"byte_end":660,"line_start":27,"line_end":27,"column_start":13,"column_end":14},"ref_id":{"krate":0,"index":4026531860}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":678,"byte_end":680,"line_start":28,"line_end":28,"column_start":13,"column_end":15},"ref_id":{"krate":0,"index":3892314132}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":700,"byte_end":707,"line_start":29,"line_end":29,"column_start":13,"column_end":20},"ref_id":{"krate":0,"index":3355443220}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":752,"byte_end":773,"line_start":32,"line_end":32,"column_start":13,"column_end":34},"ref_id":{"krate":20,"index":163}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":748,"byte_end":751,"line_start":32,"line_end":32,"column_start":9,"column_end":12},"ref_id":{"krate":0,"index":3087007764}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":774,"byte_end":775,"line_start":32,"line_end":32,"column_start":35,"column_end":36},"ref_id":{"krate":0,"index":4026531860}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":782,"byte_end":783,"line_start":32,"line_end":32,"column_start":43,"column_end":44},"ref_id":{"krate":0,"index":4026531860}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":790,"byte_end":791,"line_start":32,"line_end":32,"column_start":51,"column_end":52},"ref_id":{"krate":0,"index":4026531860}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":1071,"byte_end":1077,"line_start":43,"line_end":43,"column_start":11,"column_end":17},"ref_id":{"krate":2,"index":8860}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":817,"byte_end":826,"line_start":34,"line_end":34,"column_start":9,"column_end":18},"ref_id":{"krate":20,"index":170}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":840,"byte_end":843,"line_start":35,"line_end":35,"column_start":13,"column_end":16},"ref_id":{"krate":0,"index":3087007764}},{"kind":"Mod","span":{"file_name":"src/main.rs","byte_start":978,"byte_end":985,"line_start":40,"line_end":40,"column_start":13,"column_end":20},"ref_id":{"krate":20,"index":0}},{"kind":"Type","span":{"file_name":"src/main.rs","byte_start":987,"byte_end":995,"line_start":40,"line_end":40,"column_start":22,"column_end":30},"ref_id":{"krate":20,"index":164}},{"kind":"Type","span":{"file_name":"src/main.rs","byte_start":997,"byte_end":1008,"line_start":40,"line_end":40,"column_start":32,"column_end":43},"ref_id":{"krate":20,"index":164}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":1027,"byte_end":1033,"line_start":41,"line_end":41,"column_start":17,"column_end":23},"ref_id":{"krate":20,"index":166}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":1036,"byte_end":1038,"line_start":41,"line_end":41,"column_start":26,"column_end":28},"ref_id":{"krate":0,"index":3892314132}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":1039,"byte_end":1041,"line_start":41,"line_end":41,"column_start":29,"column_end":31},"ref_id":{"krate":0,"index":3892314132}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":1042,"byte_end":1044,"line_start":41,"line_end":41,"column_start":32,"column_end":34},"ref_id":{"krate":0,"index":3892314132}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":1102,"byte_end":1108,"line_start":45,"line_end":45,"column_start":21,"column_end":27},"ref_id":{"krate":2,"index":8860}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":1092,"byte_end":1096,"line_start":45,"line_end":45,"column_start":11,"column_end":15},"ref_id":{"krate":20,"index":126}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":1090,"byte_end":1091,"line_start":45,"line_end":45,"column_start":9,"column_end":10},"ref_id":{"krate":0,"index":3556769812}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":1097,"byte_end":1100,"line_start":45,"line_end":45,"column_start":16,"column_end":19},"ref_id":{"krate":0,"index":3087007764}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":1133,"byte_end":1139,"line_start":46,"line_end":46,"column_start":22,"column_end":28},"ref_id":{"krate":2,"index":8860}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":1123,"byte_end":1127,"line_start":46,"line_end":46,"column_start":12,"column_end":16},"ref_id":{"krate":20,"index":126}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":1120,"byte_end":1122,"line_start":46,"line_end":46,"column_start":9,"column_end":11},"ref_id":{"krate":0,"index":2617245716}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":1128,"byte_end":1131,"line_start":46,"line_end":46,"column_start":17,"column_end":20},"ref_id":{"krate":0,"index":3087007764}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":1164,"byte_end":1170,"line_start":47,"line_end":47,"column_start":22,"column_end":28},"ref_id":{"krate":2,"index":8860}},{"kind":"Function","span":{"file_name":"src/main.rs","byte_start":1154,"byte_end":1158,"line_start":47,"line_end":47,"column_start":12,"column_end":16},"ref_id":{"krate":20,"index":126}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":1151,"byte_end":1153,"line_start":47,"line_end":47,"column_start":9,"column_end":11},"ref_id":{"krate":0,"index":3791650836}},{"kind":"Variable","span":{"file_name":"src/main.rs","byte_start":1159,"byte_end":1162,"line_start":47,"line_end":47,"column_start":17,"column_end":20},"ref_id":{"krate":0,"index":3087007764}}],"macro_refs":[],"relations":[]} \ No newline at end of file diff --git a/target/rls/debug/deps/save-analysis/libbitflags-bebecc21b0a7c1f6.json b/target/rls/debug/deps/save-analysis/libbitflags-bebecc21b0a7c1f6.json new file mode 100644 index 0000000..f864c46 --- /dev/null +++ b/target/rls/debug/deps/save-analysis/libbitflags-bebecc21b0a7c1f6.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.1","compilation":{"directory":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2","program":"/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rls","arguments":["--crate-name","bitflags","--edition=2018","/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","--json=diagnostic-rendered-ansi,future-incompat","--crate-type","lib","--emit=dep-info,metadata","-C","embed-bitcode=no","-C","debuginfo=2","--cfg","feature=\"default\"","-C","metadata=bebecc21b0a7c1f6","-C","extra-filename=-bebecc21b0a7c1f6","--out-dir","/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps","-L","dependency=/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps","--cap-lints","allow","--error-format=json","--sysroot","/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu"],"output":"/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/libbitflags-bebecc21b0a7c1f6.rmeta"},"prelude":{"crate_id":{"name":"bitflags","disambiguator":[15917436305182542096,0]},"crate_root":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src","external_crates":[{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","num":1,"id":{"name":"core","disambiguator":[5443730852259234579,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","num":2,"id":{"name":"compiler_builtins","disambiguator":[4162025702538114948,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","num":3,"id":{"name":"rustc_std_workspace_core","disambiguator":[17612152343462746361,0]}}],"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":467,"byte_end":55924,"line_start":11,"line_end":1729,"column_start":1,"column_end":2}},"imports":[],"defs":[{"kind":"Mod","id":{"krate":0,"index":0},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":467,"byte_end":55924,"line_start":11,"line_end":1729,"column_start":1,"column_end":2},"name":"","qualname":"::","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/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":6},{"krate":0,"index":7}],"decl_id":null,"docs":" A typesafe bitmask flag generator useful for sets of C-style bitmask flags.\n It can be used for creating typesafe wrappers around C APIs.","sig":null,"attributes":[{"value":"/ A typesafe bitmask flag generator useful for sets of C-style bitmask flags.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":467,"byte_end":546,"line_start":11,"line_end":11,"column_start":1,"column_end":80}},{"value":"/ It can be used for creating typesafe wrappers around C APIs.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":547,"byte_end":611,"line_start":12,"line_end":12,"column_start":1,"column_end":65}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":612,"byte_end":615,"line_start":13,"line_end":13,"column_start":1,"column_end":4}},{"value":"/ The `bitflags!` macro generates `struct`s that manage a set of flags. The","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":616,"byte_end":693,"line_start":14,"line_end":14,"column_start":1,"column_end":78}},{"value":"/ flags should only be defined for integer types, otherwise unexpected type","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":694,"byte_end":771,"line_start":15,"line_end":15,"column_start":1,"column_end":78}},{"value":"/ errors may occur at compile time.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":772,"byte_end":809,"line_start":16,"line_end":16,"column_start":1,"column_end":38}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":810,"byte_end":813,"line_start":17,"line_end":17,"column_start":1,"column_end":4}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":814,"byte_end":827,"line_start":18,"line_end":18,"column_start":1,"column_end":14}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":828,"byte_end":831,"line_start":19,"line_end":19,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":832,"byte_end":839,"line_start":20,"line_end":20,"column_start":1,"column_end":8}},{"value":"/ use bitflags::bitflags;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":840,"byte_end":867,"line_start":21,"line_end":21,"column_start":1,"column_end":28}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":868,"byte_end":871,"line_start":22,"line_end":22,"column_start":1,"column_end":4}},{"value":"/ bitflags! {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":872,"byte_end":887,"line_start":23,"line_end":23,"column_start":1,"column_end":16}},{"value":"/ struct Flags: u32 {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":888,"byte_end":915,"line_start":24,"line_end":24,"column_start":1,"column_end":28}},{"value":"/ const A = 0b00000001;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":916,"byte_end":949,"line_start":25,"line_end":25,"column_start":1,"column_end":34}},{"value":"/ const B = 0b00000010;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":950,"byte_end":983,"line_start":26,"line_end":26,"column_start":1,"column_end":34}},{"value":"/ const C = 0b00000100;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":984,"byte_end":1017,"line_start":27,"line_end":27,"column_start":1,"column_end":34}},{"value":"/ const ABC = Self::A.bits | Self::B.bits | Self::C.bits;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1018,"byte_end":1085,"line_start":28,"line_end":28,"column_start":1,"column_end":68}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1086,"byte_end":1095,"line_start":29,"line_end":29,"column_start":1,"column_end":10}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1096,"byte_end":1101,"line_start":30,"line_end":30,"column_start":1,"column_end":6}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1102,"byte_end":1105,"line_start":31,"line_end":31,"column_start":1,"column_end":4}},{"value":"/ fn main() {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1106,"byte_end":1121,"line_start":32,"line_end":32,"column_start":1,"column_end":16}},{"value":"/ let e1 = Flags::A | Flags::C;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1122,"byte_end":1159,"line_start":33,"line_end":33,"column_start":1,"column_end":38}},{"value":"/ let e2 = Flags::B | Flags::C;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1160,"byte_end":1197,"line_start":34,"line_end":34,"column_start":1,"column_end":38}},{"value":"/ assert_eq!((e1 | e2), Flags::ABC); // union","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1198,"byte_end":1251,"line_start":35,"line_end":35,"column_start":1,"column_end":54}},{"value":"/ assert_eq!((e1 & e2), Flags::C); // intersection","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1252,"byte_end":1312,"line_start":36,"line_end":36,"column_start":1,"column_end":61}},{"value":"/ assert_eq!((e1 - e2), Flags::A); // set difference","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1313,"byte_end":1375,"line_start":37,"line_end":37,"column_start":1,"column_end":63}},{"value":"/ assert_eq!(!e2, Flags::A); // set complement","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1376,"byte_end":1438,"line_start":38,"line_end":38,"column_start":1,"column_end":63}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1439,"byte_end":1444,"line_start":39,"line_end":39,"column_start":1,"column_end":6}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1445,"byte_end":1452,"line_start":40,"line_end":40,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1453,"byte_end":1456,"line_start":41,"line_end":41,"column_start":1,"column_end":4}},{"value":"/ See [`example_generated::Flags`](./example_generated/struct.Flags.html) for documentation of code","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1457,"byte_end":1558,"line_start":42,"line_end":42,"column_start":1,"column_end":102}},{"value":"/ generated by the above `bitflags!` expansion.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1559,"byte_end":1608,"line_start":43,"line_end":43,"column_start":1,"column_end":50}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1609,"byte_end":1612,"line_start":44,"line_end":44,"column_start":1,"column_end":4}},{"value":"/ The generated `struct`s can also be extended with type and trait","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1613,"byte_end":1681,"line_start":45,"line_end":45,"column_start":1,"column_end":69}},{"value":"/ implementations:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1682,"byte_end":1702,"line_start":46,"line_end":46,"column_start":1,"column_end":21}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1703,"byte_end":1706,"line_start":47,"line_end":47,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1707,"byte_end":1714,"line_start":48,"line_end":48,"column_start":1,"column_end":8}},{"value":"/ use std::fmt;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1715,"byte_end":1732,"line_start":49,"line_end":49,"column_start":1,"column_end":18}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1733,"byte_end":1736,"line_start":50,"line_end":50,"column_start":1,"column_end":4}},{"value":"/ use bitflags::bitflags;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1737,"byte_end":1764,"line_start":51,"line_end":51,"column_start":1,"column_end":28}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1765,"byte_end":1768,"line_start":52,"line_end":52,"column_start":1,"column_end":4}},{"value":"/ bitflags! {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1769,"byte_end":1784,"line_start":53,"line_end":53,"column_start":1,"column_end":16}},{"value":"/ struct Flags: u32 {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1785,"byte_end":1812,"line_start":54,"line_end":54,"column_start":1,"column_end":28}},{"value":"/ const A = 0b00000001;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1813,"byte_end":1846,"line_start":55,"line_end":55,"column_start":1,"column_end":34}},{"value":"/ const B = 0b00000010;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1847,"byte_end":1880,"line_start":56,"line_end":56,"column_start":1,"column_end":34}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1881,"byte_end":1890,"line_start":57,"line_end":57,"column_start":1,"column_end":10}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1891,"byte_end":1896,"line_start":58,"line_end":58,"column_start":1,"column_end":6}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1897,"byte_end":1900,"line_start":59,"line_end":59,"column_start":1,"column_end":4}},{"value":"/ impl Flags {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1901,"byte_end":1917,"line_start":60,"line_end":60,"column_start":1,"column_end":17}},{"value":"/ pub fn clear(&mut self) {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1918,"byte_end":1951,"line_start":61,"line_end":61,"column_start":1,"column_end":34}},{"value":"/ self.bits = 0; // The `bits` field can be accessed from within the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":1952,"byte_end":2031,"line_start":62,"line_end":62,"column_start":1,"column_end":80}},{"value":"/ // same module where the `bitflags!` macro was invoked.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2032,"byte_end":2115,"line_start":63,"line_end":63,"column_start":1,"column_end":84}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2116,"byte_end":2125,"line_start":64,"line_end":64,"column_start":1,"column_end":10}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2126,"byte_end":2131,"line_start":65,"line_end":65,"column_start":1,"column_end":6}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2132,"byte_end":2135,"line_start":66,"line_end":66,"column_start":1,"column_end":4}},{"value":"/ impl fmt::Display for Flags {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2136,"byte_end":2169,"line_start":67,"line_end":67,"column_start":1,"column_end":34}},{"value":"/ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2170,"byte_end":2232,"line_start":68,"line_end":68,"column_start":1,"column_end":63}},{"value":"/ write!(f, \"hi!\")","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2233,"byte_end":2261,"line_start":69,"line_end":69,"column_start":1,"column_end":29}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2262,"byte_end":2271,"line_start":70,"line_end":70,"column_start":1,"column_end":10}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2272,"byte_end":2277,"line_start":71,"line_end":71,"column_start":1,"column_end":6}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2278,"byte_end":2281,"line_start":72,"line_end":72,"column_start":1,"column_end":4}},{"value":"/ fn main() {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2282,"byte_end":2297,"line_start":73,"line_end":73,"column_start":1,"column_end":16}},{"value":"/ let mut flags = Flags::A | Flags::B;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2298,"byte_end":2342,"line_start":74,"line_end":74,"column_start":1,"column_end":45}},{"value":"/ flags.clear();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2343,"byte_end":2365,"line_start":75,"line_end":75,"column_start":1,"column_end":23}},{"value":"/ assert!(flags.is_empty());","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2366,"byte_end":2400,"line_start":76,"line_end":76,"column_start":1,"column_end":35}},{"value":"/ assert_eq!(format!(\"{}\", flags), \"hi!\");","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2401,"byte_end":2449,"line_start":77,"line_end":77,"column_start":1,"column_end":49}},{"value":"/ assert_eq!(format!(\"{:?}\", Flags::A | Flags::B), \"A | B\");","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2450,"byte_end":2516,"line_start":78,"line_end":78,"column_start":1,"column_end":67}},{"value":"/ assert_eq!(format!(\"{:?}\", Flags::B), \"B\");","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2517,"byte_end":2568,"line_start":79,"line_end":79,"column_start":1,"column_end":52}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2569,"byte_end":2574,"line_start":80,"line_end":80,"column_start":1,"column_end":6}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2575,"byte_end":2582,"line_start":81,"line_end":81,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2583,"byte_end":2586,"line_start":82,"line_end":82,"column_start":1,"column_end":4}},{"value":"/ # Visibility","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2587,"byte_end":2603,"line_start":83,"line_end":83,"column_start":1,"column_end":17}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2604,"byte_end":2607,"line_start":84,"line_end":84,"column_start":1,"column_end":4}},{"value":"/ The generated structs and their associated flag constants are not exported","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2608,"byte_end":2686,"line_start":85,"line_end":85,"column_start":1,"column_end":79}},{"value":"/ out of the current module by default. A definition can be exported out of","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2687,"byte_end":2764,"line_start":86,"line_end":86,"column_start":1,"column_end":78}},{"value":"/ the current module by adding `pub` before `struct`:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2765,"byte_end":2820,"line_start":87,"line_end":87,"column_start":1,"column_end":56}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2821,"byte_end":2824,"line_start":88,"line_end":88,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2825,"byte_end":2832,"line_start":89,"line_end":89,"column_start":1,"column_end":8}},{"value":"/ mod example {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2833,"byte_end":2850,"line_start":90,"line_end":90,"column_start":1,"column_end":18}},{"value":"/ use bitflags::bitflags;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2851,"byte_end":2882,"line_start":91,"line_end":91,"column_start":1,"column_end":32}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2883,"byte_end":2886,"line_start":92,"line_end":92,"column_start":1,"column_end":4}},{"value":"/ bitflags! {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2887,"byte_end":2906,"line_start":93,"line_end":93,"column_start":1,"column_end":20}},{"value":"/ pub struct Flags1: u32 {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2907,"byte_end":2943,"line_start":94,"line_end":94,"column_start":1,"column_end":37}},{"value":"/ const A = 0b00000001;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2944,"byte_end":2981,"line_start":95,"line_end":95,"column_start":1,"column_end":38}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2982,"byte_end":2995,"line_start":96,"line_end":96,"column_start":1,"column_end":14}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":2996,"byte_end":2999,"line_start":97,"line_end":97,"column_start":1,"column_end":4}},{"value":"/ # pub","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3000,"byte_end":3015,"line_start":98,"line_end":98,"column_start":1,"column_end":16}},{"value":"/ struct Flags2: u32 {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3016,"byte_end":3048,"line_start":99,"line_end":99,"column_start":1,"column_end":33}},{"value":"/ const B = 0b00000010;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3049,"byte_end":3086,"line_start":100,"line_end":100,"column_start":1,"column_end":38}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3087,"byte_end":3100,"line_start":101,"line_end":101,"column_start":1,"column_end":14}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3101,"byte_end":3110,"line_start":102,"line_end":102,"column_start":1,"column_end":10}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3111,"byte_end":3116,"line_start":103,"line_end":103,"column_start":1,"column_end":6}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3117,"byte_end":3120,"line_start":104,"line_end":104,"column_start":1,"column_end":4}},{"value":"/ fn main() {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3121,"byte_end":3136,"line_start":105,"line_end":105,"column_start":1,"column_end":16}},{"value":"/ let flag1 = example::Flags1::A;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3137,"byte_end":3176,"line_start":106,"line_end":106,"column_start":1,"column_end":40}},{"value":"/ let flag2 = example::Flags2::B; // error: const `B` is private","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3177,"byte_end":3247,"line_start":107,"line_end":107,"column_start":1,"column_end":71}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3248,"byte_end":3253,"line_start":108,"line_end":108,"column_start":1,"column_end":6}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3254,"byte_end":3261,"line_start":109,"line_end":109,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3262,"byte_end":3265,"line_start":110,"line_end":110,"column_start":1,"column_end":4}},{"value":"/ # Attributes","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3266,"byte_end":3282,"line_start":111,"line_end":111,"column_start":1,"column_end":17}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3283,"byte_end":3286,"line_start":112,"line_end":112,"column_start":1,"column_end":4}},{"value":"/ Attributes can be attached to the generated `struct`s by placing them","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3287,"byte_end":3360,"line_start":113,"line_end":113,"column_start":1,"column_end":74}},{"value":"/ before the `struct` keyword.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3361,"byte_end":3393,"line_start":114,"line_end":114,"column_start":1,"column_end":33}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3394,"byte_end":3397,"line_start":115,"line_end":115,"column_start":1,"column_end":4}},{"value":"/ ## Representations","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3398,"byte_end":3420,"line_start":116,"line_end":116,"column_start":1,"column_end":23}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3421,"byte_end":3424,"line_start":117,"line_end":117,"column_start":1,"column_end":4}},{"value":"/ It's valid to add a `#[repr(C)]` or `#[repr(transparent)]` attribute to a type","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3425,"byte_end":3507,"line_start":118,"line_end":118,"column_start":1,"column_end":83}},{"value":"/ generated by `bitflags!`. In these cases, the type is guaranteed to be a newtype.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3508,"byte_end":3593,"line_start":119,"line_end":119,"column_start":1,"column_end":86}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3594,"byte_end":3597,"line_start":120,"line_end":120,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3598,"byte_end":3605,"line_start":121,"line_end":121,"column_start":1,"column_end":8}},{"value":"/ use bitflags::bitflags;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3606,"byte_end":3633,"line_start":122,"line_end":122,"column_start":1,"column_end":28}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3634,"byte_end":3637,"line_start":123,"line_end":123,"column_start":1,"column_end":4}},{"value":"/ bitflags! {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3638,"byte_end":3653,"line_start":124,"line_end":124,"column_start":1,"column_end":16}},{"value":"/ #[repr(transparent)]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3654,"byte_end":3682,"line_start":125,"line_end":125,"column_start":1,"column_end":29}},{"value":"/ struct Flags: u32 {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3683,"byte_end":3710,"line_start":126,"line_end":126,"column_start":1,"column_end":28}},{"value":"/ const A = 0b00000001;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3711,"byte_end":3744,"line_start":127,"line_end":127,"column_start":1,"column_end":34}},{"value":"/ const B = 0b00000010;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3745,"byte_end":3778,"line_start":128,"line_end":128,"column_start":1,"column_end":34}},{"value":"/ const C = 0b00000100;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3779,"byte_end":3812,"line_start":129,"line_end":129,"column_start":1,"column_end":34}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3813,"byte_end":3822,"line_start":130,"line_end":130,"column_start":1,"column_end":10}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3823,"byte_end":3828,"line_start":131,"line_end":131,"column_start":1,"column_end":6}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3829,"byte_end":3836,"line_start":132,"line_end":132,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3837,"byte_end":3840,"line_start":133,"line_end":133,"column_start":1,"column_end":4}},{"value":"/ # Trait implementations","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3841,"byte_end":3868,"line_start":134,"line_end":134,"column_start":1,"column_end":28}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3869,"byte_end":3872,"line_start":135,"line_end":135,"column_start":1,"column_end":4}},{"value":"/ The `Copy`, `Clone`, `PartialEq`, `Eq`, `PartialOrd`, `Ord` and `Hash`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3873,"byte_end":3947,"line_start":136,"line_end":136,"column_start":1,"column_end":75}},{"value":"/ traits are automatically derived for the `struct`s using the `derive` attribute.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":3948,"byte_end":4032,"line_start":137,"line_end":137,"column_start":1,"column_end":85}},{"value":"/ Additional traits can be derived by providing an explicit `derive`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4033,"byte_end":4103,"line_start":138,"line_end":138,"column_start":1,"column_end":71}},{"value":"/ attribute on `struct`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4104,"byte_end":4130,"line_start":139,"line_end":139,"column_start":1,"column_end":27}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4131,"byte_end":4134,"line_start":140,"line_end":140,"column_start":1,"column_end":4}},{"value":"/ The `Extend` and `FromIterator` traits are implemented for the `struct`s,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4135,"byte_end":4212,"line_start":141,"line_end":141,"column_start":1,"column_end":78}},{"value":"/ too: `Extend` adds the union of the instances of the `struct` iterated over,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4213,"byte_end":4293,"line_start":142,"line_end":142,"column_start":1,"column_end":81}},{"value":"/ while `FromIterator` calculates the union.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4294,"byte_end":4340,"line_start":143,"line_end":143,"column_start":1,"column_end":47}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4341,"byte_end":4344,"line_start":144,"line_end":144,"column_start":1,"column_end":4}},{"value":"/ The `Binary`, `Debug`, `LowerHex`, `Octal` and `UpperHex` traits are also","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4345,"byte_end":4422,"line_start":145,"line_end":145,"column_start":1,"column_end":78}},{"value":"/ implemented by displaying the bits value of the internal struct.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4423,"byte_end":4491,"line_start":146,"line_end":146,"column_start":1,"column_end":69}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4492,"byte_end":4495,"line_start":147,"line_end":147,"column_start":1,"column_end":4}},{"value":"/ ## Operators","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4496,"byte_end":4512,"line_start":148,"line_end":148,"column_start":1,"column_end":17}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4513,"byte_end":4516,"line_start":149,"line_end":149,"column_start":1,"column_end":4}},{"value":"/ The following operator traits are implemented for the generated `struct`s:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4517,"byte_end":4595,"line_start":150,"line_end":150,"column_start":1,"column_end":79}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4596,"byte_end":4599,"line_start":151,"line_end":151,"column_start":1,"column_end":4}},{"value":"/ - `BitOr` and `BitOrAssign`: union","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4600,"byte_end":4638,"line_start":152,"line_end":152,"column_start":1,"column_end":39}},{"value":"/ - `BitAnd` and `BitAndAssign`: intersection","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4639,"byte_end":4686,"line_start":153,"line_end":153,"column_start":1,"column_end":48}},{"value":"/ - `BitXor` and `BitXorAssign`: toggle","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4687,"byte_end":4728,"line_start":154,"line_end":154,"column_start":1,"column_end":42}},{"value":"/ - `Sub` and `SubAssign`: set difference","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4729,"byte_end":4772,"line_start":155,"line_end":155,"column_start":1,"column_end":44}},{"value":"/ - `Not`: set complement","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4773,"byte_end":4800,"line_start":156,"line_end":156,"column_start":1,"column_end":28}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4801,"byte_end":4804,"line_start":157,"line_end":157,"column_start":1,"column_end":4}},{"value":"/ # Methods","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4805,"byte_end":4818,"line_start":158,"line_end":158,"column_start":1,"column_end":14}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4819,"byte_end":4822,"line_start":159,"line_end":159,"column_start":1,"column_end":4}},{"value":"/ The following methods are defined for the generated `struct`s:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4823,"byte_end":4889,"line_start":160,"line_end":160,"column_start":1,"column_end":67}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4890,"byte_end":4893,"line_start":161,"line_end":161,"column_start":1,"column_end":4}},{"value":"/ - `empty`: an empty set of flags","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4894,"byte_end":4930,"line_start":162,"line_end":162,"column_start":1,"column_end":37}},{"value":"/ - `all`: the set of all defined flags","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4931,"byte_end":4972,"line_start":163,"line_end":163,"column_start":1,"column_end":42}},{"value":"/ - `bits`: the raw value of the flags currently stored","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":4973,"byte_end":5030,"line_start":164,"line_end":164,"column_start":1,"column_end":58}},{"value":"/ - `from_bits`: convert from underlying bit representation, unless that","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":5031,"byte_end":5105,"line_start":165,"line_end":165,"column_start":1,"column_end":75}},{"value":"/ representation contains bits that do not correspond to a","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":5106,"byte_end":5181,"line_start":166,"line_end":166,"column_start":1,"column_end":76}},{"value":"/ defined flag","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":5182,"byte_end":5213,"line_start":167,"line_end":167,"column_start":1,"column_end":32}},{"value":"/ - `from_bits_truncate`: convert from underlying bit representation, dropping","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":5214,"byte_end":5294,"line_start":168,"line_end":168,"column_start":1,"column_end":81}},{"value":"/ any bits that do not correspond to defined flags","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":5295,"byte_end":5371,"line_start":169,"line_end":169,"column_start":1,"column_end":77}},{"value":"/ - `from_bits_unchecked`: convert from underlying bit representation, keeping","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":5372,"byte_end":5452,"line_start":170,"line_end":170,"column_start":1,"column_end":81}},{"value":"/ all bits (even those not corresponding to defined","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":5453,"byte_end":5531,"line_start":171,"line_end":171,"column_start":1,"column_end":79}},{"value":"/ flags)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":5532,"byte_end":5567,"line_start":172,"line_end":172,"column_start":1,"column_end":36}},{"value":"/ - `is_empty`: `true` if no flags are currently stored","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":5568,"byte_end":5625,"line_start":173,"line_end":173,"column_start":1,"column_end":58}},{"value":"/ - `is_all`: `true` if currently set flags exactly equal all defined flags","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":5626,"byte_end":5703,"line_start":174,"line_end":174,"column_start":1,"column_end":78}},{"value":"/ - `intersects`: `true` if there are flags common to both `self` and `other`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":5704,"byte_end":5783,"line_start":175,"line_end":175,"column_start":1,"column_end":80}},{"value":"/ - `contains`: `true` if all of the flags in `other` are contained within `self`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":5784,"byte_end":5867,"line_start":176,"line_end":176,"column_start":1,"column_end":84}},{"value":"/ - `insert`: inserts the specified flags in-place","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":5868,"byte_end":5920,"line_start":177,"line_end":177,"column_start":1,"column_end":53}},{"value":"/ - `remove`: removes the specified flags in-place","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":5921,"byte_end":5973,"line_start":178,"line_end":178,"column_start":1,"column_end":53}},{"value":"/ - `toggle`: the specified flags will be inserted if not present, and removed","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":5974,"byte_end":6054,"line_start":179,"line_end":179,"column_start":1,"column_end":81}},{"value":"/ if they are.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":6055,"byte_end":6083,"line_start":180,"line_end":180,"column_start":1,"column_end":29}},{"value":"/ - `set`: inserts or removes the specified flags depending on the passed value","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":6084,"byte_end":6165,"line_start":181,"line_end":181,"column_start":1,"column_end":82}},{"value":"/ - `intersection`: returns a new set of flags, containing only the flags present","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":6166,"byte_end":6249,"line_start":182,"line_end":182,"column_start":1,"column_end":84}},{"value":"/ in both `self` and `other` (the argument to the function).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":6250,"byte_end":6330,"line_start":183,"line_end":183,"column_start":1,"column_end":81}},{"value":"/ - `union`: returns a new set of flags, containing any flags present in","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":6331,"byte_end":6405,"line_start":184,"line_end":184,"column_start":1,"column_end":75}},{"value":"/ either `self` or `other` (the argument to the function).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":6406,"byte_end":6477,"line_start":185,"line_end":185,"column_start":1,"column_end":72}},{"value":"/ - `difference`: returns a new set of flags, containing all flags present in","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":6478,"byte_end":6557,"line_start":186,"line_end":186,"column_start":1,"column_end":80}},{"value":"/ `self` without any of the flags present in `other` (the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":6558,"byte_end":6633,"line_start":187,"line_end":187,"column_start":1,"column_end":76}},{"value":"/ argument to the function).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":6634,"byte_end":6680,"line_start":188,"line_end":188,"column_start":1,"column_end":47}},{"value":"/ - `symmetric_difference`: returns a new set of flags, containing all flags","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":6681,"byte_end":6759,"line_start":189,"line_end":189,"column_start":1,"column_end":79}},{"value":"/ present in either `self` or `other` (the argument","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":6760,"byte_end":6839,"line_start":190,"line_end":190,"column_start":1,"column_end":80}},{"value":"/ to the function), but not both.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":6840,"byte_end":6901,"line_start":191,"line_end":191,"column_start":1,"column_end":62}},{"value":"/ - `complement`: returns a new set of flags, containing all flags which are","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":6902,"byte_end":6980,"line_start":192,"line_end":192,"column_start":1,"column_end":79}},{"value":"/ not set in `self`, but which are allowed for this type.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":6981,"byte_end":7056,"line_start":193,"line_end":193,"column_start":1,"column_end":76}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7057,"byte_end":7060,"line_start":194,"line_end":194,"column_start":1,"column_end":4}},{"value":"/ ## Default","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7061,"byte_end":7075,"line_start":195,"line_end":195,"column_start":1,"column_end":15}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7076,"byte_end":7079,"line_start":196,"line_end":196,"column_start":1,"column_end":4}},{"value":"/ The `Default` trait is not automatically implemented for the generated structs.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7080,"byte_end":7163,"line_start":197,"line_end":197,"column_start":1,"column_end":84}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7164,"byte_end":7167,"line_start":198,"line_end":198,"column_start":1,"column_end":4}},{"value":"/ If your default value is equal to `0` (which is the same value as calling `empty()`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7168,"byte_end":7255,"line_start":199,"line_end":199,"column_start":1,"column_end":88}},{"value":"/ on the generated struct), you can simply derive `Default`:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7256,"byte_end":7318,"line_start":200,"line_end":200,"column_start":1,"column_end":63}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7319,"byte_end":7322,"line_start":201,"line_end":201,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7323,"byte_end":7330,"line_start":202,"line_end":202,"column_start":1,"column_end":8}},{"value":"/ use bitflags::bitflags;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7331,"byte_end":7358,"line_start":203,"line_end":203,"column_start":1,"column_end":28}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7359,"byte_end":7362,"line_start":204,"line_end":204,"column_start":1,"column_end":4}},{"value":"/ bitflags! {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7363,"byte_end":7378,"line_start":205,"line_end":205,"column_start":1,"column_end":16}},{"value":"/ // Results in default value with bits: 0","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7379,"byte_end":7427,"line_start":206,"line_end":206,"column_start":1,"column_end":49}},{"value":"/ #[derive(Default)]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7428,"byte_end":7454,"line_start":207,"line_end":207,"column_start":1,"column_end":27}},{"value":"/ struct Flags: u32 {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7455,"byte_end":7482,"line_start":208,"line_end":208,"column_start":1,"column_end":28}},{"value":"/ const A = 0b00000001;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7483,"byte_end":7516,"line_start":209,"line_end":209,"column_start":1,"column_end":34}},{"value":"/ const B = 0b00000010;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7517,"byte_end":7550,"line_start":210,"line_end":210,"column_start":1,"column_end":34}},{"value":"/ const C = 0b00000100;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7551,"byte_end":7584,"line_start":211,"line_end":211,"column_start":1,"column_end":34}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7585,"byte_end":7594,"line_start":212,"line_end":212,"column_start":1,"column_end":10}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7595,"byte_end":7600,"line_start":213,"line_end":213,"column_start":1,"column_end":6}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7601,"byte_end":7604,"line_start":214,"line_end":214,"column_start":1,"column_end":4}},{"value":"/ fn main() {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7605,"byte_end":7620,"line_start":215,"line_end":215,"column_start":1,"column_end":16}},{"value":"/ let derived_default: Flags = Default::default();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7621,"byte_end":7677,"line_start":216,"line_end":216,"column_start":1,"column_end":57}},{"value":"/ assert_eq!(derived_default.bits(), 0);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7678,"byte_end":7724,"line_start":217,"line_end":217,"column_start":1,"column_end":47}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7725,"byte_end":7730,"line_start":218,"line_end":218,"column_start":1,"column_end":6}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7731,"byte_end":7738,"line_start":219,"line_end":219,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7739,"byte_end":7742,"line_start":220,"line_end":220,"column_start":1,"column_end":4}},{"value":"/ If your default value is not equal to `0` you need to implement `Default` yourself:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7743,"byte_end":7830,"line_start":221,"line_end":221,"column_start":1,"column_end":88}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7831,"byte_end":7834,"line_start":222,"line_end":222,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7835,"byte_end":7842,"line_start":223,"line_end":223,"column_start":1,"column_end":8}},{"value":"/ use bitflags::bitflags;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7843,"byte_end":7870,"line_start":224,"line_end":224,"column_start":1,"column_end":28}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7871,"byte_end":7874,"line_start":225,"line_end":225,"column_start":1,"column_end":4}},{"value":"/ bitflags! {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7875,"byte_end":7890,"line_start":226,"line_end":226,"column_start":1,"column_end":16}},{"value":"/ struct Flags: u32 {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7891,"byte_end":7918,"line_start":227,"line_end":227,"column_start":1,"column_end":28}},{"value":"/ const A = 0b00000001;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7919,"byte_end":7952,"line_start":228,"line_end":228,"column_start":1,"column_end":34}},{"value":"/ const B = 0b00000010;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7953,"byte_end":7986,"line_start":229,"line_end":229,"column_start":1,"column_end":34}},{"value":"/ const C = 0b00000100;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":7987,"byte_end":8020,"line_start":230,"line_end":230,"column_start":1,"column_end":34}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8021,"byte_end":8030,"line_start":231,"line_end":231,"column_start":1,"column_end":10}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8031,"byte_end":8036,"line_start":232,"line_end":232,"column_start":1,"column_end":6}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8037,"byte_end":8040,"line_start":233,"line_end":233,"column_start":1,"column_end":4}},{"value":"/ // explicit `Default` implementation","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8041,"byte_end":8081,"line_start":234,"line_end":234,"column_start":1,"column_end":41}},{"value":"/ impl Default for Flags {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8082,"byte_end":8110,"line_start":235,"line_end":235,"column_start":1,"column_end":29}},{"value":"/ fn default() -> Flags {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8111,"byte_end":8142,"line_start":236,"line_end":236,"column_start":1,"column_end":32}},{"value":"/ Flags::A | Flags::C","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8143,"byte_end":8174,"line_start":237,"line_end":237,"column_start":1,"column_end":32}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8175,"byte_end":8184,"line_start":238,"line_end":238,"column_start":1,"column_end":10}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8185,"byte_end":8190,"line_start":239,"line_end":239,"column_start":1,"column_end":6}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8191,"byte_end":8194,"line_start":240,"line_end":240,"column_start":1,"column_end":4}},{"value":"/ fn main() {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8195,"byte_end":8210,"line_start":241,"line_end":241,"column_start":1,"column_end":16}},{"value":"/ let implemented_default: Flags = Default::default();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8211,"byte_end":8271,"line_start":242,"line_end":242,"column_start":1,"column_end":61}},{"value":"/ assert_eq!(implemented_default, (Flags::A | Flags::C));","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8272,"byte_end":8335,"line_start":243,"line_end":243,"column_start":1,"column_end":64}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8336,"byte_end":8341,"line_start":244,"line_end":244,"column_start":1,"column_end":6}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8342,"byte_end":8349,"line_start":245,"line_end":245,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8350,"byte_end":8353,"line_start":246,"line_end":246,"column_start":1,"column_end":4}},{"value":"/ # Zero Flags","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8354,"byte_end":8370,"line_start":247,"line_end":247,"column_start":1,"column_end":17}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8371,"byte_end":8374,"line_start":248,"line_end":248,"column_start":1,"column_end":4}},{"value":"/ Flags with a value equal to zero will have some strange behavior that one should be aware of.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8375,"byte_end":8472,"line_start":249,"line_end":249,"column_start":1,"column_end":98}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8473,"byte_end":8476,"line_start":250,"line_end":250,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8477,"byte_end":8484,"line_start":251,"line_end":251,"column_start":1,"column_end":8}},{"value":"/ use bitflags::bitflags;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8485,"byte_end":8512,"line_start":252,"line_end":252,"column_start":1,"column_end":28}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8513,"byte_end":8516,"line_start":253,"line_end":253,"column_start":1,"column_end":4}},{"value":"/ bitflags! {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8517,"byte_end":8532,"line_start":254,"line_end":254,"column_start":1,"column_end":16}},{"value":"/ struct Flags: u32 {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8533,"byte_end":8560,"line_start":255,"line_end":255,"column_start":1,"column_end":28}},{"value":"/ const NONE = 0b00000000;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8561,"byte_end":8597,"line_start":256,"line_end":256,"column_start":1,"column_end":37}},{"value":"/ const SOME = 0b00000001;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8598,"byte_end":8634,"line_start":257,"line_end":257,"column_start":1,"column_end":37}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8635,"byte_end":8644,"line_start":258,"line_end":258,"column_start":1,"column_end":10}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8645,"byte_end":8650,"line_start":259,"line_end":259,"column_start":1,"column_end":6}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8651,"byte_end":8654,"line_start":260,"line_end":260,"column_start":1,"column_end":4}},{"value":"/ fn main() {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8655,"byte_end":8670,"line_start":261,"line_end":261,"column_start":1,"column_end":16}},{"value":"/ let empty = Flags::empty();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8671,"byte_end":8706,"line_start":262,"line_end":262,"column_start":1,"column_end":36}},{"value":"/ let none = Flags::NONE;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8707,"byte_end":8738,"line_start":263,"line_end":263,"column_start":1,"column_end":32}},{"value":"/ let some = Flags::SOME;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8739,"byte_end":8770,"line_start":264,"line_end":264,"column_start":1,"column_end":32}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8771,"byte_end":8774,"line_start":265,"line_end":265,"column_start":1,"column_end":4}},{"value":"/ // Zero flags are treated as always present","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8775,"byte_end":8826,"line_start":266,"line_end":266,"column_start":1,"column_end":52}},{"value":"/ assert!(empty.contains(Flags::NONE));","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8827,"byte_end":8872,"line_start":267,"line_end":267,"column_start":1,"column_end":46}},{"value":"/ assert!(none.contains(Flags::NONE));","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8873,"byte_end":8917,"line_start":268,"line_end":268,"column_start":1,"column_end":45}},{"value":"/ assert!(some.contains(Flags::NONE));","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8918,"byte_end":8962,"line_start":269,"line_end":269,"column_start":1,"column_end":45}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8963,"byte_end":8966,"line_start":270,"line_end":270,"column_start":1,"column_end":4}},{"value":"/ // Zero flags will be ignored when testing for emptiness","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":8967,"byte_end":9031,"line_start":271,"line_end":271,"column_start":1,"column_end":65}},{"value":"/ assert!(none.is_empty());","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":9032,"byte_end":9065,"line_start":272,"line_end":272,"column_start":1,"column_end":34}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":9066,"byte_end":9071,"line_start":273,"line_end":273,"column_start":1,"column_end":6}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":9072,"byte_end":9079,"line_start":274,"line_end":274,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":9080,"byte_end":9083,"line_start":275,"line_end":275,"column_start":1,"column_end":4}},{"value":"/ Users should generally avoid defining a flag with a value of zero.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":9084,"byte_end":9154,"line_start":276,"line_end":276,"column_start":1,"column_end":71}},{"value":"no_std","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.3.2/src/lib.rs","byte_start":9179,"byte_end":9185,"line_start":278,"line_end":278,"column_start":24,"column_end":30}}]}],"impls":[],"refs":[],"macro_refs":[],"relations":[]} \ No newline at end of file diff --git a/target/rls/debug/deps/save-analysis/libcat_box-92bcebb42a58c225.json b/target/rls/debug/deps/save-analysis/libcat_box-92bcebb42a58c225.json new file mode 100644 index 0000000..1622c19 --- /dev/null +++ b/target/rls/debug/deps/save-analysis/libcat_box-92bcebb42a58c225.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.1","compilation":{"directory":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6","program":"/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rls","arguments":["--crate-name","cat_box","--edition=2018","/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","--json=diagnostic-rendered-ansi,future-incompat","--crate-type","lib","--emit=dep-info,metadata","-C","embed-bitcode=no","-C","debuginfo=2","--cfg","feature=\"default\"","-C","metadata=92bcebb42a58c225","-C","extra-filename=-92bcebb42a58c225","--out-dir","/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps","-L","dependency=/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps","--extern","sdl2=/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/libsdl2-aaedac323d9034b3.rmeta","--cap-lints","allow","--error-format=json","--sysroot","/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu"],"output":"/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/libcat_box-92bcebb42a58c225.rmeta"},"prelude":{"crate_id":{"name":"cat_box","disambiguator":[1896556768768150680,0]},"crate_root":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src","external_crates":[{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":1,"id":{"name":"std","disambiguator":[14026078687029744792,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":2,"id":{"name":"core","disambiguator":[5443730852259234579,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":3,"id":{"name":"compiler_builtins","disambiguator":[4162025702538114948,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":4,"id":{"name":"rustc_std_workspace_core","disambiguator":[17612152343462746361,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":5,"id":{"name":"alloc","disambiguator":[5560808256873132085,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":6,"id":{"name":"libc","disambiguator":[135160560163186024,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":7,"id":{"name":"unwind","disambiguator":[5800521777261530329,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":8,"id":{"name":"cfg_if","disambiguator":[7095478770525139037,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":9,"id":{"name":"hashbrown","disambiguator":[17225897750877482818,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":10,"id":{"name":"rustc_std_workspace_alloc","disambiguator":[15613653607383163471,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":11,"id":{"name":"rustc_demangle","disambiguator":[12428323400248712701,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":12,"id":{"name":"std_detect","disambiguator":[11893279639181573711,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":13,"id":{"name":"addr2line","disambiguator":[13583305032161054644,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":14,"id":{"name":"gimli","disambiguator":[16609837797022023111,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":15,"id":{"name":"object","disambiguator":[18098459435141129808,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":16,"id":{"name":"memchr","disambiguator":[15244551393771456017,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":17,"id":{"name":"miniz_oxide","disambiguator":[6576340271055396708,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":18,"id":{"name":"adler","disambiguator":[15284510821186066958,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":19,"id":{"name":"panic_unwind","disambiguator":[12982807908830018159,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":20,"id":{"name":"sdl2","disambiguator":[5868353648469071053,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":21,"id":{"name":"libc","disambiguator":[14926449781656206643,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":22,"id":{"name":"lazy_static","disambiguator":[9708727071027780738,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":23,"id":{"name":"bitflags","disambiguator":[15917436305182542096,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","num":24,"id":{"name":"sdl2_sys","disambiguator":[7341326241932298073,0]}}],"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":0,"byte_end":19401,"line_start":1,"line_end":712,"column_start":1,"column_end":2}},"imports":[{"kind":"Use","ref_id":{"krate":20,"index":3518},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":3195,"byte_end":3200,"line_start":109,"line_end":109,"column_start":22,"column_end":27},"alias_span":null,"name":"Event","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":20,"index":3840},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":3244,"byte_end":3251,"line_start":111,"line_end":111,"column_start":25,"column_end":32},"alias_span":null,"name":"Keycode","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":20,"index":5892},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":3293,"byte_end":3298,"line_start":113,"line_end":113,"column_start":23,"column_end":28},"alias_span":null,"name":"Color","value":"","parent":{"krate":0,"index":0}}],"defs":[{"kind":"Mod","id":{"krate":0,"index":0},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":0,"byte_end":19401,"line_start":1,"line_end":712,"column_start":1,"column_end":2},"name":"","qualname":"::","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","parent":null,"children":[{"krate":0,"index":1},{"krate":0,"index":2},{"krate":0,"index":3},{"krate":0,"index":19},{"krate":0,"index":20},{"krate":0,"index":23},{"krate":0,"index":24},{"krate":0,"index":27},{"krate":0,"index":30},{"krate":0,"index":33},{"krate":0,"index":36},{"krate":0,"index":37},{"krate":0,"index":40},{"krate":0,"index":43},{"krate":0,"index":46},{"krate":0,"index":49},{"krate":0,"index":50},{"krate":0,"index":53},{"krate":0,"index":56},{"krate":0,"index":59},{"krate":0,"index":62},{"krate":0,"index":65},{"krate":0,"index":66},{"krate":0,"index":69},{"krate":0,"index":70},{"krate":0,"index":72},{"krate":0,"index":73},{"krate":0,"index":76},{"krate":0,"index":79},{"krate":0,"index":82},{"krate":0,"index":85},{"krate":0,"index":88},{"krate":0,"index":91},{"krate":0,"index":94},{"krate":0,"index":97},{"krate":0,"index":190},{"krate":0,"index":193},{"krate":0,"index":98},{"krate":0,"index":100},{"krate":0,"index":102},{"krate":0,"index":104},{"krate":0,"index":106},{"krate":0,"index":108},{"krate":0,"index":110},{"krate":0,"index":112},{"krate":0,"index":114},{"krate":0,"index":116},{"krate":0,"index":119},{"krate":0,"index":123},{"krate":0,"index":131},{"krate":0,"index":133},{"krate":0,"index":147},{"krate":0,"index":150},{"krate":0,"index":152},{"krate":0,"index":157},{"krate":0,"index":164},{"krate":0,"index":170},{"krate":0,"index":172},{"krate":0,"index":176},{"krate":0,"index":178},{"krate":0,"index":179},{"krate":0,"index":180},{"krate":0,"index":185}],"decl_id":null,"docs":" Work in progress game engine, inspired by [arcade](https://arcade.academy/).","sig":null,"attributes":[{"value":"/ Work in progress game engine, inspired by [arcade](https://arcade.academy/).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":0,"byte_end":80,"line_start":1,"line_end":1,"column_start":1,"column_end":81}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":81,"byte_end":84,"line_start":2,"line_end":2,"column_start":1,"column_end":4}},{"value":"/ ```no_run","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":85,"byte_end":98,"line_start":3,"line_end":3,"column_start":1,"column_end":14}},{"value":"/ use cat_box::{draw_text, Game, Sprite, SpriteCollection, get_mouse_state, get_keyboard_state};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":99,"byte_end":197,"line_start":4,"line_end":4,"column_start":1,"column_end":99}},{"value":"/ use sdl2::keyboard::Scancode;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":198,"byte_end":231,"line_start":5,"line_end":5,"column_start":1,"column_end":34}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":232,"byte_end":235,"line_start":6,"line_end":6,"column_start":1,"column_end":4}},{"value":"/ fn main() {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":236,"byte_end":251,"line_start":7,"line_end":7,"column_start":1,"column_end":16}},{"value":"/ let game = Game::new(\"catbox demo\", 1000, 800);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":252,"byte_end":306,"line_start":8,"line_end":8,"column_start":1,"column_end":55}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":307,"byte_end":310,"line_start":9,"line_end":9,"column_start":1,"column_end":4}},{"value":"/ let mut i = 0u8;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":311,"byte_end":335,"line_start":10,"line_end":10,"column_start":1,"column_end":25}},{"value":"/ let mut s = Sprite::new(\"duck.png\", 500, 400).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":336,"byte_end":399,"line_start":11,"line_end":11,"column_start":1,"column_end":64}},{"value":"/ let mut s2 = Sprite::new(\"duck.png\", 400, 500).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":400,"byte_end":464,"line_start":12,"line_end":12,"column_start":1,"column_end":65}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":465,"byte_end":468,"line_start":13,"line_end":13,"column_start":1,"column_end":4}},{"value":"/ let mut coll = SpriteCollection::new();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":469,"byte_end":516,"line_start":14,"line_end":14,"column_start":1,"column_end":48}},{"value":"/ for n in 0..10 {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":517,"byte_end":541,"line_start":15,"line_end":15,"column_start":1,"column_end":25}},{"value":"/ for o in 0..8 {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":542,"byte_end":569,"line_start":16,"line_end":16,"column_start":1,"column_end":28}},{"value":"/ let x = Sprite::new(\"duck.png\", n * 100, o * 100).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":570,"byte_end":645,"line_start":17,"line_end":17,"column_start":1,"column_end":76}},{"value":"/ coll.push(x);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":646,"byte_end":675,"line_start":18,"line_end":18,"column_start":1,"column_end":30}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":676,"byte_end":689,"line_start":19,"line_end":19,"column_start":1,"column_end":14}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":690,"byte_end":699,"line_start":20,"line_end":20,"column_start":1,"column_end":10}},{"value":"/ game.run(|ctx| {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":700,"byte_end":724,"line_start":21,"line_end":21,"column_start":1,"column_end":25}},{"value":"/ i = (i + 1) % 255;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":725,"byte_end":755,"line_start":22,"line_end":22,"column_start":1,"column_end":31}},{"value":"/ ctx.set_background_colour(i as u8, 64, 255);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":756,"byte_end":812,"line_start":23,"line_end":23,"column_start":1,"column_end":57}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":813,"byte_end":816,"line_start":24,"line_end":24,"column_start":1,"column_end":4}},{"value":"/ draw_text(","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":817,"byte_end":839,"line_start":25,"line_end":25,"column_start":1,"column_end":23}},{"value":"/ ctx,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":840,"byte_end":860,"line_start":26,"line_end":26,"column_start":1,"column_end":21}},{"value":"/ format!(\"i is {}\", i),","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":861,"byte_end":899,"line_start":27,"line_end":27,"column_start":1,"column_end":39}},{"value":"/ \"MesloLGS NF Regular.ttf\",","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":900,"byte_end":942,"line_start":28,"line_end":28,"column_start":1,"column_end":43}},{"value":"/ 72,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":943,"byte_end":962,"line_start":29,"line_end":29,"column_start":1,"column_end":20}},{"value":"/ (300, 300),","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":963,"byte_end":990,"line_start":30,"line_end":30,"column_start":1,"column_end":28}},{"value":"/ cat_box::TextMode::Shaded {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":991,"byte_end":1034,"line_start":31,"line_end":31,"column_start":1,"column_end":44}},{"value":"/ foreground: (255, 255, 255),","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1035,"byte_end":1083,"line_start":32,"line_end":32,"column_start":1,"column_end":49}},{"value":"/ background: (0, 0, 0),","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1084,"byte_end":1126,"line_start":33,"line_end":33,"column_start":1,"column_end":43}},{"value":"/ },","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1127,"byte_end":1145,"line_start":34,"line_end":34,"column_start":1,"column_end":19}},{"value":"/ )","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1146,"byte_end":1159,"line_start":35,"line_end":35,"column_start":1,"column_end":14}},{"value":"/ .unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1160,"byte_end":1182,"line_start":36,"line_end":36,"column_start":1,"column_end":23}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1183,"byte_end":1186,"line_start":37,"line_end":37,"column_start":1,"column_end":4}},{"value":"/ let (start_x, start_y) = s.position();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1187,"byte_end":1237,"line_start":38,"line_end":38,"column_start":1,"column_end":51}},{"value":"/ let m = get_mouse_state(ctx);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1238,"byte_end":1279,"line_start":39,"line_end":39,"column_start":1,"column_end":42}},{"value":"/ let x_diff = m.x - start_x;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1280,"byte_end":1319,"line_start":40,"line_end":40,"column_start":1,"column_end":40}},{"value":"/ let y_diff = m.y - start_y;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1320,"byte_end":1359,"line_start":41,"line_end":41,"column_start":1,"column_end":40}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1360,"byte_end":1363,"line_start":42,"line_end":42,"column_start":1,"column_end":4}},{"value":"/ let angle = (y_diff as f64).atan2(x_diff as f64);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1364,"byte_end":1425,"line_start":43,"line_end":43,"column_start":1,"column_end":62}},{"value":"/ s.set_angle(angle.to_degrees());","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1426,"byte_end":1470,"line_start":44,"line_end":44,"column_start":1,"column_end":45}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1471,"byte_end":1474,"line_start":45,"line_end":45,"column_start":1,"column_end":4}},{"value":"/ for spr in coll.iter() {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1475,"byte_end":1511,"line_start":46,"line_end":46,"column_start":1,"column_end":37}},{"value":"/ let (start_x, start_y) = spr.position();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1512,"byte_end":1568,"line_start":47,"line_end":47,"column_start":1,"column_end":57}},{"value":"/ let m = get_mouse_state(ctx);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1569,"byte_end":1614,"line_start":48,"line_end":48,"column_start":1,"column_end":46}},{"value":"/ let x_diff = m.x - start_x;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1615,"byte_end":1658,"line_start":49,"line_end":49,"column_start":1,"column_end":44}},{"value":"/ let y_diff = m.y - start_y;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1659,"byte_end":1702,"line_start":50,"line_end":50,"column_start":1,"column_end":44}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1703,"byte_end":1706,"line_start":51,"line_end":51,"column_start":1,"column_end":4}},{"value":"/ let angle = (y_diff as f64).atan2(x_diff as f64);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1707,"byte_end":1772,"line_start":52,"line_end":52,"column_start":1,"column_end":66}},{"value":"/ spr.set_angle(angle.to_degrees());","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1773,"byte_end":1823,"line_start":53,"line_end":53,"column_start":1,"column_end":51}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1824,"byte_end":1837,"line_start":54,"line_end":54,"column_start":1,"column_end":14}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1838,"byte_end":1841,"line_start":55,"line_end":55,"column_start":1,"column_end":4}},{"value":"/ let keys = get_keyboard_state(ctx).keys;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1842,"byte_end":1894,"line_start":56,"line_end":56,"column_start":1,"column_end":53}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1895,"byte_end":1898,"line_start":57,"line_end":57,"column_start":1,"column_end":4}},{"value":"/ for key in keys {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1899,"byte_end":1928,"line_start":58,"line_end":58,"column_start":1,"column_end":30}},{"value":"/ let offset = match key {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1929,"byte_end":1969,"line_start":59,"line_end":59,"column_start":1,"column_end":41}},{"value":"/ Scancode::Escape => {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":1970,"byte_end":2011,"line_start":60,"line_end":60,"column_start":1,"column_end":42}},{"value":"/ game.terminate();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2012,"byte_end":2053,"line_start":61,"line_end":61,"column_start":1,"column_end":42}},{"value":"/ (0, 0)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2054,"byte_end":2084,"line_start":62,"line_end":62,"column_start":1,"column_end":31}},{"value":"/ },","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2085,"byte_end":2107,"line_start":63,"line_end":63,"column_start":1,"column_end":23}},{"value":"/ Scancode::W | Scancode::Up => (0, 5),","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2108,"byte_end":2165,"line_start":64,"line_end":64,"column_start":1,"column_end":58}},{"value":"/ Scancode::S | Scancode::Down => (0, -5),","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2166,"byte_end":2226,"line_start":65,"line_end":65,"column_start":1,"column_end":61}},{"value":"/ Scancode::A | Scancode::Left => (-5, 0),","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2227,"byte_end":2287,"line_start":66,"line_end":66,"column_start":1,"column_end":61}},{"value":"/ Scancode::D | Scancode::Right => (5, 0),","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2288,"byte_end":2348,"line_start":67,"line_end":67,"column_start":1,"column_end":61}},{"value":"/ _ => (0, 0),","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2349,"byte_end":2381,"line_start":68,"line_end":68,"column_start":1,"column_end":33}},{"value":"/ };","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2382,"byte_end":2400,"line_start":69,"line_end":69,"column_start":1,"column_end":19}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2401,"byte_end":2404,"line_start":70,"line_end":70,"column_start":1,"column_end":4}},{"value":"/ s.translate(offset);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2405,"byte_end":2441,"line_start":71,"line_end":71,"column_start":1,"column_end":37}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2442,"byte_end":2445,"line_start":72,"line_end":72,"column_start":1,"column_end":4}},{"value":"/ for spr in coll.iter() {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2446,"byte_end":2486,"line_start":73,"line_end":73,"column_start":1,"column_end":41}},{"value":"/ spr.translate(offset);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2487,"byte_end":2529,"line_start":74,"line_end":74,"column_start":1,"column_end":43}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2530,"byte_end":2547,"line_start":75,"line_end":75,"column_start":1,"column_end":18}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2548,"byte_end":2561,"line_start":76,"line_end":76,"column_start":1,"column_end":14}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2562,"byte_end":2565,"line_start":77,"line_end":77,"column_start":1,"column_end":4}},{"value":"/ s2.draw(ctx).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2566,"byte_end":2600,"line_start":78,"line_end":78,"column_start":1,"column_end":35}},{"value":"/ s.draw(ctx).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2601,"byte_end":2634,"line_start":79,"line_end":79,"column_start":1,"column_end":34}},{"value":"/ coll.draw(ctx).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2635,"byte_end":2671,"line_start":80,"line_end":80,"column_start":1,"column_end":37}},{"value":"/ })","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2672,"byte_end":2682,"line_start":81,"line_end":81,"column_start":1,"column_end":11}},{"value":"/ .unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2683,"byte_end":2701,"line_start":82,"line_end":82,"column_start":1,"column_end":19}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2702,"byte_end":2707,"line_start":83,"line_end":83,"column_start":1,"column_end":6}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2708,"byte_end":2715,"line_start":84,"line_end":84,"column_start":1,"column_end":8}}]},{"kind":"Mod","id":{"krate":0,"index":3},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/physics.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"name":"physics","qualname":"::physics","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/physics.rs","parent":null,"children":[{"krate":0,"index":4},{"krate":0,"index":5},{"krate":0,"index":8},{"krate":0,"index":11},{"krate":0,"index":14},{"krate":0,"index":15},{"krate":0,"index":16}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":15},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/physics.rs","byte_start":20371,"byte_end":20390,"line_start":31,"line_end":31,"column_start":8,"column_end":27},"name":"check_for_collision","qualname":"::physics::check_for_collision","value":"pub fn check_for_collision(&Sprite, &Sprite) -> bool","parent":null,"children":[],"decl_id":null,"docs":" Check if two sprites are touching or overlapping.\n","sig":null,"attributes":[{"value":"/ Check if two sprites are touching or overlapping.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/physics.rs","byte_start":20310,"byte_end":20363,"line_start":30,"line_end":30,"column_start":1,"column_end":54}}]},{"kind":"Function","id":{"krate":0,"index":16},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/physics.rs","byte_start":20621,"byte_end":20656,"line_start":37,"line_end":37,"column_start":8,"column_end":43},"name":"check_for_collision_with_collection","qualname":"::physics::check_for_collision_with_collection","value":"pub fn check_for_collision_with_collection<'a>(&Sprite, &'a SpriteCollection)\n-> Vec<&'a Sprite>","parent":null,"children":[],"decl_id":null,"docs":" Check if the sprite is colliding with any sprite in the collection, and return a list of\n references to the sprites which are colliding\n","sig":null,"attributes":[{"value":"/ Check if the sprite is colliding with any sprite in the collection, and return a list of","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/physics.rs","byte_start":20471,"byte_end":20563,"line_start":35,"line_end":35,"column_start":1,"column_end":93}},{"value":"/ references to the sprites which are colliding","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/physics.rs","byte_start":20564,"byte_end":20613,"line_start":36,"line_end":36,"column_start":1,"column_end":50}}]},{"kind":"Struct","id":{"krate":0,"index":190},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":3708,"byte_end":3719,"line_start":131,"line_end":131,"column_start":12,"column_end":23},"name":"CatboxError","qualname":"::CatboxError","value":"","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Type","id":{"krate":0,"index":108},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":4374,"byte_end":4380,"line_start":163,"line_end":163,"column_start":10,"column_end":16},"name":"Result","qualname":"::Result","value":"std::result::Result","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Struct","id":{"krate":0,"index":110},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":4527,"byte_end":4533,"line_start":166,"line_end":166,"column_start":12,"column_end":18},"name":"Events","qualname":"::Events","value":"Events { }","parent":null,"children":[{"krate":0,"index":111}],"decl_id":null,"docs":" Wrapper type around SDL's [`EventPump`](sdl2::EventPump). See those docs for more info.\n","sig":null,"attributes":[{"value":"/ Wrapper type around SDL's [`EventPump`](sdl2::EventPump). See those docs for more info.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":4424,"byte_end":4515,"line_start":165,"line_end":165,"column_start":1,"column_end":92}}]},{"kind":"Struct","id":{"krate":0,"index":119},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":4948,"byte_end":4954,"line_start":191,"line_end":191,"column_start":12,"column_end":18},"name":"Sprite","qualname":"::Sprite","value":"Sprite { }","parent":null,"children":[{"krate":0,"index":120},{"krate":0,"index":121},{"krate":0,"index":122}],"decl_id":null,"docs":" Representation of a sprite.\n","sig":null,"attributes":[{"value":"/ Representation of a sprite.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":4905,"byte_end":4936,"line_start":190,"line_end":190,"column_start":1,"column_end":32}}]},{"kind":"Method","id":{"krate":0,"index":124},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":5321,"byte_end":5324,"line_start":205,"line_end":205,"column_start":12,"column_end":15},"name":"new","qualname":"::new","value":"pub fn new>(P, i32, i32) -> Result","parent":null,"children":[],"decl_id":null,"docs":" Create a new Sprite. The `path` is relative to the current directory while running.","sig":null,"attributes":[{"value":"/ Create a new Sprite. The `path` is relative to the current directory while running.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":5038,"byte_end":5125,"line_start":198,"line_end":198,"column_start":5,"column_end":92}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":5130,"byte_end":5133,"line_start":199,"line_end":199,"column_start":5,"column_end":8}},{"value":"/ Don't forget to call [`draw()`](Self::draw()) after this.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":5138,"byte_end":5199,"line_start":200,"line_end":200,"column_start":5,"column_end":66}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":5204,"byte_end":5211,"line_start":201,"line_end":201,"column_start":5,"column_end":12}},{"value":"/ # use cat_box::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":5216,"byte_end":5237,"line_start":202,"line_end":202,"column_start":5,"column_end":26}},{"value":"/ let s = Sprite::new(\"duck.png\", 500, 400).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":5242,"byte_end":5297,"line_start":203,"line_end":203,"column_start":5,"column_end":60}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":5302,"byte_end":5309,"line_start":204,"line_end":204,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":126},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":6052,"byte_end":6056,"line_start":229,"line_end":229,"column_start":12,"column_end":16},"name":"draw","qualname":"::draw","value":"pub fn draw(&mut Self, &mut Context) -> Result<()>","parent":null,"children":[],"decl_id":null,"docs":" Draws the sprite to the window. This should only be called inside your main event loop.","sig":null,"attributes":[{"value":"/ Draws the sprite to the window. This should only be called inside your main event loop.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":5698,"byte_end":5789,"line_start":219,"line_end":219,"column_start":5,"column_end":96}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":5794,"byte_end":5797,"line_start":220,"line_end":220,"column_start":5,"column_end":8}},{"value":"/ ```no_run","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":5802,"byte_end":5815,"line_start":221,"line_end":221,"column_start":5,"column_end":18}},{"value":"/ # use cat_box::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":5820,"byte_end":5841,"line_start":222,"line_end":222,"column_start":5,"column_end":26}},{"value":"/ # let mut s = Sprite::new(\"duck.png\", 500, 400).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":5846,"byte_end":5907,"line_start":223,"line_end":223,"column_start":5,"column_end":66}},{"value":"/ # let game = Game::new(\"sprite demo\", 1000, 1000);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":5912,"byte_end":5966,"line_start":224,"line_end":224,"column_start":5,"column_end":59}},{"value":"/ # game.run(|ctx| {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":5971,"byte_end":5993,"line_start":225,"line_end":225,"column_start":5,"column_end":27}},{"value":"/ s.draw(ctx);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":5998,"byte_end":6014,"line_start":226,"line_end":226,"column_start":5,"column_end":21}},{"value":"/ # });","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":6019,"byte_end":6028,"line_start":227,"line_end":227,"column_start":5,"column_end":14}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":6033,"byte_end":6040,"line_start":228,"line_end":228,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":127},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":6554,"byte_end":6563,"line_start":245,"line_end":245,"column_start":12,"column_end":21},"name":"translate","qualname":"::translate","value":"pub fn translate(&mut Self, (i32, i32))","parent":null,"children":[],"decl_id":null,"docs":" Translate the sprite, in the form of (delta x, delta y)","sig":null,"attributes":[{"value":"/ Translate the sprite, in the form of (delta x, delta y)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":6329,"byte_end":6388,"line_start":238,"line_end":238,"column_start":5,"column_end":64}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":6393,"byte_end":6396,"line_start":239,"line_end":239,"column_start":5,"column_end":8}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":6401,"byte_end":6408,"line_start":240,"line_end":240,"column_start":5,"column_end":12}},{"value":"/ # use cat_box::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":6413,"byte_end":6434,"line_start":241,"line_end":241,"column_start":5,"column_end":26}},{"value":"/ # let mut s = Sprite::new(\"duck.png\", 500, 400).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":6439,"byte_end":6500,"line_start":242,"line_end":242,"column_start":5,"column_end":66}},{"value":"/ s.translate((5, 10));","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":6505,"byte_end":6530,"line_start":243,"line_end":243,"column_start":5,"column_end":30}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":6535,"byte_end":6542,"line_start":244,"line_end":244,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":128},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7000,"byte_end":7009,"line_start":260,"line_end":260,"column_start":12,"column_end":21},"name":"set_angle","qualname":"::set_angle","value":"pub fn set_angle(&mut Self, f64)","parent":null,"children":[],"decl_id":null,"docs":" Set the angle of the sprite, in degrees of clockwise rotation.","sig":null,"attributes":[{"value":"/ Set the angle of the sprite, in degrees of clockwise rotation.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":6771,"byte_end":6837,"line_start":253,"line_end":253,"column_start":5,"column_end":71}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":6842,"byte_end":6845,"line_start":254,"line_end":254,"column_start":5,"column_end":8}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":6850,"byte_end":6857,"line_start":255,"line_end":255,"column_start":5,"column_end":12}},{"value":"/ # use cat_box::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":6862,"byte_end":6883,"line_start":256,"line_end":256,"column_start":5,"column_end":26}},{"value":"/ # let mut s = Sprite::new(\"duck.png\", 500, 400).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":6888,"byte_end":6949,"line_start":257,"line_end":257,"column_start":5,"column_end":66}},{"value":"/ s.set_angle(45.0);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":6954,"byte_end":6976,"line_start":258,"line_end":258,"column_start":5,"column_end":27}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":6981,"byte_end":6988,"line_start":259,"line_end":259,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":129},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7303,"byte_end":7308,"line_start":271,"line_end":271,"column_start":12,"column_end":17},"name":"angle","qualname":"::angle","value":"pub fn angle(&Self) -> f64","parent":null,"children":[],"decl_id":null,"docs":" Get the angle of the sprite, in degrees of clockwise rotation.","sig":null,"attributes":[{"value":"/ Get the angle of the sprite, in degrees of clockwise rotation.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7074,"byte_end":7140,"line_start":264,"line_end":264,"column_start":5,"column_end":71}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7145,"byte_end":7148,"line_start":265,"line_end":265,"column_start":5,"column_end":8}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7153,"byte_end":7160,"line_start":266,"line_end":266,"column_start":5,"column_end":12}},{"value":"/ # use cat_box::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7165,"byte_end":7186,"line_start":267,"line_end":267,"column_start":5,"column_end":26}},{"value":"/ # let s = Sprite::new(\"duck.png\", 500, 400).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7191,"byte_end":7248,"line_start":268,"line_end":268,"column_start":5,"column_end":62}},{"value":"/ let angle = s.angle();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7253,"byte_end":7279,"line_start":269,"line_end":269,"column_start":5,"column_end":31}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7284,"byte_end":7291,"line_start":270,"line_end":270,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":130},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7605,"byte_end":7613,"line_start":282,"line_end":282,"column_start":12,"column_end":20},"name":"position","qualname":"::position","value":"pub fn position(&Self) -> (i32, i32)","parent":null,"children":[],"decl_id":null,"docs":" Get the x and y coordinates of the center of the sprite, in the form of (x, y).","sig":null,"attributes":[{"value":"/ Get the x and y coordinates of the center of the sprite, in the form of (x, y).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7355,"byte_end":7438,"line_start":275,"line_end":275,"column_start":5,"column_end":88}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7443,"byte_end":7446,"line_start":276,"line_end":276,"column_start":5,"column_end":8}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7451,"byte_end":7458,"line_start":277,"line_end":277,"column_start":5,"column_end":12}},{"value":"/ # use cat_box::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7463,"byte_end":7484,"line_start":278,"line_end":278,"column_start":5,"column_end":26}},{"value":"/ # let s = Sprite::new(\"duck.png\", 500, 400).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7489,"byte_end":7546,"line_start":279,"line_end":279,"column_start":5,"column_end":62}},{"value":"/ let (x, y) = s.position();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7551,"byte_end":7581,"line_start":280,"line_end":280,"column_start":5,"column_end":35}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7586,"byte_end":7593,"line_start":281,"line_end":281,"column_start":5,"column_end":12}}]},{"kind":"Struct","id":{"krate":0,"index":131},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7856,"byte_end":7872,"line_start":291,"line_end":291,"column_start":12,"column_end":28},"name":"SpriteCollection","qualname":"::SpriteCollection","value":"SpriteCollection { }","parent":null,"children":[{"krate":0,"index":132}],"decl_id":null,"docs":" Manages a collection of [`Sprite`]s.","sig":null,"attributes":[{"value":"/ Manages a collection of [`Sprite`]s.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7680,"byte_end":7720,"line_start":287,"line_end":287,"column_start":1,"column_end":41}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7721,"byte_end":7724,"line_start":288,"line_end":288,"column_start":1,"column_end":4}},{"value":"/ Technically, this is a thin wrapper around a simple [`Vec`] of sprites,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7725,"byte_end":7800,"line_start":289,"line_end":289,"column_start":1,"column_end":76}},{"value":"/ although with some convenience methods.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7801,"byte_end":7844,"line_start":290,"line_end":290,"column_start":1,"column_end":44}}]},{"kind":"Method","id":{"krate":0,"index":134},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8131,"byte_end":8134,"line_start":303,"line_end":303,"column_start":12,"column_end":15},"name":"new","qualname":"::new","value":"pub fn new() -> Self","parent":null,"children":[],"decl_id":null,"docs":" Creates a new [`SpriteCollection`].","sig":null,"attributes":[{"value":"/ Creates a new [`SpriteCollection`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7926,"byte_end":7965,"line_start":296,"line_end":296,"column_start":5,"column_end":44}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7970,"byte_end":7973,"line_start":297,"line_end":297,"column_start":5,"column_end":8}},{"value":"/ See [`Vec::new()`] for more information.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7978,"byte_end":8022,"line_start":298,"line_end":298,"column_start":5,"column_end":49}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8027,"byte_end":8034,"line_start":299,"line_end":299,"column_start":5,"column_end":12}},{"value":"/ # use cat_box::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8039,"byte_end":8060,"line_start":300,"line_end":300,"column_start":5,"column_end":26}},{"value":"/ let sprites = SpriteCollection::new();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8065,"byte_end":8107,"line_start":301,"line_end":301,"column_start":5,"column_end":47}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8112,"byte_end":8119,"line_start":302,"line_end":302,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":135},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8476,"byte_end":8489,"line_start":314,"line_end":314,"column_start":12,"column_end":25},"name":"with_capacity","qualname":"::with_capacity","value":"pub fn with_capacity(usize) -> Self","parent":null,"children":[],"decl_id":null,"docs":" Creates a new [`SpriteCollection`] with the specified capacity.","sig":null,"attributes":[{"value":"/ Creates a new [`SpriteCollection`] with the specified capacity.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8189,"byte_end":8256,"line_start":307,"line_end":307,"column_start":5,"column_end":72}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8261,"byte_end":8264,"line_start":308,"line_end":308,"column_start":5,"column_end":8}},{"value":"/ The collection will be able to hold exactly `capacity` items without reallocating.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8269,"byte_end":8355,"line_start":309,"line_end":309,"column_start":5,"column_end":91}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8360,"byte_end":8367,"line_start":310,"line_end":310,"column_start":5,"column_end":12}},{"value":"/ # use cat_box::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8372,"byte_end":8393,"line_start":311,"line_end":311,"column_start":5,"column_end":26}},{"value":"/ let sprites = SpriteCollection::with_capacity(10);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8398,"byte_end":8452,"line_start":312,"line_end":312,"column_start":5,"column_end":59}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8457,"byte_end":8464,"line_start":313,"line_end":313,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":136},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8957,"byte_end":8961,"line_start":330,"line_end":330,"column_start":12,"column_end":16},"name":"draw","qualname":"::draw","value":"pub fn draw(&mut Self, &mut Context) -> Result<()>","parent":null,"children":[],"decl_id":null,"docs":" Draw all the sprites in this collection to the window.\n This should only be called inside the main event loop.\n ```no_run\n # use cat_box::*;\n # let mut sprites = SpriteCollection::new();\n # let mut game = Game::new(\"asjdfhalksjdf\", 1, 1);\n # game.run(|ctx| {\n sprites.draw(ctx);\n # });\n ```\n","sig":null,"attributes":[{"value":"/ Draw all the sprites in this collection to the window.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8588,"byte_end":8646,"line_start":320,"line_end":320,"column_start":5,"column_end":63}},{"value":"/ This should only be called inside the main event loop.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8651,"byte_end":8709,"line_start":321,"line_end":321,"column_start":5,"column_end":63}},{"value":"/ ```no_run","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8714,"byte_end":8727,"line_start":322,"line_end":322,"column_start":5,"column_end":18}},{"value":"/ # use cat_box::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8732,"byte_end":8753,"line_start":323,"line_end":323,"column_start":5,"column_end":26}},{"value":"/ # let mut sprites = SpriteCollection::new();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8758,"byte_end":8806,"line_start":324,"line_end":324,"column_start":5,"column_end":53}},{"value":"/ # let mut game = Game::new(\"asjdfhalksjdf\", 1, 1);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8811,"byte_end":8865,"line_start":325,"line_end":325,"column_start":5,"column_end":59}},{"value":"/ # game.run(|ctx| {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8870,"byte_end":8892,"line_start":326,"line_end":326,"column_start":5,"column_end":27}},{"value":"/ sprites.draw(ctx);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8897,"byte_end":8919,"line_start":327,"line_end":327,"column_start":5,"column_end":27}},{"value":"/ # });","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8924,"byte_end":8933,"line_start":328,"line_end":328,"column_start":5,"column_end":14}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":8938,"byte_end":8945,"line_start":329,"line_end":329,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":137},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":9361,"byte_end":9365,"line_start":345,"line_end":345,"column_start":12,"column_end":16},"name":"push","qualname":"::push","value":"pub fn push(&mut Self, Sprite)","parent":null,"children":[],"decl_id":null,"docs":" Add a new [`Sprite`] to the end of this collection.\n ```\n # use cat_box::*;\n let mut sprites = SpriteCollection::new();\n let s = Sprite::new(\"duck.png\", 500, 400).unwrap();\n sprites.push(s);\n ```\n","sig":null,"attributes":[{"value":"/ Add a new [`Sprite`] to the end of this collection.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":9108,"byte_end":9163,"line_start":338,"line_end":338,"column_start":5,"column_end":60}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":9168,"byte_end":9175,"line_start":339,"line_end":339,"column_start":5,"column_end":12}},{"value":"/ # use cat_box::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":9180,"byte_end":9201,"line_start":340,"line_end":340,"column_start":5,"column_end":26}},{"value":"/ let mut sprites = SpriteCollection::new();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":9206,"byte_end":9252,"line_start":341,"line_end":341,"column_start":5,"column_end":51}},{"value":"/ let s = Sprite::new(\"duck.png\", 500, 400).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":9257,"byte_end":9312,"line_start":342,"line_end":342,"column_start":5,"column_end":60}},{"value":"/ sprites.push(s);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":9317,"byte_end":9337,"line_start":343,"line_end":343,"column_start":5,"column_end":25}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":9342,"byte_end":9349,"line_start":344,"line_end":344,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":138},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":9744,"byte_end":9750,"line_start":357,"line_end":357,"column_start":12,"column_end":18},"name":"insert","qualname":"::insert","value":"pub fn insert(&mut Self, Sprite, usize)","parent":null,"children":[],"decl_id":null,"docs":" Inserts an element at position `index` within the collection.\n Shifts all elements after it to the right.\n ```\n # use cat_box::*;\n let mut sprites = SpriteCollection::new();\n let s = Sprite::new(\"duck.png\", 500, 400).unwrap();\n sprites.insert(s, 0);\n ```\n","sig":null,"attributes":[{"value":"/ Inserts an element at position `index` within the collection.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":9425,"byte_end":9490,"line_start":349,"line_end":349,"column_start":5,"column_end":70}},{"value":"/ Shifts all elements after it to the right.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":9495,"byte_end":9541,"line_start":350,"line_end":350,"column_start":5,"column_end":51}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":9546,"byte_end":9553,"line_start":351,"line_end":351,"column_start":5,"column_end":12}},{"value":"/ # use cat_box::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":9558,"byte_end":9579,"line_start":352,"line_end":352,"column_start":5,"column_end":26}},{"value":"/ let mut sprites = SpriteCollection::new();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":9584,"byte_end":9630,"line_start":353,"line_end":353,"column_start":5,"column_end":51}},{"value":"/ let s = Sprite::new(\"duck.png\", 500, 400).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":9635,"byte_end":9690,"line_start":354,"line_end":354,"column_start":5,"column_end":60}},{"value":"/ sprites.insert(s, 0);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":9695,"byte_end":9720,"line_start":355,"line_end":355,"column_start":5,"column_end":30}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":9725,"byte_end":9732,"line_start":356,"line_end":356,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":139},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":10056,"byte_end":10059,"line_start":367,"line_end":367,"column_start":12,"column_end":15},"name":"pop","qualname":"::pop","value":"pub fn pop(&mut Self) -> Option","parent":null,"children":[],"decl_id":null,"docs":" Removes and returns the last element, or `None` if the collection is empty.\n ```\n # use cat_box::*;\n let mut sprites = SpriteCollection::new();\n let s = sprites.pop();\n ```\n","sig":null,"attributes":[{"value":"/ Removes and returns the last element, or `None` if the collection is empty.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":9833,"byte_end":9912,"line_start":361,"line_end":361,"column_start":5,"column_end":84}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":9917,"byte_end":9924,"line_start":362,"line_end":362,"column_start":5,"column_end":12}},{"value":"/ # use cat_box::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":9929,"byte_end":9950,"line_start":363,"line_end":363,"column_start":5,"column_end":26}},{"value":"/ let mut sprites = SpriteCollection::new();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":9955,"byte_end":10001,"line_start":364,"line_end":364,"column_start":5,"column_end":51}},{"value":"/ let s = sprites.pop();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":10006,"byte_end":10032,"line_start":365,"line_end":365,"column_start":5,"column_end":31}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":10037,"byte_end":10044,"line_start":366,"line_end":366,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":140},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":10511,"byte_end":10517,"line_start":381,"line_end":381,"column_start":12,"column_end":18},"name":"remove","qualname":"::remove","value":"pub fn remove(&mut Self, usize) -> Sprite","parent":null,"children":[],"decl_id":null,"docs":" Removes and returns the element at `index`.\n Shifts all elements after it to the left.\n This method will panic if the index is out of bounds.\n ```\n # use cat_box::*;\n let mut sprites = SpriteCollection::new();\n # let s = Sprite::new(\"duck.png\", 500, 400).unwrap();\n # sprites.push(s);\n sprites.remove(0);\n ```\n","sig":null,"attributes":[{"value":"/ Removes and returns the element at `index`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":10123,"byte_end":10170,"line_start":371,"line_end":371,"column_start":5,"column_end":52}},{"value":"/ Shifts all elements after it to the left.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":10175,"byte_end":10220,"line_start":372,"line_end":372,"column_start":5,"column_end":50}},{"value":"/ This method will panic if the index is out of bounds.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":10225,"byte_end":10282,"line_start":373,"line_end":373,"column_start":5,"column_end":62}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":10287,"byte_end":10294,"line_start":374,"line_end":374,"column_start":5,"column_end":12}},{"value":"/ # use cat_box::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":10299,"byte_end":10320,"line_start":375,"line_end":375,"column_start":5,"column_end":26}},{"value":"/ let mut sprites = SpriteCollection::new();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":10325,"byte_end":10371,"line_start":376,"line_end":376,"column_start":5,"column_end":51}},{"value":"/ # let s = Sprite::new(\"duck.png\", 500, 400).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":10376,"byte_end":10433,"line_start":377,"line_end":377,"column_start":5,"column_end":62}},{"value":"/ # sprites.push(s);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":10438,"byte_end":10460,"line_start":378,"line_end":378,"column_start":5,"column_end":27}},{"value":"/ sprites.remove(0);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":10465,"byte_end":10487,"line_start":379,"line_end":379,"column_start":5,"column_end":27}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":10492,"byte_end":10499,"line_start":380,"line_end":380,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":141},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":10761,"byte_end":10765,"line_start":387,"line_end":387,"column_start":12,"column_end":16},"name":"iter","qualname":"::iter","value":"pub fn iter(&mut Self) -> IterMut<, Sprite>","parent":null,"children":[],"decl_id":null,"docs":" Return an iterator over the sprites in this collection.\n Use this to modify the sprites themselves, for example to set their position or angle.\n","sig":null,"attributes":[{"value":"/ Return an iterator over the sprites in this collection.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":10595,"byte_end":10654,"line_start":385,"line_end":385,"column_start":5,"column_end":64}},{"value":"/ Use this to modify the sprites themselves, for example to set their position or angle.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":10659,"byte_end":10749,"line_start":386,"line_end":386,"column_start":5,"column_end":95}}]},{"kind":"Method","id":{"krate":0,"index":142},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11133,"byte_end":11138,"line_start":399,"line_end":399,"column_start":12,"column_end":17},"name":"clear","qualname":"::clear","value":"pub fn clear(&mut Self)","parent":null,"children":[],"decl_id":null,"docs":" Clears the collection, without touching the allocated capacity.\n ```\n # use cat_box::*;\n let mut sprites = SpriteCollection::new();\n # let s = Sprite::new(\"duck.png\", 500, 400).unwrap();\n # sprites.push(s);\n sprites.clear();\n ```\n","sig":null,"attributes":[{"value":"/ Clears the collection, without touching the allocated capacity.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":10839,"byte_end":10906,"line_start":391,"line_end":391,"column_start":5,"column_end":72}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":10911,"byte_end":10918,"line_start":392,"line_end":392,"column_start":5,"column_end":12}},{"value":"/ # use cat_box::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":10923,"byte_end":10944,"line_start":393,"line_end":393,"column_start":5,"column_end":26}},{"value":"/ let mut sprites = SpriteCollection::new();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":10949,"byte_end":10995,"line_start":394,"line_end":394,"column_start":5,"column_end":51}},{"value":"/ # let s = Sprite::new(\"duck.png\", 500, 400).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11000,"byte_end":11057,"line_start":395,"line_end":395,"column_start":5,"column_end":62}},{"value":"/ # sprites.push(s);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11062,"byte_end":11084,"line_start":396,"line_end":396,"column_start":5,"column_end":27}},{"value":"/ sprites.clear();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11089,"byte_end":11109,"line_start":397,"line_end":397,"column_start":5,"column_end":25}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11114,"byte_end":11121,"line_start":398,"line_end":398,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":143},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11616,"byte_end":11622,"line_start":414,"line_end":414,"column_start":12,"column_end":18},"name":"concat","qualname":"::concat","value":"pub fn concat(&mut Self, SpriteCollection)","parent":null,"children":[],"decl_id":null,"docs":" Move all the elements of `other` into `Self`.\n ```\n # use cat_box::*;\n let mut sprites = SpriteCollection::new();\n let mut sprites2 = SpriteCollection::new();\n # let s = Sprite::new(\"duck.png\", 500, 400).unwrap();\n # let s2 = Sprite::new(\"duck.png\", 400, 500).unwrap();\n # sprites.push(s);\n # sprites2.push(s2);\n sprites.concat(sprites2);\n ```\n","sig":null,"attributes":[{"value":"/ Move all the elements of `other` into `Self`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11187,"byte_end":11236,"line_start":403,"line_end":403,"column_start":5,"column_end":54}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11241,"byte_end":11248,"line_start":404,"line_end":404,"column_start":5,"column_end":12}},{"value":"/ # use cat_box::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11253,"byte_end":11274,"line_start":405,"line_end":405,"column_start":5,"column_end":26}},{"value":"/ let mut sprites = SpriteCollection::new();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11279,"byte_end":11325,"line_start":406,"line_end":406,"column_start":5,"column_end":51}},{"value":"/ let mut sprites2 = SpriteCollection::new();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11330,"byte_end":11377,"line_start":407,"line_end":407,"column_start":5,"column_end":52}},{"value":"/ # let s = Sprite::new(\"duck.png\", 500, 400).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11382,"byte_end":11439,"line_start":408,"line_end":408,"column_start":5,"column_end":62}},{"value":"/ # let s2 = Sprite::new(\"duck.png\", 400, 500).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11444,"byte_end":11502,"line_start":409,"line_end":409,"column_start":5,"column_end":63}},{"value":"/ # sprites.push(s);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11507,"byte_end":11529,"line_start":410,"line_end":410,"column_start":5,"column_end":27}},{"value":"/ # sprites2.push(s2);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11534,"byte_end":11558,"line_start":411,"line_end":411,"column_start":5,"column_end":29}},{"value":"/ sprites.concat(sprites2);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11563,"byte_end":11592,"line_start":412,"line_end":412,"column_start":5,"column_end":34}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11597,"byte_end":11604,"line_start":413,"line_end":413,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":144},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11762,"byte_end":11765,"line_start":419,"line_end":419,"column_start":12,"column_end":15},"name":"len","qualname":"::len","value":"pub fn len(&Self) -> usize","parent":null,"children":[],"decl_id":null,"docs":" Returns the length of this vector.\n","sig":null,"attributes":[{"value":"/ Returns the length of this vector.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11712,"byte_end":11750,"line_start":418,"line_end":418,"column_start":5,"column_end":43}}]},{"kind":"Method","id":{"krate":0,"index":145},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":12127,"byte_end":12130,"line_start":431,"line_end":431,"column_start":12,"column_end":15},"name":"get","qualname":"::get","value":"pub fn get(&Self, usize) -> Option<&Sprite>","parent":null,"children":[],"decl_id":null,"docs":" Get a reference to the element at `index`, or `None` if it doesn't exist.\n ```\n # use cat_box::*;\n let mut sprites = SpriteCollection::new();\n # let s = Sprite::new(\"duck.png\", 500, 400).unwrap();\n # sprites.push(s);\n let s = sprites.get(0);\n ```\n","sig":null,"attributes":[{"value":"/ Get a reference to the element at `index`, or `None` if it doesn't exist.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11816,"byte_end":11893,"line_start":423,"line_end":423,"column_start":5,"column_end":82}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11898,"byte_end":11905,"line_start":424,"line_end":424,"column_start":5,"column_end":12}},{"value":"/ # use cat_box::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11910,"byte_end":11931,"line_start":425,"line_end":425,"column_start":5,"column_end":26}},{"value":"/ let mut sprites = SpriteCollection::new();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11936,"byte_end":11982,"line_start":426,"line_end":426,"column_start":5,"column_end":51}},{"value":"/ # let s = Sprite::new(\"duck.png\", 500, 400).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":11987,"byte_end":12044,"line_start":427,"line_end":427,"column_start":5,"column_end":62}},{"value":"/ # sprites.push(s);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":12049,"byte_end":12071,"line_start":428,"line_end":428,"column_start":5,"column_end":27}},{"value":"/ let s = sprites.get(0);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":12076,"byte_end":12103,"line_start":429,"line_end":429,"column_start":5,"column_end":32}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":12108,"byte_end":12115,"line_start":430,"line_end":430,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":146},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":12299,"byte_end":12304,"line_start":436,"line_end":436,"column_start":12,"column_end":17},"name":"inner","qualname":"::inner","value":"pub fn inner(&Self) -> &Vec","parent":null,"children":[],"decl_id":null,"docs":" Return the inner Vec. Only use this method if you know what you're doing.\n","sig":null,"attributes":[{"value":"/ Return the inner Vec. Only use this method if you know what you're doing.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":12210,"byte_end":12287,"line_start":435,"line_end":435,"column_start":5,"column_end":82}}]},{"kind":"Struct","id":{"krate":0,"index":152},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":12780,"byte_end":12787,"line_start":458,"line_end":458,"column_start":12,"column_end":19},"name":"Context","qualname":"::Context","value":"Context { }","parent":null,"children":[{"krate":0,"index":153},{"krate":0,"index":154},{"krate":0,"index":155},{"krate":0,"index":156}],"decl_id":null,"docs":" Game context.","sig":null,"attributes":[{"value":"/ Game context.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":12602,"byte_end":12619,"line_start":455,"line_end":455,"column_start":1,"column_end":18}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":12620,"byte_end":12623,"line_start":456,"line_end":456,"column_start":1,"column_end":4}},{"value":"/ In most cases, this should never actually be used; instead, just pass it around to the various cat-box functions such as [`Sprite::draw()`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":12624,"byte_end":12768,"line_start":457,"line_end":457,"column_start":1,"column_end":145}}]},{"kind":"Method","id":{"krate":0,"index":159},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":13426,"byte_end":13431,"line_start":479,"line_end":479,"column_start":12,"column_end":17},"name":"inner","qualname":"::inner","value":"pub fn inner(&mut Self)\n-> (&TextureCreator, &mut Canvas, &mut EventPump)","parent":null,"children":[],"decl_id":null,"docs":" Get the inner [`Canvas`](sdl2::render::Canvas) and [`TextureCreator`](sdl2::render::TextureCreator).","sig":null,"attributes":[{"value":"/ Get the inner [`Canvas`](sdl2::render::Canvas) and [`TextureCreator`](sdl2::render::TextureCreator).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":13242,"byte_end":13346,"line_start":476,"line_end":476,"column_start":5,"column_end":109}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":13351,"byte_end":13354,"line_start":477,"line_end":477,"column_start":5,"column_end":8}},{"value":"/ Only use this method if you know what you're doing.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":13359,"byte_end":13414,"line_start":478,"line_end":478,"column_start":5,"column_end":60}}]},{"kind":"Method","id":{"krate":0,"index":163},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":14199,"byte_end":14220,"line_start":514,"line_end":514,"column_start":12,"column_end":33},"name":"set_background_colour","qualname":"::set_background_colour","value":"pub fn set_background_colour(&mut Self, u8, u8, u8)","parent":null,"children":[],"decl_id":null,"docs":" Set the background colour. See [`Canvas::set_draw_color()`](sdl2::render::Canvas::set_draw_color()) for more info.\n","sig":null,"attributes":[{"value":"/ Set the background colour. See [`Canvas::set_draw_color()`](sdl2::render::Canvas::set_draw_color()) for more info.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":14069,"byte_end":14187,"line_start":513,"line_end":513,"column_start":5,"column_end":123}}]},{"kind":"StructVariant","id":{"krate":0,"index":165},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":14419,"byte_end":14430,"line_start":522,"line_end":522,"column_start":5,"column_end":16},"name":"Transparent","qualname":"::TextMode::Transparent","value":"TextMode::Transparent { colour }","parent":{"krate":0,"index":164},"children":[],"decl_id":null,"docs":" Render the text transparently.\n","sig":null,"attributes":[{"value":"/ Render the text transparently.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":14380,"byte_end":14414,"line_start":521,"line_end":521,"column_start":5,"column_end":39}}]},{"kind":"StructVariant","id":{"krate":0,"index":167},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":14580,"byte_end":14586,"line_start":526,"line_end":526,"column_start":5,"column_end":11},"name":"Shaded","qualname":"::TextMode::Shaded","value":"TextMode::Shaded { foreground, background }","parent":{"krate":0,"index":164},"children":[],"decl_id":null,"docs":" Render the text with a foreground and a background colour.","sig":null,"attributes":[{"value":"/ Render the text with a foreground and a background colour.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":14461,"byte_end":14523,"line_start":523,"line_end":523,"column_start":5,"column_end":67}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":14528,"byte_end":14531,"line_start":524,"line_end":524,"column_start":5,"column_end":8}},{"value":"/ This creates a box around the text.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":14536,"byte_end":14575,"line_start":525,"line_end":525,"column_start":5,"column_end":44}}]},{"kind":"Enum","id":{"krate":0,"index":164},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":14365,"byte_end":14373,"line_start":520,"line_end":520,"column_start":10,"column_end":18},"name":"TextMode","qualname":"::TextMode","value":"pub enum TextMode {\n Transparent {\n colour: (u8, u8, u8),\n },\n Shaded {\n foreground: (u8, u8, u8),\n background: (u8, u8, u8),\n },\n}","parent":null,"children":[{"krate":0,"index":165},{"krate":0,"index":167}],"decl_id":null,"docs":" Set the mode for drawing text.\n","sig":null,"attributes":[{"value":"/ Set the mode for drawing text.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":14321,"byte_end":14355,"line_start":519,"line_end":519,"column_start":1,"column_end":35}}]},{"kind":"Function","id":{"krate":0,"index":170},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":15190,"byte_end":15199,"line_start":550,"line_end":550,"column_start":8,"column_end":17},"name":"draw_text","qualname":"::draw_text","value":"pub fn draw_text>(&mut Context, S, &str, u16, (i32, i32),\n TextMode) -> Result<()>","parent":null,"children":[],"decl_id":null,"docs":" Draw text to the screen.","sig":null,"attributes":[{"value":"/ Draw text to the screen.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":14667,"byte_end":14695,"line_start":532,"line_end":532,"column_start":1,"column_end":29}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":14696,"byte_end":14699,"line_start":533,"line_end":533,"column_start":1,"column_end":4}},{"value":"/ This loads a font from the current directory, case sensitive.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":14700,"byte_end":14765,"line_start":534,"line_end":534,"column_start":1,"column_end":66}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":14766,"byte_end":14769,"line_start":535,"line_end":535,"column_start":1,"column_end":4}},{"value":"/ `pos` refers to the *center* of the rendered text.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":14770,"byte_end":14824,"line_start":536,"line_end":536,"column_start":1,"column_end":55}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":14825,"byte_end":14828,"line_start":537,"line_end":537,"column_start":1,"column_end":4}},{"value":"/ Refer to [`TextMode`] for information about colouring.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":14829,"byte_end":14887,"line_start":538,"line_end":538,"column_start":1,"column_end":59}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":14888,"byte_end":14891,"line_start":539,"line_end":539,"column_start":1,"column_end":4}},{"value":"/ ``` no_run","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":14892,"byte_end":14906,"line_start":540,"line_end":540,"column_start":1,"column_end":15}},{"value":"/ # use cat_box::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":14907,"byte_end":14928,"line_start":541,"line_end":541,"column_start":1,"column_end":22}},{"value":"/ # let game = Game::new(\"\", 100, 100);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":14929,"byte_end":14970,"line_start":542,"line_end":542,"column_start":1,"column_end":42}},{"value":"/ # game.run(|ctx| {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":14971,"byte_end":14993,"line_start":543,"line_end":543,"column_start":1,"column_end":23}},{"value":"/ let mode = TextMode::Shaded {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":14994,"byte_end":15027,"line_start":544,"line_end":544,"column_start":1,"column_end":34}},{"value":"/ foreground: (255, 255, 255),","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":15028,"byte_end":15064,"line_start":545,"line_end":545,"column_start":1,"column_end":37}},{"value":"/ background: (0, 0, 0)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":15065,"byte_end":15094,"line_start":546,"line_end":546,"column_start":1,"column_end":30}},{"value":"/ };","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":15095,"byte_end":15101,"line_start":547,"line_end":547,"column_start":1,"column_end":7}},{"value":"/ draw_text(ctx, \"text to draw\", \"arial.ttf\", 72, (300, 300), mode);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":15102,"byte_end":15172,"line_start":548,"line_end":548,"column_start":1,"column_end":71}},{"value":"/ # });","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":15173,"byte_end":15182,"line_start":549,"line_end":549,"column_start":1,"column_end":10}}]},{"kind":"Struct","id":{"krate":0,"index":172},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16130,"byte_end":16139,"line_start":582,"line_end":582,"column_start":12,"column_end":21},"name":"MouseRepr","qualname":"::MouseRepr","value":"MouseRepr { buttons, x, y }","parent":null,"children":[{"krate":0,"index":173},{"krate":0,"index":174},{"krate":0,"index":175}],"decl_id":null,"docs":" Representation of the mouse state.\n","sig":null,"attributes":[{"value":"/ Representation of the mouse state.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16080,"byte_end":16118,"line_start":581,"line_end":581,"column_start":1,"column_end":39}}]},{"kind":"Field","id":{"krate":0,"index":173},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16150,"byte_end":16157,"line_start":583,"line_end":583,"column_start":9,"column_end":16},"name":"buttons","qualname":"::MouseRepr::buttons","value":"std::vec::Vec","parent":{"krate":0,"index":172},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Field","id":{"krate":0,"index":174},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16185,"byte_end":16186,"line_start":584,"line_end":584,"column_start":9,"column_end":10},"name":"x","qualname":"::MouseRepr::x","value":"i32","parent":{"krate":0,"index":172},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Field","id":{"krate":0,"index":175},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16201,"byte_end":16202,"line_start":585,"line_end":585,"column_start":9,"column_end":10},"name":"y","qualname":"::MouseRepr::y","value":"i32","parent":{"krate":0,"index":172},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Struct","id":{"krate":0,"index":176},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16265,"byte_end":16277,"line_start":589,"line_end":589,"column_start":12,"column_end":24},"name":"KeyboardRepr","qualname":"::KeyboardRepr","value":"KeyboardRepr { keys }","parent":null,"children":[{"krate":0,"index":177}],"decl_id":null,"docs":" Representation of the keyboard state.\n","sig":null,"attributes":[{"value":"/ Representation of the keyboard state.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16212,"byte_end":16253,"line_start":588,"line_end":588,"column_start":1,"column_end":42}}]},{"kind":"Field","id":{"krate":0,"index":177},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16288,"byte_end":16292,"line_start":590,"line_end":590,"column_start":9,"column_end":13},"name":"keys","qualname":"::KeyboardRepr::keys","value":"std::vec::Vec","parent":{"krate":0,"index":176},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":178},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16534,"byte_end":16549,"line_start":601,"line_end":601,"column_start":8,"column_end":23},"name":"get_mouse_state","qualname":"::get_mouse_state","value":"pub fn get_mouse_state(&mut Context) -> MouseRepr","parent":null,"children":[],"decl_id":null,"docs":" Get the mouse state.\n ```no_run\n # use cat_box::*;\n # let game = Game::new(\"catbox-demo\", 10, 10);\n # game.run(|ctx| {\n let m = get_mouse_state(ctx);\n println!(\"({}, {})\", m.x, m.y);\n # });\n","sig":null,"attributes":[{"value":"/ Get the mouse state.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16312,"byte_end":16336,"line_start":593,"line_end":593,"column_start":1,"column_end":25}},{"value":"/ ```no_run","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16337,"byte_end":16350,"line_start":594,"line_end":594,"column_start":1,"column_end":14}},{"value":"/ # use cat_box::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16351,"byte_end":16372,"line_start":595,"line_end":595,"column_start":1,"column_end":22}},{"value":"/ # let game = Game::new(\"catbox-demo\", 10, 10);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16373,"byte_end":16423,"line_start":596,"line_end":596,"column_start":1,"column_end":51}},{"value":"/ # game.run(|ctx| {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16424,"byte_end":16446,"line_start":597,"line_end":597,"column_start":1,"column_end":23}},{"value":"/ let m = get_mouse_state(ctx);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16447,"byte_end":16480,"line_start":598,"line_end":598,"column_start":1,"column_end":34}},{"value":"/ println!(\"({}, {})\", m.x, m.y);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16481,"byte_end":16516,"line_start":599,"line_end":599,"column_start":1,"column_end":36}},{"value":"/ # });","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16517,"byte_end":16526,"line_start":600,"line_end":600,"column_start":1,"column_end":10}}]},{"kind":"Function","id":{"krate":0,"index":179},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17038,"byte_end":17056,"line_start":623,"line_end":623,"column_start":8,"column_end":26},"name":"get_keyboard_state","qualname":"::get_keyboard_state","value":"pub fn get_keyboard_state(&mut Context) -> KeyboardRepr","parent":null,"children":[],"decl_id":null,"docs":" Get the keyboard state.\n ```no_run\n # use cat_box::*;\n # let game = Game::new(\"catbox-demo\", 10, 10);\n # game.run(|ctx| {\n let k = get_keyboard_state(ctx);\n for code in k.keys {\n println!(\"{}\", code);\n }\n # });\n","sig":null,"attributes":[{"value":"/ Get the keyboard state.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16785,"byte_end":16812,"line_start":613,"line_end":613,"column_start":1,"column_end":28}},{"value":"/ ```no_run","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16813,"byte_end":16826,"line_start":614,"line_end":614,"column_start":1,"column_end":14}},{"value":"/ # use cat_box::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16827,"byte_end":16848,"line_start":615,"line_end":615,"column_start":1,"column_end":22}},{"value":"/ # let game = Game::new(\"catbox-demo\", 10, 10);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16849,"byte_end":16899,"line_start":616,"line_end":616,"column_start":1,"column_end":51}},{"value":"/ # game.run(|ctx| {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16900,"byte_end":16922,"line_start":617,"line_end":617,"column_start":1,"column_end":23}},{"value":"/ let k = get_keyboard_state(ctx);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16923,"byte_end":16959,"line_start":618,"line_end":618,"column_start":1,"column_end":37}},{"value":"/ for code in k.keys {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16960,"byte_end":16984,"line_start":619,"line_end":619,"column_start":1,"column_end":25}},{"value":"/ println!(\"{}\", code);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":16985,"byte_end":17014,"line_start":620,"line_end":620,"column_start":1,"column_end":30}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17015,"byte_end":17020,"line_start":621,"line_end":621,"column_start":1,"column_end":6}},{"value":"/ # });","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17021,"byte_end":17030,"line_start":622,"line_end":622,"column_start":1,"column_end":10}}]},{"kind":"Struct","id":{"krate":0,"index":180},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17299,"byte_end":17303,"line_start":634,"line_end":634,"column_start":12,"column_end":16},"name":"Game","qualname":"::Game","value":"Game { title, width, height }","parent":null,"children":[{"krate":0,"index":181},{"krate":0,"index":182},{"krate":0,"index":183},{"krate":0,"index":184}],"decl_id":null,"docs":" Representation of the game.\n","sig":null,"attributes":[{"value":"/ Representation of the game.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17256,"byte_end":17287,"line_start":633,"line_end":633,"column_start":1,"column_end":32}}]},{"kind":"Field","id":{"krate":0,"index":181},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17358,"byte_end":17363,"line_start":636,"line_end":636,"column_start":9,"column_end":14},"name":"title","qualname":"::Game::title","value":"std::string::String","parent":{"krate":0,"index":180},"children":[],"decl_id":null,"docs":" The title that the window displays.\n","sig":null,"attributes":[{"value":"/ The title that the window displays.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17310,"byte_end":17349,"line_start":635,"line_end":635,"column_start":5,"column_end":44}}]},{"kind":"Field","id":{"krate":0,"index":182},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17420,"byte_end":17425,"line_start":638,"line_end":638,"column_start":9,"column_end":14},"name":"width","qualname":"::Game::width","value":"u32","parent":{"krate":0,"index":180},"children":[],"decl_id":null,"docs":" The width of the opened window\n","sig":null,"attributes":[{"value":"/ The width of the opened window","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17377,"byte_end":17411,"line_start":637,"line_end":637,"column_start":5,"column_end":39}}]},{"kind":"Field","id":{"krate":0,"index":183},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17480,"byte_end":17486,"line_start":640,"line_end":640,"column_start":9,"column_end":15},"name":"height","qualname":"::Game::height","value":"u32","parent":{"krate":0,"index":180},"children":[],"decl_id":null,"docs":" The height of the opened window\n","sig":null,"attributes":[{"value":"/ The height of the opened window","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17436,"byte_end":17471,"line_start":639,"line_end":639,"column_start":5,"column_end":40}}]},{"kind":"Method","id":{"krate":0,"index":186},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17775,"byte_end":17778,"line_start":654,"line_end":654,"column_start":12,"column_end":15},"name":"new","qualname":"::new","value":"pub fn new(&str, u32, u32) -> Self","parent":null,"children":[],"decl_id":null,"docs":" Creates a new Game struct.","sig":null,"attributes":[{"value":"/ Creates a new Game struct.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17537,"byte_end":17567,"line_start":645,"line_end":645,"column_start":5,"column_end":35}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17572,"byte_end":17575,"line_start":646,"line_end":646,"column_start":5,"column_end":8}},{"value":"/ Make sure to use [`Self::run()`] to actually begin the game logic.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17580,"byte_end":17650,"line_start":647,"line_end":647,"column_start":5,"column_end":75}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17655,"byte_end":17658,"line_start":648,"line_end":648,"column_start":5,"column_end":8}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17663,"byte_end":17670,"line_start":649,"line_end":649,"column_start":5,"column_end":12}},{"value":"/ # use cat_box::Game;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17675,"byte_end":17699,"line_start":650,"line_end":650,"column_start":5,"column_end":29}},{"value":"/ Game::new(\"cool game\", 1000, 1000);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17704,"byte_end":17743,"line_start":651,"line_end":651,"column_start":5,"column_end":44}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17748,"byte_end":17755,"line_start":652,"line_end":652,"column_start":5,"column_end":12}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17760,"byte_end":17763,"line_start":653,"line_end":653,"column_start":5,"column_end":8}}]},{"kind":"Method","id":{"krate":0,"index":187},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":18261,"byte_end":18264,"line_start":672,"line_end":672,"column_start":12,"column_end":15},"name":"run","qualname":"::run","value":"pub fn run ()>(&Self, F) -> Result<()>","parent":null,"children":[],"decl_id":null,"docs":" Runs the game. Note: this method blocks, as it uses an infinite loop.","sig":null,"attributes":[{"value":"/ Runs the game. Note: this method blocks, as it uses an infinite loop.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17979,"byte_end":18052,"line_start":663,"line_end":663,"column_start":5,"column_end":78}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":18057,"byte_end":18060,"line_start":664,"line_end":664,"column_start":5,"column_end":8}},{"value":"/ ```no_run","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":18065,"byte_end":18078,"line_start":665,"line_end":665,"column_start":5,"column_end":18}},{"value":"/ # use cat_box::Game;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":18083,"byte_end":18107,"line_start":666,"line_end":666,"column_start":5,"column_end":29}},{"value":"/ # let game = Game::new(\"Cool game\", 1000, 1000);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":18112,"byte_end":18164,"line_start":667,"line_end":667,"column_start":5,"column_end":57}},{"value":"/ game.run(|ctx| {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":18169,"byte_end":18189,"line_start":668,"line_end":668,"column_start":5,"column_end":25}},{"value":"/ // Game logic goes here","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":18194,"byte_end":18225,"line_start":669,"line_end":669,"column_start":5,"column_end":36}},{"value":"/ });","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":18230,"byte_end":18237,"line_start":670,"line_end":670,"column_start":5,"column_end":12}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":18242,"byte_end":18249,"line_start":671,"line_end":671,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":189},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":19343,"byte_end":19352,"line_start":709,"line_end":709,"column_start":12,"column_end":21},"name":"terminate","qualname":"::terminate","value":"pub fn terminate(&Self)","parent":null,"children":[],"decl_id":null,"docs":" Stops the game loop. This method should be called inside the closure that you passed to [`Self::run()`].\n ```\n # use cat_box::Game;\n # let game = Game::new(\"asjdhfkajlsdh\", 0, 0);\n // ... in the game loop:\n game.terminate();\n ```\n","sig":null,"attributes":[{"value":"/ Stops the game loop. This method should be called inside the closure that you passed to [`Self::run()`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":19056,"byte_end":19164,"line_start":702,"line_end":702,"column_start":5,"column_end":113}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":19169,"byte_end":19176,"line_start":703,"line_end":703,"column_start":5,"column_end":12}},{"value":"/ # use cat_box::Game;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":19181,"byte_end":19205,"line_start":704,"line_end":704,"column_start":5,"column_end":29}},{"value":"/ # let game = Game::new(\"asjdhfkajlsdh\", 0, 0);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":19210,"byte_end":19260,"line_start":705,"line_end":705,"column_start":5,"column_end":55}},{"value":"/ // ... in the game loop:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":19265,"byte_end":19293,"line_start":706,"line_end":706,"column_start":5,"column_end":33}},{"value":"/ game.terminate();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":19298,"byte_end":19319,"line_start":707,"line_end":707,"column_start":5,"column_end":26}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":19324,"byte_end":19331,"line_start":708,"line_end":708,"column_start":5,"column_end":12}}]}],"impls":[{"id":0,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":3762,"byte_end":3773,"line_start":133,"line_end":133,"column_start":33,"column_end":44},"value":"","parent":null,"children":[{"krate":0,"index":99}],"docs":"","sig":null,"attributes":[]},{"id":1,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":3888,"byte_end":3899,"line_start":139,"line_end":139,"column_start":23,"column_end":34},"value":"","parent":null,"children":[{"krate":0,"index":101}],"docs":"","sig":null,"attributes":[]},{"id":2,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":4000,"byte_end":4011,"line_start":145,"line_end":145,"column_start":34,"column_end":45},"value":"","parent":null,"children":[{"krate":0,"index":103}],"docs":"","sig":null,"attributes":[]},{"id":3,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":4138,"byte_end":4149,"line_start":151,"line_end":151,"column_start":34,"column_end":45},"value":"","parent":null,"children":[{"krate":0,"index":105}],"docs":"","sig":null,"attributes":[]},{"id":4,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":4268,"byte_end":4279,"line_start":157,"line_end":157,"column_start":26,"column_end":37},"value":"","parent":null,"children":[{"krate":0,"index":107}],"docs":"","sig":null,"attributes":[]},{"id":5,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":4586,"byte_end":4592,"line_start":170,"line_end":170,"column_start":27,"column_end":33},"value":"","parent":null,"children":[{"krate":0,"index":113}],"docs":"","sig":null,"attributes":[]},{"id":6,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":4686,"byte_end":4692,"line_start":176,"line_end":176,"column_start":27,"column_end":33},"value":"","parent":null,"children":[{"krate":0,"index":115}],"docs":"","sig":null,"attributes":[]},{"id":7,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":4790,"byte_end":4796,"line_start":182,"line_end":182,"column_start":19,"column_end":25},"value":"","parent":null,"children":[{"krate":0,"index":117},{"krate":0,"index":118}],"docs":"","sig":null,"attributes":[]},{"id":8,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":5025,"byte_end":5031,"line_start":197,"line_end":197,"column_start":6,"column_end":12},"value":"","parent":null,"children":[{"krate":0,"index":124},{"krate":0,"index":126},{"krate":0,"index":127},{"krate":0,"index":128},{"krate":0,"index":129},{"krate":0,"index":130}],"docs":"","sig":null,"attributes":[]},{"id":9,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7903,"byte_end":7919,"line_start":295,"line_end":295,"column_start":6,"column_end":22},"value":"","parent":null,"children":[{"krate":0,"index":134},{"krate":0,"index":135},{"krate":0,"index":136},{"krate":0,"index":137},{"krate":0,"index":138},{"krate":0,"index":139},{"krate":0,"index":140},{"krate":0,"index":141},{"krate":0,"index":142},{"krate":0,"index":143},{"krate":0,"index":144},{"krate":0,"index":145},{"krate":0,"index":146}],"docs":"","sig":null,"attributes":[]},{"id":10,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":12370,"byte_end":12386,"line_start":441,"line_end":441,"column_start":16,"column_end":32},"value":"","parent":null,"children":[{"krate":0,"index":148},{"krate":0,"index":149}],"docs":"","sig":null,"attributes":[]},{"id":11,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":12503,"byte_end":12519,"line_start":449,"line_end":449,"column_start":19,"column_end":35},"value":"","parent":null,"children":[{"krate":0,"index":151}],"docs":"","sig":null,"attributes":[]},{"id":12,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":12940,"byte_end":12947,"line_start":465,"line_end":465,"column_start":6,"column_end":13},"value":"","parent":null,"children":[{"krate":0,"index":158},{"krate":0,"index":159},{"krate":0,"index":160},{"krate":0,"index":161},{"krate":0,"index":162},{"krate":0,"index":163}],"docs":"","sig":null,"attributes":[]},{"id":13,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17526,"byte_end":17530,"line_start":644,"line_end":644,"column_start":6,"column_end":10},"value":"","parent":null,"children":[{"krate":0,"index":186},{"krate":0,"index":187},{"krate":0,"index":189}],"docs":"","sig":null,"attributes":[]}],"refs":[{"kind":"Mod","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":2725,"byte_end":2732,"line_start":86,"line_end":86,"column_start":9,"column_end":16},"ref_id":{"krate":0,"index":3}}],"macro_refs":[],"relations":[{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":3762,"byte_end":3773,"line_start":133,"line_end":133,"column_start":33,"column_end":44},"kind":{"Impl":{"id":0}},"from":{"krate":0,"index":190},"to":{"krate":2,"index":2925}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":3888,"byte_end":3899,"line_start":139,"line_end":139,"column_start":23,"column_end":34},"kind":{"Impl":{"id":1}},"from":{"krate":0,"index":190},"to":{"krate":2,"index":2925}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":4000,"byte_end":4011,"line_start":145,"line_end":145,"column_start":34,"column_end":45},"kind":{"Impl":{"id":2}},"from":{"krate":0,"index":190},"to":{"krate":2,"index":2925}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":4138,"byte_end":4149,"line_start":151,"line_end":151,"column_start":34,"column_end":45},"kind":{"Impl":{"id":3}},"from":{"krate":0,"index":190},"to":{"krate":2,"index":2925}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":4268,"byte_end":4279,"line_start":157,"line_end":157,"column_start":26,"column_end":37},"kind":{"Impl":{"id":4}},"from":{"krate":0,"index":190},"to":{"krate":2,"index":2925}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":4586,"byte_end":4592,"line_start":170,"line_end":170,"column_start":27,"column_end":33},"kind":{"Impl":{"id":5}},"from":{"krate":0,"index":110},"to":{"krate":2,"index":2916}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":4686,"byte_end":4692,"line_start":176,"line_end":176,"column_start":27,"column_end":33},"kind":{"Impl":{"id":6}},"from":{"krate":0,"index":110},"to":{"krate":2,"index":2919}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":4790,"byte_end":4796,"line_start":182,"line_end":182,"column_start":19,"column_end":25},"kind":{"Impl":{"id":7}},"from":{"krate":0,"index":110},"to":{"krate":2,"index":7822}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":5025,"byte_end":5031,"line_start":197,"line_end":197,"column_start":6,"column_end":12},"kind":{"Impl":{"id":8}},"from":{"krate":0,"index":119},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":7903,"byte_end":7919,"line_start":295,"line_end":295,"column_start":6,"column_end":22},"kind":{"Impl":{"id":9}},"from":{"krate":0,"index":131},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":12370,"byte_end":12386,"line_start":441,"line_end":441,"column_start":16,"column_end":32},"kind":{"Impl":{"id":10}},"from":{"krate":0,"index":131},"to":{"krate":2,"index":3234}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":12503,"byte_end":12519,"line_start":449,"line_end":449,"column_start":19,"column_end":35},"kind":{"Impl":{"id":11}},"from":{"krate":0,"index":131},"to":{"krate":2,"index":3247}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":12940,"byte_end":12947,"line_start":465,"line_end":465,"column_start":6,"column_end":13},"kind":{"Impl":{"id":12}},"from":{"krate":0,"index":152},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cat-box-0.1.6/src/lib.rs","byte_start":17526,"byte_end":17530,"line_start":644,"line_end":644,"column_start":6,"column_end":10},"kind":{"Impl":{"id":13}},"from":{"krate":0,"index":180},"to":{"krate":4294967295,"index":4294967295}}]} \ No newline at end of file diff --git a/target/rls/debug/deps/save-analysis/libcfg_if-2120cfe954d0c3f5.json b/target/rls/debug/deps/save-analysis/libcfg_if-2120cfe954d0c3f5.json new file mode 100644 index 0000000..bec1945 --- /dev/null +++ b/target/rls/debug/deps/save-analysis/libcfg_if-2120cfe954d0c3f5.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.1","compilation":{"directory":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0","program":"/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rls","arguments":["--crate-name","cfg_if","--edition=2018","/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","--json=diagnostic-rendered-ansi,future-incompat","--crate-type","lib","--emit=dep-info,metadata","-C","embed-bitcode=no","-C","debuginfo=2","-C","metadata=2120cfe954d0c3f5","-C","extra-filename=-2120cfe954d0c3f5","--out-dir","/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps","-L","dependency=/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps","--cap-lints","allow","--error-format=json","--sysroot","/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu"],"output":"/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/libcfg_if-2120cfe954d0c3f5.rmeta"},"prelude":{"crate_id":{"name":"cfg_if","disambiguator":[1004283514336169005,0]},"crate_root":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src","external_crates":[{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","num":1,"id":{"name":"core","disambiguator":[5443730852259234579,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","num":2,"id":{"name":"compiler_builtins","disambiguator":[4162025702538114948,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","num":3,"id":{"name":"rustc_std_workspace_core","disambiguator":[17612152343462746361,0]}}],"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":0,"byte_end":4892,"line_start":1,"line_end":176,"column_start":1,"column_end":2}},"imports":[],"defs":[{"kind":"Mod","id":{"krate":0,"index":0},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":0,"byte_end":4892,"line_start":1,"line_end":176,"column_start":1,"column_end":2},"name":"","qualname":"::","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","parent":null,"children":[{"krate":0,"index":1},{"krate":0,"index":2},{"krate":0,"index":3},{"krate":0,"index":4}],"decl_id":null,"docs":" A macro for defining `#[cfg]` if-else statements.","sig":null,"attributes":[{"value":"/ A macro for defining `#[cfg]` if-else statements.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":0,"byte_end":53,"line_start":1,"line_end":1,"column_start":1,"column_end":54}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":54,"byte_end":57,"line_start":2,"line_end":2,"column_start":1,"column_end":4}},{"value":"/ The macro provided by this crate, `cfg_if`, is similar to the `if/elif` C","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":58,"byte_end":135,"line_start":3,"line_end":3,"column_start":1,"column_end":78}},{"value":"/ preprocessor macro by allowing definition of a cascade of `#[cfg]` cases,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":136,"byte_end":213,"line_start":4,"line_end":4,"column_start":1,"column_end":78}},{"value":"/ emitting the implementation which matches first.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":214,"byte_end":266,"line_start":5,"line_end":5,"column_start":1,"column_end":53}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":267,"byte_end":270,"line_start":6,"line_end":6,"column_start":1,"column_end":4}},{"value":"/ This allows you to conveniently provide a long list `#[cfg]`'d blocks of code","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":271,"byte_end":352,"line_start":7,"line_end":7,"column_start":1,"column_end":82}},{"value":"/ without having to rewrite each clause multiple times.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":353,"byte_end":410,"line_start":8,"line_end":8,"column_start":1,"column_end":58}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":411,"byte_end":414,"line_start":9,"line_end":9,"column_start":1,"column_end":4}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":415,"byte_end":428,"line_start":10,"line_end":10,"column_start":1,"column_end":14}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":429,"byte_end":432,"line_start":11,"line_end":11,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":433,"byte_end":440,"line_start":12,"line_end":12,"column_start":1,"column_end":8}},{"value":"/ cfg_if::cfg_if! {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":441,"byte_end":462,"line_start":13,"line_end":13,"column_start":1,"column_end":22}},{"value":"/ if #[cfg(unix)] {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":463,"byte_end":488,"line_start":14,"line_end":14,"column_start":1,"column_end":26}},{"value":"/ fn foo() { /* unix specific functionality */ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":489,"byte_end":547,"line_start":15,"line_end":15,"column_start":1,"column_end":59}},{"value":"/ } else if #[cfg(target_pointer_width = \"32\")] {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":548,"byte_end":603,"line_start":16,"line_end":16,"column_start":1,"column_end":56}},{"value":"/ fn foo() { /* non-unix, 32-bit functionality */ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":604,"byte_end":665,"line_start":17,"line_end":17,"column_start":1,"column_end":62}},{"value":"/ } else {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":666,"byte_end":682,"line_start":18,"line_end":18,"column_start":1,"column_end":17}},{"value":"/ fn foo() { /* fallback implementation */ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":683,"byte_end":737,"line_start":19,"line_end":19,"column_start":1,"column_end":55}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":738,"byte_end":747,"line_start":20,"line_end":20,"column_start":1,"column_end":10}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":748,"byte_end":753,"line_start":21,"line_end":21,"column_start":1,"column_end":6}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":754,"byte_end":757,"line_start":22,"line_end":22,"column_start":1,"column_end":4}},{"value":"/ # fn main() {}","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":758,"byte_end":776,"line_start":23,"line_end":23,"column_start":1,"column_end":19}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":777,"byte_end":784,"line_start":24,"line_end":24,"column_start":1,"column_end":8}},{"value":"no_std","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":786,"byte_end":796,"line_start":26,"line_end":26,"column_start":1,"column_end":11}},{"value":"deny(missing_docs)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs","byte_start":847,"byte_end":869,"line_start":28,"line_end":28,"column_start":1,"column_end":23}}]}],"impls":[],"refs":[],"macro_refs":[],"relations":[]} \ No newline at end of file diff --git a/target/rls/debug/deps/save-analysis/libgetrandom-a0120ee8da7f13ab.json b/target/rls/debug/deps/save-analysis/libgetrandom-a0120ee8da7f13ab.json new file mode 100644 index 0000000..0baebf5 --- /dev/null +++ b/target/rls/debug/deps/save-analysis/libgetrandom-a0120ee8da7f13ab.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.1","compilation":{"directory":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6","program":"/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rls","arguments":["--crate-name","getrandom","--edition=2018","/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","--json=diagnostic-rendered-ansi,future-incompat","--crate-type","lib","--emit=dep-info,metadata","-C","embed-bitcode=no","-C","debuginfo=2","--cfg","feature=\"std\"","-C","metadata=a0120ee8da7f13ab","-C","extra-filename=-a0120ee8da7f13ab","--out-dir","/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps","-L","dependency=/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps","--extern","cfg_if=/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/libcfg_if-2120cfe954d0c3f5.rmeta","--extern","libc=/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/liblibc-85a1d1b767afc43e.rmeta","--cap-lints","allow","--error-format=json","--sysroot","/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu"],"output":"/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/libgetrandom-a0120ee8da7f13ab.rmeta"},"prelude":{"crate_id":{"name":"getrandom","disambiguator":[1108089700107934696,0]},"crate_root":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src","external_crates":[{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","num":1,"id":{"name":"core","disambiguator":[5443730852259234579,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","num":2,"id":{"name":"compiler_builtins","disambiguator":[4162025702538114948,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","num":3,"id":{"name":"rustc_std_workspace_core","disambiguator":[17612152343462746361,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","num":4,"id":{"name":"cfg_if","disambiguator":[1004283514336169005,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs","num":5,"id":{"name":"std","disambiguator":[14026078687029744792,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs","num":6,"id":{"name":"alloc","disambiguator":[5560808256873132085,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs","num":7,"id":{"name":"libc","disambiguator":[135160560163186024,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs","num":8,"id":{"name":"unwind","disambiguator":[5800521777261530329,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs","num":9,"id":{"name":"cfg_if","disambiguator":[7095478770525139037,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs","num":10,"id":{"name":"hashbrown","disambiguator":[17225897750877482818,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs","num":11,"id":{"name":"rustc_std_workspace_alloc","disambiguator":[15613653607383163471,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs","num":12,"id":{"name":"rustc_demangle","disambiguator":[12428323400248712701,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs","num":13,"id":{"name":"std_detect","disambiguator":[11893279639181573711,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs","num":14,"id":{"name":"addr2line","disambiguator":[13583305032161054644,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs","num":15,"id":{"name":"gimli","disambiguator":[16609837797022023111,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs","num":16,"id":{"name":"object","disambiguator":[18098459435141129808,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs","num":17,"id":{"name":"memchr","disambiguator":[15244551393771456017,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs","num":18,"id":{"name":"miniz_oxide","disambiguator":[6576340271055396708,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs","num":19,"id":{"name":"adler","disambiguator":[15284510821186066958,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs","num":20,"id":{"name":"panic_unwind","disambiguator":[12982807908830018159,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/util_libc.rs","num":21,"id":{"name":"libc","disambiguator":[14926449781656206643,0]}}],"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":356,"byte_end":13069,"line_start":9,"line_end":263,"column_start":1,"column_end":2}},"imports":[{"kind":"Use","ref_id":{"krate":0,"index":81},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":9118,"byte_end":9123,"line_start":170,"line_end":170,"column_start":23,"column_end":28},"alias_span":null,"name":"Error","value":"","parent":{"krate":0,"index":0}}],"defs":[{"kind":"Mod","id":{"krate":0,"index":0},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":356,"byte_end":13069,"line_start":9,"line_end":263,"column_start":1,"column_end":2},"name":"","qualname":"::","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/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":39},{"krate":0,"index":63},{"krate":0,"index":77},{"krate":0,"index":96},{"krate":0,"index":122},{"krate":0,"index":173},{"krate":0,"index":80}],"decl_id":null,"docs":" Interface to the operating system's random number generator.","sig":null,"attributes":[{"value":"/ Interface to the operating system's random number generator.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":356,"byte_end":420,"line_start":9,"line_end":9,"column_start":1,"column_end":65}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":421,"byte_end":424,"line_start":10,"line_end":10,"column_start":1,"column_end":4}},{"value":"/ # Supported targets","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":425,"byte_end":448,"line_start":11,"line_end":11,"column_start":1,"column_end":24}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":449,"byte_end":452,"line_start":12,"line_end":12,"column_start":1,"column_end":4}},{"value":"/ | Target | Target Triple | Implementation","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":453,"byte_end":514,"line_start":13,"line_end":13,"column_start":1,"column_end":62}},{"value":"/ | ----------------- | ------------------ | --------------","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":515,"byte_end":576,"line_start":14,"line_end":14,"column_start":1,"column_end":62}},{"value":"/ | Linux, Android | `*‑linux‑*` | [`getrandom`][1] system call if available, otherwise [`/dev/urandom`][2] after successfully polling `/dev/random`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":577,"byte_end":741,"line_start":15,"line_end":15,"column_start":1,"column_end":161}},{"value":"/ | Windows | `*‑windows‑*` | [`BCryptGenRandom`]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":742,"byte_end":812,"line_start":16,"line_end":16,"column_start":1,"column_end":67}},{"value":"/ | macOS | `*‑apple‑darwin` | [`getentropy`][3] if available, otherwise [`/dev/random`][4] (identical to `/dev/urandom`)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":813,"byte_end":954,"line_start":17,"line_end":17,"column_start":1,"column_end":138}},{"value":"/ | iOS | `*‑apple‑ios` | [`SecRandomCopyBytes`]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":955,"byte_end":1028,"line_start":18,"line_end":18,"column_start":1,"column_end":70}},{"value":"/ | FreeBSD | `*‑freebsd` | [`getrandom`][5] if available, otherwise [`kern.arandom`][6]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":1029,"byte_end":1138,"line_start":19,"line_end":19,"column_start":1,"column_end":108}},{"value":"/ | OpenBSD | `*‑openbsd` | [`getentropy`][7]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":1139,"byte_end":1205,"line_start":20,"line_end":20,"column_start":1,"column_end":65}},{"value":"/ | NetBSD | `*‑netbsd` | [`kern.arandom`][8]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":1206,"byte_end":1274,"line_start":21,"line_end":21,"column_start":1,"column_end":67}},{"value":"/ | Dragonfly BSD | `*‑dragonfly` | [`getrandom`][9] if available, otherwise [`/dev/random`][10]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":1275,"byte_end":1385,"line_start":22,"line_end":22,"column_start":1,"column_end":108}},{"value":"/ | Solaris, illumos | `*‑solaris`, `*‑illumos` | [`getrandom`][11] if available, otherwise [`/dev/random`][12]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":1386,"byte_end":1504,"line_start":23,"line_end":23,"column_start":1,"column_end":115}},{"value":"/ | Fuchsia OS | `*‑fuchsia` | [`cprng_draw`]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":1505,"byte_end":1569,"line_start":24,"line_end":24,"column_start":1,"column_end":62}},{"value":"/ | Redox | `*‑redox` | `/dev/urandom`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":1570,"byte_end":1633,"line_start":25,"line_end":25,"column_start":1,"column_end":62}},{"value":"/ | Haiku | `*‑haiku` | `/dev/random` (identical to `/dev/urandom`)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":1634,"byte_end":1726,"line_start":26,"line_end":26,"column_start":1,"column_end":91}},{"value":"/ | Hermit | `x86_64-*-hermit` | [`RDRAND`]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":1727,"byte_end":1784,"line_start":27,"line_end":27,"column_start":1,"column_end":58}},{"value":"/ | SGX | `x86_64‑*‑sgx` | [`RDRAND`]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":1785,"byte_end":1846,"line_start":28,"line_end":28,"column_start":1,"column_end":58}},{"value":"/ | VxWorks | `*‑wrs‑vxworks‑*` | `randABytes` after checking entropy pool initialization with `randSecure`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":1847,"byte_end":1973,"line_start":29,"line_end":29,"column_start":1,"column_end":121}},{"value":"/ | ESP-IDF | `*‑espidf` | [`esp_fill_random`]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":1974,"byte_end":2042,"line_start":30,"line_end":30,"column_start":1,"column_end":67}},{"value":"/ | Emscripten | `*‑emscripten` | `/dev/random` (identical to `/dev/urandom`)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":2043,"byte_end":2135,"line_start":31,"line_end":31,"column_start":1,"column_end":91}},{"value":"/ | WASI | `wasm32‑wasi` | [`random_get`]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":2136,"byte_end":2199,"line_start":32,"line_end":32,"column_start":1,"column_end":62}},{"value":"/ | Web Browser | `wasm32‑*‑unknown` | [`Crypto.getRandomValues`], see [WebAssembly support]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":2200,"byte_end":2305,"line_start":33,"line_end":33,"column_start":1,"column_end":101}},{"value":"/ | Node.js | `wasm32‑*‑unknown` | [`crypto.randomBytes`], see [WebAssembly support]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":2306,"byte_end":2406,"line_start":34,"line_end":34,"column_start":1,"column_end":97}},{"value":"/ | SOLID | `*-kmc-solid_*` | `SOLID_RNG_SampleRandomBytes`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":2407,"byte_end":2483,"line_start":35,"line_end":35,"column_start":1,"column_end":77}},{"value":"/ | Nintendo 3DS | `armv6k-nintendo-3ds` | [`getrandom`][1]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":2484,"byte_end":2550,"line_start":36,"line_end":36,"column_start":1,"column_end":67}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":2551,"byte_end":2554,"line_start":37,"line_end":37,"column_start":1,"column_end":4}},{"value":"/ There is no blanket implementation on `unix` targets that reads from","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":2555,"byte_end":2627,"line_start":38,"line_end":38,"column_start":1,"column_end":73}},{"value":"/ `/dev/urandom`. This ensures all supported targets are using the recommended","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":2628,"byte_end":2708,"line_start":39,"line_end":39,"column_start":1,"column_end":81}},{"value":"/ interface and respect maximum buffer sizes.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":2709,"byte_end":2756,"line_start":40,"line_end":40,"column_start":1,"column_end":48}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":2757,"byte_end":2760,"line_start":41,"line_end":41,"column_start":1,"column_end":4}},{"value":"/ Pull Requests that add support for new targets to `getrandom` are always welcome.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":2761,"byte_end":2846,"line_start":42,"line_end":42,"column_start":1,"column_end":86}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":2847,"byte_end":2850,"line_start":43,"line_end":43,"column_start":1,"column_end":4}},{"value":"/ ## Unsupported targets","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":2851,"byte_end":2877,"line_start":44,"line_end":44,"column_start":1,"column_end":27}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":2878,"byte_end":2881,"line_start":45,"line_end":45,"column_start":1,"column_end":4}},{"value":"/ By default, `getrandom` will not compile on unsupported targets, but certain","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":2882,"byte_end":2962,"line_start":46,"line_end":46,"column_start":1,"column_end":81}},{"value":"/ features allow a user to select a \"fallback\" implementation if no supported","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":2963,"byte_end":3042,"line_start":47,"line_end":47,"column_start":1,"column_end":80}},{"value":"/ implementation exists.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":3043,"byte_end":3069,"line_start":48,"line_end":48,"column_start":1,"column_end":27}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":3070,"byte_end":3073,"line_start":49,"line_end":49,"column_start":1,"column_end":4}},{"value":"/ All of the below mechanisms only affect unsupported","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":3074,"byte_end":3129,"line_start":50,"line_end":50,"column_start":1,"column_end":56}},{"value":"/ targets. Supported targets will _always_ use their supported implementations.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":3130,"byte_end":3211,"line_start":51,"line_end":51,"column_start":1,"column_end":82}},{"value":"/ This prevents a crate from overriding a secure source of randomness","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":3212,"byte_end":3283,"line_start":52,"line_end":52,"column_start":1,"column_end":72}},{"value":"/ (either accidentally or intentionally).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":3284,"byte_end":3327,"line_start":53,"line_end":53,"column_start":1,"column_end":44}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":3328,"byte_end":3331,"line_start":54,"line_end":54,"column_start":1,"column_end":4}},{"value":"/ ### RDRAND on x86","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":3332,"byte_end":3353,"line_start":55,"line_end":55,"column_start":1,"column_end":22}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":3354,"byte_end":3357,"line_start":56,"line_end":56,"column_start":1,"column_end":4}},{"value":"/ *If the `rdrand` Cargo feature is enabled*, `getrandom` will fallback to using","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":3358,"byte_end":3440,"line_start":57,"line_end":57,"column_start":1,"column_end":83}},{"value":"/ the [`RDRAND`] instruction to get randomness on `no_std` `x86`/`x86_64`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":3441,"byte_end":3516,"line_start":58,"line_end":58,"column_start":1,"column_end":76}},{"value":"/ targets. This feature has no effect on other CPU architectures.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":3517,"byte_end":3584,"line_start":59,"line_end":59,"column_start":1,"column_end":68}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":3585,"byte_end":3588,"line_start":60,"line_end":60,"column_start":1,"column_end":4}},{"value":"/ ### WebAssembly support","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":3589,"byte_end":3616,"line_start":61,"line_end":61,"column_start":1,"column_end":28}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":3617,"byte_end":3620,"line_start":62,"line_end":62,"column_start":1,"column_end":4}},{"value":"/ This crate fully supports the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":3621,"byte_end":3654,"line_start":63,"line_end":63,"column_start":1,"column_end":34}},{"value":"/ [`wasm32-wasi`](https://github.com/CraneStation/wasi) and","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":3655,"byte_end":3716,"line_start":64,"line_end":64,"column_start":1,"column_end":62}},{"value":"/ [`wasm32-unknown-emscripten`](https://www.hellorust.com/setup/emscripten/)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":3717,"byte_end":3795,"line_start":65,"line_end":65,"column_start":1,"column_end":79}},{"value":"/ targets. However, the `wasm32-unknown-unknown` target (i.e. the target used","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":3796,"byte_end":3875,"line_start":66,"line_end":66,"column_start":1,"column_end":80}},{"value":"/ by `wasm-pack`) is not automatically","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":3876,"byte_end":3916,"line_start":67,"line_end":67,"column_start":1,"column_end":41}},{"value":"/ supported since, from the target name alone, we cannot deduce which","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":3917,"byte_end":3988,"line_start":68,"line_end":68,"column_start":1,"column_end":72}},{"value":"/ JavaScript interface is in use (or if JavaScript is available at all).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":3989,"byte_end":4063,"line_start":69,"line_end":69,"column_start":1,"column_end":75}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":4064,"byte_end":4067,"line_start":70,"line_end":70,"column_start":1,"column_end":4}},{"value":"/ Instead, *if the `js` Cargo feature is enabled*, this crate will assume","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":4068,"byte_end":4143,"line_start":71,"line_end":71,"column_start":1,"column_end":76}},{"value":"/ that you are building for an environment containing JavaScript, and will","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":4144,"byte_end":4220,"line_start":72,"line_end":72,"column_start":1,"column_end":77}},{"value":"/ call the appropriate methods. Both web browser (main window and Web Workers)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":4221,"byte_end":4301,"line_start":73,"line_end":73,"column_start":1,"column_end":81}},{"value":"/ and Node.js environments are supported, invoking the methods","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":4302,"byte_end":4366,"line_start":74,"line_end":74,"column_start":1,"column_end":65}},{"value":"/ [described above](#supported-targets) using the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":4367,"byte_end":4418,"line_start":75,"line_end":75,"column_start":1,"column_end":52}},{"value":"/ [wasm-bindgen](https://github.com/rust-lang/rust-bindgen) toolchain.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":4419,"byte_end":4491,"line_start":76,"line_end":76,"column_start":1,"column_end":73}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":4492,"byte_end":4495,"line_start":77,"line_end":77,"column_start":1,"column_end":4}},{"value":"/ This feature has no effect on targets other than `wasm32-unknown-unknown`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":4496,"byte_end":4574,"line_start":78,"line_end":78,"column_start":1,"column_end":79}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":4575,"byte_end":4578,"line_start":79,"line_end":79,"column_start":1,"column_end":4}},{"value":"/ ### Custom implementations","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":4579,"byte_end":4609,"line_start":80,"line_end":80,"column_start":1,"column_end":31}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":4610,"byte_end":4613,"line_start":81,"line_end":81,"column_start":1,"column_end":4}},{"value":"/ The [`register_custom_getrandom!`] macro allows a user to mark their own","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":4614,"byte_end":4690,"line_start":82,"line_end":82,"column_start":1,"column_end":77}},{"value":"/ function as the backing implementation for [`getrandom`]. See the macro's","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":4691,"byte_end":4768,"line_start":83,"line_end":83,"column_start":1,"column_end":78}},{"value":"/ documentation for more information about writing and registering your own","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":4769,"byte_end":4846,"line_start":84,"line_end":84,"column_start":1,"column_end":78}},{"value":"/ custom implementations.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":4847,"byte_end":4874,"line_start":85,"line_end":85,"column_start":1,"column_end":28}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":4875,"byte_end":4878,"line_start":86,"line_end":86,"column_start":1,"column_end":4}},{"value":"/ Note that registering a custom implementation only has an effect on targets","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":4879,"byte_end":4958,"line_start":87,"line_end":87,"column_start":1,"column_end":80}},{"value":"/ that would otherwise not compile. Any supported targets (including those","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":4959,"byte_end":5035,"line_start":88,"line_end":88,"column_start":1,"column_end":77}},{"value":"/ using `rdrand` and `js` Cargo features) continue using their normal","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":5036,"byte_end":5107,"line_start":89,"line_end":89,"column_start":1,"column_end":72}},{"value":"/ implementations even if a function is registered.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":5108,"byte_end":5161,"line_start":90,"line_end":90,"column_start":1,"column_end":54}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":5162,"byte_end":5165,"line_start":91,"line_end":91,"column_start":1,"column_end":4}},{"value":"/ ### Indirect Dependencies","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":5166,"byte_end":5195,"line_start":92,"line_end":92,"column_start":1,"column_end":30}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":5196,"byte_end":5199,"line_start":93,"line_end":93,"column_start":1,"column_end":4}},{"value":"/ If `getrandom` is not a direct dependency of your crate, you can still","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":5200,"byte_end":5274,"line_start":94,"line_end":94,"column_start":1,"column_end":75}},{"value":"/ enable any of the above fallback behaviors by enabling the relevant","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":5275,"byte_end":5346,"line_start":95,"line_end":95,"column_start":1,"column_end":72}},{"value":"/ feature in your root crate's `Cargo.toml`:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":5347,"byte_end":5393,"line_start":96,"line_end":96,"column_start":1,"column_end":47}},{"value":"/ ```toml","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":5394,"byte_end":5405,"line_start":97,"line_end":97,"column_start":1,"column_end":12}},{"value":"/ [dependencies]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":5406,"byte_end":5424,"line_start":98,"line_end":98,"column_start":1,"column_end":19}},{"value":"/ getrandom = { version = \"0.2\", features = [\"js\"] }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":5425,"byte_end":5479,"line_start":99,"line_end":99,"column_start":1,"column_end":55}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":5480,"byte_end":5487,"line_start":100,"line_end":100,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":5488,"byte_end":5491,"line_start":101,"line_end":101,"column_start":1,"column_end":4}},{"value":"/ ## Early boot","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":5492,"byte_end":5509,"line_start":102,"line_end":102,"column_start":1,"column_end":18}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":5510,"byte_end":5513,"line_start":103,"line_end":103,"column_start":1,"column_end":4}},{"value":"/ Sometimes, early in the boot process, the OS has not collected enough","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":5514,"byte_end":5587,"line_start":104,"line_end":104,"column_start":1,"column_end":74}},{"value":"/ entropy to securely seed its RNG. This is especially common on virtual","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":5588,"byte_end":5662,"line_start":105,"line_end":105,"column_start":1,"column_end":75}},{"value":"/ machines, where standard \"random\" events are hard to come by.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":5663,"byte_end":5728,"line_start":106,"line_end":106,"column_start":1,"column_end":66}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":5729,"byte_end":5732,"line_start":107,"line_end":107,"column_start":1,"column_end":4}},{"value":"/ Some operating system interfaces always block until the RNG is securely","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":5733,"byte_end":5808,"line_start":108,"line_end":108,"column_start":1,"column_end":76}},{"value":"/ seeded. This can take anywhere from a few seconds to more than a minute.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":5809,"byte_end":5885,"line_start":109,"line_end":109,"column_start":1,"column_end":77}},{"value":"/ A few (Linux, NetBSD and Solaris) offer a choice between blocking and","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":5886,"byte_end":5959,"line_start":110,"line_end":110,"column_start":1,"column_end":74}},{"value":"/ getting an error; in these cases, we always choose to block.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":5960,"byte_end":6024,"line_start":111,"line_end":111,"column_start":1,"column_end":65}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":6025,"byte_end":6028,"line_start":112,"line_end":112,"column_start":1,"column_end":4}},{"value":"/ On Linux (when the `getrandom` system call is not available), reading from","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":6029,"byte_end":6107,"line_start":113,"line_end":113,"column_start":1,"column_end":79}},{"value":"/ `/dev/urandom` never blocks, even when the OS hasn't collected enough","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":6108,"byte_end":6181,"line_start":114,"line_end":114,"column_start":1,"column_end":74}},{"value":"/ entropy yet. To avoid returning low-entropy bytes, we first poll","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":6182,"byte_end":6250,"line_start":115,"line_end":115,"column_start":1,"column_end":69}},{"value":"/ `/dev/random` and only switch to `/dev/urandom` once this has succeeded.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":6251,"byte_end":6327,"line_start":116,"line_end":116,"column_start":1,"column_end":77}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":6328,"byte_end":6331,"line_start":117,"line_end":117,"column_start":1,"column_end":4}},{"value":"/ ## Error handling","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":6332,"byte_end":6353,"line_start":118,"line_end":118,"column_start":1,"column_end":22}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":6354,"byte_end":6357,"line_start":119,"line_end":119,"column_start":1,"column_end":4}},{"value":"/ We always choose failure over returning insecure \"random\" bytes. In general,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":6358,"byte_end":6438,"line_start":120,"line_end":120,"column_start":1,"column_end":81}},{"value":"/ on supported platforms, failure is highly unlikely, though not impossible.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":6439,"byte_end":6517,"line_start":121,"line_end":121,"column_start":1,"column_end":79}},{"value":"/ If an error does occur, then it is likely that it will occur on every call to","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":6518,"byte_end":6599,"line_start":122,"line_end":122,"column_start":1,"column_end":82}},{"value":"/ `getrandom`, hence after the first successful call one can be reasonably","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":6600,"byte_end":6676,"line_start":123,"line_end":123,"column_start":1,"column_end":77}},{"value":"/ confident that no errors will occur.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":6677,"byte_end":6717,"line_start":124,"line_end":124,"column_start":1,"column_end":41}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":6718,"byte_end":6721,"line_start":125,"line_end":125,"column_start":1,"column_end":4}},{"value":"/ [1]: http://man7.org/linux/man-pages/man2/getrandom.2.html","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":6722,"byte_end":6784,"line_start":126,"line_end":126,"column_start":1,"column_end":63}},{"value":"/ [2]: http://man7.org/linux/man-pages/man4/urandom.4.html","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":6785,"byte_end":6845,"line_start":127,"line_end":127,"column_start":1,"column_end":61}},{"value":"/ [3]: https://www.unix.com/man-page/mojave/2/getentropy/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":6846,"byte_end":6905,"line_start":128,"line_end":128,"column_start":1,"column_end":60}},{"value":"/ [4]: https://www.unix.com/man-page/mojave/4/random/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":6906,"byte_end":6961,"line_start":129,"line_end":129,"column_start":1,"column_end":56}},{"value":"/ [5]: https://www.freebsd.org/cgi/man.cgi?query=getrandom&manpath=FreeBSD+12.0-stable","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":6962,"byte_end":7050,"line_start":130,"line_end":130,"column_start":1,"column_end":89}},{"value":"/ [6]: https://www.freebsd.org/cgi/man.cgi?query=random&sektion=4","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":7051,"byte_end":7118,"line_start":131,"line_end":131,"column_start":1,"column_end":68}},{"value":"/ [7]: https://man.openbsd.org/getentropy.2","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":7119,"byte_end":7164,"line_start":132,"line_end":132,"column_start":1,"column_end":46}},{"value":"/ [8]: https://man.netbsd.org/sysctl.7","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":7165,"byte_end":7205,"line_start":133,"line_end":133,"column_start":1,"column_end":41}},{"value":"/ [9]: https://leaf.dragonflybsd.org/cgi/web-man?command=getrandom","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":7206,"byte_end":7274,"line_start":134,"line_end":134,"column_start":1,"column_end":69}},{"value":"/ [10]: https://leaf.dragonflybsd.org/cgi/web-man?command=random§ion=4","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":7275,"byte_end":7351,"line_start":135,"line_end":135,"column_start":1,"column_end":77}},{"value":"/ [11]: https://docs.oracle.com/cd/E88353_01/html/E37841/getrandom-2.html","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":7352,"byte_end":7427,"line_start":136,"line_end":136,"column_start":1,"column_end":76}},{"value":"/ [12]: https://docs.oracle.com/cd/E86824_01/html/E54777/random-7d.html","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":7428,"byte_end":7501,"line_start":137,"line_end":137,"column_start":1,"column_end":74}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":7502,"byte_end":7505,"line_start":138,"line_end":138,"column_start":1,"column_end":4}},{"value":"/ [`BCryptGenRandom`]: https://docs.microsoft.com/en-us/windows/win32/api/bcrypt/nf-bcrypt-bcryptgenrandom","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":7506,"byte_end":7614,"line_start":139,"line_end":139,"column_start":1,"column_end":109}},{"value":"/ [`Crypto.getRandomValues`]: https://www.w3.org/TR/WebCryptoAPI/#Crypto-method-getRandomValues","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":7615,"byte_end":7712,"line_start":140,"line_end":140,"column_start":1,"column_end":98}},{"value":"/ [`RDRAND`]: https://software.intel.com/en-us/articles/intel-digital-random-number-generator-drng-software-implementation-guide","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":7713,"byte_end":7843,"line_start":141,"line_end":141,"column_start":1,"column_end":131}},{"value":"/ [`SecRandomCopyBytes`]: https://developer.apple.com/documentation/security/1399291-secrandomcopybytes?language=objc","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":7844,"byte_end":7963,"line_start":142,"line_end":142,"column_start":1,"column_end":120}},{"value":"/ [`cprng_draw`]: https://fuchsia.dev/fuchsia-src/zircon/syscalls/cprng_draw","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":7964,"byte_end":8042,"line_start":143,"line_end":143,"column_start":1,"column_end":79}},{"value":"/ [`crypto.randomBytes`]: https://nodejs.org/api/crypto.html#crypto_crypto_randombytes_size_callback","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":8043,"byte_end":8145,"line_start":144,"line_end":144,"column_start":1,"column_end":103}},{"value":"/ [`esp_fill_random`]: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/random.html#_CPPv415esp_fill_randomPv6size_t","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":8146,"byte_end":8296,"line_start":145,"line_end":145,"column_start":1,"column_end":151}},{"value":"/ [`random_get`]: https://github.com/WebAssembly/WASI/blob/main/phases/snapshot/docs.md#-random_getbuf-pointeru8-buf_len-size---errno","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":8297,"byte_end":8432,"line_start":146,"line_end":146,"column_start":1,"column_end":136}},{"value":"/ [WebAssembly support]: #webassembly-support","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":8433,"byte_end":8480,"line_start":147,"line_end":147,"column_start":1,"column_end":48}},{"value":"no_std","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":8692,"byte_end":8702,"line_start":154,"line_end":154,"column_start":1,"column_end":11}},{"value":"warn(rust_2018_idioms, unused_lifetimes, missing_docs)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":8703,"byte_end":8761,"line_start":155,"line_end":155,"column_start":1,"column_end":59}}]},{"kind":"Struct","id":{"krate":0,"index":81},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":14313,"byte_end":14318,"line_start":25,"line_end":25,"column_start":12,"column_end":17},"name":"Error","qualname":"::error::Error","value":"","parent":null,"children":[],"decl_id":null,"docs":" A small and `no_std` compatible error type","sig":null,"attributes":[{"value":"/ A small and `no_std` compatible error type","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":13461,"byte_end":13507,"line_start":10,"line_end":10,"column_start":1,"column_end":47}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":13508,"byte_end":13511,"line_start":11,"line_end":11,"column_start":1,"column_end":4}},{"value":"/ The [`Error::raw_os_error()`] will indicate if the error is from the OS, and","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":13512,"byte_end":13592,"line_start":12,"line_end":12,"column_start":1,"column_end":81}},{"value":"/ if so, which error code the OS gave the application. If such an error is","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":13593,"byte_end":13669,"line_start":13,"line_end":13,"column_start":1,"column_end":77}},{"value":"/ encountered, please consult with your system documentation.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":13670,"byte_end":13733,"line_start":14,"line_end":14,"column_start":1,"column_end":64}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":13734,"byte_end":13737,"line_start":15,"line_end":15,"column_start":1,"column_end":4}},{"value":"/ Internally this type is a NonZeroU32, with certain values reserved for","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":13738,"byte_end":13812,"line_start":16,"line_end":16,"column_start":1,"column_end":75}},{"value":"/ certain purposes, see [`Error::INTERNAL_START`] and [`Error::CUSTOM_START`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":13813,"byte_end":13893,"line_start":17,"line_end":17,"column_start":1,"column_end":81}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":13894,"byte_end":13897,"line_start":18,"line_end":18,"column_start":1,"column_end":4}},{"value":"/ *If this crate's `\"std\"` Cargo feature is enabled*, then:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":13898,"byte_end":13959,"line_start":19,"line_end":19,"column_start":1,"column_end":62}},{"value":"/ - [`getrandom::Error`][Error] implements","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":13960,"byte_end":14004,"line_start":20,"line_end":20,"column_start":1,"column_end":45}},{"value":"/ [`std::error::Error`](https://doc.rust-lang.org/std/error/trait.Error.html)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":14005,"byte_end":14086,"line_start":21,"line_end":21,"column_start":1,"column_end":82}},{"value":"/ - [`std::io::Error`](https://doc.rust-lang.org/std/io/struct.Error.html) implements","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":14087,"byte_end":14174,"line_start":22,"line_end":22,"column_start":1,"column_end":88}},{"value":"/ [`From`](https://doc.rust-lang.org/std/convert/trait.From.html).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":14175,"byte_end":14263,"line_start":23,"line_end":23,"column_start":1,"column_end":89}}]},{"kind":"Const","id":{"krate":0,"index":15},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":14654,"byte_end":14665,"line_start":35,"line_end":35,"column_start":15,"column_end":26},"name":"UNSUPPORTED","qualname":"::error::Error::UNSUPPORTED","value":"Error","parent":{"krate":0,"index":14},"children":[],"decl_id":null,"docs":" This target/platform is not supported by `getrandom`.\n","sig":null,"attributes":[{"value":"/ This target/platform is not supported by `getrandom`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":14582,"byte_end":14639,"line_start":34,"line_end":34,"column_start":5,"column_end":62}}]},{"kind":"Const","id":{"krate":0,"index":16},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":14777,"byte_end":14795,"line_start":37,"line_end":37,"column_start":15,"column_end":33},"name":"ERRNO_NOT_POSITIVE","qualname":"::error::Error::ERRNO_NOT_POSITIVE","value":"Error","parent":{"krate":0,"index":14},"children":[],"decl_id":null,"docs":" The platform-specific `errno` returned a non-positive value.\n","sig":null,"attributes":[{"value":"/ The platform-specific `errno` returned a non-positive value.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":14698,"byte_end":14762,"line_start":36,"line_end":36,"column_start":5,"column_end":69}}]},{"kind":"Const","id":{"krate":0,"index":17},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":14968,"byte_end":14982,"line_start":39,"line_end":39,"column_start":15,"column_end":29},"name":"IOS_SEC_RANDOM","qualname":"::error::Error::IOS_SEC_RANDOM","value":"Error","parent":{"krate":0,"index":14},"children":[],"decl_id":null,"docs":" Call to iOS [`SecRandomCopyBytes`](https://developer.apple.com/documentation/security/1399291-secrandomcopybytes) failed.\n","sig":null,"attributes":[{"value":"/ Call to iOS [`SecRandomCopyBytes`](https://developer.apple.com/documentation/security/1399291-secrandomcopybytes) failed.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":14828,"byte_end":14953,"line_start":38,"line_end":38,"column_start":5,"column_end":130}}]},{"kind":"Const","id":{"krate":0,"index":18},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":15160,"byte_end":15182,"line_start":41,"line_end":41,"column_start":15,"column_end":37},"name":"WINDOWS_RTL_GEN_RANDOM","qualname":"::error::Error::WINDOWS_RTL_GEN_RANDOM","value":"Error","parent":{"krate":0,"index":14},"children":[],"decl_id":null,"docs":" Call to Windows [`RtlGenRandom`](https://docs.microsoft.com/en-us/windows/win32/api/ntsecapi/nf-ntsecapi-rtlgenrandom) failed.\n","sig":null,"attributes":[{"value":"/ Call to Windows [`RtlGenRandom`](https://docs.microsoft.com/en-us/windows/win32/api/ntsecapi/nf-ntsecapi-rtlgenrandom) failed.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":15015,"byte_end":15145,"line_start":40,"line_end":40,"column_start":5,"column_end":135}}]},{"kind":"Const","id":{"krate":0,"index":19},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":15284,"byte_end":15297,"line_start":43,"line_end":43,"column_start":15,"column_end":28},"name":"FAILED_RDRAND","qualname":"::error::Error::FAILED_RDRAND","value":"Error","parent":{"krate":0,"index":14},"children":[],"decl_id":null,"docs":" RDRAND instruction failed due to a hardware issue.\n","sig":null,"attributes":[{"value":"/ RDRAND instruction failed due to a hardware issue.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":15215,"byte_end":15269,"line_start":42,"line_end":42,"column_start":5,"column_end":59}}]},{"kind":"Const","id":{"krate":0,"index":20},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":15395,"byte_end":15404,"line_start":45,"line_end":45,"column_start":15,"column_end":24},"name":"NO_RDRAND","qualname":"::error::Error::NO_RDRAND","value":"Error","parent":{"krate":0,"index":14},"children":[],"decl_id":null,"docs":" RDRAND instruction unsupported on this target.\n","sig":null,"attributes":[{"value":"/ RDRAND instruction unsupported on this target.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":15330,"byte_end":15380,"line_start":44,"line_end":44,"column_start":5,"column_end":55}}]},{"kind":"Const","id":{"krate":0,"index":21},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":15508,"byte_end":15518,"line_start":47,"line_end":47,"column_start":15,"column_end":25},"name":"WEB_CRYPTO","qualname":"::error::Error::WEB_CRYPTO","value":"Error","parent":{"krate":0,"index":14},"children":[],"decl_id":null,"docs":" The browser does not have support for `self.crypto`.\n","sig":null,"attributes":[{"value":"/ The browser does not have support for `self.crypto`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":15437,"byte_end":15493,"line_start":46,"line_end":46,"column_start":5,"column_end":61}}]},{"kind":"Const","id":{"krate":0,"index":22},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":15633,"byte_end":15654,"line_start":49,"line_end":49,"column_start":15,"column_end":36},"name":"WEB_GET_RANDOM_VALUES","qualname":"::error::Error::WEB_GET_RANDOM_VALUES","value":"Error","parent":{"krate":0,"index":14},"children":[],"decl_id":null,"docs":" The browser does not have support for `crypto.getRandomValues`.\n","sig":null,"attributes":[{"value":"/ The browser does not have support for `crypto.getRandomValues`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":15551,"byte_end":15618,"line_start":48,"line_end":48,"column_start":5,"column_end":72}}]},{"kind":"Const","id":{"krate":0,"index":23},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":15795,"byte_end":15814,"line_start":51,"line_end":51,"column_start":15,"column_end":34},"name":"VXWORKS_RAND_SECURE","qualname":"::error::Error::VXWORKS_RAND_SECURE","value":"Error","parent":{"krate":0,"index":14},"children":[],"decl_id":null,"docs":" On VxWorks, call to `randSecure` failed (random number generator is not yet initialized).\n","sig":null,"attributes":[{"value":"/ On VxWorks, call to `randSecure` failed (random number generator is not yet initialized).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":15687,"byte_end":15780,"line_start":50,"line_end":50,"column_start":5,"column_end":98}}]},{"kind":"Const","id":{"krate":0,"index":24},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":15920,"byte_end":15931,"line_start":53,"line_end":53,"column_start":15,"column_end":26},"name":"NODE_CRYPTO","qualname":"::error::Error::NODE_CRYPTO","value":"Error","parent":{"krate":0,"index":14},"children":[],"decl_id":null,"docs":" NodeJS does not have support for the `crypto` module.\n","sig":null,"attributes":[{"value":"/ NodeJS does not have support for the `crypto` module.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":15848,"byte_end":15905,"line_start":52,"line_end":52,"column_start":5,"column_end":62}}]},{"kind":"Const","id":{"krate":0,"index":25},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":16041,"byte_end":16062,"line_start":55,"line_end":55,"column_start":15,"column_end":36},"name":"NODE_RANDOM_FILL_SYNC","qualname":"::error::Error::NODE_RANDOM_FILL_SYNC","value":"Error","parent":{"krate":0,"index":14},"children":[],"decl_id":null,"docs":" NodeJS does not have support for `crypto.randomFillSync`.\n","sig":null,"attributes":[{"value":"/ NodeJS does not have support for `crypto.randomFillSync`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":15965,"byte_end":16026,"line_start":54,"line_end":54,"column_start":5,"column_end":66}}]},{"kind":"Const","id":{"krate":0,"index":26},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":16325,"byte_end":16339,"line_start":60,"line_end":60,"column_start":15,"column_end":29},"name":"INTERNAL_START","qualname":"::error::Error::INTERNAL_START","value":"u32","parent":{"krate":0,"index":14},"children":[],"decl_id":null,"docs":" Codes below this point represent OS Errors (i.e. positive i32 values).\n Codes at or above this point, but below [`Error::CUSTOM_START`] are\n reserved for use by the `rand` and `getrandom` crates.\n","sig":null,"attributes":[{"value":"/ Codes below this point represent OS Errors (i.e. positive i32 values).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":16097,"byte_end":16171,"line_start":57,"line_end":57,"column_start":5,"column_end":79}},{"value":"/ Codes at or above this point, but below [`Error::CUSTOM_START`] are","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":16176,"byte_end":16247,"line_start":58,"line_end":58,"column_start":5,"column_end":76}},{"value":"/ reserved for use by the `rand` and `getrandom` crates.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":16252,"byte_end":16310,"line_start":59,"line_end":59,"column_start":5,"column_end":63}}]},{"kind":"Const","id":{"krate":0,"index":27},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":16472,"byte_end":16484,"line_start":64,"line_end":64,"column_start":15,"column_end":27},"name":"CUSTOM_START","qualname":"::error::Error::CUSTOM_START","value":"u32","parent":{"krate":0,"index":14},"children":[],"decl_id":null,"docs":" Codes at or above this point can be used by users to define their own\n custom errors.\n","sig":null,"attributes":[{"value":"/ Codes at or above this point can be used by users to define their own","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":16361,"byte_end":16434,"line_start":62,"line_end":62,"column_start":5,"column_end":78}},{"value":"/ custom errors.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":16439,"byte_end":16457,"line_start":63,"line_end":63,"column_start":5,"column_end":23}}]},{"kind":"Method","id":{"krate":0,"index":28},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":16950,"byte_end":16962,"line_start":74,"line_end":74,"column_start":12,"column_end":24},"name":"raw_os_error","qualname":"::raw_os_error","value":"pub fn raw_os_error(Self) -> Option","parent":null,"children":[],"decl_id":null,"docs":" Extract the raw OS error code (if this error came from the OS)","sig":null,"attributes":[{"value":"/ Extract the raw OS error code (if this error came from the OS)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":16520,"byte_end":16586,"line_start":66,"line_end":66,"column_start":5,"column_end":71}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":16591,"byte_end":16594,"line_start":67,"line_end":67,"column_start":5,"column_end":8}},{"value":"/ This method is identical to [`std::io::Error::raw_os_error()`][1], except","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":16599,"byte_end":16676,"line_start":68,"line_end":68,"column_start":5,"column_end":82}},{"value":"/ that it works in `no_std` contexts. If this method returns `None`, the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":16681,"byte_end":16755,"line_start":69,"line_end":69,"column_start":5,"column_end":79}},{"value":"/ error value can still be formatted via the `Display` implementation.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":16760,"byte_end":16832,"line_start":70,"line_end":70,"column_start":5,"column_end":77}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":16837,"byte_end":16840,"line_start":71,"line_end":71,"column_start":5,"column_end":8}},{"value":"/ [1]: https://doc.rust-lang.org/std/io/struct.Error.html#method.raw_os_error","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":16845,"byte_end":16924,"line_start":72,"line_end":72,"column_start":5,"column_end":84}},{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":16929,"byte_end":16938,"line_start":73,"line_end":73,"column_start":5,"column_end":14}}]},{"kind":"Method","id":{"krate":0,"index":29},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":17649,"byte_end":17653,"line_start":94,"line_end":94,"column_start":18,"column_end":22},"name":"code","qualname":"::code","value":"pub const fn code(Self) -> NonZeroU32","parent":null,"children":[],"decl_id":null,"docs":" Extract the bare error code.","sig":null,"attributes":[{"value":"/ Extract the bare error code.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":17442,"byte_end":17474,"line_start":89,"line_end":89,"column_start":5,"column_end":37}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":17479,"byte_end":17482,"line_start":90,"line_end":90,"column_start":5,"column_end":8}},{"value":"/ This code can either come from the underlying OS, or be a custom error.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":17487,"byte_end":17562,"line_start":91,"line_end":91,"column_start":5,"column_end":80}},{"value":"/ Use [`Error::raw_os_error()`] to disambiguate.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":17567,"byte_end":17617,"line_start":92,"line_end":92,"column_start":5,"column_end":55}},{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":17622,"byte_end":17631,"line_start":93,"line_end":93,"column_start":5,"column_end":14}}]},{"kind":"Function","id":{"krate":0,"index":80},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":12933,"byte_end":12942,"line_start":258,"line_end":258,"column_start":8,"column_end":17},"name":"getrandom","qualname":"::getrandom","value":"pub fn getrandom(&mut [u8]) -> Result<(), Error>","parent":null,"children":[],"decl_id":null,"docs":" Fill `dest` with random bytes from the system's preferred random number\n source.","sig":null,"attributes":[{"value":"/ Fill `dest` with random bytes from the system's preferred random number","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":12253,"byte_end":12328,"line_start":245,"line_end":245,"column_start":1,"column_end":76}},{"value":"/ source.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":12329,"byte_end":12340,"line_start":246,"line_end":246,"column_start":1,"column_end":12}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":12341,"byte_end":12344,"line_start":247,"line_end":247,"column_start":1,"column_end":4}},{"value":"/ This function returns an error on any failure, including partial reads. We","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":12345,"byte_end":12423,"line_start":248,"line_end":248,"column_start":1,"column_end":79}},{"value":"/ make no guarantees regarding the contents of `dest` on error. If `dest` is","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":12424,"byte_end":12502,"line_start":249,"line_end":249,"column_start":1,"column_end":79}},{"value":"/ empty, `getrandom` immediately returns success, making no calls to the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":12503,"byte_end":12577,"line_start":250,"line_end":250,"column_start":1,"column_end":75}},{"value":"/ underlying operating system.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":12578,"byte_end":12610,"line_start":251,"line_end":251,"column_start":1,"column_end":33}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":12611,"byte_end":12614,"line_start":252,"line_end":252,"column_start":1,"column_end":4}},{"value":"/ Blocking is possible, at least during early boot; see module documentation.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":12615,"byte_end":12694,"line_start":253,"line_end":253,"column_start":1,"column_end":80}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":12695,"byte_end":12698,"line_start":254,"line_end":254,"column_start":1,"column_end":4}},{"value":"/ In general, `getrandom` will be fast enough for interactive usage, though","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":12699,"byte_end":12776,"line_start":255,"line_end":255,"column_start":1,"column_end":78}},{"value":"/ significantly slower than a user-space CSPRNG; for the latter consider","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":12777,"byte_end":12851,"line_start":256,"line_end":256,"column_start":1,"column_end":75}},{"value":"/ [`rand::thread_rng`](https://docs.rs/rand/*/rand/fn.thread_rng.html).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/lib.rs","byte_start":12852,"byte_end":12925,"line_start":257,"line_end":257,"column_start":1,"column_end":74}}]}],"impls":[{"id":0,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":14570,"byte_end":14575,"line_start":33,"line_end":33,"column_start":6,"column_end":11},"value":"","parent":null,"children":[{"krate":0,"index":15},{"krate":0,"index":16},{"krate":0,"index":17},{"krate":0,"index":18},{"krate":0,"index":19},{"krate":0,"index":20},{"krate":0,"index":21},{"krate":0,"index":22},{"krate":0,"index":23},{"krate":0,"index":24},{"krate":0,"index":25},{"krate":0,"index":26},{"krate":0,"index":27},{"krate":0,"index":28},{"krate":0,"index":29}],"docs":"","sig":null,"attributes":[]},{"id":1,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":18500,"byte_end":18505,"line_start":123,"line_end":123,"column_start":21,"column_end":26},"value":"","parent":null,"children":[{"krate":0,"index":31}],"docs":"","sig":null,"attributes":[]},{"id":2,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":19160,"byte_end":19165,"line_start":142,"line_end":142,"column_start":23,"column_end":28},"value":"","parent":null,"children":[{"krate":0,"index":34}],"docs":"","sig":null,"attributes":[]},{"id":3,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":19684,"byte_end":19689,"line_start":158,"line_end":158,"column_start":27,"column_end":32},"value":"","parent":null,"children":[{"krate":0,"index":37}],"docs":"","sig":null,"attributes":[]},{"id":4,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/util.rs","byte_start":22315,"byte_end":22324,"line_start":31,"line_end":31,"column_start":6,"column_end":15},"value":"","parent":null,"children":[{"krate":0,"index":51},{"krate":0,"index":52},{"krate":0,"index":53}],"docs":"","sig":null,"attributes":[]},{"id":5,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/util.rs","byte_start":23155,"byte_end":23163,"line_start":56,"line_end":56,"column_start":6,"column_end":14},"value":"","parent":null,"children":[{"krate":0,"index":59},{"krate":0,"index":60}],"docs":"","sig":null,"attributes":[]},{"id":6,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs","byte_start":23871,"byte_end":23876,"line_start":15,"line_end":15,"column_start":26,"column_end":31},"value":"","parent":null,"children":[{"krate":0,"index":75}],"docs":"","sig":null,"attributes":[]},{"id":7,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs","byte_start":24121,"byte_end":24126,"line_start":24,"line_end":24,"column_start":28,"column_end":33},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":8,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/util_libc.rs","byte_start":13434142,"byte_end":13434146,"line_start":86,"line_end":86,"column_start":6,"column_end":10},"value":"","parent":null,"children":[{"krate":0,"index":118},{"krate":0,"index":119}],"docs":"","sig":null,"attributes":[]},{"id":9,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/use_file.rs","byte_start":13439252,"byte_end":13439257,"line_start":117,"line_end":117,"column_start":6,"column_end":11},"value":"","parent":null,"children":[{"krate":0,"index":162},{"krate":0,"index":163},{"krate":0,"index":164}],"docs":"","sig":null,"attributes":[]},{"id":10,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/use_file.rs","byte_start":13439630,"byte_end":13439635,"line_start":131,"line_end":131,"column_start":22,"column_end":27},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":11,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/use_file.rs","byte_start":13439700,"byte_end":13439709,"line_start":135,"line_end":135,"column_start":27,"column_end":36},"value":"","parent":null,"children":[{"krate":0,"index":172}],"docs":"","sig":null,"attributes":[]}],"refs":[],"macro_refs":[],"relations":[{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":14570,"byte_end":14575,"line_start":33,"line_end":33,"column_start":6,"column_end":11},"kind":{"Impl":{"id":0}},"from":{"krate":0,"index":81},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":18500,"byte_end":18505,"line_start":123,"line_end":123,"column_start":21,"column_end":26},"kind":{"Impl":{"id":1}},"from":{"krate":0,"index":81},"to":{"krate":1,"index":9553}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":19160,"byte_end":19165,"line_start":142,"line_end":142,"column_start":23,"column_end":28},"kind":{"Impl":{"id":2}},"from":{"krate":0,"index":81},"to":{"krate":1,"index":9560}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error.rs","byte_start":19684,"byte_end":19689,"line_start":158,"line_end":158,"column_start":27,"column_end":32},"kind":{"Impl":{"id":3}},"from":{"krate":0,"index":81},"to":{"krate":1,"index":2925}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/util.rs","byte_start":22315,"byte_end":22324,"line_start":31,"line_end":31,"column_start":6,"column_end":15},"kind":{"Impl":{"id":4}},"from":{"krate":0,"index":47},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/util.rs","byte_start":23155,"byte_end":23163,"line_start":56,"line_end":56,"column_start":6,"column_end":14},"kind":{"Impl":{"id":5}},"from":{"krate":0,"index":55},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs","byte_start":23871,"byte_end":23876,"line_start":15,"line_end":15,"column_start":26,"column_end":31},"kind":{"Impl":{"id":6}},"from":{"krate":5,"index":3816},"to":{"krate":1,"index":2925}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/error_impls.rs","byte_start":24121,"byte_end":24126,"line_start":24,"line_end":24,"column_start":28,"column_end":33},"kind":{"Impl":{"id":7}},"from":{"krate":0,"index":81},"to":{"krate":5,"index":2338}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/util_libc.rs","byte_start":13434142,"byte_end":13434146,"line_start":86,"line_end":86,"column_start":6,"column_end":10},"kind":{"Impl":{"id":8}},"from":{"krate":0,"index":114},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/use_file.rs","byte_start":13439252,"byte_end":13439257,"line_start":117,"line_end":117,"column_start":6,"column_end":11},"kind":{"Impl":{"id":9}},"from":{"krate":0,"index":158},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/use_file.rs","byte_start":13439630,"byte_end":13439635,"line_start":131,"line_end":131,"column_start":22,"column_end":27},"kind":{"Impl":{"id":10}},"from":{"krate":0,"index":158},"to":{"krate":1,"index":3031}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.6/src/use_file.rs","byte_start":13439700,"byte_end":13439709,"line_start":135,"line_end":135,"column_start":27,"column_end":36},"kind":{"Impl":{"id":11}},"from":{"krate":0,"index":166},"to":{"krate":1,"index":3258}}]} \ No newline at end of file diff --git a/target/rls/debug/deps/save-analysis/liblazy_static-ae46812994b3b675.json b/target/rls/debug/deps/save-analysis/liblazy_static-ae46812994b3b675.json new file mode 100644 index 0000000..b9bd38f --- /dev/null +++ b/target/rls/debug/deps/save-analysis/liblazy_static-ae46812994b3b675.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.1","compilation":{"directory":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0","program":"/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rls","arguments":["--crate-name","lazy_static","/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","--json=diagnostic-rendered-ansi,future-incompat","--crate-type","lib","--emit=dep-info,metadata","-C","embed-bitcode=no","-C","debuginfo=2","-C","metadata=ae46812994b3b675","-C","extra-filename=-ae46812994b3b675","--out-dir","/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps","-L","dependency=/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps","--cap-lints","allow","--error-format=json","--sysroot","/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu"],"output":"/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/liblazy_static-ae46812994b3b675.rmeta"},"prelude":{"crate_id":{"name":"lazy_static","disambiguator":[9708727071027780738,0]},"crate_root":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src","external_crates":[{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","num":1,"id":{"name":"core","disambiguator":[5443730852259234579,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","num":2,"id":{"name":"compiler_builtins","disambiguator":[4162025702538114948,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","num":3,"id":{"name":"rustc_std_workspace_core","disambiguator":[17612152343462746361,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","num":4,"id":{"name":"std","disambiguator":[14026078687029744792,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","num":5,"id":{"name":"alloc","disambiguator":[5560808256873132085,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","num":6,"id":{"name":"libc","disambiguator":[135160560163186024,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","num":7,"id":{"name":"unwind","disambiguator":[5800521777261530329,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","num":8,"id":{"name":"cfg_if","disambiguator":[7095478770525139037,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","num":9,"id":{"name":"hashbrown","disambiguator":[17225897750877482818,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","num":10,"id":{"name":"rustc_std_workspace_alloc","disambiguator":[15613653607383163471,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","num":11,"id":{"name":"rustc_demangle","disambiguator":[12428323400248712701,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","num":12,"id":{"name":"std_detect","disambiguator":[11893279639181573711,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","num":13,"id":{"name":"addr2line","disambiguator":[13583305032161054644,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","num":14,"id":{"name":"gimli","disambiguator":[16609837797022023111,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","num":15,"id":{"name":"object","disambiguator":[18098459435141129808,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","num":16,"id":{"name":"memchr","disambiguator":[15244551393771456017,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","num":17,"id":{"name":"miniz_oxide","disambiguator":[6576340271055396708,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","num":18,"id":{"name":"adler","disambiguator":[15284510821186066958,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","num":19,"id":{"name":"panic_unwind","disambiguator":[12982807908830018159,0]}}],"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":342,"byte_end":6338,"line_start":8,"line_end":215,"column_start":1,"column_end":2}},"imports":[{"kind":"Use","ref_id":{"krate":4,"index":8572},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","byte_start":6895,"byte_end":6904,"line_start":16,"line_end":16,"column_start":26,"column_end":35},"alias_span":null,"name":"ONCE_INIT","value":"","parent":{"krate":0,"index":4}},{"kind":"Use","ref_id":{"krate":1,"index":3234},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":3189,"byte_end":3194,"line_start":120,"line_end":120,"column_start":20,"column_end":25},"alias_span":null,"name":"__Deref","value":"","parent":{"krate":0,"index":0}}],"defs":[{"kind":"Mod","id":{"krate":0,"index":0},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":342,"byte_end":6338,"line_start":8,"line_end":215,"column_start":1,"column_end":2},"name":"","qualname":"::","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/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":34},{"krate":0,"index":37},{"krate":0,"index":38},{"krate":0,"index":39},{"krate":0,"index":41}],"decl_id":null,"docs":"A macro for declaring lazily evaluated statics.","sig":null,"attributes":[{"value":"*\nA macro for declaring lazily evaluated statics.\n\nUsing this macro, it is possible to have `static`s that require code to be\nexecuted at runtime in order to be initialized.\nThis includes anything requiring heap allocations, like vectors or hash maps,\nas well as anything that requires function calls to be computed.\n\n# Syntax\n\n```ignore\nlazy_static! {\n [pub] static ref NAME_1: TYPE_1 = EXPR_1;\n [pub] static ref NAME_2: TYPE_2 = EXPR_2;\n ...\n [pub] static ref NAME_N: TYPE_N = EXPR_N;\n}\n```\n\nAttributes (including doc comments) are supported as well:\n\n```rust\n# #[macro_use]\n# extern crate lazy_static;\n# fn main() {\nlazy_static! {\n /// This is an example for using doc comment attributes\n static ref EXAMPLE: u8 = 42;\n}\n# }\n```\n\n# Semantics\n\nFor a given `static ref NAME: TYPE = EXPR;`, the macro generates a unique type that\nimplements `Deref` and stores it in a static with name `NAME`. (Attributes end up\nattaching to this type.)\n\nOn first deref, `EXPR` gets evaluated and stored internally, such that all further derefs\ncan return a reference to the same object. Note that this can lead to deadlocks\nif you have multiple lazy statics that depend on each other in their initialization.\n\nApart from the lazy initialization, the resulting \"static ref\" variables\nhave generally the same properties as regular \"static\" variables:\n\n- Any type in them needs to fulfill the `Sync` trait.\n- If the type has a destructor, then it will not run when the process exits.\n\n# Example\n\nUsing the macro:\n\n```rust\n#[macro_use]\nextern crate lazy_static;\n\nuse std::collections::HashMap;\n\nlazy_static! {\n static ref HASHMAP: HashMap = {\n let mut m = HashMap::new();\n m.insert(0, \"foo\");\n m.insert(1, \"bar\");\n m.insert(2, \"baz\");\n m\n };\n static ref COUNT: usize = HASHMAP.len();\n static ref NUMBER: u32 = times_two(21);\n}\n\nfn times_two(n: u32) -> u32 { n * 2 }\n\nfn main() {\n println!(\"The map has {} entries.\", *COUNT);\n println!(\"The entry for `0` is \\\"{}\\\".\", HASHMAP.get(&0).unwrap());\n println!(\"A expensive calculation on a static results in: {}.\", *NUMBER);\n}\n```\n\n# Implementation details\n\nThe `Deref` implementation uses a hidden static variable that is guarded by an atomic check on each access.\n\n# Cargo features\n\nThis crate provides one cargo feature:\n\n- `spin_no_std`: This allows using this crate in a no-std environment, by depending on the standalone `spin` crate.\n\n*/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":342,"byte_end":2810,"line_start":8,"line_end":97,"column_start":1,"column_end":3}},{"value":"no_std","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":2873,"byte_end":2883,"line_start":100,"line_end":100,"column_start":1,"column_end":11}}]},{"kind":"Mod","id":{"krate":0,"index":4},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"name":"lazy","qualname":"::lazy","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","parent":null,"children":[{"krate":0,"index":5},{"krate":0,"index":6},{"krate":0,"index":7},{"krate":0,"index":8},{"krate":0,"index":11},{"krate":0,"index":14},{"krate":0,"index":17},{"krate":0,"index":20},{"krate":0,"index":25},{"krate":0,"index":31},{"krate":0,"index":33}],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"cfg(not(feature = \"spin_no_std\"))","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":2885,"byte_end":2921,"line_start":102,"line_end":102,"column_start":1,"column_end":37}},{"value":"path = \"inline_lazy.rs\"","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":2922,"byte_end":2946,"line_start":103,"line_end":103,"column_start":1,"column_end":25}}]},{"kind":"Struct","id":{"krate":0,"index":20},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","byte_start":6988,"byte_end":6992,"line_start":19,"line_end":19,"column_start":12,"column_end":16},"name":"Lazy","qualname":"::lazy::Lazy","value":"","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Const","id":{"krate":0,"index":27},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","byte_start":7090,"byte_end":7094,"line_start":23,"line_end":23,"column_start":15,"column_end":19},"name":"INIT","qualname":"::lazy::Lazy::::INIT","value":"Self","parent":{"krate":0,"index":25},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"allow(deprecated)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","byte_start":7055,"byte_end":7075,"line_start":22,"line_end":22,"column_start":5,"column_end":25}}]},{"kind":"Method","id":{"krate":0,"index":28},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","byte_start":7171,"byte_end":7174,"line_start":26,"line_end":26,"column_start":12,"column_end":15},"name":"get","qualname":">::get","value":"pub fn get(&'static Self, F) -> &T where F: FnOnce() -> T","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"inline(always)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","byte_start":7142,"byte_end":7159,"line_start":25,"line_end":25,"column_start":5,"column_end":22}}]},{"kind":"Trait","id":{"krate":0,"index":39},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":5660,"byte_end":5670,"line_start":185,"line_end":185,"column_start":11,"column_end":21},"name":"LazyStatic","qualname":"::LazyStatic","value":"LazyStatic","parent":null,"children":[{"krate":0,"index":40}],"decl_id":null,"docs":" Support trait for enabling a few common operation on lazy static values.","sig":null,"attributes":[{"value":"/ Support trait for enabling a few common operation on lazy static values.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":5466,"byte_end":5542,"line_start":181,"line_end":181,"column_start":1,"column_end":77}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":5543,"byte_end":5546,"line_start":182,"line_end":182,"column_start":1,"column_end":4}},{"value":"/ This is implemented by each defined lazy static, and","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":5547,"byte_end":5603,"line_start":183,"line_end":183,"column_start":1,"column_end":57}},{"value":"/ used by the free functions in this crate.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":5604,"byte_end":5649,"line_start":184,"line_end":184,"column_start":1,"column_end":46}}]},{"kind":"Method","id":{"krate":0,"index":40},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":5699,"byte_end":5709,"line_start":187,"line_end":187,"column_start":8,"column_end":18},"name":"initialize","qualname":"::LazyStatic::initialize","value":"pub fn initialize(&Self)","parent":{"krate":0,"index":39},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":41},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":6265,"byte_end":6275,"line_start":213,"line_end":213,"column_start":8,"column_end":18},"name":"initialize","qualname":"::initialize","value":"pub fn initialize(&T)","parent":null,"children":[],"decl_id":null,"docs":" Takes a shared reference to a lazy static and initializes\n it if it has not been already.","sig":null,"attributes":[{"value":"/ Takes a shared reference to a lazy static and initializes","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":5727,"byte_end":5788,"line_start":190,"line_end":190,"column_start":1,"column_end":62}},{"value":"/ it if it has not been already.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":5789,"byte_end":5823,"line_start":191,"line_end":191,"column_start":1,"column_end":35}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":5824,"byte_end":5827,"line_start":192,"line_end":192,"column_start":1,"column_end":4}},{"value":"/ This can be used to control the initialization point of a lazy static.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":5828,"byte_end":5902,"line_start":193,"line_end":193,"column_start":1,"column_end":75}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":5903,"byte_end":5906,"line_start":194,"line_end":194,"column_start":1,"column_end":4}},{"value":"/ Example:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":5907,"byte_end":5919,"line_start":195,"line_end":195,"column_start":1,"column_end":13}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":5920,"byte_end":5923,"line_start":196,"line_end":196,"column_start":1,"column_end":4}},{"value":"/ ```rust","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":5924,"byte_end":5935,"line_start":197,"line_end":197,"column_start":1,"column_end":12}},{"value":"/ #[macro_use]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":5936,"byte_end":5952,"line_start":198,"line_end":198,"column_start":1,"column_end":17}},{"value":"/ extern crate lazy_static;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":5953,"byte_end":5982,"line_start":199,"line_end":199,"column_start":1,"column_end":30}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":5983,"byte_end":5986,"line_start":200,"line_end":200,"column_start":1,"column_end":4}},{"value":"/ lazy_static! {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":5987,"byte_end":6005,"line_start":201,"line_end":201,"column_start":1,"column_end":19}},{"value":"/ static ref BUFFER: Vec = (0..255).collect();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":6006,"byte_end":6062,"line_start":202,"line_end":202,"column_start":1,"column_end":57}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":6063,"byte_end":6068,"line_start":203,"line_end":203,"column_start":1,"column_end":6}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":6069,"byte_end":6072,"line_start":204,"line_end":204,"column_start":1,"column_end":4}},{"value":"/ fn main() {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":6073,"byte_end":6088,"line_start":205,"line_end":205,"column_start":1,"column_end":16}},{"value":"/ lazy_static::initialize(&BUFFER);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":6089,"byte_end":6130,"line_start":206,"line_end":206,"column_start":1,"column_end":42}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":6131,"byte_end":6134,"line_start":207,"line_end":207,"column_start":1,"column_end":4}},{"value":"/ // ...","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":6135,"byte_end":6149,"line_start":208,"line_end":208,"column_start":1,"column_end":15}},{"value":"/ work_with_initialized_data(&BUFFER);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":6150,"byte_end":6194,"line_start":209,"line_end":209,"column_start":1,"column_end":45}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":6195,"byte_end":6200,"line_start":210,"line_end":210,"column_start":1,"column_end":6}},{"value":"/ # fn work_with_initialized_data(_: &[u8]) {}","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":6201,"byte_end":6249,"line_start":211,"line_end":211,"column_start":1,"column_end":49}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":6250,"byte_end":6257,"line_start":212,"line_end":212,"column_start":1,"column_end":8}}]}],"impls":[{"id":0,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","byte_start":7041,"byte_end":7045,"line_start":21,"line_end":21,"column_start":15,"column_end":19},"value":"","parent":null,"children":[{"krate":0,"index":27},{"krate":0,"index":28}],"docs":"","sig":null,"attributes":[]},{"id":1,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","byte_start":7793,"byte_end":7797,"line_start":49,"line_end":49,"column_start":31,"column_end":35},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]}],"refs":[{"kind":"Mod","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs","byte_start":2970,"byte_end":2974,"line_start":105,"line_end":105,"column_start":9,"column_end":13},"ref_id":{"krate":0,"index":4}}],"macro_refs":[],"relations":[{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","byte_start":7041,"byte_end":7045,"line_start":21,"line_end":21,"column_start":15,"column_end":19},"kind":{"Impl":{"id":0}},"from":{"krate":0,"index":20},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs","byte_start":7793,"byte_end":7797,"line_start":49,"line_end":49,"column_start":31,"column_end":35},"kind":{"Impl":{"id":1}},"from":{"krate":0,"index":20},"to":{"krate":1,"index":3031}}]} \ No newline at end of file diff --git a/target/rls/debug/deps/save-analysis/libppv_lite86-b170e395a41f89b2.json b/target/rls/debug/deps/save-analysis/libppv_lite86-b170e395a41f89b2.json new file mode 100644 index 0000000..3fe6676 --- /dev/null +++ b/target/rls/debug/deps/save-analysis/libppv_lite86-b170e395a41f89b2.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.1","compilation":{"directory":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16","program":"/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rls","arguments":["--crate-name","ppv_lite86","--edition=2018","/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/lib.rs","--json=diagnostic-rendered-ansi,future-incompat","--crate-type","lib","--emit=dep-info,metadata","-C","embed-bitcode=no","-C","debuginfo=2","--cfg","feature=\"simd\"","--cfg","feature=\"std\"","-C","metadata=b170e395a41f89b2","-C","extra-filename=-b170e395a41f89b2","--out-dir","/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps","-L","dependency=/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps","--cap-lints","allow","--error-format=json","--sysroot","/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu"],"output":"/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/libppv_lite86-b170e395a41f89b2.rmeta"},"prelude":{"crate_id":{"name":"ppv_lite86","disambiguator":[2933753580364552420,0]},"crate_root":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src","external_crates":[{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/lib.rs","num":1,"id":{"name":"core","disambiguator":[5443730852259234579,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/lib.rs","num":2,"id":{"name":"compiler_builtins","disambiguator":[4162025702538114948,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/lib.rs","num":3,"id":{"name":"rustc_std_workspace_core","disambiguator":[17612152343462746361,0]}}],"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/lib.rs","byte_start":0,"byte_end":759,"line_start":1,"line_end":22,"column_start":1,"column_end":70}},"imports":[{"kind":"GlobUse","ref_id":null,"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/lib.rs","byte_start":316,"byte_end":317,"line_start":10,"line_end":10,"column_start":22,"column_end":23},"alias_span":null,"name":"*","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":0,"index":1677},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/lib.rs","byte_start":711,"byte_end":725,"line_start":22,"line_end":22,"column_start":22,"column_end":36},"alias_span":null,"name":"vec128_storage","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":0,"index":1688},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/lib.rs","byte_start":727,"byte_end":741,"line_start":22,"line_end":22,"column_start":38,"column_end":52},"alias_span":null,"name":"vec256_storage","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":0,"index":1701},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/lib.rs","byte_start":743,"byte_end":757,"line_start":22,"line_end":22,"column_start":54,"column_end":68},"alias_span":null,"name":"vec512_storage","value":"","parent":{"krate":0,"index":0}}],"defs":[{"kind":"Mod","id":{"krate":0,"index":0},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/lib.rs","byte_start":0,"byte_end":759,"line_start":1,"line_end":22,"column_start":1,"column_end":70},"name":"","qualname":"::","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.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":172},{"krate":0,"index":332},{"krate":0,"index":333},{"krate":0,"index":987},{"krate":0,"index":990},{"krate":0,"index":991},{"krate":0,"index":994},{"krate":0,"index":997}],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"no_std","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/lib.rs","byte_start":0,"byte_end":10,"line_start":1,"line_end":1,"column_start":1,"column_end":11}}]},{"kind":"Struct","id":{"krate":0,"index":1000},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":1060,"byte_end":1062,"line_start":10,"line_end":10,"column_start":12,"column_end":14},"name":"x2","qualname":"::soft::x2","value":"","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"allow(non_camel_case_types)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":1018,"byte_end":1048,"line_start":9,"line_end":9,"column_start":1,"column_end":31}}]},{"kind":"Field","id":{"krate":0,"index":1004},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":1069,"byte_end":1079,"line_start":10,"line_end":10,"column_start":21,"column_end":31},"name":"0","qualname":"::soft::x2::0","value":"[W; 2]","parent":{"krate":0,"index":1000},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":23},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":1153,"byte_end":1156,"line_start":13,"line_end":13,"column_start":12,"column_end":15},"name":"new","qualname":">::new","value":"pub fn new([W; ]) -> Self","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"inline(always)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":1124,"byte_end":1141,"line_start":12,"line_end":12,"column_start":5,"column_end":22}}]},{"kind":"Struct","id":{"krate":0,"index":1075},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":6749,"byte_end":6751,"line_start":225,"line_end":225,"column_start":12,"column_end":14},"name":"x4","qualname":"::soft::x4","value":"","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"allow(non_camel_case_types)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":6707,"byte_end":6737,"line_start":224,"line_end":224,"column_start":1,"column_end":31}}]},{"kind":"Field","id":{"krate":0,"index":1078},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":6755,"byte_end":6765,"line_start":225,"line_end":225,"column_start":18,"column_end":28},"name":"0","qualname":"::soft::x4::0","value":"[W; 4]","parent":{"krate":0,"index":1075},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":106},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":6817,"byte_end":6820,"line_start":228,"line_end":228,"column_start":12,"column_end":15},"name":"new","qualname":">::new","value":"pub fn new([W; ]) -> Self","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"inline(always)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":6788,"byte_end":6805,"line_start":227,"line_end":227,"column_start":5,"column_end":22}}]},{"kind":"Trait","id":{"krate":0,"index":195},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":13967,"byte_end":13973,"line_start":4,"line_end":4,"column_start":11,"column_end":17},"name":"AndNot","qualname":"::types::AndNot","value":"AndNot","parent":null,"children":[{"krate":0,"index":196},{"krate":0,"index":197}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Type","id":{"krate":0,"index":196},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":13985,"byte_end":13991,"line_start":5,"line_end":5,"column_start":10,"column_end":16},"name":"Output","qualname":"::types::AndNot::Output","value":"type Output;","parent":{"krate":0,"index":195},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":197},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14000,"byte_end":14006,"line_start":6,"line_end":6,"column_start":8,"column_end":14},"name":"andnot","qualname":"::types::AndNot::andnot","value":"pub fn andnot(Self, Self) -> Self::Output","parent":{"krate":0,"index":195},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":198},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14053,"byte_end":14058,"line_start":8,"line_end":8,"column_start":11,"column_end":16},"name":"BSwap","qualname":"::types::BSwap","value":"BSwap","parent":null,"children":[{"krate":0,"index":199}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":199},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14068,"byte_end":14073,"line_start":9,"line_end":9,"column_start":8,"column_end":13},"name":"bswap","qualname":"::types::BSwap::bswap","value":"pub fn bswap(Self) -> Self","parent":{"krate":0,"index":198},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":200},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14134,"byte_end":14142,"line_start":12,"line_end":12,"column_start":11,"column_end":19},"name":"ArithOps","qualname":"::types::ArithOps","value":"ArithOps: Add + AddAssign + Sized + Copy + Clone + BSwap","parent":null,"children":[],"decl_id":null,"docs":" Ops that depend on word size\n","sig":null,"attributes":[{"value":"/ Ops that depend on word size","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14091,"byte_end":14123,"line_start":11,"line_end":11,"column_start":1,"column_end":33}}]},{"kind":"Trait","id":{"krate":0,"index":201},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14272,"byte_end":14279,"line_start":14,"line_end":14,"column_start":11,"column_end":18},"name":"BitOps0","qualname":"::types::BitOps0","value":"BitOps0: BitAnd + BitOr + BitXor +\nBitXorAssign + Not + AndNot + Sized + Copy +\nClone","parent":null,"children":[],"decl_id":null,"docs":" Ops that are independent of word size and endian\n","sig":null,"attributes":[{"value":"/ Ops that are independent of word size and endian","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14209,"byte_end":14261,"line_start":13,"line_end":13,"column_start":1,"column_end":53}}]},{"kind":"Trait","id":{"krate":0,"index":202},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14484,"byte_end":14492,"line_start":27,"line_end":27,"column_start":11,"column_end":19},"name":"BitOps32","qualname":"::types::BitOps32","value":"BitOps32: BitOps0 + RotateEachWord32","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":203},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14534,"byte_end":14542,"line_start":28,"line_end":28,"column_start":11,"column_end":19},"name":"BitOps64","qualname":"::types::BitOps64","value":"BitOps64: BitOps32 + RotateEachWord64","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":204},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14585,"byte_end":14594,"line_start":29,"line_end":29,"column_start":11,"column_end":20},"name":"BitOps128","qualname":"::types::BitOps128","value":"BitOps128: BitOps64 + RotateEachWord128","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":205},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14639,"byte_end":14655,"line_start":31,"line_end":31,"column_start":11,"column_end":27},"name":"RotateEachWord32","qualname":"::types::RotateEachWord32","value":"RotateEachWord32","parent":null,"children":[{"krate":0,"index":206},{"krate":0,"index":207},{"krate":0,"index":208},{"krate":0,"index":209},{"krate":0,"index":210},{"krate":0,"index":211},{"krate":0,"index":212},{"krate":0,"index":213}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":206},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14665,"byte_end":14688,"line_start":32,"line_end":32,"column_start":8,"column_end":31},"name":"rotate_each_word_right7","qualname":"::types::RotateEachWord32::rotate_each_word_right7","value":"pub fn rotate_each_word_right7(Self) -> Self","parent":{"krate":0,"index":205},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":207},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14711,"byte_end":14734,"line_start":33,"line_end":33,"column_start":8,"column_end":31},"name":"rotate_each_word_right8","qualname":"::types::RotateEachWord32::rotate_each_word_right8","value":"pub fn rotate_each_word_right8(Self) -> Self","parent":{"krate":0,"index":205},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":208},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14757,"byte_end":14781,"line_start":34,"line_end":34,"column_start":8,"column_end":32},"name":"rotate_each_word_right11","qualname":"::types::RotateEachWord32::rotate_each_word_right11","value":"pub fn rotate_each_word_right11(Self) -> Self","parent":{"krate":0,"index":205},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":209},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14804,"byte_end":14828,"line_start":35,"line_end":35,"column_start":8,"column_end":32},"name":"rotate_each_word_right12","qualname":"::types::RotateEachWord32::rotate_each_word_right12","value":"pub fn rotate_each_word_right12(Self) -> Self","parent":{"krate":0,"index":205},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":210},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14851,"byte_end":14875,"line_start":36,"line_end":36,"column_start":8,"column_end":32},"name":"rotate_each_word_right16","qualname":"::types::RotateEachWord32::rotate_each_word_right16","value":"pub fn rotate_each_word_right16(Self) -> Self","parent":{"krate":0,"index":205},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":211},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14898,"byte_end":14922,"line_start":37,"line_end":37,"column_start":8,"column_end":32},"name":"rotate_each_word_right20","qualname":"::types::RotateEachWord32::rotate_each_word_right20","value":"pub fn rotate_each_word_right20(Self) -> Self","parent":{"krate":0,"index":205},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":212},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14945,"byte_end":14969,"line_start":38,"line_end":38,"column_start":8,"column_end":32},"name":"rotate_each_word_right24","qualname":"::types::RotateEachWord32::rotate_each_word_right24","value":"pub fn rotate_each_word_right24(Self) -> Self","parent":{"krate":0,"index":205},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":213},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14992,"byte_end":15016,"line_start":39,"line_end":39,"column_start":8,"column_end":32},"name":"rotate_each_word_right25","qualname":"::types::RotateEachWord32::rotate_each_word_right25","value":"pub fn rotate_each_word_right25(Self) -> Self","parent":{"krate":0,"index":205},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":214},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":15045,"byte_end":15061,"line_start":42,"line_end":42,"column_start":11,"column_end":27},"name":"RotateEachWord64","qualname":"::types::RotateEachWord64","value":"RotateEachWord64","parent":null,"children":[{"krate":0,"index":215}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":215},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":15071,"byte_end":15095,"line_start":43,"line_end":43,"column_start":8,"column_end":32},"name":"rotate_each_word_right32","qualname":"::types::RotateEachWord64::rotate_each_word_right32","value":"pub fn rotate_each_word_right32(Self) -> Self","parent":{"krate":0,"index":214},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":216},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":15124,"byte_end":15141,"line_start":46,"line_end":46,"column_start":11,"column_end":28},"name":"RotateEachWord128","qualname":"::types::RotateEachWord128","value":"RotateEachWord128","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":227},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":15579,"byte_end":15589,"line_start":59,"line_end":59,"column_start":11,"column_end":21},"name":"UnsafeFrom","qualname":"::types::UnsafeFrom","value":"UnsafeFrom","parent":null,"children":[{"krate":0,"index":229}],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"allow(clippy :: missing_safety_doc)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":15532,"byte_end":15568,"line_start":58,"line_end":58,"column_start":1,"column_end":37}}]},{"kind":"Method","id":{"krate":0,"index":229},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":15609,"byte_end":15620,"line_start":60,"line_end":60,"column_start":15,"column_end":26},"name":"unsafe_from","qualname":"::types::UnsafeFrom::unsafe_from","value":"pub unsafe fn unsafe_from(T) -> Self","parent":{"krate":0,"index":227},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":230},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":15730,"byte_end":15734,"line_start":64,"line_end":64,"column_start":11,"column_end":15},"name":"Vec2","qualname":"::types::Vec2","value":"Vec2","parent":null,"children":[{"krate":0,"index":232},{"krate":0,"index":233}],"decl_id":null,"docs":" A vector composed of two elements, which may be words or themselves vectors.\n","sig":null,"attributes":[{"value":"/ A vector composed of two elements, which may be words or themselves vectors.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":15639,"byte_end":15719,"line_start":63,"line_end":63,"column_start":1,"column_end":81}}]},{"kind":"Method","id":{"krate":0,"index":232},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":15747,"byte_end":15754,"line_start":65,"line_end":65,"column_start":8,"column_end":15},"name":"extract","qualname":"::types::Vec2::extract","value":"pub fn extract(Self, u32) -> W","parent":{"krate":0,"index":230},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":233},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":15782,"byte_end":15788,"line_start":66,"line_end":66,"column_start":8,"column_end":14},"name":"insert","qualname":"::types::Vec2::insert","value":"pub fn insert(Self, W, u32) -> Self","parent":{"krate":0,"index":230},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":234},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":15913,"byte_end":15917,"line_start":70,"line_end":70,"column_start":11,"column_end":15},"name":"Vec4","qualname":"::types::Vec4","value":"Vec4","parent":null,"children":[{"krate":0,"index":236},{"krate":0,"index":237}],"decl_id":null,"docs":" A vector composed of four elements, which may be words or themselves vectors.\n","sig":null,"attributes":[{"value":"/ A vector composed of four elements, which may be words or themselves vectors.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":15821,"byte_end":15902,"line_start":69,"line_end":69,"column_start":1,"column_end":82}}]},{"kind":"Method","id":{"krate":0,"index":236},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":15930,"byte_end":15937,"line_start":71,"line_end":71,"column_start":8,"column_end":15},"name":"extract","qualname":"::types::Vec4::extract","value":"pub fn extract(Self, u32) -> W","parent":{"krate":0,"index":234},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":237},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":15965,"byte_end":15971,"line_start":72,"line_end":72,"column_start":8,"column_end":14},"name":"insert","qualname":"::types::Vec4::insert","value":"pub fn insert(Self, W, u32) -> Self","parent":{"krate":0,"index":234},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":238},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":16256,"byte_end":16263,"line_start":77,"line_end":77,"column_start":11,"column_end":18},"name":"Vec4Ext","qualname":"::types::Vec4Ext","value":"Vec4Ext","parent":null,"children":[{"krate":0,"index":240}],"decl_id":null,"docs":" Vec4 functions which may not be implemented yet for all Vec4 types.\n NOTE: functions in this trait may be moved to Vec4 in any patch release. To avoid breakage,\n import Vec4Ext only together with Vec4, and don't qualify its methods.\n","sig":null,"attributes":[{"value":"/ Vec4 functions which may not be implemented yet for all Vec4 types.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":16003,"byte_end":16074,"line_start":74,"line_end":74,"column_start":1,"column_end":72}},{"value":"/ NOTE: functions in this trait may be moved to Vec4 in any patch release. To avoid breakage,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":16075,"byte_end":16170,"line_start":75,"line_end":75,"column_start":1,"column_end":96}},{"value":"/ import Vec4Ext only together with Vec4, and don't qualify its methods.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":16171,"byte_end":16245,"line_start":76,"line_end":76,"column_start":1,"column_end":75}}]},{"kind":"Method","id":{"krate":0,"index":240},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":16276,"byte_end":16286,"line_start":78,"line_end":78,"column_start":8,"column_end":18},"name":"transpose4","qualname":"::types::Vec4Ext::transpose4","value":"pub fn transpose4(Self, Self, Self, Self) -> (Self, Self, Self, Self) where\nSelf: Sized","parent":{"krate":0,"index":238},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":241},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":16394,"byte_end":16400,"line_start":82,"line_end":82,"column_start":11,"column_end":17},"name":"Vector","qualname":"::types::Vector","value":"Vector","parent":null,"children":[{"krate":0,"index":243}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":243},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":16413,"byte_end":16423,"line_start":83,"line_end":83,"column_start":8,"column_end":18},"name":"to_scalars","qualname":"::types::Vector::to_scalars","value":"pub fn to_scalars(Self) -> T","parent":{"krate":0,"index":241},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":244},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":16583,"byte_end":16589,"line_start":88,"line_end":88,"column_start":11,"column_end":17},"name":"Words4","qualname":"::types::Words4","value":"Words4","parent":null,"children":[{"krate":0,"index":245},{"krate":0,"index":246},{"krate":0,"index":247}],"decl_id":null,"docs":" A vector composed of four words; depending on their size, operations may cross lanes.\n","sig":null,"attributes":[{"value":"/ A vector composed of four words; depending on their size, operations may cross lanes.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":16483,"byte_end":16572,"line_start":87,"line_end":87,"column_start":1,"column_end":90}}]},{"kind":"Method","id":{"krate":0,"index":245},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":16599,"byte_end":16610,"line_start":89,"line_end":89,"column_start":8,"column_end":19},"name":"shuffle1230","qualname":"::types::Words4::shuffle1230","value":"pub fn shuffle1230(Self) -> Self","parent":{"krate":0,"index":244},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":246},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":16633,"byte_end":16644,"line_start":90,"line_end":90,"column_start":8,"column_end":19},"name":"shuffle2301","qualname":"::types::Words4::shuffle2301","value":"pub fn shuffle2301(Self) -> Self","parent":{"krate":0,"index":244},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":247},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":16667,"byte_end":16678,"line_start":91,"line_end":91,"column_start":8,"column_end":19},"name":"shuffle3012","qualname":"::types::Words4::shuffle3012","value":"pub fn shuffle3012(Self) -> Self","parent":{"krate":0,"index":244},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":248},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":16776,"byte_end":16786,"line_start":95,"line_end":95,"column_start":11,"column_end":21},"name":"LaneWords4","qualname":"::types::LaneWords4","value":"LaneWords4","parent":null,"children":[{"krate":0,"index":249},{"krate":0,"index":250},{"krate":0,"index":251}],"decl_id":null,"docs":" A vector composed one or more lanes each composed of four words.\n","sig":null,"attributes":[{"value":"/ A vector composed one or more lanes each composed of four words.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":16697,"byte_end":16765,"line_start":94,"line_end":94,"column_start":1,"column_end":69}}]},{"kind":"Method","id":{"krate":0,"index":249},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":16796,"byte_end":16818,"line_start":96,"line_end":96,"column_start":8,"column_end":30},"name":"shuffle_lane_words1230","qualname":"::types::LaneWords4::shuffle_lane_words1230","value":"pub fn shuffle_lane_words1230(Self) -> Self","parent":{"krate":0,"index":248},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":250},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":16841,"byte_end":16863,"line_start":97,"line_end":97,"column_start":8,"column_end":30},"name":"shuffle_lane_words2301","qualname":"::types::LaneWords4::shuffle_lane_words2301","value":"pub fn shuffle_lane_words2301(Self) -> Self","parent":{"krate":0,"index":248},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":251},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":16886,"byte_end":16908,"line_start":98,"line_end":98,"column_start":8,"column_end":30},"name":"shuffle_lane_words3012","qualname":"::types::LaneWords4::shuffle_lane_words3012","value":"pub fn shuffle_lane_words3012(Self) -> Self","parent":{"krate":0,"index":248},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":252},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17034,"byte_end":17040,"line_start":103,"line_end":103,"column_start":11,"column_end":17},"name":"Swap64","qualname":"::types::Swap64","value":"Swap64","parent":null,"children":[{"krate":0,"index":253},{"krate":0,"index":254},{"krate":0,"index":255},{"krate":0,"index":256},{"krate":0,"index":257},{"krate":0,"index":258},{"krate":0,"index":259}],"decl_id":null,"docs":" Exchange neigboring ranges of bits of the specified size\n","sig":null,"attributes":[{"value":"/ Exchange neigboring ranges of bits of the specified size","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":16963,"byte_end":17023,"line_start":102,"line_end":102,"column_start":1,"column_end":61}}]},{"kind":"Method","id":{"krate":0,"index":253},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17050,"byte_end":17055,"line_start":104,"line_end":104,"column_start":8,"column_end":13},"name":"swap1","qualname":"::types::Swap64::swap1","value":"pub fn swap1(Self) -> Self","parent":{"krate":0,"index":252},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":254},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17078,"byte_end":17083,"line_start":105,"line_end":105,"column_start":8,"column_end":13},"name":"swap2","qualname":"::types::Swap64::swap2","value":"pub fn swap2(Self) -> Self","parent":{"krate":0,"index":252},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":255},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17106,"byte_end":17111,"line_start":106,"line_end":106,"column_start":8,"column_end":13},"name":"swap4","qualname":"::types::Swap64::swap4","value":"pub fn swap4(Self) -> Self","parent":{"krate":0,"index":252},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":256},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17134,"byte_end":17139,"line_start":107,"line_end":107,"column_start":8,"column_end":13},"name":"swap8","qualname":"::types::Swap64::swap8","value":"pub fn swap8(Self) -> Self","parent":{"krate":0,"index":252},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":257},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17162,"byte_end":17168,"line_start":108,"line_end":108,"column_start":8,"column_end":14},"name":"swap16","qualname":"::types::Swap64::swap16","value":"pub fn swap16(Self) -> Self","parent":{"krate":0,"index":252},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":258},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17191,"byte_end":17197,"line_start":109,"line_end":109,"column_start":8,"column_end":14},"name":"swap32","qualname":"::types::Swap64::swap32","value":"pub fn swap32(Self) -> Self","parent":{"krate":0,"index":252},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":259},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17220,"byte_end":17226,"line_start":110,"line_end":110,"column_start":8,"column_end":14},"name":"swap64","qualname":"::types::Swap64::swap64","value":"pub fn swap64(Self) -> Self","parent":{"krate":0,"index":252},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":260},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17255,"byte_end":17260,"line_start":113,"line_end":113,"column_start":11,"column_end":16},"name":"u32x4","qualname":"::types::u32x4","value":"u32x4: BitOps32 + Store + ArithOps + Vec4 + Words4 +\nLaneWords4 + StoreBytes + MultiLane<[u32; ]> + Into","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":263},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17460,"byte_end":17465,"line_start":125,"line_end":125,"column_start":11,"column_end":16},"name":"u64x2","qualname":"::types::u64x2","value":"u64x2: BitOps64 + Store + ArithOps + Vec2 + MultiLane<[u64; ]> +\nInto","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":266},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17598,"byte_end":17604,"line_start":129,"line_end":129,"column_start":11,"column_end":17},"name":"u128x1","qualname":"::types::u128x1","value":"u128x1: BitOps128 + Store + Swap64 + MultiLane<[u128; ]> +\nInto","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":269},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17726,"byte_end":17733,"line_start":134,"line_end":134,"column_start":11,"column_end":18},"name":"u32x4x2","qualname":"::types::u32x4x2","value":"u32x4x2: BitOps32 + Store + Vec2 + MultiLane<[M::u32x4; ]> +\nArithOps + Into + StoreBytes","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":272},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17913,"byte_end":17920,"line_start":144,"line_end":144,"column_start":11,"column_end":18},"name":"u64x2x2","qualname":"::types::u64x2x2","value":"u64x2x2: BitOps64 + Store + Vec2 + MultiLane<[M::u64x2; ]> +\nArithOps + StoreBytes + Into","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":275},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18100,"byte_end":18105,"line_start":154,"line_end":154,"column_start":11,"column_end":16},"name":"u64x4","qualname":"::types::u64x4","value":"u64x4: BitOps64 + Store + Vec4 + MultiLane<[u64; ]> + ArithOps +\nWords4 + StoreBytes + Into","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":278},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18288,"byte_end":18294,"line_start":165,"line_end":165,"column_start":11,"column_end":17},"name":"u128x2","qualname":"::types::u128x2","value":"u128x2: BitOps128 + Store + Vec2 +\nMultiLane<[M::u128x1; ]> + Swap64 + Into","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":281},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18459,"byte_end":18466,"line_start":175,"line_end":175,"column_start":11,"column_end":18},"name":"u32x4x4","qualname":"::types::u32x4x4","value":"u32x4x4: BitOps32 + Store + Vec4 + Vec4Ext +\nVector<[u32; ]> + MultiLane<[M::u32x4; ]> + ArithOps + LaneWords4 +\nInto + StoreBytes","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":285},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18711,"byte_end":18718,"line_start":188,"line_end":188,"column_start":11,"column_end":18},"name":"u64x2x4","qualname":"::types::u64x2x4","value":"u64x2x4: BitOps64 + Store + Vec4 + MultiLane<[M::u64x2; ]> +\nArithOps + Into","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":288},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18897,"byte_end":18903,"line_start":198,"line_end":198,"column_start":11,"column_end":17},"name":"u128x4","qualname":"::types::u128x4","value":"u128x4: BitOps128 + Store + Vec4 +\nMultiLane<[M::u128x1; ]> + Swap64 + Into","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":291},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19117,"byte_end":19126,"line_start":209,"line_end":209,"column_start":11,"column_end":20},"name":"MultiLane","qualname":"::types::MultiLane","value":"MultiLane","parent":null,"children":[{"krate":0,"index":293},{"krate":0,"index":294}],"decl_id":null,"docs":" A vector composed of multiple 128-bit lanes.\n","sig":null,"attributes":[{"value":"/ A vector composed of multiple 128-bit lanes.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19058,"byte_end":19106,"line_start":208,"line_end":208,"column_start":1,"column_end":49}}]},{"kind":"Method","id":{"krate":0,"index":293},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19203,"byte_end":19211,"line_start":211,"line_end":211,"column_start":8,"column_end":16},"name":"to_lanes","qualname":"::types::MultiLane::to_lanes","value":"pub fn to_lanes(Self) -> Lanes","parent":{"krate":0,"index":291},"children":[],"decl_id":null,"docs":" Split a multi-lane vector into single-lane vectors.\n","sig":null,"attributes":[{"value":"/ Split a multi-lane vector into single-lane vectors.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19140,"byte_end":19195,"line_start":210,"line_end":210,"column_start":5,"column_end":60}}]},{"kind":"Method","id":{"krate":0,"index":294},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19292,"byte_end":19302,"line_start":213,"line_end":213,"column_start":8,"column_end":18},"name":"from_lanes","qualname":"::types::MultiLane::from_lanes","value":"pub fn from_lanes(Lanes) -> Self","parent":{"krate":0,"index":291},"children":[],"decl_id":null,"docs":" Build a multi-lane vector from individual lanes.\n","sig":null,"attributes":[{"value":"/ Build a multi-lane vector from individual lanes.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19232,"byte_end":19284,"line_start":212,"line_end":212,"column_start":5,"column_end":57}}]},{"kind":"Trait","id":{"krate":0,"index":295},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19392,"byte_end":19396,"line_start":217,"line_end":217,"column_start":11,"column_end":15},"name":"VZip","qualname":"::types::VZip","value":"VZip","parent":null,"children":[{"krate":0,"index":297}],"decl_id":null,"docs":" Combine single vectors into a multi-lane vector.\n","sig":null,"attributes":[{"value":"/ Combine single vectors into a multi-lane vector.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19329,"byte_end":19381,"line_start":216,"line_end":216,"column_start":1,"column_end":53}}]},{"kind":"Method","id":{"krate":0,"index":297},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19409,"byte_end":19413,"line_start":218,"line_end":218,"column_start":8,"column_end":12},"name":"vzip","qualname":"::types::VZip::vzip","value":"pub fn vzip(Self) -> V","parent":{"krate":0,"index":295},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":302},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19577,"byte_end":19584,"line_start":231,"line_end":231,"column_start":11,"column_end":18},"name":"Machine","qualname":"::types::Machine","value":"Machine: Sized + Copy","parent":null,"children":[{"krate":0,"index":303},{"krate":0,"index":304},{"krate":0,"index":305},{"krate":0,"index":306},{"krate":0,"index":307},{"krate":0,"index":308},{"krate":0,"index":309},{"krate":0,"index":310},{"krate":0,"index":311},{"krate":0,"index":312},{"krate":0,"index":313},{"krate":0,"index":316},{"krate":0,"index":319},{"krate":0,"index":321},{"krate":0,"index":323}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Type","id":{"krate":0,"index":303},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19610,"byte_end":19615,"line_start":232,"line_end":232,"column_start":10,"column_end":15},"name":"u32x4","qualname":"::types::Machine::u32x4","value":"type u32x4: u32x4;","parent":{"krate":0,"index":302},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Type","id":{"krate":0,"index":304},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19639,"byte_end":19644,"line_start":233,"line_end":233,"column_start":10,"column_end":15},"name":"u64x2","qualname":"::types::Machine::u64x2","value":"type u64x2: u64x2;","parent":{"krate":0,"index":302},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Type","id":{"krate":0,"index":305},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19668,"byte_end":19674,"line_start":234,"line_end":234,"column_start":10,"column_end":16},"name":"u128x1","qualname":"::types::Machine::u128x1","value":"type u128x1: u128x1;","parent":{"krate":0,"index":302},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Type","id":{"krate":0,"index":306},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19700,"byte_end":19707,"line_start":236,"line_end":236,"column_start":10,"column_end":17},"name":"u32x4x2","qualname":"::types::Machine::u32x4x2","value":"type u32x4x2: u32x4x2;","parent":{"krate":0,"index":302},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Type","id":{"krate":0,"index":307},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19733,"byte_end":19740,"line_start":237,"line_end":237,"column_start":10,"column_end":17},"name":"u64x2x2","qualname":"::types::Machine::u64x2x2","value":"type u64x2x2: u64x2x2;","parent":{"krate":0,"index":302},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Type","id":{"krate":0,"index":308},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19766,"byte_end":19771,"line_start":238,"line_end":238,"column_start":10,"column_end":15},"name":"u64x4","qualname":"::types::Machine::u64x4","value":"type u64x4: u64x4;","parent":{"krate":0,"index":302},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Type","id":{"krate":0,"index":309},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19795,"byte_end":19801,"line_start":239,"line_end":239,"column_start":10,"column_end":16},"name":"u128x2","qualname":"::types::Machine::u128x2","value":"type u128x2: u128x2;","parent":{"krate":0,"index":302},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Type","id":{"krate":0,"index":310},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19827,"byte_end":19834,"line_start":241,"line_end":241,"column_start":10,"column_end":17},"name":"u32x4x4","qualname":"::types::Machine::u32x4x4","value":"type u32x4x4: u32x4x4;","parent":{"krate":0,"index":302},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Type","id":{"krate":0,"index":311},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19860,"byte_end":19867,"line_start":242,"line_end":242,"column_start":10,"column_end":17},"name":"u64x2x4","qualname":"::types::Machine::u64x2x4","value":"type u64x2x4: u64x2x4;","parent":{"krate":0,"index":302},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Type","id":{"krate":0,"index":312},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19893,"byte_end":19899,"line_start":243,"line_end":243,"column_start":10,"column_end":16},"name":"u128x4","qualname":"::types::Machine::u128x4","value":"type u128x4: u128x4;","parent":{"krate":0,"index":302},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":313},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19945,"byte_end":19951,"line_start":246,"line_end":246,"column_start":8,"column_end":14},"name":"unpack","qualname":"::types::Machine::unpack","value":"pub fn unpack>(Self, S) -> V","parent":{"krate":0,"index":302},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"inline(always)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19920,"byte_end":19937,"line_start":245,"line_end":245,"column_start":5,"column_end":22}}]},{"kind":"Method","id":{"krate":0,"index":316},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":20055,"byte_end":20058,"line_start":251,"line_end":251,"column_start":8,"column_end":11},"name":"vec","qualname":"::types::Machine::vec","value":"pub fn vec(Self, A) -> V where V: MultiLane","parent":{"krate":0,"index":302},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"inline(always)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":20030,"byte_end":20047,"line_start":250,"line_end":250,"column_start":5,"column_end":22}}]},{"kind":"Method","id":{"krate":0,"index":319},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":20184,"byte_end":20191,"line_start":259,"line_end":259,"column_start":8,"column_end":15},"name":"read_le","qualname":"::types::Machine::read_le","value":"pub fn read_le(Self, &[u8]) -> V where V: StoreBytes","parent":{"krate":0,"index":302},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"inline(always)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":20159,"byte_end":20176,"line_start":258,"line_end":258,"column_start":5,"column_end":22}}]},{"kind":"Method","id":{"krate":0,"index":321},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":20339,"byte_end":20346,"line_start":267,"line_end":267,"column_start":8,"column_end":15},"name":"read_be","qualname":"::types::Machine::read_be","value":"pub fn read_be(Self, &[u8]) -> V where V: StoreBytes","parent":{"krate":0,"index":302},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"inline(always)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":20314,"byte_end":20331,"line_start":266,"line_end":266,"column_start":5,"column_end":22}}]},{"kind":"Method","id":{"krate":0,"index":323},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":20610,"byte_end":20618,"line_start":277,"line_end":277,"column_start":15,"column_end":23},"name":"instance","qualname":"::types::Machine::instance","value":"pub unsafe fn instance() -> Self","parent":{"krate":0,"index":302},"children":[],"decl_id":null,"docs":" # Safety\n Caller must ensure the type of Self is appropriate for the hardware of the execution\n environment.\n","sig":null,"attributes":[{"value":"/ # Safety","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":20469,"byte_end":20481,"line_start":274,"line_end":274,"column_start":5,"column_end":17}},{"value":"/ Caller must ensure the type of Self is appropriate for the hardware of the execution","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":20486,"byte_end":20574,"line_start":275,"line_end":275,"column_start":5,"column_end":93}},{"value":"/ environment.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":20579,"byte_end":20595,"line_start":276,"line_end":276,"column_start":5,"column_end":21}}]},{"kind":"Trait","id":{"krate":0,"index":324},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":20643,"byte_end":20648,"line_start":280,"line_end":280,"column_start":11,"column_end":16},"name":"Store","qualname":"::types::Store","value":"Store","parent":null,"children":[{"krate":0,"index":326}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":326},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":20799,"byte_end":20805,"line_start":284,"line_end":284,"column_start":15,"column_end":21},"name":"unpack","qualname":"::types::Store::unpack","value":"pub unsafe fn unpack(S) -> Self","parent":{"krate":0,"index":324},"children":[],"decl_id":null,"docs":" # Safety\n Caller must ensure the type of Self is appropriate for the hardware of the execution\n environment.\n","sig":null,"attributes":[{"value":"/ # Safety","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":20658,"byte_end":20670,"line_start":281,"line_end":281,"column_start":5,"column_end":17}},{"value":"/ Caller must ensure the type of Self is appropriate for the hardware of the execution","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":20675,"byte_end":20763,"line_start":282,"line_end":282,"column_start":5,"column_end":93}},{"value":"/ environment.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":20768,"byte_end":20784,"line_start":283,"line_end":283,"column_start":5,"column_end":21}}]},{"kind":"Trait","id":{"krate":0,"index":327},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":20834,"byte_end":20844,"line_start":287,"line_end":287,"column_start":11,"column_end":21},"name":"StoreBytes","qualname":"::types::StoreBytes","value":"StoreBytes","parent":null,"children":[{"krate":0,"index":328},{"krate":0,"index":329},{"krate":0,"index":330},{"krate":0,"index":331}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":328},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":20992,"byte_end":21006,"line_start":291,"line_end":291,"column_start":15,"column_end":29},"name":"unsafe_read_le","qualname":"::types::StoreBytes::unsafe_read_le","value":"pub unsafe fn unsafe_read_le(&[u8]) -> Self","parent":{"krate":0,"index":327},"children":[],"decl_id":null,"docs":" # Safety\n Caller must ensure the type of Self is appropriate for the hardware of the execution\n environment.\n","sig":null,"attributes":[{"value":"/ # Safety","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":20851,"byte_end":20863,"line_start":288,"line_end":288,"column_start":5,"column_end":17}},{"value":"/ Caller must ensure the type of Self is appropriate for the hardware of the execution","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":20868,"byte_end":20956,"line_start":289,"line_end":289,"column_start":5,"column_end":93}},{"value":"/ environment.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":20961,"byte_end":20977,"line_start":290,"line_end":290,"column_start":5,"column_end":21}}]},{"kind":"Method","id":{"krate":0,"index":329},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":21175,"byte_end":21189,"line_start":295,"line_end":295,"column_start":15,"column_end":29},"name":"unsafe_read_be","qualname":"::types::StoreBytes::unsafe_read_be","value":"pub unsafe fn unsafe_read_be(&[u8]) -> Self","parent":{"krate":0,"index":327},"children":[],"decl_id":null,"docs":" # Safety\n Caller must ensure the type of Self is appropriate for the hardware of the execution\n environment.\n","sig":null,"attributes":[{"value":"/ # Safety","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":21034,"byte_end":21046,"line_start":292,"line_end":292,"column_start":5,"column_end":17}},{"value":"/ Caller must ensure the type of Self is appropriate for the hardware of the execution","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":21051,"byte_end":21139,"line_start":293,"line_end":293,"column_start":5,"column_end":93}},{"value":"/ environment.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":21144,"byte_end":21160,"line_start":294,"line_end":294,"column_start":5,"column_end":21}}]},{"kind":"Method","id":{"krate":0,"index":330},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":21220,"byte_end":21228,"line_start":296,"line_end":296,"column_start":8,"column_end":16},"name":"write_le","qualname":"::types::StoreBytes::write_le","value":"pub fn write_le(Self, &mut [u8])","parent":{"krate":0,"index":327},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":331},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":21259,"byte_end":21267,"line_start":297,"line_end":297,"column_start":8,"column_end":16},"name":"write_be","qualname":"::types::StoreBytes::write_be","value":"pub fn write_be(Self, &mut [u8])","parent":{"krate":0,"index":327},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Mod","id":{"krate":0,"index":333},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"name":"x86_64","qualname":"::x86_64","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","parent":null,"children":[{"krate":0,"index":334},{"krate":0,"index":335},{"krate":0,"index":336},{"krate":0,"index":339},{"krate":0,"index":342},{"krate":0,"index":1603},{"krate":0,"index":1605},{"krate":0,"index":1606},{"krate":0,"index":1608},{"krate":0,"index":1610},{"krate":0,"index":1611},{"krate":0,"index":1613},{"krate":0,"index":1615},{"krate":0,"index":1616},{"krate":0,"index":1618},{"krate":0,"index":1620},{"krate":0,"index":1621},{"krate":0,"index":1623},{"krate":0,"index":1625},{"krate":0,"index":1626},{"krate":0,"index":1628},{"krate":0,"index":1630},{"krate":0,"index":1631},{"krate":0,"index":1633},{"krate":0,"index":1635},{"krate":0,"index":1636},{"krate":0,"index":1638},{"krate":0,"index":1640},{"krate":0,"index":1641},{"krate":0,"index":1643},{"krate":0,"index":1645},{"krate":0,"index":1646},{"krate":0,"index":1648},{"krate":0,"index":1650},{"krate":0,"index":1651},{"krate":0,"index":904},{"krate":0,"index":905},{"krate":0,"index":1653},{"krate":0,"index":1659},{"krate":0,"index":1663},{"krate":0,"index":907},{"krate":0,"index":1668},{"krate":0,"index":1672},{"krate":0,"index":1674},{"krate":0,"index":924},{"krate":0,"index":939},{"krate":0,"index":940},{"krate":0,"index":941},{"krate":0,"index":942},{"krate":0,"index":943},{"krate":0,"index":1677},{"krate":0,"index":1685},{"krate":0,"index":1686},{"krate":0,"index":944},{"krate":0,"index":946},{"krate":0,"index":950},{"krate":0,"index":954},{"krate":0,"index":956},{"krate":0,"index":957},{"krate":0,"index":1688},{"krate":0,"index":1698},{"krate":0,"index":1699},{"krate":0,"index":959},{"krate":0,"index":963},{"krate":0,"index":965},{"krate":0,"index":970},{"krate":0,"index":971},{"krate":0,"index":1701},{"krate":0,"index":1712},{"krate":0,"index":1713},{"krate":0,"index":973},{"krate":0,"index":975},{"krate":0,"index":980},{"krate":0,"index":981},{"krate":0,"index":983},{"krate":0,"index":1715},{"krate":0,"index":1718},{"krate":0,"index":1721},{"krate":0,"index":1724},{"krate":0,"index":1727},{"krate":0,"index":1730},{"krate":0,"index":1733},{"krate":0,"index":1736},{"krate":0,"index":1739},{"krate":0,"index":984},{"krate":0,"index":985},{"krate":0,"index":986}],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"cfg(all(target_arch = \"x86_64\", not(feature = \"no_simd\"), not(miri)))","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/lib.rs","byte_start":320,"byte_end":392,"line_start":12,"line_end":12,"column_start":1,"column_end":73}}]},{"kind":"Struct","id":{"krate":0,"index":1219},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":47248,"byte_end":47258,"line_start":317,"line_end":317,"column_start":10,"column_end":20},"name":"u32x4_sse2","qualname":"::x86_64::sse2::u32x4_sse2","value":"u32x4_sse2 { }","parent":null,"children":[{"krate":0,"index":1223},{"krate":0,"index":1224},{"krate":0,"index":1225},{"krate":0,"index":1226}],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"allow(non_camel_case_types)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":38493,"byte_end":38523,"line_start":41,"line_end":41,"column_start":9,"column_end":39}}]},{"kind":"Struct","id":{"krate":0,"index":1313},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":47275,"byte_end":47285,"line_start":318,"line_end":318,"column_start":10,"column_end":20},"name":"u64x2_sse2","qualname":"::x86_64::sse2::u64x2_sse2","value":"u64x2_sse2 { }","parent":null,"children":[{"krate":0,"index":1317},{"krate":0,"index":1318},{"krate":0,"index":1319},{"krate":0,"index":1320}],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"allow(non_camel_case_types)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":38493,"byte_end":38523,"line_start":41,"line_end":41,"column_start":9,"column_end":39}}]},{"kind":"Struct","id":{"krate":0,"index":1407},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":47302,"byte_end":47313,"line_start":319,"line_end":319,"column_start":10,"column_end":21},"name":"u128x1_sse2","qualname":"::x86_64::sse2::u128x1_sse2","value":"u128x1_sse2 { }","parent":null,"children":[{"krate":0,"index":1411},{"krate":0,"index":1412},{"krate":0,"index":1413},{"krate":0,"index":1414}],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"allow(non_camel_case_types)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":38493,"byte_end":38523,"line_start":41,"line_end":41,"column_start":9,"column_end":39}}]},{"kind":"Struct","id":{"krate":0,"index":1519},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":64002,"byte_end":64004,"line_start":863,"line_end":863,"column_start":12,"column_end":14},"name":"G0","qualname":"::x86_64::sse2::G0","value":"","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Struct","id":{"krate":0,"index":1524},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":64040,"byte_end":64042,"line_start":865,"line_end":865,"column_start":12,"column_end":14},"name":"G1","qualname":"::x86_64::sse2::G1","value":"","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Struct","id":{"krate":0,"index":1553},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":82131,"byte_end":82143,"line_start":1387,"line_end":1387,"column_start":16,"column_end":28},"name":"u32x4x2_avx2","qualname":"::x86_64::sse2::avx2::u32x4x2_avx2","value":"u32x4x2_avx2 { }","parent":null,"children":[{"krate":0,"index":1555},{"krate":0,"index":1556}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Struct","id":{"krate":0,"index":1603},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":21438,"byte_end":21443,"line_start":9,"line_end":9,"column_start":12,"column_end":17},"name":"YesS3","qualname":"::x86_64::YesS3","value":"","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Struct","id":{"krate":0,"index":1608},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":21479,"byte_end":21483,"line_start":11,"line_end":11,"column_start":12,"column_end":16},"name":"NoS3","qualname":"::x86_64::NoS3","value":"","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Struct","id":{"krate":0,"index":1613},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":21520,"byte_end":21525,"line_start":14,"line_end":14,"column_start":12,"column_end":17},"name":"YesS4","qualname":"::x86_64::YesS4","value":"","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Struct","id":{"krate":0,"index":1618},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":21561,"byte_end":21565,"line_start":16,"line_end":16,"column_start":12,"column_end":16},"name":"NoS4","qualname":"::x86_64::NoS4","value":"","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Struct","id":{"krate":0,"index":1623},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":21602,"byte_end":21607,"line_start":19,"line_end":19,"column_start":12,"column_end":17},"name":"YesA1","qualname":"::x86_64::YesA1","value":"","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Struct","id":{"krate":0,"index":1628},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":21643,"byte_end":21647,"line_start":21,"line_end":21,"column_start":12,"column_end":16},"name":"NoA1","qualname":"::x86_64::NoA1","value":"","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Struct","id":{"krate":0,"index":1633},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":21684,"byte_end":21689,"line_start":24,"line_end":24,"column_start":12,"column_end":17},"name":"YesA2","qualname":"::x86_64::YesA2","value":"","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Struct","id":{"krate":0,"index":1638},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":21725,"byte_end":21729,"line_start":26,"line_end":26,"column_start":12,"column_end":16},"name":"NoA2","qualname":"::x86_64::NoA2","value":"","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Struct","id":{"krate":0,"index":1643},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":21766,"byte_end":21771,"line_start":29,"line_end":29,"column_start":12,"column_end":17},"name":"YesNI","qualname":"::x86_64::YesNI","value":"","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Struct","id":{"krate":0,"index":1648},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":21807,"byte_end":21811,"line_start":31,"line_end":31,"column_start":12,"column_end":16},"name":"NoNI","qualname":"::x86_64::NoNI","value":"","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Struct","id":{"krate":0,"index":1653},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":21880,"byte_end":21890,"line_start":36,"line_end":36,"column_start":12,"column_end":22},"name":"SseMachine","qualname":"::x86_64::SseMachine","value":"","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Struct","id":{"krate":0,"index":1668},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":23322,"byte_end":23333,"line_start":70,"line_end":70,"column_start":12,"column_end":23},"name":"Avx2Machine","qualname":"::x86_64::Avx2Machine","value":"","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Type","id":{"krate":0,"index":939},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":24367,"byte_end":24371,"line_start":97,"line_end":97,"column_start":10,"column_end":14},"name":"SSE2","qualname":"::x86_64::SSE2","value":"SseMachine","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Type","id":{"krate":0,"index":940},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":24413,"byte_end":24418,"line_start":98,"line_end":98,"column_start":10,"column_end":15},"name":"SSSE3","qualname":"::x86_64::SSSE3","value":"SseMachine","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Type","id":{"krate":0,"index":941},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":24461,"byte_end":24466,"line_start":99,"line_end":99,"column_start":10,"column_end":15},"name":"SSE41","qualname":"::x86_64::SSE41","value":"SseMachine","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Type","id":{"krate":0,"index":942},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":24642,"byte_end":24645,"line_start":102,"line_end":102,"column_start":10,"column_end":13},"name":"AVX","qualname":"::x86_64::AVX","value":"SseMachine","parent":null,"children":[],"decl_id":null,"docs":" AVX but not AVX2: only 128-bit integer operations, but use VEX versions of everything\n to avoid expensive SSE/VEX conflicts.\n","sig":null,"attributes":[{"value":"/ AVX but not AVX2: only 128-bit integer operations, but use VEX versions of everything","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":24501,"byte_end":24590,"line_start":100,"line_end":100,"column_start":1,"column_end":90}},{"value":"/ to avoid expensive SSE/VEX conflicts.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":24591,"byte_end":24632,"line_start":101,"line_end":101,"column_start":1,"column_end":42}}]},{"kind":"Type","id":{"krate":0,"index":943},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":24689,"byte_end":24693,"line_start":103,"line_end":103,"column_start":10,"column_end":14},"name":"AVX2","qualname":"::x86_64::AVX2","value":"Avx2Machine","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Union","id":{"krate":0,"index":1677},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":24996,"byte_end":25010,"line_start":110,"line_end":110,"column_start":11,"column_end":25},"name":"vec128_storage","qualname":"::x86_64::vec128_storage","value":"vec128_storage { }","parent":null,"children":[{"krate":0,"index":1678},{"krate":0,"index":1680},{"krate":0,"index":1682},{"krate":0,"index":1684}],"decl_id":null,"docs":" Generic wrapper for unparameterized storage of any of the possible impls.\n Converting into and out of this type should be essentially free, although it may be more\n aligned than a particular impl requires.\n","sig":null,"attributes":[{"value":"/ Generic wrapper for unparameterized storage of any of the possible impls.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":24716,"byte_end":24793,"line_start":105,"line_end":105,"column_start":1,"column_end":78}},{"value":"/ Converting into and out of this type should be essentially free, although it may be more","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":24794,"byte_end":24886,"line_start":106,"line_end":106,"column_start":1,"column_end":93}},{"value":"/ aligned than a particular impl requires.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":24887,"byte_end":24931,"line_start":107,"line_end":107,"column_start":1,"column_end":45}},{"value":"allow(non_camel_case_types)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":24932,"byte_end":24962,"line_start":108,"line_end":108,"column_start":1,"column_end":31}}]},{"kind":"Union","id":{"krate":0,"index":1688},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":25911,"byte_end":25925,"line_start":150,"line_end":150,"column_start":11,"column_end":25},"name":"vec256_storage","qualname":"::x86_64::vec256_storage","value":"vec256_storage { }","parent":null,"children":[{"krate":0,"index":1689},{"krate":0,"index":1691},{"krate":0,"index":1693},{"krate":0,"index":1695},{"krate":0,"index":1697}],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"allow(non_camel_case_types)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":25847,"byte_end":25877,"line_start":148,"line_end":148,"column_start":1,"column_end":31}}]},{"kind":"Method","id":{"krate":0,"index":966},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":26375,"byte_end":26381,"line_start":171,"line_end":171,"column_start":12,"column_end":18},"name":"new128","qualname":"::new128","value":"pub fn new128([vec128_storage; ]) -> Self","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"inline(always)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":26346,"byte_end":26363,"line_start":170,"line_end":170,"column_start":5,"column_end":22}}]},{"kind":"Method","id":{"krate":0,"index":968},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":26482,"byte_end":26490,"line_start":175,"line_end":175,"column_start":12,"column_end":20},"name":"split128","qualname":"::split128","value":"pub fn split128(Self) -> [vec128_storage; ]","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"inline(always)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":26453,"byte_end":26470,"line_start":174,"line_end":174,"column_start":5,"column_end":22}}]},{"kind":"Union","id":{"krate":0,"index":1701},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":26800,"byte_end":26814,"line_start":189,"line_end":189,"column_start":11,"column_end":25},"name":"vec512_storage","qualname":"::x86_64::vec512_storage","value":"vec512_storage { }","parent":null,"children":[{"krate":0,"index":1702},{"krate":0,"index":1704},{"krate":0,"index":1706},{"krate":0,"index":1708},{"krate":0,"index":1710}],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"allow(non_camel_case_types)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":26736,"byte_end":26766,"line_start":187,"line_end":187,"column_start":1,"column_end":31}}]},{"kind":"Method","id":{"krate":0,"index":976},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":27162,"byte_end":27168,"line_start":206,"line_end":206,"column_start":12,"column_end":18},"name":"new128","qualname":"::new128","value":"pub fn new128([vec128_storage; ]) -> Self","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"inline(always)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":27133,"byte_end":27150,"line_start":205,"line_end":205,"column_start":5,"column_end":22}}]},{"kind":"Method","id":{"krate":0,"index":978},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":27269,"byte_end":27277,"line_start":210,"line_end":210,"column_start":12,"column_end":20},"name":"split128","qualname":"::split128","value":"pub fn split128(Self) -> [vec128_storage; ]","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"inline(always)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":27240,"byte_end":27257,"line_start":209,"line_end":209,"column_start":5,"column_end":22}}]}],"impls":[{"id":0,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":1109,"byte_end":1111,"line_start":11,"line_end":11,"column_start":12,"column_end":14},"value":"","parent":null,"children":[{"krate":0,"index":23}],"docs":"","sig":null,"attributes":[]},{"id":1,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":2129,"byte_end":2131,"line_start":47,"line_end":47,"column_start":33,"column_end":35},"value":"","parent":null,"children":[{"krate":0,"index":1018},{"krate":0,"index":1019},{"krate":0,"index":1020},{"krate":0,"index":1021},{"krate":0,"index":1022},{"krate":0,"index":1023},{"krate":0,"index":1024},{"krate":0,"index":1025}],"docs":"","sig":null,"attributes":[]},{"id":2,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":2562,"byte_end":2564,"line_start":60,"line_end":60,"column_start":33,"column_end":35},"value":"","parent":null,"children":[{"krate":0,"index":1026}],"docs":"","sig":null,"attributes":[]},{"id":3,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":2690,"byte_end":2692,"line_start":66,"line_end":66,"column_start":34,"column_end":36},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":4,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":2752,"byte_end":2754,"line_start":67,"line_end":67,"column_start":24,"column_end":26},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":5,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":2824,"byte_end":2826,"line_start":73,"line_end":73,"column_start":25,"column_end":27},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":6,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":2907,"byte_end":2909,"line_start":79,"line_end":79,"column_start":25,"column_end":27},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":7,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":2991,"byte_end":2993,"line_start":85,"line_end":85,"column_start":26,"column_end":28},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":8,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":3348,"byte_end":3350,"line_start":98,"line_end":98,"column_start":25,"column_end":27},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":9,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":3498,"byte_end":3500,"line_start":106,"line_end":106,"column_start":32,"column_end":34},"value":"","parent":null,"children":[{"krate":0,"index":55},{"krate":0,"index":56}],"docs":"","sig":null,"attributes":[]},{"id":10,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":3696,"byte_end":3698,"line_start":113,"line_end":113,"column_start":35,"column_end":37},"value":"","parent":null,"children":[{"krate":0,"index":61}],"docs":"","sig":null,"attributes":[]},{"id":11,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":3834,"byte_end":3836,"line_start":119,"line_end":119,"column_start":30,"column_end":32},"value":"","parent":null,"children":[{"krate":0,"index":66},{"krate":0,"index":67}],"docs":"","sig":null,"attributes":[]},{"id":12,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":4126,"byte_end":4128,"line_start":130,"line_end":130,"column_start":68,"column_end":70},"value":"","parent":null,"children":[{"krate":0,"index":71}],"docs":"","sig":null,"attributes":[]},{"id":13,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":4329,"byte_end":4343,"line_start":137,"line_end":137,"column_start":31,"column_end":45},"value":"","parent":null,"children":[{"krate":0,"index":75}],"docs":"","sig":null,"attributes":[]},{"id":14,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":4544,"byte_end":4546,"line_start":147,"line_end":147,"column_start":23,"column_end":25},"value":"","parent":null,"children":[{"krate":0,"index":1068},{"krate":0,"index":1069},{"krate":0,"index":1070},{"krate":0,"index":1071},{"krate":0,"index":1072},{"krate":0,"index":1073},{"krate":0,"index":1074}],"docs":"","sig":null,"attributes":[]},{"id":15,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":4802,"byte_end":4804,"line_start":159,"line_end":159,"column_start":40,"column_end":42},"value":"","parent":null,"children":[{"krate":0,"index":83},{"krate":0,"index":85}],"docs":"","sig":null,"attributes":[]},{"id":16,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":5021,"byte_end":5023,"line_start":169,"line_end":169,"column_start":36,"column_end":38},"value":"","parent":null,"children":[{"krate":0,"index":90}],"docs":"","sig":null,"attributes":[]},{"id":17,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":5200,"byte_end":5202,"line_start":175,"line_end":175,"column_start":54,"column_end":56},"value":"","parent":null,"children":[{"krate":0,"index":94},{"krate":0,"index":95},{"krate":0,"index":96},{"krate":0,"index":97}],"docs":"","sig":null,"attributes":[]},{"id":18,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":6058,"byte_end":6060,"line_start":199,"line_end":199,"column_start":52,"column_end":54},"value":"","parent":null,"children":[{"krate":0,"index":101},{"krate":0,"index":102},{"krate":0,"index":103}],"docs":"","sig":null,"attributes":[]},{"id":19,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":6776,"byte_end":6778,"line_start":226,"line_end":226,"column_start":9,"column_end":11},"value":"","parent":null,"children":[{"krate":0,"index":106}],"docs":"","sig":null,"attributes":[]},{"id":20,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":8106,"byte_end":8108,"line_start":274,"line_end":274,"column_start":30,"column_end":32},"value":"","parent":null,"children":[{"krate":0,"index":1088},{"krate":0,"index":1089},{"krate":0,"index":1090},{"krate":0,"index":1091},{"krate":0,"index":1092},{"krate":0,"index":1093},{"krate":0,"index":1094},{"krate":0,"index":1095}],"docs":"","sig":null,"attributes":[]},{"id":21,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":8533,"byte_end":8535,"line_start":287,"line_end":287,"column_start":30,"column_end":32},"value":"","parent":null,"children":[{"krate":0,"index":1096}],"docs":"","sig":null,"attributes":[]},{"id":22,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":8655,"byte_end":8657,"line_start":293,"line_end":293,"column_start":31,"column_end":33},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":23,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":8711,"byte_end":8713,"line_start":294,"line_end":294,"column_start":21,"column_end":23},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":24,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":8758,"byte_end":8760,"line_start":295,"line_end":295,"column_start":22,"column_end":24},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":25,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":8816,"byte_end":8818,"line_start":296,"line_end":296,"column_start":22,"column_end":24},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":26,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":8875,"byte_end":8877,"line_start":297,"line_end":297,"column_start":23,"column_end":25},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":27,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":9207,"byte_end":9209,"line_start":305,"line_end":305,"column_start":22,"column_end":24},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":28,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":9332,"byte_end":9334,"line_start":308,"line_end":308,"column_start":29,"column_end":31},"value":"","parent":null,"children":[{"krate":0,"index":129},{"krate":0,"index":130}],"docs":"","sig":null,"attributes":[]},{"id":29,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":9609,"byte_end":9611,"line_start":320,"line_end":320,"column_start":32,"column_end":34},"value":"","parent":null,"children":[{"krate":0,"index":134}],"docs":"","sig":null,"attributes":[]},{"id":30,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":9736,"byte_end":9738,"line_start":326,"line_end":326,"column_start":27,"column_end":29},"value":"","parent":null,"children":[{"krate":0,"index":138},{"krate":0,"index":139}],"docs":"","sig":null,"attributes":[]},{"id":31,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":9987,"byte_end":9989,"line_start":337,"line_end":337,"column_start":30,"column_end":32},"value":"","parent":null,"children":[{"krate":0,"index":142}],"docs":"","sig":null,"attributes":[]},{"id":32,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":10428,"byte_end":10430,"line_start":351,"line_end":351,"column_start":65,"column_end":67},"value":"","parent":null,"children":[{"krate":0,"index":145}],"docs":"","sig":null,"attributes":[]},{"id":33,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":10710,"byte_end":10724,"line_start":363,"line_end":363,"column_start":25,"column_end":39},"value":"","parent":null,"children":[{"krate":0,"index":148}],"docs":"","sig":null,"attributes":[]},{"id":34,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":10949,"byte_end":10951,"line_start":373,"line_end":373,"column_start":20,"column_end":22},"value":"","parent":null,"children":[{"krate":0,"index":1129},{"krate":0,"index":1130},{"krate":0,"index":1131},{"krate":0,"index":1132},{"krate":0,"index":1133},{"krate":0,"index":1134},{"krate":0,"index":1135}],"docs":"","sig":null,"attributes":[]},{"id":35,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":11201,"byte_end":11203,"line_start":385,"line_end":385,"column_start":37,"column_end":39},"value":"","parent":null,"children":[{"krate":0,"index":154},{"krate":0,"index":156}],"docs":"","sig":null,"attributes":[]},{"id":36,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":11409,"byte_end":11411,"line_start":395,"line_end":395,"column_start":33,"column_end":35},"value":"","parent":null,"children":[{"krate":0,"index":160}],"docs":"","sig":null,"attributes":[]},{"id":37,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":11674,"byte_end":11676,"line_start":406,"line_end":406,"column_start":51,"column_end":53},"value":"","parent":null,"children":[{"krate":0,"index":163},{"krate":0,"index":164},{"krate":0,"index":165},{"krate":0,"index":166}],"docs":"","sig":null,"attributes":[]},{"id":38,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":12968,"byte_end":12970,"line_start":444,"line_end":444,"column_start":43,"column_end":45},"value":"","parent":null,"children":[{"krate":0,"index":169},{"krate":0,"index":170},{"krate":0,"index":171}],"docs":"","sig":null,"attributes":[]},{"id":39,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19452,"byte_end":19453,"line_start":221,"line_end":221,"column_start":24,"column_end":25},"value":"","parent":null,"children":[{"krate":0,"index":301}],"docs":"","sig":null,"attributes":[]},{"id":40,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":43136,"byte_end":43146,"line_start":188,"line_end":188,"column_start":47,"column_end":57},"value":"","parent":null,"children":[{"krate":0,"index":1136},{"krate":0,"index":1137},{"krate":0,"index":1138},{"krate":0,"index":1139},{"krate":0,"index":1140},{"krate":0,"index":1141},{"krate":0,"index":1142},{"krate":0,"index":1143}],"docs":"","sig":null,"attributes":[]},{"id":41,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":43786,"byte_end":43796,"line_start":210,"line_end":210,"column_start":47,"column_end":57},"value":"","parent":null,"children":[{"krate":0,"index":1144},{"krate":0,"index":1145},{"krate":0,"index":1146},{"krate":0,"index":1147},{"krate":0,"index":419},{"krate":0,"index":1148},{"krate":0,"index":1149},{"krate":0,"index":1150}],"docs":"","sig":null,"attributes":[]},{"id":42,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":44853,"byte_end":44863,"line_start":245,"line_end":245,"column_start":47,"column_end":57},"value":"","parent":null,"children":[{"krate":0,"index":1151},{"krate":0,"index":1152},{"krate":0,"index":1153},{"krate":0,"index":1154},{"krate":0,"index":1155},{"krate":0,"index":1156},{"krate":0,"index":1157},{"krate":0,"index":1158}],"docs":"","sig":null,"attributes":[]},{"id":43,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":45503,"byte_end":45513,"line_start":267,"line_end":267,"column_start":47,"column_end":57},"value":"","parent":null,"children":[{"krate":0,"index":1159},{"krate":0,"index":1160},{"krate":0,"index":1161},{"krate":0,"index":1162},{"krate":0,"index":428},{"krate":0,"index":1163},{"krate":0,"index":1164},{"krate":0,"index":1165}],"docs":"","sig":null,"attributes":[]},{"id":44,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":46005,"byte_end":46015,"line_start":280,"line_end":280,"column_start":57,"column_end":67},"value":"","parent":null,"children":[{"krate":0,"index":433}],"docs":"","sig":null,"attributes":[]},{"id":45,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":46609,"byte_end":46620,"line_start":301,"line_end":301,"column_start":57,"column_end":68},"value":"","parent":null,"children":[{"krate":0,"index":1166},{"krate":0,"index":1167},{"krate":0,"index":1168},{"krate":0,"index":1169},{"krate":0,"index":1170},{"krate":0,"index":1171},{"krate":0,"index":1172},{"krate":0,"index":1173}],"docs":"","sig":null,"attributes":[]},{"id":46,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":47081,"byte_end":47092,"line_start":312,"line_end":312,"column_start":57,"column_end":68},"value":"","parent":null,"children":[{"krate":0,"index":1174}],"docs":"","sig":null,"attributes":[]},{"id":47,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":47211,"byte_end":47222,"line_start":315,"line_end":315,"column_start":58,"column_end":69},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":48,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":47360,"byte_end":47370,"line_start":321,"line_end":321,"column_start":38,"column_end":48},"value":"","parent":null,"children":[{"krate":0,"index":451},{"krate":0,"index":453}],"docs":"","sig":null,"attributes":[]},{"id":49,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":47999,"byte_end":48009,"line_start":339,"line_end":339,"column_start":38,"column_end":48},"value":"","parent":null,"children":[{"krate":0,"index":459},{"krate":0,"index":461}],"docs":"","sig":null,"attributes":[]},{"id":50,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":48742,"byte_end":48752,"line_start":359,"line_end":359,"column_start":38,"column_end":48},"value":"","parent":null,"children":[{"krate":0,"index":467},{"krate":0,"index":469}],"docs":"","sig":null,"attributes":[]},{"id":51,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":49264,"byte_end":49274,"line_start":378,"line_end":378,"column_start":38,"column_end":48},"value":"","parent":null,"children":[{"krate":0,"index":475},{"krate":0,"index":477}],"docs":"","sig":null,"attributes":[]},{"id":52,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":49837,"byte_end":49848,"line_start":397,"line_end":397,"column_start":43,"column_end":54},"value":"","parent":null,"children":[{"krate":0,"index":484},{"krate":0,"index":486}],"docs":"","sig":null,"attributes":[]},{"id":53,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":50103,"byte_end":50113,"line_start":408,"line_end":408,"column_start":42,"column_end":52},"value":"","parent":null,"children":[{"krate":0,"index":494},{"krate":0,"index":496}],"docs":"","sig":null,"attributes":[]},{"id":54,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":51075,"byte_end":51085,"line_start":445,"line_end":445,"column_start":49,"column_end":59},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":55,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":51190,"byte_end":51200,"line_start":449,"line_end":449,"column_start":49,"column_end":59},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":56,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":51546,"byte_end":51556,"line_start":458,"line_end":458,"column_start":69,"column_end":79},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":57,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":51771,"byte_end":51781,"line_start":464,"line_end":464,"column_start":69,"column_end":79},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":58,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":52024,"byte_end":52035,"line_start":471,"line_end":471,"column_start":70,"column_end":81},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":59,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":52376,"byte_end":52386,"line_start":480,"line_end":480,"column_start":43,"column_end":53},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":60,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":52593,"byte_end":52603,"line_start":486,"line_end":486,"column_start":43,"column_end":53},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":61,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":52838,"byte_end":52849,"line_start":493,"line_end":493,"column_start":44,"column_end":55},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":62,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":53232,"byte_end":53242,"line_start":502,"line_end":502,"column_start":43,"column_end":53},"value":"","parent":null,"children":[{"krate":0,"index":534}],"docs":"","sig":null,"attributes":[]},{"id":63,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":53513,"byte_end":53523,"line_start":514,"line_end":514,"column_start":28,"column_end":38},"value":"","parent":null,"children":[{"krate":0,"index":540},{"krate":0,"index":541}],"docs":"","sig":null,"attributes":[]},{"id":64,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":54134,"byte_end":54144,"line_start":535,"line_end":535,"column_start":28,"column_end":38},"value":"","parent":null,"children":[{"krate":0,"index":546},{"krate":0,"index":547}],"docs":"","sig":null,"attributes":[]},{"id":65,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":55493,"byte_end":55503,"line_start":574,"line_end":574,"column_start":33,"column_end":43},"value":"","parent":null,"children":[{"krate":0,"index":552},{"krate":0,"index":553},{"krate":0,"index":554}],"docs":"","sig":null,"attributes":[]},{"id":66,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":55852,"byte_end":55862,"line_start":589,"line_end":589,"column_start":29,"column_end":39},"value":"","parent":null,"children":[{"krate":0,"index":559},{"krate":0,"index":560},{"krate":0,"index":561}],"docs":"","sig":null,"attributes":[]},{"id":67,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":56300,"byte_end":56310,"line_start":604,"line_end":604,"column_start":25,"column_end":35},"value":"","parent":null,"children":[{"krate":0,"index":565},{"krate":0,"index":566},{"krate":0,"index":567}],"docs":"","sig":null,"attributes":[]},{"id":68,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":57065,"byte_end":57075,"line_start":628,"line_end":628,"column_start":25,"column_end":35},"value":"","parent":null,"children":[{"krate":0,"index":571},{"krate":0,"index":572},{"krate":0,"index":573}],"docs":"","sig":null,"attributes":[]},{"id":69,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":58166,"byte_end":58176,"line_start":659,"line_end":659,"column_start":43,"column_end":53},"value":"","parent":null,"children":[{"krate":0,"index":579}],"docs":"","sig":null,"attributes":[]},{"id":70,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":58361,"byte_end":58371,"line_start":666,"line_end":666,"column_start":28,"column_end":38},"value":"","parent":null,"children":[{"krate":0,"index":584},{"krate":0,"index":585}],"docs":"","sig":null,"attributes":[]},{"id":71,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":59002,"byte_end":59012,"line_start":688,"line_end":688,"column_start":28,"column_end":38},"value":"","parent":null,"children":[{"krate":0,"index":589},{"krate":0,"index":590}],"docs":"","sig":null,"attributes":[]},{"id":72,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":59885,"byte_end":59895,"line_start":717,"line_end":717,"column_start":24,"column_end":34},"value":"","parent":null,"children":[{"krate":0,"index":594}],"docs":"","sig":null,"attributes":[]},{"id":73,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":60586,"byte_end":60596,"line_start":738,"line_end":738,"column_start":24,"column_end":34},"value":"","parent":null,"children":[{"krate":0,"index":599}],"docs":"","sig":null,"attributes":[]},{"id":74,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":60734,"byte_end":60744,"line_start":745,"line_end":745,"column_start":24,"column_end":34},"value":"","parent":null,"children":[{"krate":0,"index":603}],"docs":"","sig":null,"attributes":[]},{"id":75,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":61004,"byte_end":61014,"line_start":754,"line_end":754,"column_start":24,"column_end":34},"value":"","parent":null,"children":[{"krate":0,"index":607}],"docs":"","sig":null,"attributes":[]},{"id":76,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":61195,"byte_end":61206,"line_start":761,"line_end":761,"column_start":24,"column_end":35},"value":"","parent":null,"children":[{"krate":0,"index":611}],"docs":"","sig":null,"attributes":[]},{"id":77,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":61466,"byte_end":61477,"line_start":770,"line_end":770,"column_start":24,"column_end":35},"value":"","parent":null,"children":[{"krate":0,"index":615}],"docs":"","sig":null,"attributes":[]},{"id":78,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":62092,"byte_end":62103,"line_start":793,"line_end":793,"column_start":25,"column_end":36},"value":"","parent":null,"children":[{"krate":0,"index":621},{"krate":0,"index":622},{"krate":0,"index":623},{"krate":0,"index":624},{"krate":0,"index":625},{"krate":0,"index":626},{"krate":0,"index":627}],"docs":"","sig":null,"attributes":[]},{"id":79,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":63125,"byte_end":63136,"line_start":829,"line_end":829,"column_start":25,"column_end":36},"value":"","parent":null,"children":[{"krate":0,"index":631},{"krate":0,"index":632},{"krate":0,"index":633},{"krate":0,"index":634},{"krate":0,"index":635},{"krate":0,"index":636},{"krate":0,"index":637}],"docs":"","sig":null,"attributes":[]},{"id":80,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":64765,"byte_end":64777,"line_start":883,"line_end":883,"column_start":40,"column_end":52},"value":"","parent":null,"children":[{"krate":0,"index":671}],"docs":"","sig":null,"attributes":[]},{"id":81,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":64978,"byte_end":64990,"line_start":890,"line_end":890,"column_start":71,"column_end":83},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":82,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":65341,"byte_end":65353,"line_start":898,"line_end":898,"column_start":71,"column_end":83},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":83,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":65721,"byte_end":65731,"line_start":906,"line_end":906,"column_start":69,"column_end":79},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":84,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":66002,"byte_end":66013,"line_start":913,"line_end":913,"column_start":70,"column_end":81},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":85,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":66568,"byte_end":66580,"line_start":925,"line_end":925,"column_start":45,"column_end":57},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":86,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":66911,"byte_end":66923,"line_start":933,"line_end":933,"column_start":45,"column_end":57},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":87,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":67271,"byte_end":67281,"line_start":941,"line_end":941,"column_start":43,"column_end":53},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":88,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":67538,"byte_end":67549,"line_start":948,"line_end":948,"column_start":44,"column_end":55},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":89,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":68097,"byte_end":68107,"line_start":960,"line_end":960,"column_start":32,"column_end":42},"value":"","parent":null,"children":[{"krate":0,"index":709},{"krate":0,"index":710}],"docs":"","sig":null,"attributes":[]},{"id":90,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":68883,"byte_end":68895,"line_start":987,"line_end":987,"column_start":71,"column_end":83},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":91,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":69377,"byte_end":69389,"line_start":997,"line_end":997,"column_start":71,"column_end":83},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":92,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":69758,"byte_end":69769,"line_start":1005,"line_end":1005,"column_start":70,"column_end":81},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":93,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":70246,"byte_end":70258,"line_start":1016,"line_end":1016,"column_start":45,"column_end":57},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":94,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":70607,"byte_end":70618,"line_start":1024,"line_end":1024,"column_start":44,"column_end":55},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":95,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":72022,"byte_end":72024,"line_start":1065,"line_end":1065,"column_start":37,"column_end":39},"value":"","parent":null,"children":[{"krate":0,"index":747}],"docs":"","sig":null,"attributes":[]},{"id":96,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":72592,"byte_end":72602,"line_start":1087,"line_end":1087,"column_start":32,"column_end":42},"value":"","parent":null,"children":[{"krate":0,"index":754}],"docs":"","sig":null,"attributes":[]},{"id":97,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":72756,"byte_end":72766,"line_start":1093,"line_end":1093,"column_start":28,"column_end":38},"value":"","parent":null,"children":[{"krate":0,"index":760}],"docs":"","sig":null,"attributes":[]},{"id":98,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":72993,"byte_end":73003,"line_start":1103,"line_end":1103,"column_start":32,"column_end":42},"value":"","parent":null,"children":[{"krate":0,"index":765}],"docs":"","sig":null,"attributes":[]},{"id":99,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":73157,"byte_end":73167,"line_start":1109,"line_end":1109,"column_start":28,"column_end":38},"value":"","parent":null,"children":[{"krate":0,"index":771}],"docs":"","sig":null,"attributes":[]},{"id":100,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":73391,"byte_end":73401,"line_start":1119,"line_end":1119,"column_start":28,"column_end":38},"value":"","parent":null,"children":[{"krate":0,"index":777}],"docs":"","sig":null,"attributes":[]},{"id":101,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":82219,"byte_end":82231,"line_start":1392,"line_end":1392,"column_start":14,"column_end":26},"value":"","parent":null,"children":[{"krate":0,"index":820}],"docs":"","sig":null,"attributes":[]},{"id":102,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":82400,"byte_end":82412,"line_start":1399,"line_end":1399,"column_start":43,"column_end":55},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":103,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":82474,"byte_end":82486,"line_start":1400,"line_end":1400,"column_start":40,"column_end":52},"value":"","parent":null,"children":[{"krate":0,"index":825}],"docs":"","sig":null,"attributes":[]},{"id":104,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":82646,"byte_end":82658,"line_start":1406,"line_end":1406,"column_start":29,"column_end":41},"value":"","parent":null,"children":[{"krate":0,"index":828},{"krate":0,"index":829},{"krate":0,"index":830},{"krate":0,"index":831}],"docs":"","sig":null,"attributes":[]},{"id":105,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":83427,"byte_end":83439,"line_start":1428,"line_end":1428,"column_start":63,"column_end":75},"value":"","parent":null,"children":[{"krate":0,"index":835},{"krate":0,"index":837}],"docs":"","sig":null,"attributes":[]},{"id":106,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":83998,"byte_end":84010,"line_start":1443,"line_end":1443,"column_start":53,"column_end":65},"value":"","parent":null,"children":[{"krate":0,"index":841},{"krate":0,"index":842}],"docs":"","sig":null,"attributes":[]},{"id":107,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":84792,"byte_end":84804,"line_start":1465,"line_end":1465,"column_start":27,"column_end":39},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":108,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":84853,"byte_end":84865,"line_start":1466,"line_end":1466,"column_start":27,"column_end":39},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":109,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":85652,"byte_end":85664,"line_start":1490,"line_end":1490,"column_start":41,"column_end":53},"value":"","parent":null,"children":[{"krate":0,"index":1562},{"krate":0,"index":1563},{"krate":0,"index":1564},{"krate":0,"index":1565},{"krate":0,"index":1566},{"krate":0,"index":1567},{"krate":0,"index":1568},{"krate":0,"index":1569}],"docs":"","sig":null,"attributes":[]},{"id":110,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":86371,"byte_end":86383,"line_start":1512,"line_end":1512,"column_start":26,"column_end":38},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":111,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":86446,"byte_end":86460,"line_start":1513,"line_end":1513,"column_start":41,"column_end":55},"value":"","parent":null,"children":[{"krate":0,"index":855}],"docs":"","sig":null,"attributes":[]},{"id":112,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":87961,"byte_end":87973,"line_start":1555,"line_end":1555,"column_start":22,"column_end":34},"value":"","parent":null,"children":[{"krate":0,"index":860},{"krate":0,"index":861}],"docs":"","sig":null,"attributes":[]},{"id":113,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":88233,"byte_end":88245,"line_start":1566,"line_end":1566,"column_start":24,"column_end":36},"value":"","parent":null,"children":[{"krate":0,"index":1602}],"docs":"","sig":null,"attributes":[]},{"id":114,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":88399,"byte_end":88411,"line_start":1570,"line_end":1570,"column_start":62,"column_end":74},"value":"","parent":null,"children":[{"krate":0,"index":866}],"docs":"","sig":null,"attributes":[]},{"id":115,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":88661,"byte_end":88673,"line_start":1580,"line_end":1580,"column_start":29,"column_end":41},"value":"","parent":null,"children":[{"krate":0,"index":869},{"krate":0,"index":870},{"krate":0,"index":871}],"docs":"","sig":null,"attributes":[]},{"id":116,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":89376,"byte_end":89388,"line_start":1598,"line_end":1598,"column_start":49,"column_end":61},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":117,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":89442,"byte_end":89454,"line_start":1600,"line_end":1600,"column_start":46,"column_end":58},"value":"","parent":null,"children":[{"krate":0,"index":878}],"docs":"","sig":null,"attributes":[]},{"id":118,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":89760,"byte_end":89772,"line_start":1609,"line_end":1609,"column_start":69,"column_end":81},"value":"","parent":null,"children":[{"krate":0,"index":882},{"krate":0,"index":884}],"docs":"","sig":null,"attributes":[]},{"id":119,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":90323,"byte_end":90335,"line_start":1623,"line_end":1623,"column_start":59,"column_end":71},"value":"","parent":null,"children":[{"krate":0,"index":888},{"krate":0,"index":889}],"docs":"","sig":null,"attributes":[]},{"id":120,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":91068,"byte_end":91080,"line_start":1643,"line_end":1643,"column_start":62,"column_end":74},"value":"","parent":null,"children":[{"krate":0,"index":892}],"docs":"","sig":null,"attributes":[]},{"id":121,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":92604,"byte_end":92616,"line_start":1675,"line_end":1675,"column_start":42,"column_end":54},"value":"","parent":null,"children":[{"krate":0,"index":896}],"docs":"","sig":null,"attributes":[]},{"id":122,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":92804,"byte_end":92818,"line_start":1681,"line_end":1681,"column_start":47,"column_end":61},"value":"","parent":null,"children":[{"krate":0,"index":900}],"docs":"","sig":null,"attributes":[]},{"id":123,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":93156,"byte_end":93168,"line_start":1692,"line_end":1692,"column_start":64,"column_end":76},"value":"","parent":null,"children":[{"krate":0,"index":903}],"docs":"","sig":null,"attributes":[]},{"id":124,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":21978,"byte_end":21988,"line_start":37,"line_end":37,"column_start":48,"column_end":58},"value":"","parent":null,"children":[{"krate":0,"index":913},{"krate":0,"index":914},{"krate":0,"index":915},{"krate":0,"index":916},{"krate":0,"index":917},{"krate":0,"index":918},{"krate":0,"index":919},{"krate":0,"index":920},{"krate":0,"index":921},{"krate":0,"index":922},{"krate":0,"index":923}],"docs":"","sig":null,"attributes":[]},{"id":125,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":23383,"byte_end":23394,"line_start":71,"line_end":71,"column_start":28,"column_end":39},"value":"","parent":null,"children":[{"krate":0,"index":928},{"krate":0,"index":929},{"krate":0,"index":930},{"krate":0,"index":931},{"krate":0,"index":932},{"krate":0,"index":933},{"krate":0,"index":934},{"krate":0,"index":935},{"krate":0,"index":936},{"krate":0,"index":937},{"krate":0,"index":938}],"docs":"","sig":null,"attributes":[]},{"id":126,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":25130,"byte_end":25144,"line_start":116,"line_end":116,"column_start":32,"column_end":46},"value":"","parent":null,"children":[{"krate":0,"index":945}],"docs":"","sig":null,"attributes":[]},{"id":127,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":25417,"byte_end":25431,"line_start":128,"line_end":128,"column_start":25,"column_end":39},"value":"","parent":null,"children":[{"krate":0,"index":952}],"docs":"","sig":null,"attributes":[]},{"id":128,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":25553,"byte_end":25567,"line_start":134,"line_end":134,"column_start":18,"column_end":32},"value":"","parent":null,"children":[{"krate":0,"index":955}],"docs":"","sig":null,"attributes":[]},{"id":129,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":25678,"byte_end":25692,"line_start":140,"line_end":140,"column_start":13,"column_end":27},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":130,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":25715,"byte_end":25729,"line_start":141,"line_end":141,"column_start":20,"column_end":34},"value":"","parent":null,"children":[{"krate":0,"index":958}],"docs":"","sig":null,"attributes":[]},{"id":131,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":26068,"byte_end":26082,"line_start":157,"line_end":157,"column_start":25,"column_end":39},"value":"","parent":null,"children":[{"krate":0,"index":961}],"docs":"","sig":null,"attributes":[]},{"id":132,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":26204,"byte_end":26218,"line_start":163,"line_end":163,"column_start":18,"column_end":32},"value":"","parent":null,"children":[{"krate":0,"index":964}],"docs":"","sig":null,"attributes":[]},{"id":133,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":26325,"byte_end":26339,"line_start":169,"line_end":169,"column_start":6,"column_end":20},"value":"","parent":null,"children":[{"krate":0,"index":966},{"krate":0,"index":968}],"docs":"","sig":null,"attributes":[]},{"id":134,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":26571,"byte_end":26585,"line_start":179,"line_end":179,"column_start":13,"column_end":27},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":135,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":26608,"byte_end":26622,"line_start":180,"line_end":180,"column_start":20,"column_end":34},"value":"","parent":null,"children":[{"krate":0,"index":972}],"docs":"","sig":null,"attributes":[]},{"id":136,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":26964,"byte_end":26978,"line_start":196,"line_end":196,"column_start":18,"column_end":32},"value":"","parent":null,"children":[{"krate":0,"index":974}],"docs":"","sig":null,"attributes":[]},{"id":137,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":27112,"byte_end":27126,"line_start":204,"line_end":204,"column_start":6,"column_end":20},"value":"","parent":null,"children":[{"krate":0,"index":976},{"krate":0,"index":978}],"docs":"","sig":null,"attributes":[]},{"id":138,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":27358,"byte_end":27372,"line_start":214,"line_end":214,"column_start":13,"column_end":27},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":139,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":27395,"byte_end":27409,"line_start":215,"line_end":215,"column_start":20,"column_end":34},"value":"","parent":null,"children":[{"krate":0,"index":982}],"docs":"","sig":null,"attributes":[]}],"refs":[{"kind":"Mod","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/lib.rs","byte_start":401,"byte_end":407,"line_start":13,"line_end":13,"column_start":9,"column_end":15},"ref_id":{"krate":0,"index":333}}],"macro_refs":[],"relations":[{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":1109,"byte_end":1111,"line_start":11,"line_end":11,"column_start":12,"column_end":14},"kind":{"Impl":{"id":0}},"from":{"krate":0,"index":1000},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":2129,"byte_end":2131,"line_start":47,"line_end":47,"column_start":33,"column_end":35},"kind":{"Impl":{"id":1}},"from":{"krate":0,"index":1000},"to":{"krate":0,"index":205}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":2562,"byte_end":2564,"line_start":60,"line_end":60,"column_start":33,"column_end":35},"kind":{"Impl":{"id":2}},"from":{"krate":0,"index":1000},"to":{"krate":0,"index":214}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":2690,"byte_end":2692,"line_start":66,"line_end":66,"column_start":34,"column_end":36},"kind":{"Impl":{"id":3}},"from":{"krate":0,"index":1000},"to":{"krate":0,"index":216}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":2752,"byte_end":2754,"line_start":67,"line_end":67,"column_start":24,"column_end":26},"kind":{"Impl":{"id":4}},"from":{"krate":0,"index":1000},"to":{"krate":0,"index":201}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":2824,"byte_end":2826,"line_start":73,"line_end":73,"column_start":25,"column_end":27},"kind":{"Impl":{"id":5}},"from":{"krate":0,"index":1000},"to":{"krate":0,"index":202}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":2907,"byte_end":2909,"line_start":79,"line_end":79,"column_start":25,"column_end":27},"kind":{"Impl":{"id":6}},"from":{"krate":0,"index":1000},"to":{"krate":0,"index":203}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":2991,"byte_end":2993,"line_start":85,"line_end":85,"column_start":26,"column_end":28},"kind":{"Impl":{"id":7}},"from":{"krate":0,"index":1000},"to":{"krate":0,"index":204}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":3348,"byte_end":3350,"line_start":98,"line_end":98,"column_start":25,"column_end":27},"kind":{"Impl":{"id":8}},"from":{"krate":0,"index":1000},"to":{"krate":0,"index":200}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":3498,"byte_end":3500,"line_start":106,"line_end":106,"column_start":32,"column_end":34},"kind":{"Impl":{"id":9}},"from":{"krate":0,"index":1000},"to":{"krate":1,"index":3138}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":3696,"byte_end":3698,"line_start":113,"line_end":113,"column_start":35,"column_end":37},"kind":{"Impl":{"id":10}},"from":{"krate":0,"index":1000},"to":{"krate":0,"index":227}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":3834,"byte_end":3836,"line_start":119,"line_end":119,"column_start":30,"column_end":32},"kind":{"Impl":{"id":11}},"from":{"krate":0,"index":1000},"to":{"krate":0,"index":230}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":4126,"byte_end":4128,"line_start":130,"line_end":130,"column_start":68,"column_end":70},"kind":{"Impl":{"id":12}},"from":{"krate":0,"index":1000},"to":{"krate":0,"index":324}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":4329,"byte_end":4343,"line_start":137,"line_end":137,"column_start":31,"column_end":45},"kind":{"Impl":{"id":13}},"from":{"krate":0,"index":1688},"to":{"krate":1,"index":2925}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":4544,"byte_end":4546,"line_start":147,"line_end":147,"column_start":23,"column_end":25},"kind":{"Impl":{"id":14}},"from":{"krate":0,"index":1000},"to":{"krate":0,"index":252}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":4802,"byte_end":4804,"line_start":159,"line_end":159,"column_start":40,"column_end":42},"kind":{"Impl":{"id":15}},"from":{"krate":0,"index":1000},"to":{"krate":0,"index":291}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":5021,"byte_end":5023,"line_start":169,"line_end":169,"column_start":36,"column_end":38},"kind":{"Impl":{"id":16}},"from":{"krate":0,"index":1000},"to":{"krate":0,"index":198}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":5200,"byte_end":5202,"line_start":175,"line_end":175,"column_start":54,"column_end":56},"kind":{"Impl":{"id":17}},"from":{"krate":0,"index":1000},"to":{"krate":0,"index":327}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":6058,"byte_end":6060,"line_start":199,"line_end":199,"column_start":52,"column_end":54},"kind":{"Impl":{"id":18}},"from":{"krate":0,"index":1000},"to":{"krate":0,"index":248}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":6776,"byte_end":6778,"line_start":226,"line_end":226,"column_start":9,"column_end":11},"kind":{"Impl":{"id":19}},"from":{"krate":0,"index":1075},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":8106,"byte_end":8108,"line_start":274,"line_end":274,"column_start":30,"column_end":32},"kind":{"Impl":{"id":20}},"from":{"krate":0,"index":1075},"to":{"krate":0,"index":205}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":8533,"byte_end":8535,"line_start":287,"line_end":287,"column_start":30,"column_end":32},"kind":{"Impl":{"id":21}},"from":{"krate":0,"index":1075},"to":{"krate":0,"index":214}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":8655,"byte_end":8657,"line_start":293,"line_end":293,"column_start":31,"column_end":33},"kind":{"Impl":{"id":22}},"from":{"krate":0,"index":1075},"to":{"krate":0,"index":216}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":8711,"byte_end":8713,"line_start":294,"line_end":294,"column_start":21,"column_end":23},"kind":{"Impl":{"id":23}},"from":{"krate":0,"index":1075},"to":{"krate":0,"index":201}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":8758,"byte_end":8760,"line_start":295,"line_end":295,"column_start":22,"column_end":24},"kind":{"Impl":{"id":24}},"from":{"krate":0,"index":1075},"to":{"krate":0,"index":202}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":8816,"byte_end":8818,"line_start":296,"line_end":296,"column_start":22,"column_end":24},"kind":{"Impl":{"id":25}},"from":{"krate":0,"index":1075},"to":{"krate":0,"index":203}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":8875,"byte_end":8877,"line_start":297,"line_end":297,"column_start":23,"column_end":25},"kind":{"Impl":{"id":26}},"from":{"krate":0,"index":1075},"to":{"krate":0,"index":204}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":9207,"byte_end":9209,"line_start":305,"line_end":305,"column_start":22,"column_end":24},"kind":{"Impl":{"id":27}},"from":{"krate":0,"index":1075},"to":{"krate":0,"index":200}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":9332,"byte_end":9334,"line_start":308,"line_end":308,"column_start":29,"column_end":31},"kind":{"Impl":{"id":28}},"from":{"krate":0,"index":1075},"to":{"krate":1,"index":3138}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":9609,"byte_end":9611,"line_start":320,"line_end":320,"column_start":32,"column_end":34},"kind":{"Impl":{"id":29}},"from":{"krate":0,"index":1075},"to":{"krate":0,"index":227}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":9736,"byte_end":9738,"line_start":326,"line_end":326,"column_start":27,"column_end":29},"kind":{"Impl":{"id":30}},"from":{"krate":0,"index":1075},"to":{"krate":0,"index":234}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":9987,"byte_end":9989,"line_start":337,"line_end":337,"column_start":30,"column_end":32},"kind":{"Impl":{"id":31}},"from":{"krate":0,"index":1075},"to":{"krate":0,"index":238}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":10428,"byte_end":10430,"line_start":351,"line_end":351,"column_start":65,"column_end":67},"kind":{"Impl":{"id":32}},"from":{"krate":0,"index":1075},"to":{"krate":0,"index":324}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":10710,"byte_end":10724,"line_start":363,"line_end":363,"column_start":25,"column_end":39},"kind":{"Impl":{"id":33}},"from":{"krate":0,"index":1701},"to":{"krate":1,"index":2925}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":10949,"byte_end":10951,"line_start":373,"line_end":373,"column_start":20,"column_end":22},"kind":{"Impl":{"id":34}},"from":{"krate":0,"index":1075},"to":{"krate":0,"index":252}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":11201,"byte_end":11203,"line_start":385,"line_end":385,"column_start":37,"column_end":39},"kind":{"Impl":{"id":35}},"from":{"krate":0,"index":1075},"to":{"krate":0,"index":291}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":11409,"byte_end":11411,"line_start":395,"line_end":395,"column_start":33,"column_end":35},"kind":{"Impl":{"id":36}},"from":{"krate":0,"index":1075},"to":{"krate":0,"index":198}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":11674,"byte_end":11676,"line_start":406,"line_end":406,"column_start":51,"column_end":53},"kind":{"Impl":{"id":37}},"from":{"krate":0,"index":1075},"to":{"krate":0,"index":327}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/soft.rs","byte_start":12968,"byte_end":12970,"line_start":444,"line_end":444,"column_start":43,"column_end":45},"kind":{"Impl":{"id":38}},"from":{"krate":0,"index":1075},"to":{"krate":0,"index":248}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14144,"byte_end":14147,"line_start":12,"line_end":12,"column_start":21,"column_end":24},"kind":"SuperTrait","from":{"krate":1,"index":3086},"to":{"krate":0,"index":200}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14165,"byte_end":14174,"line_start":12,"line_end":12,"column_start":42,"column_end":51},"kind":"SuperTrait","from":{"krate":1,"index":3117},"to":{"krate":0,"index":200}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14177,"byte_end":14182,"line_start":12,"line_end":12,"column_start":54,"column_end":59},"kind":"SuperTrait","from":{"krate":1,"index":3024},"to":{"krate":0,"index":200}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14185,"byte_end":14189,"line_start":12,"line_end":12,"column_start":62,"column_end":66},"kind":"SuperTrait","from":{"krate":1,"index":3029},"to":{"krate":0,"index":200}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14192,"byte_end":14197,"line_start":12,"line_end":12,"column_start":69,"column_end":74},"kind":"SuperTrait","from":{"krate":1,"index":2640},"to":{"krate":0,"index":200}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14200,"byte_end":14205,"line_start":12,"line_end":12,"column_start":77,"column_end":82},"kind":"SuperTrait","from":{"krate":0,"index":198},"to":{"krate":0,"index":200}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14285,"byte_end":14291,"line_start":15,"line_end":15,"column_start":5,"column_end":11},"kind":"SuperTrait","from":{"krate":1,"index":3142},"to":{"krate":0,"index":201}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14313,"byte_end":14318,"line_start":16,"line_end":16,"column_start":7,"column_end":12},"kind":"SuperTrait","from":{"krate":1,"index":3147},"to":{"krate":0,"index":201}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14340,"byte_end":14346,"line_start":17,"line_end":17,"column_start":7,"column_end":13},"kind":"SuperTrait","from":{"krate":1,"index":3152},"to":{"krate":0,"index":201}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14368,"byte_end":14380,"line_start":18,"line_end":18,"column_start":7,"column_end":19},"kind":"SuperTrait","from":{"krate":1,"index":3177},"to":{"krate":0,"index":201}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14387,"byte_end":14390,"line_start":19,"line_end":19,"column_start":7,"column_end":10},"kind":"SuperTrait","from":{"krate":1,"index":3138},"to":{"krate":0,"index":201}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14412,"byte_end":14418,"line_start":20,"line_end":20,"column_start":7,"column_end":13},"kind":"SuperTrait","from":{"krate":0,"index":195},"to":{"krate":0,"index":201}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14440,"byte_end":14445,"line_start":21,"line_end":21,"column_start":7,"column_end":12},"kind":"SuperTrait","from":{"krate":1,"index":3024},"to":{"krate":0,"index":201}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14452,"byte_end":14456,"line_start":22,"line_end":22,"column_start":7,"column_end":11},"kind":"SuperTrait","from":{"krate":1,"index":3029},"to":{"krate":0,"index":201}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14463,"byte_end":14468,"line_start":23,"line_end":23,"column_start":7,"column_end":12},"kind":"SuperTrait","from":{"krate":1,"index":2640},"to":{"krate":0,"index":201}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14494,"byte_end":14501,"line_start":27,"line_end":27,"column_start":21,"column_end":28},"kind":"SuperTrait","from":{"krate":0,"index":201},"to":{"krate":0,"index":202}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14504,"byte_end":14520,"line_start":27,"line_end":27,"column_start":31,"column_end":47},"kind":"SuperTrait","from":{"krate":0,"index":205},"to":{"krate":0,"index":202}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14544,"byte_end":14552,"line_start":28,"line_end":28,"column_start":21,"column_end":29},"kind":"SuperTrait","from":{"krate":0,"index":202},"to":{"krate":0,"index":203}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14555,"byte_end":14571,"line_start":28,"line_end":28,"column_start":32,"column_end":48},"kind":"SuperTrait","from":{"krate":0,"index":214},"to":{"krate":0,"index":203}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14596,"byte_end":14604,"line_start":29,"line_end":29,"column_start":22,"column_end":30},"kind":"SuperTrait","from":{"krate":0,"index":203},"to":{"krate":0,"index":204}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":14607,"byte_end":14624,"line_start":29,"line_end":29,"column_start":33,"column_end":50},"kind":"SuperTrait","from":{"krate":0,"index":216},"to":{"krate":0,"index":204}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17278,"byte_end":17286,"line_start":114,"line_end":114,"column_start":5,"column_end":13},"kind":"SuperTrait","from":{"krate":0,"index":202},"to":{"krate":0,"index":260}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17293,"byte_end":17298,"line_start":115,"line_end":115,"column_start":7,"column_end":12},"kind":"SuperTrait","from":{"krate":0,"index":324},"to":{"krate":0,"index":260}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17321,"byte_end":17329,"line_start":116,"line_end":116,"column_start":7,"column_end":15},"kind":"SuperTrait","from":{"krate":0,"index":200},"to":{"krate":0,"index":260}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17336,"byte_end":17340,"line_start":117,"line_end":117,"column_start":7,"column_end":11},"kind":"SuperTrait","from":{"krate":0,"index":234},"to":{"krate":0,"index":260}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17352,"byte_end":17358,"line_start":118,"line_end":118,"column_start":7,"column_end":13},"kind":"SuperTrait","from":{"krate":0,"index":244},"to":{"krate":0,"index":260}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17365,"byte_end":17375,"line_start":119,"line_end":119,"column_start":7,"column_end":17},"kind":"SuperTrait","from":{"krate":0,"index":248},"to":{"krate":0,"index":260}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17382,"byte_end":17392,"line_start":120,"line_end":120,"column_start":7,"column_end":17},"kind":"SuperTrait","from":{"krate":0,"index":327},"to":{"krate":0,"index":260}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17399,"byte_end":17408,"line_start":121,"line_end":121,"column_start":7,"column_end":16},"kind":"SuperTrait","from":{"krate":0,"index":291},"to":{"krate":0,"index":260}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17425,"byte_end":17429,"line_start":122,"line_end":122,"column_start":7,"column_end":11},"kind":"SuperTrait","from":{"krate":1,"index":2922},"to":{"krate":0,"index":260}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17483,"byte_end":17491,"line_start":126,"line_end":126,"column_start":5,"column_end":13},"kind":"SuperTrait","from":{"krate":0,"index":203},"to":{"krate":0,"index":263}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17494,"byte_end":17499,"line_start":126,"line_end":126,"column_start":16,"column_end":21},"kind":"SuperTrait","from":{"krate":0,"index":324},"to":{"krate":0,"index":263}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17518,"byte_end":17526,"line_start":126,"line_end":126,"column_start":40,"column_end":48},"kind":"SuperTrait","from":{"krate":0,"index":200},"to":{"krate":0,"index":263}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17529,"byte_end":17533,"line_start":126,"line_end":126,"column_start":51,"column_end":55},"kind":"SuperTrait","from":{"krate":0,"index":230},"to":{"krate":0,"index":263}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17541,"byte_end":17550,"line_start":126,"line_end":126,"column_start":63,"column_end":72},"kind":"SuperTrait","from":{"krate":0,"index":291},"to":{"krate":0,"index":263}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17563,"byte_end":17567,"line_start":126,"line_end":126,"column_start":85,"column_end":89},"kind":"SuperTrait","from":{"krate":1,"index":2922},"to":{"krate":0,"index":263}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17622,"byte_end":17631,"line_start":130,"line_end":130,"column_start":5,"column_end":14},"kind":"SuperTrait","from":{"krate":0,"index":204},"to":{"krate":0,"index":266}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17634,"byte_end":17639,"line_start":130,"line_end":130,"column_start":17,"column_end":22},"kind":"SuperTrait","from":{"krate":0,"index":324},"to":{"krate":0,"index":266}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17658,"byte_end":17664,"line_start":130,"line_end":130,"column_start":41,"column_end":47},"kind":"SuperTrait","from":{"krate":0,"index":252},"to":{"krate":0,"index":266}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17667,"byte_end":17676,"line_start":130,"line_end":130,"column_start":50,"column_end":59},"kind":"SuperTrait","from":{"krate":0,"index":291},"to":{"krate":0,"index":266}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17690,"byte_end":17694,"line_start":130,"line_end":130,"column_start":73,"column_end":77},"kind":"SuperTrait","from":{"krate":1,"index":2922},"to":{"krate":0,"index":266}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17751,"byte_end":17759,"line_start":135,"line_end":135,"column_start":5,"column_end":13},"kind":"SuperTrait","from":{"krate":0,"index":202},"to":{"krate":0,"index":269}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17766,"byte_end":17771,"line_start":136,"line_end":136,"column_start":7,"column_end":12},"kind":"SuperTrait","from":{"krate":0,"index":324},"to":{"krate":0,"index":269}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17794,"byte_end":17798,"line_start":137,"line_end":137,"column_start":7,"column_end":11},"kind":"SuperTrait","from":{"krate":0,"index":230},"to":{"krate":0,"index":269}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17815,"byte_end":17824,"line_start":138,"line_end":138,"column_start":7,"column_end":16},"kind":"SuperTrait","from":{"krate":0,"index":291},"to":{"krate":0,"index":269}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17846,"byte_end":17854,"line_start":139,"line_end":139,"column_start":7,"column_end":15},"kind":"SuperTrait","from":{"krate":0,"index":200},"to":{"krate":0,"index":269}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17861,"byte_end":17865,"line_start":140,"line_end":140,"column_start":7,"column_end":11},"kind":"SuperTrait","from":{"krate":1,"index":2922},"to":{"krate":0,"index":269}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17888,"byte_end":17898,"line_start":141,"line_end":141,"column_start":7,"column_end":17},"kind":"SuperTrait","from":{"krate":0,"index":327},"to":{"krate":0,"index":269}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17938,"byte_end":17946,"line_start":145,"line_end":145,"column_start":5,"column_end":13},"kind":"SuperTrait","from":{"krate":0,"index":203},"to":{"krate":0,"index":272}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17953,"byte_end":17958,"line_start":146,"line_end":146,"column_start":7,"column_end":12},"kind":"SuperTrait","from":{"krate":0,"index":324},"to":{"krate":0,"index":272}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":17981,"byte_end":17985,"line_start":147,"line_end":147,"column_start":7,"column_end":11},"kind":"SuperTrait","from":{"krate":0,"index":230},"to":{"krate":0,"index":272}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18002,"byte_end":18011,"line_start":148,"line_end":148,"column_start":7,"column_end":16},"kind":"SuperTrait","from":{"krate":0,"index":291},"to":{"krate":0,"index":272}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18033,"byte_end":18041,"line_start":149,"line_end":149,"column_start":7,"column_end":15},"kind":"SuperTrait","from":{"krate":0,"index":200},"to":{"krate":0,"index":272}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18048,"byte_end":18058,"line_start":150,"line_end":150,"column_start":7,"column_end":17},"kind":"SuperTrait","from":{"krate":0,"index":327},"to":{"krate":0,"index":272}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18065,"byte_end":18069,"line_start":151,"line_end":151,"column_start":7,"column_end":11},"kind":"SuperTrait","from":{"krate":1,"index":2922},"to":{"krate":0,"index":272}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18123,"byte_end":18131,"line_start":155,"line_end":155,"column_start":5,"column_end":13},"kind":"SuperTrait","from":{"krate":0,"index":203},"to":{"krate":0,"index":275}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18138,"byte_end":18143,"line_start":156,"line_end":156,"column_start":7,"column_end":12},"kind":"SuperTrait","from":{"krate":0,"index":324},"to":{"krate":0,"index":275}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18166,"byte_end":18170,"line_start":157,"line_end":157,"column_start":7,"column_end":11},"kind":"SuperTrait","from":{"krate":0,"index":234},"to":{"krate":0,"index":275}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18182,"byte_end":18191,"line_start":158,"line_end":158,"column_start":7,"column_end":16},"kind":"SuperTrait","from":{"krate":0,"index":291},"to":{"krate":0,"index":275}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18208,"byte_end":18216,"line_start":159,"line_end":159,"column_start":7,"column_end":15},"kind":"SuperTrait","from":{"krate":0,"index":200},"to":{"krate":0,"index":275}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18223,"byte_end":18229,"line_start":160,"line_end":160,"column_start":7,"column_end":13},"kind":"SuperTrait","from":{"krate":0,"index":244},"to":{"krate":0,"index":275}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18236,"byte_end":18246,"line_start":161,"line_end":161,"column_start":7,"column_end":17},"kind":"SuperTrait","from":{"krate":0,"index":327},"to":{"krate":0,"index":275}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18253,"byte_end":18257,"line_start":162,"line_end":162,"column_start":7,"column_end":11},"kind":"SuperTrait","from":{"krate":1,"index":2922},"to":{"krate":0,"index":275}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18312,"byte_end":18321,"line_start":166,"line_end":166,"column_start":5,"column_end":14},"kind":"SuperTrait","from":{"krate":0,"index":204},"to":{"krate":0,"index":278}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18328,"byte_end":18333,"line_start":167,"line_end":167,"column_start":7,"column_end":12},"kind":"SuperTrait","from":{"krate":0,"index":324},"to":{"krate":0,"index":278}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18356,"byte_end":18360,"line_start":168,"line_end":168,"column_start":7,"column_end":11},"kind":"SuperTrait","from":{"krate":0,"index":230},"to":{"krate":0,"index":278}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18378,"byte_end":18387,"line_start":169,"line_end":169,"column_start":7,"column_end":16},"kind":"SuperTrait","from":{"krate":0,"index":291},"to":{"krate":0,"index":278}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18410,"byte_end":18416,"line_start":170,"line_end":170,"column_start":7,"column_end":13},"kind":"SuperTrait","from":{"krate":0,"index":252},"to":{"krate":0,"index":278}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18423,"byte_end":18427,"line_start":171,"line_end":171,"column_start":7,"column_end":11},"kind":"SuperTrait","from":{"krate":1,"index":2922},"to":{"krate":0,"index":278}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18484,"byte_end":18492,"line_start":176,"line_end":176,"column_start":5,"column_end":13},"kind":"SuperTrait","from":{"krate":0,"index":202},"to":{"krate":0,"index":281}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18499,"byte_end":18504,"line_start":177,"line_end":177,"column_start":7,"column_end":12},"kind":"SuperTrait","from":{"krate":0,"index":324},"to":{"krate":0,"index":281}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18527,"byte_end":18531,"line_start":178,"line_end":178,"column_start":7,"column_end":11},"kind":"SuperTrait","from":{"krate":0,"index":234},"to":{"krate":0,"index":281}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18548,"byte_end":18555,"line_start":179,"line_end":179,"column_start":7,"column_end":14},"kind":"SuperTrait","from":{"krate":0,"index":238},"to":{"krate":0,"index":281}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18572,"byte_end":18578,"line_start":180,"line_end":180,"column_start":7,"column_end":13},"kind":"SuperTrait","from":{"krate":0,"index":241},"to":{"krate":0,"index":281}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18596,"byte_end":18605,"line_start":181,"line_end":181,"column_start":7,"column_end":16},"kind":"SuperTrait","from":{"krate":0,"index":291},"to":{"krate":0,"index":281}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18627,"byte_end":18635,"line_start":182,"line_end":182,"column_start":7,"column_end":15},"kind":"SuperTrait","from":{"krate":0,"index":200},"to":{"krate":0,"index":281}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18642,"byte_end":18652,"line_start":183,"line_end":183,"column_start":7,"column_end":17},"kind":"SuperTrait","from":{"krate":0,"index":248},"to":{"krate":0,"index":281}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18659,"byte_end":18663,"line_start":184,"line_end":184,"column_start":7,"column_end":11},"kind":"SuperTrait","from":{"krate":1,"index":2922},"to":{"krate":0,"index":281}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18686,"byte_end":18696,"line_start":185,"line_end":185,"column_start":7,"column_end":17},"kind":"SuperTrait","from":{"krate":0,"index":327},"to":{"krate":0,"index":281}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18736,"byte_end":18744,"line_start":189,"line_end":189,"column_start":5,"column_end":13},"kind":"SuperTrait","from":{"krate":0,"index":203},"to":{"krate":0,"index":285}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18751,"byte_end":18756,"line_start":190,"line_end":190,"column_start":7,"column_end":12},"kind":"SuperTrait","from":{"krate":0,"index":324},"to":{"krate":0,"index":285}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18779,"byte_end":18783,"line_start":191,"line_end":191,"column_start":7,"column_end":11},"kind":"SuperTrait","from":{"krate":0,"index":234},"to":{"krate":0,"index":285}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18800,"byte_end":18809,"line_start":192,"line_end":192,"column_start":7,"column_end":16},"kind":"SuperTrait","from":{"krate":0,"index":291},"to":{"krate":0,"index":285}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18831,"byte_end":18839,"line_start":193,"line_end":193,"column_start":7,"column_end":15},"kind":"SuperTrait","from":{"krate":0,"index":200},"to":{"krate":0,"index":285}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18846,"byte_end":18850,"line_start":194,"line_end":194,"column_start":7,"column_end":11},"kind":"SuperTrait","from":{"krate":1,"index":2922},"to":{"krate":0,"index":285}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18921,"byte_end":18930,"line_start":199,"line_end":199,"column_start":5,"column_end":14},"kind":"SuperTrait","from":{"krate":0,"index":204},"to":{"krate":0,"index":288}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18937,"byte_end":18942,"line_start":200,"line_end":200,"column_start":7,"column_end":12},"kind":"SuperTrait","from":{"krate":0,"index":324},"to":{"krate":0,"index":288}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18965,"byte_end":18969,"line_start":201,"line_end":201,"column_start":7,"column_end":11},"kind":"SuperTrait","from":{"krate":0,"index":234},"to":{"krate":0,"index":288}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":18987,"byte_end":18996,"line_start":202,"line_end":202,"column_start":7,"column_end":16},"kind":"SuperTrait","from":{"krate":0,"index":291},"to":{"krate":0,"index":288}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19019,"byte_end":19025,"line_start":203,"line_end":203,"column_start":7,"column_end":13},"kind":"SuperTrait","from":{"krate":0,"index":252},"to":{"krate":0,"index":288}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19032,"byte_end":19036,"line_start":204,"line_end":204,"column_start":7,"column_end":11},"kind":"SuperTrait","from":{"krate":1,"index":2922},"to":{"krate":0,"index":288}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19452,"byte_end":19453,"line_start":221,"line_end":221,"column_start":24,"column_end":25},"kind":{"Impl":{"id":39}},"from":{"krate":0,"index":300},"to":{"krate":0,"index":295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19586,"byte_end":19591,"line_start":231,"line_end":231,"column_start":20,"column_end":25},"kind":"SuperTrait","from":{"krate":1,"index":3024},"to":{"krate":0,"index":302}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/types.rs","byte_start":19594,"byte_end":19598,"line_start":231,"line_end":231,"column_start":28,"column_end":32},"kind":"SuperTrait","from":{"krate":1,"index":3029},"to":{"krate":0,"index":302}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":43136,"byte_end":43146,"line_start":188,"line_end":188,"column_start":47,"column_end":57},"kind":{"Impl":{"id":40}},"from":{"krate":0,"index":1219},"to":{"krate":0,"index":205}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":43786,"byte_end":43796,"line_start":210,"line_end":210,"column_start":47,"column_end":57},"kind":{"Impl":{"id":41}},"from":{"krate":0,"index":1219},"to":{"krate":0,"index":205}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":44853,"byte_end":44863,"line_start":245,"line_end":245,"column_start":47,"column_end":57},"kind":{"Impl":{"id":42}},"from":{"krate":0,"index":1313},"to":{"krate":0,"index":205}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":45503,"byte_end":45513,"line_start":267,"line_end":267,"column_start":47,"column_end":57},"kind":{"Impl":{"id":43}},"from":{"krate":0,"index":1313},"to":{"krate":0,"index":205}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":46005,"byte_end":46015,"line_start":280,"line_end":280,"column_start":57,"column_end":67},"kind":{"Impl":{"id":44}},"from":{"krate":0,"index":1313},"to":{"krate":0,"index":214}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":46609,"byte_end":46620,"line_start":301,"line_end":301,"column_start":57,"column_end":68},"kind":{"Impl":{"id":45}},"from":{"krate":0,"index":1407},"to":{"krate":0,"index":205}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":47081,"byte_end":47092,"line_start":312,"line_end":312,"column_start":57,"column_end":68},"kind":{"Impl":{"id":46}},"from":{"krate":0,"index":1407},"to":{"krate":0,"index":214}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":47211,"byte_end":47222,"line_start":315,"line_end":315,"column_start":58,"column_end":69},"kind":{"Impl":{"id":47}},"from":{"krate":0,"index":1407},"to":{"krate":0,"index":216}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":47360,"byte_end":47370,"line_start":321,"line_end":321,"column_start":38,"column_end":48},"kind":{"Impl":{"id":48}},"from":{"krate":0,"index":1219},"to":{"krate":0,"index":291}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":47999,"byte_end":48009,"line_start":339,"line_end":339,"column_start":38,"column_end":48},"kind":{"Impl":{"id":49}},"from":{"krate":0,"index":1219},"to":{"krate":0,"index":291}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":48742,"byte_end":48752,"line_start":359,"line_end":359,"column_start":38,"column_end":48},"kind":{"Impl":{"id":50}},"from":{"krate":0,"index":1313},"to":{"krate":0,"index":291}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":49264,"byte_end":49274,"line_start":378,"line_end":378,"column_start":38,"column_end":48},"kind":{"Impl":{"id":51}},"from":{"krate":0,"index":1313},"to":{"krate":0,"index":291}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":49837,"byte_end":49848,"line_start":397,"line_end":397,"column_start":43,"column_end":54},"kind":{"Impl":{"id":52}},"from":{"krate":0,"index":1407},"to":{"krate":0,"index":291}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":50103,"byte_end":50113,"line_start":408,"line_end":408,"column_start":42,"column_end":52},"kind":{"Impl":{"id":53}},"from":{"krate":0,"index":646},"to":{"krate":0,"index":291}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":51075,"byte_end":51085,"line_start":445,"line_end":445,"column_start":49,"column_end":59},"kind":{"Impl":{"id":54}},"from":{"krate":0,"index":1219},"to":{"krate":0,"index":200}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":51190,"byte_end":51200,"line_start":449,"line_end":449,"column_start":49,"column_end":59},"kind":{"Impl":{"id":55}},"from":{"krate":0,"index":1313},"to":{"krate":0,"index":200}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":51546,"byte_end":51556,"line_start":458,"line_end":458,"column_start":69,"column_end":79},"kind":{"Impl":{"id":56}},"from":{"krate":0,"index":1219},"to":{"krate":0,"index":260}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":51771,"byte_end":51781,"line_start":464,"line_end":464,"column_start":69,"column_end":79},"kind":{"Impl":{"id":57}},"from":{"krate":0,"index":1313},"to":{"krate":0,"index":263}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":52024,"byte_end":52035,"line_start":471,"line_end":471,"column_start":70,"column_end":81},"kind":{"Impl":{"id":58}},"from":{"krate":0,"index":1407},"to":{"krate":0,"index":266}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":52376,"byte_end":52386,"line_start":480,"line_end":480,"column_start":43,"column_end":53},"kind":{"Impl":{"id":59}},"from":{"krate":0,"index":1219},"to":{"krate":0,"index":260}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":52593,"byte_end":52603,"line_start":486,"line_end":486,"column_start":43,"column_end":53},"kind":{"Impl":{"id":60}},"from":{"krate":0,"index":1313},"to":{"krate":0,"index":263}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":52838,"byte_end":52849,"line_start":493,"line_end":493,"column_start":44,"column_end":55},"kind":{"Impl":{"id":61}},"from":{"krate":0,"index":1407},"to":{"krate":0,"index":266}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":53232,"byte_end":53242,"line_start":502,"line_end":502,"column_start":43,"column_end":53},"kind":{"Impl":{"id":62}},"from":{"krate":0,"index":1219},"to":{"krate":0,"index":227}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":53513,"byte_end":53523,"line_start":514,"line_end":514,"column_start":28,"column_end":38},"kind":{"Impl":{"id":63}},"from":{"krate":0,"index":1219},"to":{"krate":0,"index":234}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":54134,"byte_end":54144,"line_start":535,"line_end":535,"column_start":28,"column_end":38},"kind":{"Impl":{"id":64}},"from":{"krate":0,"index":1219},"to":{"krate":0,"index":234}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":55493,"byte_end":55503,"line_start":574,"line_end":574,"column_start":33,"column_end":43},"kind":{"Impl":{"id":65}},"from":{"krate":0,"index":1219},"to":{"krate":0,"index":248}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":55852,"byte_end":55862,"line_start":589,"line_end":589,"column_start":29,"column_end":39},"kind":{"Impl":{"id":66}},"from":{"krate":0,"index":1219},"to":{"krate":0,"index":244}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":56300,"byte_end":56310,"line_start":604,"line_end":604,"column_start":25,"column_end":35},"kind":{"Impl":{"id":67}},"from":{"krate":0,"index":646},"to":{"krate":0,"index":244}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":57065,"byte_end":57075,"line_start":628,"line_end":628,"column_start":25,"column_end":35},"kind":{"Impl":{"id":68}},"from":{"krate":0,"index":646},"to":{"krate":0,"index":244}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":58166,"byte_end":58176,"line_start":659,"line_end":659,"column_start":43,"column_end":53},"kind":{"Impl":{"id":69}},"from":{"krate":0,"index":1313},"to":{"krate":0,"index":227}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":58361,"byte_end":58371,"line_start":666,"line_end":666,"column_start":28,"column_end":38},"kind":{"Impl":{"id":70}},"from":{"krate":0,"index":1313},"to":{"krate":0,"index":230}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":59002,"byte_end":59012,"line_start":688,"line_end":688,"column_start":28,"column_end":38},"kind":{"Impl":{"id":71}},"from":{"krate":0,"index":1313},"to":{"krate":0,"index":230}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":59885,"byte_end":59895,"line_start":717,"line_end":717,"column_start":24,"column_end":34},"kind":{"Impl":{"id":72}},"from":{"krate":0,"index":1219},"to":{"krate":0,"index":198}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":60586,"byte_end":60596,"line_start":738,"line_end":738,"column_start":24,"column_end":34},"kind":{"Impl":{"id":73}},"from":{"krate":0,"index":1219},"to":{"krate":0,"index":198}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":60734,"byte_end":60744,"line_start":745,"line_end":745,"column_start":24,"column_end":34},"kind":{"Impl":{"id":74}},"from":{"krate":0,"index":1313},"to":{"krate":0,"index":198}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":61004,"byte_end":61014,"line_start":754,"line_end":754,"column_start":24,"column_end":34},"kind":{"Impl":{"id":75}},"from":{"krate":0,"index":1313},"to":{"krate":0,"index":198}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":61195,"byte_end":61206,"line_start":761,"line_end":761,"column_start":24,"column_end":35},"kind":{"Impl":{"id":76}},"from":{"krate":0,"index":1407},"to":{"krate":0,"index":198}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":61466,"byte_end":61477,"line_start":770,"line_end":770,"column_start":24,"column_end":35},"kind":{"Impl":{"id":77}},"from":{"krate":0,"index":1407},"to":{"krate":0,"index":198}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":62092,"byte_end":62103,"line_start":793,"line_end":793,"column_start":25,"column_end":36},"kind":{"Impl":{"id":78}},"from":{"krate":0,"index":1407},"to":{"krate":0,"index":252}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":63125,"byte_end":63136,"line_start":829,"line_end":829,"column_start":25,"column_end":36},"kind":{"Impl":{"id":79}},"from":{"krate":0,"index":1407},"to":{"krate":0,"index":252}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":64765,"byte_end":64777,"line_start":883,"line_end":883,"column_start":40,"column_end":52},"kind":{"Impl":{"id":80}},"from":{"krate":0,"index":654},"to":{"krate":0,"index":241}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":64978,"byte_end":64990,"line_start":890,"line_end":890,"column_start":71,"column_end":83},"kind":{"Impl":{"id":81}},"from":{"krate":0,"index":638},"to":{"krate":0,"index":269}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":65341,"byte_end":65353,"line_start":898,"line_end":898,"column_start":71,"column_end":83},"kind":{"Impl":{"id":82}},"from":{"krate":0,"index":642},"to":{"krate":0,"index":272}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":65721,"byte_end":65731,"line_start":906,"line_end":906,"column_start":69,"column_end":79},"kind":{"Impl":{"id":83}},"from":{"krate":0,"index":646},"to":{"krate":0,"index":275}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":66002,"byte_end":66013,"line_start":913,"line_end":913,"column_start":70,"column_end":81},"kind":{"Impl":{"id":84}},"from":{"krate":0,"index":650},"to":{"krate":0,"index":278}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":66568,"byte_end":66580,"line_start":925,"line_end":925,"column_start":45,"column_end":57},"kind":{"Impl":{"id":85}},"from":{"krate":0,"index":638},"to":{"krate":0,"index":269}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":66911,"byte_end":66923,"line_start":933,"line_end":933,"column_start":45,"column_end":57},"kind":{"Impl":{"id":86}},"from":{"krate":0,"index":642},"to":{"krate":0,"index":272}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":67271,"byte_end":67281,"line_start":941,"line_end":941,"column_start":43,"column_end":53},"kind":{"Impl":{"id":87}},"from":{"krate":0,"index":646},"to":{"krate":0,"index":275}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":67538,"byte_end":67549,"line_start":948,"line_end":948,"column_start":44,"column_end":55},"kind":{"Impl":{"id":88}},"from":{"krate":0,"index":650},"to":{"krate":0,"index":278}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":68097,"byte_end":68107,"line_start":960,"line_end":960,"column_start":32,"column_end":42},"kind":{"Impl":{"id":89}},"from":{"krate":0,"index":646},"to":{"krate":0,"index":234}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":68883,"byte_end":68895,"line_start":987,"line_end":987,"column_start":71,"column_end":83},"kind":{"Impl":{"id":90}},"from":{"krate":0,"index":654},"to":{"krate":0,"index":281}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":69377,"byte_end":69389,"line_start":997,"line_end":997,"column_start":71,"column_end":83},"kind":{"Impl":{"id":91}},"from":{"krate":0,"index":658},"to":{"krate":0,"index":285}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":69758,"byte_end":69769,"line_start":1005,"line_end":1005,"column_start":70,"column_end":81},"kind":{"Impl":{"id":92}},"from":{"krate":0,"index":662},"to":{"krate":0,"index":288}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":70246,"byte_end":70258,"line_start":1016,"line_end":1016,"column_start":45,"column_end":57},"kind":{"Impl":{"id":93}},"from":{"krate":0,"index":658},"to":{"krate":0,"index":285}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":70607,"byte_end":70618,"line_start":1024,"line_end":1024,"column_start":44,"column_end":55},"kind":{"Impl":{"id":94}},"from":{"krate":0,"index":662},"to":{"krate":0,"index":288}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":72022,"byte_end":72024,"line_start":1065,"line_end":1065,"column_start":37,"column_end":39},"kind":{"Impl":{"id":95}},"from":{"krate":0,"index":1000},"to":{"krate":1,"index":2670}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":72592,"byte_end":72602,"line_start":1087,"line_end":1087,"column_start":32,"column_end":42},"kind":{"Impl":{"id":96}},"from":{"krate":0,"index":1219},"to":{"krate":1,"index":2670}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":72756,"byte_end":72766,"line_start":1093,"line_end":1093,"column_start":28,"column_end":38},"kind":{"Impl":{"id":97}},"from":{"krate":0,"index":1219},"to":{"krate":1,"index":9553}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":72993,"byte_end":73003,"line_start":1103,"line_end":1103,"column_start":32,"column_end":42},"kind":{"Impl":{"id":98}},"from":{"krate":0,"index":1313},"to":{"krate":1,"index":2670}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":73157,"byte_end":73167,"line_start":1109,"line_end":1109,"column_start":28,"column_end":38},"kind":{"Impl":{"id":99}},"from":{"krate":0,"index":1313},"to":{"krate":1,"index":9553}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":73391,"byte_end":73401,"line_start":1119,"line_end":1119,"column_start":28,"column_end":38},"kind":{"Impl":{"id":100}},"from":{"krate":0,"index":646},"to":{"krate":1,"index":9553}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":82219,"byte_end":82231,"line_start":1392,"line_end":1392,"column_start":14,"column_end":26},"kind":{"Impl":{"id":101}},"from":{"krate":0,"index":1553},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":82400,"byte_end":82412,"line_start":1399,"line_end":1399,"column_start":43,"column_end":55},"kind":{"Impl":{"id":102}},"from":{"krate":0,"index":1553},"to":{"krate":0,"index":269}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":82474,"byte_end":82486,"line_start":1400,"line_end":1400,"column_start":40,"column_end":52},"kind":{"Impl":{"id":103}},"from":{"krate":0,"index":1553},"to":{"krate":0,"index":324}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":82646,"byte_end":82658,"line_start":1406,"line_end":1406,"column_start":29,"column_end":41},"kind":{"Impl":{"id":104}},"from":{"krate":0,"index":1553},"to":{"krate":0,"index":327}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":83427,"byte_end":83439,"line_start":1428,"line_end":1428,"column_start":63,"column_end":75},"kind":{"Impl":{"id":105}},"from":{"krate":0,"index":1553},"to":{"krate":0,"index":291}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":83998,"byte_end":84010,"line_start":1443,"line_end":1443,"column_start":53,"column_end":65},"kind":{"Impl":{"id":106}},"from":{"krate":0,"index":1553},"to":{"krate":0,"index":230}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":84792,"byte_end":84804,"line_start":1465,"line_end":1465,"column_start":27,"column_end":39},"kind":{"Impl":{"id":107}},"from":{"krate":0,"index":1553},"to":{"krate":0,"index":202}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":84853,"byte_end":84865,"line_start":1466,"line_end":1466,"column_start":27,"column_end":39},"kind":{"Impl":{"id":108}},"from":{"krate":0,"index":1553},"to":{"krate":0,"index":200}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":85652,"byte_end":85664,"line_start":1490,"line_end":1490,"column_start":41,"column_end":53},"kind":{"Impl":{"id":109}},"from":{"krate":0,"index":1553},"to":{"krate":0,"index":205}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":86371,"byte_end":86383,"line_start":1512,"line_end":1512,"column_start":26,"column_end":38},"kind":{"Impl":{"id":110}},"from":{"krate":0,"index":1553},"to":{"krate":0,"index":201}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":86446,"byte_end":86460,"line_start":1513,"line_end":1513,"column_start":41,"column_end":55},"kind":{"Impl":{"id":111}},"from":{"krate":0,"index":1688},"to":{"krate":1,"index":2925}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":87961,"byte_end":87973,"line_start":1555,"line_end":1555,"column_start":22,"column_end":34},"kind":{"Impl":{"id":112}},"from":{"krate":0,"index":1553},"to":{"krate":1,"index":3138}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":88233,"byte_end":88245,"line_start":1566,"line_end":1566,"column_start":24,"column_end":36},"kind":{"Impl":{"id":113}},"from":{"krate":0,"index":1553},"to":{"krate":0,"index":198}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":88399,"byte_end":88411,"line_start":1570,"line_end":1570,"column_start":62,"column_end":74},"kind":{"Impl":{"id":114}},"from":{"krate":0,"index":1553},"to":{"krate":1,"index":2925}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":88661,"byte_end":88673,"line_start":1580,"line_end":1580,"column_start":29,"column_end":41},"kind":{"Impl":{"id":115}},"from":{"krate":0,"index":1553},"to":{"krate":0,"index":248}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":89376,"byte_end":89388,"line_start":1598,"line_end":1598,"column_start":49,"column_end":61},"kind":{"Impl":{"id":116}},"from":{"krate":0,"index":872},"to":{"krate":0,"index":281}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":89442,"byte_end":89454,"line_start":1600,"line_end":1600,"column_start":46,"column_end":58},"kind":{"Impl":{"id":117}},"from":{"krate":0,"index":872},"to":{"krate":0,"index":324}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":89760,"byte_end":89772,"line_start":1609,"line_end":1609,"column_start":69,"column_end":81},"kind":{"Impl":{"id":118}},"from":{"krate":0,"index":872},"to":{"krate":0,"index":291}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":90323,"byte_end":90335,"line_start":1623,"line_end":1623,"column_start":59,"column_end":71},"kind":{"Impl":{"id":119}},"from":{"krate":0,"index":872},"to":{"krate":0,"index":234}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":91068,"byte_end":91080,"line_start":1643,"line_end":1643,"column_start":62,"column_end":74},"kind":{"Impl":{"id":120}},"from":{"krate":0,"index":872},"to":{"krate":0,"index":238}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":92604,"byte_end":92616,"line_start":1675,"line_end":1675,"column_start":42,"column_end":54},"kind":{"Impl":{"id":121}},"from":{"krate":0,"index":872},"to":{"krate":0,"index":241}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":92804,"byte_end":92818,"line_start":1681,"line_end":1681,"column_start":47,"column_end":61},"kind":{"Impl":{"id":122}},"from":{"krate":0,"index":1701},"to":{"krate":1,"index":2925}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/sse2.rs","byte_start":93156,"byte_end":93168,"line_start":1692,"line_end":1692,"column_start":64,"column_end":76},"kind":{"Impl":{"id":123}},"from":{"krate":0,"index":872},"to":{"krate":1,"index":2925}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":21978,"byte_end":21988,"line_start":37,"line_end":37,"column_start":48,"column_end":58},"kind":{"Impl":{"id":124}},"from":{"krate":0,"index":1653},"to":{"krate":0,"index":302}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":23383,"byte_end":23394,"line_start":71,"line_end":71,"column_start":28,"column_end":39},"kind":{"Impl":{"id":125}},"from":{"krate":0,"index":1668},"to":{"krate":0,"index":302}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":25130,"byte_end":25144,"line_start":116,"line_end":116,"column_start":32,"column_end":46},"kind":{"Impl":{"id":126}},"from":{"krate":0,"index":1677},"to":{"krate":0,"index":324}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":25417,"byte_end":25431,"line_start":128,"line_end":128,"column_start":25,"column_end":39},"kind":{"Impl":{"id":127}},"from":{"krate":0,"index":1677},"to":{"krate":1,"index":2925}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":25553,"byte_end":25567,"line_start":134,"line_end":134,"column_start":18,"column_end":32},"kind":{"Impl":{"id":128}},"from":{"krate":0,"index":1677},"to":{"krate":1,"index":2997}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":25678,"byte_end":25692,"line_start":140,"line_end":140,"column_start":13,"column_end":27},"kind":{"Impl":{"id":129}},"from":{"krate":0,"index":1677},"to":{"krate":1,"index":2675}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":25715,"byte_end":25729,"line_start":141,"line_end":141,"column_start":20,"column_end":34},"kind":{"Impl":{"id":130}},"from":{"krate":0,"index":1677},"to":{"krate":1,"index":2670}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":26068,"byte_end":26082,"line_start":157,"line_end":157,"column_start":25,"column_end":39},"kind":{"Impl":{"id":131}},"from":{"krate":0,"index":1688},"to":{"krate":1,"index":2925}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":26204,"byte_end":26218,"line_start":163,"line_end":163,"column_start":18,"column_end":32},"kind":{"Impl":{"id":132}},"from":{"krate":0,"index":1688},"to":{"krate":1,"index":2997}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":26325,"byte_end":26339,"line_start":169,"line_end":169,"column_start":6,"column_end":20},"kind":{"Impl":{"id":133}},"from":{"krate":0,"index":1688},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":26571,"byte_end":26585,"line_start":179,"line_end":179,"column_start":13,"column_end":27},"kind":{"Impl":{"id":134}},"from":{"krate":0,"index":1688},"to":{"krate":1,"index":2675}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":26608,"byte_end":26622,"line_start":180,"line_end":180,"column_start":20,"column_end":34},"kind":{"Impl":{"id":135}},"from":{"krate":0,"index":1688},"to":{"krate":1,"index":2670}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":26964,"byte_end":26978,"line_start":196,"line_end":196,"column_start":18,"column_end":32},"kind":{"Impl":{"id":136}},"from":{"krate":0,"index":1701},"to":{"krate":1,"index":2997}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":27112,"byte_end":27126,"line_start":204,"line_end":204,"column_start":6,"column_end":20},"kind":{"Impl":{"id":137}},"from":{"krate":0,"index":1701},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":27358,"byte_end":27372,"line_start":214,"line_end":214,"column_start":13,"column_end":27},"kind":{"Impl":{"id":138}},"from":{"krate":0,"index":1701},"to":{"krate":1,"index":2675}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/ppv-lite86-0.2.16/src/x86_64/mod.rs","byte_start":27395,"byte_end":27409,"line_start":215,"line_end":215,"column_start":20,"column_end":34},"kind":{"Impl":{"id":139}},"from":{"krate":0,"index":1701},"to":{"krate":1,"index":2670}}]} \ No newline at end of file diff --git a/target/rls/debug/deps/save-analysis/librand-1af5b0ae7ab63d3f.json b/target/rls/debug/deps/save-analysis/librand-1af5b0ae7ab63d3f.json new file mode 100644 index 0000000..e075f92 --- /dev/null +++ b/target/rls/debug/deps/save-analysis/librand-1af5b0ae7ab63d3f.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.1","compilation":{"directory":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5","program":"/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rls","arguments":["--crate-name","rand","--edition=2018","/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","--json=diagnostic-rendered-ansi,future-incompat","--crate-type","lib","--emit=dep-info,metadata","-C","embed-bitcode=no","-C","debuginfo=2","--cfg","feature=\"alloc\"","--cfg","feature=\"default\"","--cfg","feature=\"getrandom\"","--cfg","feature=\"libc\"","--cfg","feature=\"rand_chacha\"","--cfg","feature=\"std\"","--cfg","feature=\"std_rng\"","-C","metadata=1af5b0ae7ab63d3f","-C","extra-filename=-1af5b0ae7ab63d3f","--out-dir","/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps","-L","dependency=/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps","--extern","libc=/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/liblibc-85a1d1b767afc43e.rmeta","--extern","rand_chacha=/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/librand_chacha-57972ea9c03fb30c.rmeta","--extern","rand_core=/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/librand_core-bc4694db5c0e63ca.rmeta","--cap-lints","allow","--error-format=json","--sysroot","/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu"],"output":"/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/librand-1af5b0ae7ab63d3f.rmeta"},"prelude":{"crate_id":{"name":"rand","disambiguator":[13036674555719028254,0]},"crate_root":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src","external_crates":[{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","num":1,"id":{"name":"core","disambiguator":[5443730852259234579,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","num":2,"id":{"name":"compiler_builtins","disambiguator":[4162025702538114948,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","num":3,"id":{"name":"rustc_std_workspace_core","disambiguator":[17612152343462746361,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","num":4,"id":{"name":"std","disambiguator":[14026078687029744792,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","num":5,"id":{"name":"alloc","disambiguator":[5560808256873132085,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","num":6,"id":{"name":"libc","disambiguator":[135160560163186024,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","num":7,"id":{"name":"unwind","disambiguator":[5800521777261530329,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","num":8,"id":{"name":"cfg_if","disambiguator":[7095478770525139037,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","num":9,"id":{"name":"hashbrown","disambiguator":[17225897750877482818,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","num":10,"id":{"name":"rustc_std_workspace_alloc","disambiguator":[15613653607383163471,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","num":11,"id":{"name":"rustc_demangle","disambiguator":[12428323400248712701,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","num":12,"id":{"name":"std_detect","disambiguator":[11893279639181573711,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","num":13,"id":{"name":"addr2line","disambiguator":[13583305032161054644,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","num":14,"id":{"name":"gimli","disambiguator":[16609837797022023111,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","num":15,"id":{"name":"object","disambiguator":[18098459435141129808,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","num":16,"id":{"name":"memchr","disambiguator":[15244551393771456017,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","num":17,"id":{"name":"miniz_oxide","disambiguator":[6576340271055396708,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","num":18,"id":{"name":"adler","disambiguator":[15284510821186066958,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","num":19,"id":{"name":"panic_unwind","disambiguator":[12982807908830018159,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","num":20,"id":{"name":"rand_core","disambiguator":[12889323934562554227,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","num":21,"id":{"name":"getrandom","disambiguator":[1108089700107934696,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","num":22,"id":{"name":"cfg_if","disambiguator":[1004283514336169005,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","num":23,"id":{"name":"libc","disambiguator":[14926449781656206643,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","num":24,"id":{"name":"rand_chacha","disambiguator":[7069928851083402988,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","num":25,"id":{"name":"ppv_lite86","disambiguator":[2933753580364552420,0]}}],"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":408,"byte_end":6643,"line_start":10,"line_end":214,"column_start":1,"column_end":2}},"imports":[{"kind":"Use","ref_id":{"krate":20,"index":193},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":2791,"byte_end":2800,"line_start":94,"line_end":94,"column_start":21,"column_end":30},"alias_span":null,"name":"CryptoRng","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":20,"index":109},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":2802,"byte_end":2807,"line_start":94,"line_end":94,"column_start":32,"column_end":37},"alias_span":null,"name":"Error","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":20,"index":188},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":2809,"byte_end":2816,"line_start":94,"line_end":94,"column_start":39,"column_end":46},"alias_span":null,"name":"RngCore","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":20,"index":194},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":2818,"byte_end":2829,"line_start":94,"line_end":94,"column_start":48,"column_end":59},"alias_span":null,"name":"SeedableRng","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":0,"index":115},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":11237,"byte_end":11246,"line_start":108,"line_end":108,"column_start":27,"column_end":36},"alias_span":null,"name":"IntoFloat","value":"","parent":{"krate":0,"index":328}},{"kind":"Use","ref_id":{"krate":0,"index":1646},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs","byte_start":162139,"byte_end":162152,"line_start":14,"line_end":14,"column_start":17,"column_end":30},"alias_span":null,"name":"WeightedIndex","value":"","parent":{"krate":0,"index":462}},{"kind":"Use","ref_id":{"krate":0,"index":1663},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs","byte_start":162154,"byte_end":162167,"line_start":14,"line_end":14,"column_start":32,"column_end":45},"alias_span":null,"name":"WeightedError","value":"","parent":{"krate":0,"index":462}},{"kind":"Use","ref_id":{"krate":0,"index":1122},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":11525,"byte_end":11534,"line_start":119,"line_end":119,"column_start":27,"column_end":36},"alias_span":null,"name":"Bernoulli","value":"","parent":{"krate":0,"index":24}},{"kind":"Use","ref_id":{"krate":0,"index":1133},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":11536,"byte_end":11550,"line_start":119,"line_end":119,"column_start":38,"column_end":52},"alias_span":null,"name":"BernoulliError","value":"","parent":{"krate":0,"index":24}},{"kind":"Use","ref_id":{"krate":0,"index":60},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":11582,"byte_end":11594,"line_start":120,"line_end":120,"column_start":30,"column_end":42},"alias_span":null,"name":"Distribution","value":"","parent":{"krate":0,"index":24}},{"kind":"Use","ref_id":{"krate":0,"index":1147},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":11596,"byte_end":11604,"line_start":120,"line_end":120,"column_start":44,"column_end":52},"alias_span":null,"name":"DistIter","value":"","parent":{"krate":0,"index":24}},{"kind":"Use","ref_id":{"krate":0,"index":1159},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":11606,"byte_end":11613,"line_start":120,"line_end":120,"column_start":54,"column_end":61},"alias_span":null,"name":"DistMap","value":"","parent":{"krate":0,"index":24}},{"kind":"Use","ref_id":{"krate":0,"index":93},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":11670,"byte_end":11680,"line_start":122,"line_end":122,"column_start":29,"column_end":39},"alias_span":null,"name":"DistString","value":"","parent":{"krate":0,"index":24}},{"kind":"Use","ref_id":{"krate":0,"index":1180},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":11704,"byte_end":11710,"line_start":123,"line_end":123,"column_start":23,"column_end":29},"alias_span":null,"name":"Open01","value":"","parent":{"krate":0,"index":24}},{"kind":"Use","ref_id":{"krate":0,"index":1181},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":11704,"byte_end":11710,"line_start":123,"line_end":123,"column_start":23,"column_end":29},"alias_span":null,"name":"Open01","value":"","parent":{"krate":0,"index":24}},{"kind":"Use","ref_id":{"krate":0,"index":1173},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":11712,"byte_end":11724,"line_start":123,"line_end":123,"column_start":31,"column_end":43},"alias_span":null,"name":"OpenClosed01","value":"","parent":{"krate":0,"index":24}},{"kind":"Use","ref_id":{"krate":0,"index":1174},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":11712,"byte_end":11724,"line_start":123,"line_end":123,"column_start":31,"column_end":43},"alias_span":null,"name":"OpenClosed01","value":"","parent":{"krate":0,"index":24}},{"kind":"Use","ref_id":{"krate":0,"index":1253},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":11748,"byte_end":11760,"line_start":124,"line_end":124,"column_start":22,"column_end":34},"alias_span":null,"name":"Alphanumeric","value":"","parent":{"krate":0,"index":24}},{"kind":"Use","ref_id":{"krate":0,"index":1254},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":11748,"byte_end":11760,"line_start":124,"line_end":124,"column_start":22,"column_end":34},"alias_span":null,"name":"Alphanumeric","value":"","parent":{"krate":0,"index":24}},{"kind":"Use","ref_id":{"krate":0,"index":1572},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":11783,"byte_end":11788,"line_start":125,"line_end":125,"column_start":22,"column_end":27},"alias_span":null,"name":"Slice","value":"","parent":{"krate":0,"index":24}},{"kind":"Use","ref_id":{"krate":0,"index":1683},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":11828,"byte_end":11835,"line_start":127,"line_end":127,"column_start":24,"column_end":31},"alias_span":null,"name":"Uniform","value":"","parent":{"krate":0,"index":24}},{"kind":"Use","ref_id":{"krate":0,"index":1663},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":11894,"byte_end":11907,"line_start":129,"line_end":129,"column_start":32,"column_end":45},"alias_span":null,"name":"WeightedError","value":"","parent":{"krate":0,"index":24}},{"kind":"Use","ref_id":{"krate":0,"index":1646},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":11909,"byte_end":11922,"line_start":129,"line_end":129,"column_start":47,"column_end":60},"alias_span":null,"name":"WeightedIndex","value":"","parent":{"krate":0,"index":24}},{"kind":"Use","ref_id":{"krate":0,"index":60},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","byte_start":163908,"byte_end":163920,"line_start":21,"line_end":21,"column_start":49,"column_end":61},"alias_span":null,"name":"Distribution","value":"","parent":{"krate":0,"index":531}},{"kind":"Use","ref_id":{"krate":0,"index":2391},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","byte_start":164068,"byte_end":164074,"line_start":26,"line_end":26,"column_start":40,"column_end":46},"alias_span":null,"name":"StdRng","value":"","parent":{"krate":0,"index":531}},{"kind":"Use","ref_id":{"krate":0,"index":2405},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","byte_start":164165,"byte_end":164174,"line_start":29,"line_end":29,"column_start":22,"column_end":31},"alias_span":null,"name":"ThreadRng","value":"","parent":{"krate":0,"index":531}},{"kind":"Use","ref_id":{"krate":0,"index":1032},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","byte_start":164215,"byte_end":164229,"line_start":30,"line_end":30,"column_start":40,"column_end":54},"alias_span":null,"name":"IteratorRandom","value":"","parent":{"krate":0,"index":531}},{"kind":"Use","ref_id":{"krate":0,"index":1004},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","byte_start":164231,"byte_end":164242,"line_start":30,"line_end":30,"column_start":56,"column_end":67},"alias_span":null,"name":"SliceRandom","value":"","parent":{"krate":0,"index":531}},{"kind":"Use","ref_id":{"krate":0,"index":1120},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","byte_start":164329,"byte_end":164335,"line_start":33,"line_end":33,"column_start":17,"column_end":23},"alias_span":null,"name":"random","value":"","parent":{"krate":0,"index":531}},{"kind":"Use","ref_id":{"krate":0,"index":843},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","byte_start":164337,"byte_end":164347,"line_start":33,"line_end":33,"column_start":25,"column_end":35},"alias_span":null,"name":"thread_rng","value":"","parent":{"krate":0,"index":531}},{"kind":"Use","ref_id":{"krate":20,"index":193},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","byte_start":164384,"byte_end":164393,"line_start":34,"line_end":34,"column_start":35,"column_end":44},"alias_span":null,"name":"CryptoRng","value":"","parent":{"krate":0,"index":531}},{"kind":"Use","ref_id":{"krate":0,"index":603},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","byte_start":164395,"byte_end":164398,"line_start":34,"line_end":34,"column_start":46,"column_end":49},"alias_span":null,"name":"Rng","value":"","parent":{"krate":0,"index":531}},{"kind":"Use","ref_id":{"krate":20,"index":188},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","byte_start":164400,"byte_end":164407,"line_start":34,"line_end":34,"column_start":51,"column_end":58},"alias_span":null,"name":"RngCore","value":"","parent":{"krate":0,"index":531}},{"kind":"Use","ref_id":{"krate":20,"index":194},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","byte_start":164409,"byte_end":164420,"line_start":34,"line_end":34,"column_start":60,"column_end":71},"alias_span":null,"name":"SeedableRng","value":"","parent":{"krate":0,"index":531}},{"kind":"Use","ref_id":{"krate":0,"index":2351},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/mod.rs","byte_start":189803,"byte_end":189812,"line_start":15,"line_end":15,"column_start":22,"column_end":31},"alias_span":null,"name":"ReadError","value":"","parent":{"krate":0,"index":634}},{"kind":"Use","ref_id":{"krate":0,"index":2345},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/mod.rs","byte_start":189814,"byte_end":189821,"line_start":15,"line_end":15,"column_start":33,"column_end":40},"alias_span":null,"name":"ReadRng","value":"","parent":{"krate":0,"index":634}},{"kind":"Use","ref_id":{"krate":0,"index":2356},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/mod.rs","byte_start":189849,"byte_end":189861,"line_start":16,"line_end":16,"column_start":26,"column_end":38},"alias_span":null,"name":"ReseedingRng","value":"","parent":{"krate":0,"index":634}},{"kind":"Use","ref_id":{"krate":0,"index":2391},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":189138,"byte_end":189144,"line_start":115,"line_end":115,"column_start":48,"column_end":54},"alias_span":null,"name":"StdRng","value":"","parent":{"krate":0,"index":633}},{"kind":"Use","ref_id":{"krate":0,"index":2405},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":189218,"byte_end":189227,"line_start":116,"line_end":116,"column_start":73,"column_end":82},"alias_span":null,"name":"ThreadRng","value":"","parent":{"krate":0,"index":633}},{"kind":"Use","ref_id":{"krate":20,"index":252},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":189333,"byte_end":189338,"line_start":119,"line_end":119,"column_start":50,"column_end":55},"alias_span":null,"name":"OsRng","value":"","parent":{"krate":0,"index":633}},{"kind":"Use","ref_id":{"krate":20,"index":253},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":189333,"byte_end":189338,"line_start":119,"line_end":119,"column_start":50,"column_end":55},"alias_span":null,"name":"OsRng","value":"","parent":{"krate":0,"index":633}},{"kind":"Use","ref_id":{"krate":0,"index":843},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":3025,"byte_end":3035,"line_start":105,"line_end":105,"column_start":30,"column_end":40},"alias_span":null,"name":"thread_rng","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":0,"index":624},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":3051,"byte_end":3055,"line_start":106,"line_end":106,"column_start":15,"column_end":19},"alias_span":null,"name":"Fill","value":"","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":0,"index":603},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":3057,"byte_end":3060,"line_start":106,"line_end":106,"column_start":21,"column_end":24},"alias_span":null,"name":"Rng","value":"","parent":{"krate":0,"index":0}}],"defs":[{"kind":"Mod","id":{"krate":0,"index":0},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":408,"byte_end":6643,"line_start":10,"line_end":214,"column_start":1,"column_end":2},"name":"","qualname":"::","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/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":6},{"krate":0,"index":7},{"krate":0,"index":8},{"krate":0,"index":9},{"krate":0,"index":10},{"krate":0,"index":11},{"krate":0,"index":12},{"krate":0,"index":15},{"krate":0,"index":18},{"krate":0,"index":21},{"krate":0,"index":24},{"krate":0,"index":531},{"krate":0,"index":568},{"krate":0,"index":633},{"krate":0,"index":862},{"krate":0,"index":1103},{"krate":0,"index":1106},{"krate":0,"index":1107},{"krate":0,"index":1110},{"krate":0,"index":1113},{"krate":0,"index":1114},{"krate":0,"index":1117},{"krate":0,"index":1118},{"krate":0,"index":1120}],"decl_id":null,"docs":" Utilities for random number generation","sig":null,"attributes":[{"value":"/ Utilities for random number generation","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":408,"byte_end":450,"line_start":10,"line_end":10,"column_start":1,"column_end":43}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":451,"byte_end":454,"line_start":11,"line_end":11,"column_start":1,"column_end":4}},{"value":"/ Rand provides utilities to generate random numbers, to convert them to","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":455,"byte_end":529,"line_start":12,"line_end":12,"column_start":1,"column_end":75}},{"value":"/ useful types and distributions, and some randomness-related algorithms.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":530,"byte_end":605,"line_start":13,"line_end":13,"column_start":1,"column_end":76}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":606,"byte_end":609,"line_start":14,"line_end":14,"column_start":1,"column_end":4}},{"value":"/ # Quick Start","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":610,"byte_end":627,"line_start":15,"line_end":15,"column_start":1,"column_end":18}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":628,"byte_end":631,"line_start":16,"line_end":16,"column_start":1,"column_end":4}},{"value":"/ To get you started quickly, the easiest and highest-level way to get","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":632,"byte_end":704,"line_start":17,"line_end":17,"column_start":1,"column_end":73}},{"value":"/ a random value is to use [`random()`]; alternatively you can use","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":705,"byte_end":773,"line_start":18,"line_end":18,"column_start":1,"column_end":69}},{"value":"/ [`thread_rng()`]. The [`Rng`] trait provides a useful API on all RNGs, while","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":774,"byte_end":854,"line_start":19,"line_end":19,"column_start":1,"column_end":81}},{"value":"/ the [`distributions`] and [`seq`] modules provide further","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":855,"byte_end":916,"line_start":20,"line_end":20,"column_start":1,"column_end":62}},{"value":"/ functionality on top of RNGs.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":917,"byte_end":950,"line_start":21,"line_end":21,"column_start":1,"column_end":34}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":951,"byte_end":954,"line_start":22,"line_end":22,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":955,"byte_end":962,"line_start":23,"line_end":23,"column_start":1,"column_end":8}},{"value":"/ use rand::prelude::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":963,"byte_end":988,"line_start":24,"line_end":24,"column_start":1,"column_end":26}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":989,"byte_end":992,"line_start":25,"line_end":25,"column_start":1,"column_end":4}},{"value":"/ if rand::random() { // generates a boolean","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":993,"byte_end":1039,"line_start":26,"line_end":26,"column_start":1,"column_end":47}},{"value":"/ // Try printing a random unicode code point (probably a bad idea)!","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":1040,"byte_end":1114,"line_start":27,"line_end":27,"column_start":1,"column_end":75}},{"value":"/ println!(\"char: {}\", rand::random::());","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":1115,"byte_end":1168,"line_start":28,"line_end":28,"column_start":1,"column_end":54}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":1169,"byte_end":1174,"line_start":29,"line_end":29,"column_start":1,"column_end":6}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":1175,"byte_end":1178,"line_start":30,"line_end":30,"column_start":1,"column_end":4}},{"value":"/ let mut rng = rand::thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":1179,"byte_end":1216,"line_start":31,"line_end":31,"column_start":1,"column_end":38}},{"value":"/ let y: f64 = rng.gen(); // generates a float between 0 and 1","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":1217,"byte_end":1281,"line_start":32,"line_end":32,"column_start":1,"column_end":65}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":1282,"byte_end":1285,"line_start":33,"line_end":33,"column_start":1,"column_end":4}},{"value":"/ let mut nums: Vec = (1..100).collect();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":1286,"byte_end":1334,"line_start":34,"line_end":34,"column_start":1,"column_end":49}},{"value":"/ nums.shuffle(&mut rng);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":1335,"byte_end":1362,"line_start":35,"line_end":35,"column_start":1,"column_end":28}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":1363,"byte_end":1370,"line_start":36,"line_end":36,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":1371,"byte_end":1374,"line_start":37,"line_end":37,"column_start":1,"column_end":4}},{"value":"/ # The Book","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":1375,"byte_end":1389,"line_start":38,"line_end":38,"column_start":1,"column_end":15}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":1390,"byte_end":1393,"line_start":39,"line_end":39,"column_start":1,"column_end":4}},{"value":"/ For the user guide and further documentation, please read","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":1394,"byte_end":1455,"line_start":40,"line_end":40,"column_start":1,"column_end":62}},{"value":"/ [The Rust Rand Book](https://rust-random.github.io/book).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":1456,"byte_end":1517,"line_start":41,"line_end":41,"column_start":1,"column_end":62}},{"value":"deny(missing_docs)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":1733,"byte_end":1755,"line_start":48,"line_end":48,"column_start":1,"column_end":23}},{"value":"deny(missing_debug_implementations)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":1756,"byte_end":1795,"line_start":49,"line_end":49,"column_start":1,"column_end":40}},{"value":"no_std","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":1857,"byte_end":1867,"line_start":51,"line_end":51,"column_start":1,"column_end":11}},{"value":"allow(clippy :: float_cmp, clippy :: neg_cmp_op_on_partial_ord,)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":1965,"byte_end":2039,"line_start":54,"line_end":57,"column_start":1,"column_end":3}}]},{"kind":"Mod","id":{"krate":0,"index":24},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"name":"distributions","qualname":"::distributions","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","parent":null,"children":[{"krate":0,"index":25},{"krate":0,"index":50},{"krate":0,"index":98},{"krate":0,"index":119},{"krate":0,"index":169},{"krate":0,"index":226},{"krate":0,"index":246},{"krate":0,"index":283},{"krate":0,"index":328},{"krate":0,"index":332},{"krate":0,"index":462},{"krate":0,"index":485},{"krate":0,"index":486},{"krate":0,"index":489},{"krate":0,"index":492},{"krate":0,"index":493},{"krate":0,"index":496},{"krate":0,"index":499},{"krate":0,"index":502},{"krate":0,"index":505},{"krate":0,"index":506},{"krate":0,"index":507},{"krate":0,"index":509},{"krate":0,"index":510},{"krate":0,"index":512},{"krate":0,"index":513},{"krate":0,"index":515},{"krate":0,"index":518},{"krate":0,"index":521},{"krate":0,"index":522},{"krate":0,"index":525},{"krate":0,"index":528},{"krate":0,"index":2060},{"krate":0,"index":2062},{"krate":0,"index":2064},{"krate":0,"index":2065}],"decl_id":null,"docs":" Generating random samples from probability distributions","sig":null,"attributes":[{"value":"/ Generating random samples from probability distributions","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":7053,"byte_end":7113,"line_start":10,"line_end":10,"column_start":1,"column_end":61}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":7114,"byte_end":7117,"line_start":11,"line_end":11,"column_start":1,"column_end":4}},{"value":"/ This module is the home of the [`Distribution`] trait and several of its","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":7118,"byte_end":7194,"line_start":12,"line_end":12,"column_start":1,"column_end":77}},{"value":"/ implementations. It is the workhorse behind some of the convenient","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":7195,"byte_end":7265,"line_start":13,"line_end":13,"column_start":1,"column_end":71}},{"value":"/ functionality of the [`Rng`] trait, e.g. [`Rng::gen`] and of course","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":7266,"byte_end":7337,"line_start":14,"line_end":14,"column_start":1,"column_end":72}},{"value":"/ [`Rng::sample`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":7338,"byte_end":7358,"line_start":15,"line_end":15,"column_start":1,"column_end":21}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":7359,"byte_end":7362,"line_start":16,"line_end":16,"column_start":1,"column_end":4}},{"value":"/ Abstractly, a [probability distribution] describes the probability of","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":7363,"byte_end":7436,"line_start":17,"line_end":17,"column_start":1,"column_end":74}},{"value":"/ occurrence of each value in its sample space.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":7437,"byte_end":7486,"line_start":18,"line_end":18,"column_start":1,"column_end":50}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":7487,"byte_end":7490,"line_start":19,"line_end":19,"column_start":1,"column_end":4}},{"value":"/ More concretely, an implementation of `Distribution` for type `X` is an","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":7491,"byte_end":7569,"line_start":20,"line_end":20,"column_start":1,"column_end":79}},{"value":"/ algorithm for choosing values from the sample space (a subset of `T`)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":7570,"byte_end":7643,"line_start":21,"line_end":21,"column_start":1,"column_end":74}},{"value":"/ according to the distribution `X` represents, using an external source of","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":7644,"byte_end":7721,"line_start":22,"line_end":22,"column_start":1,"column_end":78}},{"value":"/ randomness (an RNG supplied to the `sample` function).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":7722,"byte_end":7780,"line_start":23,"line_end":23,"column_start":1,"column_end":59}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":7781,"byte_end":7784,"line_start":24,"line_end":24,"column_start":1,"column_end":4}},{"value":"/ A type `X` may implement `Distribution` for multiple types `T`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":7785,"byte_end":7855,"line_start":25,"line_end":25,"column_start":1,"column_end":71}},{"value":"/ Any type implementing [`Distribution`] is stateless (i.e. immutable),","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":7856,"byte_end":7929,"line_start":26,"line_end":26,"column_start":1,"column_end":74}},{"value":"/ but it may have internal parameters set at construction time (for example,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":7930,"byte_end":8008,"line_start":27,"line_end":27,"column_start":1,"column_end":79}},{"value":"/ [`Uniform`] allows specification of its sample space as a range within `T`).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8009,"byte_end":8089,"line_start":28,"line_end":28,"column_start":1,"column_end":81}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8090,"byte_end":8093,"line_start":29,"line_end":29,"column_start":1,"column_end":4}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8094,"byte_end":8097,"line_start":30,"line_end":30,"column_start":1,"column_end":4}},{"value":"/ # The `Standard` distribution","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8098,"byte_end":8131,"line_start":31,"line_end":31,"column_start":1,"column_end":34}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8132,"byte_end":8135,"line_start":32,"line_end":32,"column_start":1,"column_end":4}},{"value":"/ The [`Standard`] distribution is important to mention. This is the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8136,"byte_end":8206,"line_start":33,"line_end":33,"column_start":1,"column_end":71}},{"value":"/ distribution used by [`Rng::gen`] and represents the \"default\" way to","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8207,"byte_end":8280,"line_start":34,"line_end":34,"column_start":1,"column_end":74}},{"value":"/ produce a random value for many different types, including most primitive","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8281,"byte_end":8358,"line_start":35,"line_end":35,"column_start":1,"column_end":78}},{"value":"/ types, tuples, arrays, and a few derived types. See the documentation of","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8359,"byte_end":8435,"line_start":36,"line_end":36,"column_start":1,"column_end":77}},{"value":"/ [`Standard`] for more details.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8436,"byte_end":8470,"line_start":37,"line_end":37,"column_start":1,"column_end":35}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8471,"byte_end":8474,"line_start":38,"line_end":38,"column_start":1,"column_end":4}},{"value":"/ Implementing `Distribution` for [`Standard`] for user types `T` makes it","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8475,"byte_end":8554,"line_start":39,"line_end":39,"column_start":1,"column_end":80}},{"value":"/ possible to generate type `T` with [`Rng::gen`], and by extension also","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8555,"byte_end":8629,"line_start":40,"line_end":40,"column_start":1,"column_end":75}},{"value":"/ with the [`random`] function.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8630,"byte_end":8663,"line_start":41,"line_end":41,"column_start":1,"column_end":34}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8664,"byte_end":8667,"line_start":42,"line_end":42,"column_start":1,"column_end":4}},{"value":"/ ## Random characters","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8668,"byte_end":8692,"line_start":43,"line_end":43,"column_start":1,"column_end":25}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8693,"byte_end":8696,"line_start":44,"line_end":44,"column_start":1,"column_end":4}},{"value":"/ [`Alphanumeric`] is a simple distribution to sample random letters and","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8697,"byte_end":8771,"line_start":45,"line_end":45,"column_start":1,"column_end":75}},{"value":"/ numbers of the `char` type; in contrast [`Standard`] may sample any valid","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8772,"byte_end":8849,"line_start":46,"line_end":46,"column_start":1,"column_end":78}},{"value":"/ `char`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8850,"byte_end":8861,"line_start":47,"line_end":47,"column_start":1,"column_end":12}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8862,"byte_end":8865,"line_start":48,"line_end":48,"column_start":1,"column_end":4}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8866,"byte_end":8869,"line_start":49,"line_end":49,"column_start":1,"column_end":4}},{"value":"/ # Uniform numeric ranges","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8870,"byte_end":8898,"line_start":50,"line_end":50,"column_start":1,"column_end":29}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8899,"byte_end":8902,"line_start":51,"line_end":51,"column_start":1,"column_end":4}},{"value":"/ The [`Uniform`] distribution is more flexible than [`Standard`], but also","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8903,"byte_end":8980,"line_start":52,"line_end":52,"column_start":1,"column_end":78}},{"value":"/ more specialised: it supports fewer target types, but allows the sample","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":8981,"byte_end":9056,"line_start":53,"line_end":53,"column_start":1,"column_end":76}},{"value":"/ space to be specified as an arbitrary range within its target type `T`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":9057,"byte_end":9132,"line_start":54,"line_end":54,"column_start":1,"column_end":76}},{"value":"/ Both [`Standard`] and [`Uniform`] are in some sense uniform distributions.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":9133,"byte_end":9211,"line_start":55,"line_end":55,"column_start":1,"column_end":79}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":9212,"byte_end":9215,"line_start":56,"line_end":56,"column_start":1,"column_end":4}},{"value":"/ Values may be sampled from this distribution using [`Rng::sample(Range)`] or","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":9216,"byte_end":9296,"line_start":57,"line_end":57,"column_start":1,"column_end":81}},{"value":"/ by creating a distribution object with [`Uniform::new`],","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":9297,"byte_end":9357,"line_start":58,"line_end":58,"column_start":1,"column_end":61}},{"value":"/ [`Uniform::new_inclusive`] or `From`. When the range limits are not","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":9358,"byte_end":9436,"line_start":59,"line_end":59,"column_start":1,"column_end":79}},{"value":"/ known at compile time it is typically faster to reuse an existing","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":9437,"byte_end":9506,"line_start":60,"line_end":60,"column_start":1,"column_end":70}},{"value":"/ `Uniform` object than to call [`Rng::sample(Range)`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":9507,"byte_end":9564,"line_start":61,"line_end":61,"column_start":1,"column_end":58}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":9565,"byte_end":9568,"line_start":62,"line_end":62,"column_start":1,"column_end":4}},{"value":"/ User types `T` may also implement `Distribution` for [`Uniform`],","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":9569,"byte_end":9641,"line_start":63,"line_end":63,"column_start":1,"column_end":73}},{"value":"/ although this is less straightforward than for [`Standard`] (see the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":9642,"byte_end":9714,"line_start":64,"line_end":64,"column_start":1,"column_end":73}},{"value":"/ documentation in the [`uniform`] module). Doing so enables generation of","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":9715,"byte_end":9791,"line_start":65,"line_end":65,"column_start":1,"column_end":77}},{"value":"/ values of type `T` with [`Rng::sample(Range)`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":9792,"byte_end":9844,"line_start":66,"line_end":66,"column_start":1,"column_end":53}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":9845,"byte_end":9848,"line_start":67,"line_end":67,"column_start":1,"column_end":4}},{"value":"/ ## Open and half-open ranges","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":9849,"byte_end":9881,"line_start":68,"line_end":68,"column_start":1,"column_end":33}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":9882,"byte_end":9885,"line_start":69,"line_end":69,"column_start":1,"column_end":4}},{"value":"/ There are surprisingly many ways to uniformly generate random floats. A","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":9886,"byte_end":9961,"line_start":70,"line_end":70,"column_start":1,"column_end":76}},{"value":"/ range between 0 and 1 is standard, but the exact bounds (open vs closed)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":9962,"byte_end":10038,"line_start":71,"line_end":71,"column_start":1,"column_end":77}},{"value":"/ and accuracy differ. In addition to the [`Standard`] distribution Rand offers","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":10039,"byte_end":10120,"line_start":72,"line_end":72,"column_start":1,"column_end":82}},{"value":"/ [`Open01`] and [`OpenClosed01`]. See \"Floating point implementation\" section of","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":10121,"byte_end":10204,"line_start":73,"line_end":73,"column_start":1,"column_end":84}},{"value":"/ [`Standard`] documentation for more details.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":10205,"byte_end":10253,"line_start":74,"line_end":74,"column_start":1,"column_end":49}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":10254,"byte_end":10257,"line_start":75,"line_end":75,"column_start":1,"column_end":4}},{"value":"/ # Non-uniform sampling","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":10258,"byte_end":10284,"line_start":76,"line_end":76,"column_start":1,"column_end":27}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":10285,"byte_end":10288,"line_start":77,"line_end":77,"column_start":1,"column_end":4}},{"value":"/ Sampling a simple true/false outcome with a given probability has a name:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":10289,"byte_end":10366,"line_start":78,"line_end":78,"column_start":1,"column_end":78}},{"value":"/ the [`Bernoulli`] distribution (this is used by [`Rng::gen_bool`]).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":10367,"byte_end":10438,"line_start":79,"line_end":79,"column_start":1,"column_end":72}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":10439,"byte_end":10442,"line_start":80,"line_end":80,"column_start":1,"column_end":4}},{"value":"/ For weighted sampling from a sequence of discrete values, use the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":10443,"byte_end":10512,"line_start":81,"line_end":81,"column_start":1,"column_end":70}},{"value":"/ [`WeightedIndex`] distribution.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":10513,"byte_end":10548,"line_start":82,"line_end":82,"column_start":1,"column_end":36}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":10549,"byte_end":10552,"line_start":83,"line_end":83,"column_start":1,"column_end":4}},{"value":"/ This crate no longer includes other non-uniform distributions; instead","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":10553,"byte_end":10627,"line_start":84,"line_end":84,"column_start":1,"column_end":75}},{"value":"/ it is recommended that you use either [`rand_distr`] or [`statrs`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":10628,"byte_end":10699,"line_start":85,"line_end":85,"column_start":1,"column_end":72}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":10700,"byte_end":10703,"line_start":86,"line_end":86,"column_start":1,"column_end":4}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":10704,"byte_end":10707,"line_start":87,"line_end":87,"column_start":1,"column_end":4}},{"value":"/ [probability distribution]: https://en.wikipedia.org/wiki/Probability_distribution","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":10708,"byte_end":10794,"line_start":88,"line_end":88,"column_start":1,"column_end":87}},{"value":"/ [`rand_distr`]: https://crates.io/crates/rand_distr","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":10795,"byte_end":10850,"line_start":89,"line_end":89,"column_start":1,"column_end":56}},{"value":"/ [`statrs`]: https://crates.io/crates/statrs","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":10851,"byte_end":10898,"line_start":90,"line_end":90,"column_start":1,"column_end":48}},{"value":"/ [`random`]: crate::random","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":10900,"byte_end":10929,"line_start":92,"line_end":92,"column_start":1,"column_end":30}},{"value":"/ [`rand_distr`]: https://crates.io/crates/rand_distr","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":10930,"byte_end":10985,"line_start":93,"line_end":93,"column_start":1,"column_end":56}},{"value":"/ [`statrs`]: https://crates.io/crates/statrs","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":10986,"byte_end":11033,"line_start":94,"line_end":94,"column_start":1,"column_end":48}}]},{"kind":"Struct","id":{"krate":0,"index":1122},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":16897,"byte_end":16906,"line_start":38,"line_end":38,"column_start":12,"column_end":21},"name":"Bernoulli","qualname":"::distributions::bernoulli::Bernoulli","value":"Bernoulli { }","parent":null,"children":[{"krate":0,"index":1123}],"decl_id":null,"docs":" The Bernoulli distribution.","sig":null,"attributes":[{"value":"/ The Bernoulli distribution.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":16244,"byte_end":16275,"line_start":17,"line_end":17,"column_start":1,"column_end":32}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":16276,"byte_end":16279,"line_start":18,"line_end":18,"column_start":1,"column_end":4}},{"value":"/ This is a special case of the Binomial distribution where `n = 1`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":16280,"byte_end":16350,"line_start":19,"line_end":19,"column_start":1,"column_end":71}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":16351,"byte_end":16354,"line_start":20,"line_end":20,"column_start":1,"column_end":4}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":16355,"byte_end":16368,"line_start":21,"line_end":21,"column_start":1,"column_end":14}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":16369,"byte_end":16372,"line_start":22,"line_end":22,"column_start":1,"column_end":4}},{"value":"/ ```rust","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":16373,"byte_end":16384,"line_start":23,"line_end":23,"column_start":1,"column_end":12}},{"value":"/ use rand::distributions::{Bernoulli, Distribution};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":16385,"byte_end":16440,"line_start":24,"line_end":24,"column_start":1,"column_end":56}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":16441,"byte_end":16444,"line_start":25,"line_end":25,"column_start":1,"column_end":4}},{"value":"/ let d = Bernoulli::new(0.3).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":16445,"byte_end":16486,"line_start":26,"line_end":26,"column_start":1,"column_end":42}},{"value":"/ let v = d.sample(&mut rand::thread_rng());","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":16487,"byte_end":16533,"line_start":27,"line_end":27,"column_start":1,"column_end":47}},{"value":"/ println!(\"{} is from a Bernoulli distribution\", v);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":16534,"byte_end":16589,"line_start":28,"line_end":28,"column_start":1,"column_end":56}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":16590,"byte_end":16597,"line_start":29,"line_end":29,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":16598,"byte_end":16601,"line_start":30,"line_end":30,"column_start":1,"column_end":4}},{"value":"/ # Precision","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":16602,"byte_end":16617,"line_start":31,"line_end":31,"column_start":1,"column_end":16}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":16618,"byte_end":16621,"line_start":32,"line_end":32,"column_start":1,"column_end":4}},{"value":"/ This `Bernoulli` distribution uses 64 bits from the RNG (a `u64`),","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":16622,"byte_end":16692,"line_start":33,"line_end":33,"column_start":1,"column_end":71}},{"value":"/ so only probabilities that are multiples of 2-64 can be","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":16693,"byte_end":16763,"line_start":34,"line_end":34,"column_start":1,"column_end":71}},{"value":"/ represented.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":16764,"byte_end":16780,"line_start":35,"line_end":35,"column_start":1,"column_end":17}}]},{"kind":"TupleVariant","id":{"krate":0,"index":1134},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":18372,"byte_end":18390,"line_start":72,"line_end":72,"column_start":5,"column_end":23},"name":"InvalidProbability","qualname":"::distributions::bernoulli::BernoulliError::InvalidProbability","value":"BernoulliError::InvalidProbability","parent":{"krate":0,"index":1133},"children":[],"decl_id":null,"docs":" `p < 0` or `p > 1`.\n","sig":null,"attributes":[{"value":"/ `p < 0` or `p > 1`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":18344,"byte_end":18367,"line_start":71,"line_end":71,"column_start":5,"column_end":28}}]},{"kind":"Enum","id":{"krate":0,"index":1133},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":18323,"byte_end":18337,"line_start":70,"line_end":70,"column_start":10,"column_end":24},"name":"BernoulliError","qualname":"::distributions::bernoulli::BernoulliError","value":"pub enum BernoulliError { InvalidProbability, }","parent":null,"children":[{"krate":0,"index":1134}],"decl_id":null,"docs":" Error type returned from `Bernoulli::new`.\n","sig":null,"attributes":[{"value":"/ Error type returned from `Bernoulli::new`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":18222,"byte_end":18268,"line_start":68,"line_end":68,"column_start":1,"column_end":47}}]},{"kind":"Method","id":{"krate":0,"index":45},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":19261,"byte_end":19264,"line_start":98,"line_end":98,"column_start":12,"column_end":15},"name":"new","qualname":"::new","value":"pub fn new(f64) -> Result","parent":null,"children":[],"decl_id":null,"docs":" Construct a new `Bernoulli` with the given probability of success `p`.","sig":null,"attributes":[{"value":"/ Construct a new `Bernoulli` with the given probability of success `p`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":18742,"byte_end":18816,"line_start":87,"line_end":87,"column_start":5,"column_end":79}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":18821,"byte_end":18824,"line_start":88,"line_end":88,"column_start":5,"column_end":8}},{"value":"/ # Precision","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":18829,"byte_end":18844,"line_start":89,"line_end":89,"column_start":5,"column_end":20}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":18849,"byte_end":18852,"line_start":90,"line_end":90,"column_start":5,"column_end":8}},{"value":"/ For `p = 1.0`, the resulting distribution will always generate true.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":18857,"byte_end":18929,"line_start":91,"line_end":91,"column_start":5,"column_end":77}},{"value":"/ For `p = 0.0`, the resulting distribution will always generate false.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":18934,"byte_end":19007,"line_start":92,"line_end":92,"column_start":5,"column_end":78}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":19012,"byte_end":19015,"line_start":93,"line_end":93,"column_start":5,"column_end":8}},{"value":"/ This method is accurate for any input `p` in the range `[0, 1]` which is","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":19020,"byte_end":19096,"line_start":94,"line_end":94,"column_start":5,"column_end":81}},{"value":"/ a multiple of 2-64. (Note that not all multiples of","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":19101,"byte_end":19167,"line_start":95,"line_end":95,"column_start":5,"column_end":71}},{"value":"/ 2-64 in `[0, 1]` can be represented as a `f64`.)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":19172,"byte_end":19235,"line_start":96,"line_end":96,"column_start":5,"column_end":68}},{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":19240,"byte_end":19249,"line_start":97,"line_end":97,"column_start":5,"column_end":14}}]},{"kind":"Method","id":{"krate":0,"index":46},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":20147,"byte_end":20157,"line_start":119,"line_end":119,"column_start":12,"column_end":22},"name":"from_ratio","qualname":"::from_ratio","value":"pub fn from_ratio(u32, u32) -> Result","parent":null,"children":[],"decl_id":null,"docs":" Construct a new `Bernoulli` with the probability of success of\n `numerator`-in-`denominator`. I.e. `new_ratio(2, 3)` will return\n a `Bernoulli` with a 2-in-3 chance, or about 67%, of returning `true`.","sig":null,"attributes":[{"value":"/ Construct a new `Bernoulli` with the probability of success of","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":19605,"byte_end":19671,"line_start":110,"line_end":110,"column_start":5,"column_end":71}},{"value":"/ `numerator`-in-`denominator`. I.e. `new_ratio(2, 3)` will return","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":19676,"byte_end":19744,"line_start":111,"line_end":111,"column_start":5,"column_end":73}},{"value":"/ a `Bernoulli` with a 2-in-3 chance, or about 67%, of returning `true`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":19749,"byte_end":19823,"line_start":112,"line_end":112,"column_start":5,"column_end":79}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":19828,"byte_end":19831,"line_start":113,"line_end":113,"column_start":5,"column_end":8}},{"value":"/ return `true`. If `numerator == 0` it will always return `false`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":19836,"byte_end":19905,"line_start":114,"line_end":114,"column_start":5,"column_end":74}},{"value":"/ For `numerator > denominator` and `denominator == 0`, this returns an","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":19910,"byte_end":19983,"line_start":115,"line_end":115,"column_start":5,"column_end":78}},{"value":"/ error. Otherwise, for `numerator == denominator`, samples are always","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":19988,"byte_end":20060,"line_start":116,"line_end":116,"column_start":5,"column_end":77}},{"value":"/ true; for `numerator == 0` samples are always false.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":20065,"byte_end":20121,"line_start":117,"line_end":117,"column_start":5,"column_end":61}},{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":20126,"byte_end":20135,"line_start":118,"line_end":118,"column_start":5,"column_end":14}}]},{"kind":"Trait","id":{"krate":0,"index":60},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":24827,"byte_end":24839,"line_start":35,"line_end":35,"column_start":11,"column_end":23},"name":"Distribution","qualname":"::distributions::distribution::Distribution","value":"Distribution","parent":null,"children":[{"krate":0,"index":62},{"krate":0,"index":64},{"krate":0,"index":66}],"decl_id":null,"docs":" Types (distributions) that can be used to create a random instance of `T`.","sig":null,"attributes":[{"value":"/ Types (distributions) that can be used to create a random instance of `T`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":23813,"byte_end":23891,"line_start":17,"line_end":17,"column_start":1,"column_end":79}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":23892,"byte_end":23895,"line_start":18,"line_end":18,"column_start":1,"column_end":4}},{"value":"/ It is possible to sample from a distribution through both the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":23896,"byte_end":23961,"line_start":19,"line_end":19,"column_start":1,"column_end":66}},{"value":"/ `Distribution` and [`Rng`] traits, via `distr.sample(&mut rng)` and","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":23962,"byte_end":24033,"line_start":20,"line_end":20,"column_start":1,"column_end":72}},{"value":"/ `rng.sample(distr)`. They also both offer the [`sample_iter`] method, which","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":24034,"byte_end":24113,"line_start":21,"line_end":21,"column_start":1,"column_end":80}},{"value":"/ produces an iterator that samples from the distribution.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":24114,"byte_end":24174,"line_start":22,"line_end":22,"column_start":1,"column_end":61}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":24175,"byte_end":24178,"line_start":23,"line_end":23,"column_start":1,"column_end":4}},{"value":"/ All implementations are expected to be immutable; this has the significant","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":24179,"byte_end":24257,"line_start":24,"line_end":24,"column_start":1,"column_end":79}},{"value":"/ advantage of not needing to consider thread safety, and for most","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":24258,"byte_end":24326,"line_start":25,"line_end":25,"column_start":1,"column_end":69}},{"value":"/ distributions efficient state-less sampling algorithms are available.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":24327,"byte_end":24400,"line_start":26,"line_end":26,"column_start":1,"column_end":74}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":24401,"byte_end":24404,"line_start":27,"line_end":27,"column_start":1,"column_end":4}},{"value":"/ Implementations are typically expected to be portable with reproducible","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":24405,"byte_end":24480,"line_start":28,"line_end":28,"column_start":1,"column_end":76}},{"value":"/ results when used with a PRNG with fixed seed; see the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":24481,"byte_end":24539,"line_start":29,"line_end":29,"column_start":1,"column_end":59}},{"value":"/ [portability chapter](https://rust-random.github.io/book/portability.html)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":24540,"byte_end":24618,"line_start":30,"line_end":30,"column_start":1,"column_end":79}},{"value":"/ of The Rust Rand Book. In some cases this does not apply, e.g. the `usize`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":24619,"byte_end":24697,"line_start":31,"line_end":31,"column_start":1,"column_end":79}},{"value":"/ type requires different sampling on 32-bit and 64-bit machines.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":24698,"byte_end":24765,"line_start":32,"line_end":32,"column_start":1,"column_end":68}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":24766,"byte_end":24769,"line_start":33,"line_end":33,"column_start":1,"column_end":4}},{"value":"/ [`sample_iter`]: Distribution::sample_iter","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":24770,"byte_end":24816,"line_start":34,"line_end":34,"column_start":1,"column_end":47}}]},{"kind":"Method","id":{"krate":0,"index":62},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":24933,"byte_end":24939,"line_start":37,"line_end":37,"column_start":8,"column_end":14},"name":"sample","qualname":"::distributions::distribution::Distribution::sample","value":"pub fn sample(&Self, &mut R) -> T","parent":{"krate":0,"index":60},"children":[],"decl_id":null,"docs":" Generate a random value of `T`, using `rng` as the source of randomness.\n","sig":null,"attributes":[{"value":"/ Generate a random value of `T`, using `rng` as the source of randomness.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":24849,"byte_end":24925,"line_start":36,"line_end":36,"column_start":5,"column_end":81}}]},{"kind":"Method","id":{"krate":0,"index":64},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26233,"byte_end":26244,"line_start":73,"line_end":73,"column_start":8,"column_end":19},"name":"sample_iter","qualname":"::distributions::distribution::Distribution::sample_iter","value":"pub fn sample_iter(Self, R) -> DistIter where R: Rng,\nSelf: Sized","parent":{"krate":0,"index":60},"children":[],"decl_id":null,"docs":" Create an iterator that generates random values of `T`, using `rng` as\n the source of randomness.","sig":null,"attributes":[{"value":"/ Create an iterator that generates random values of `T`, using `rng` as","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":24988,"byte_end":25062,"line_start":39,"line_end":39,"column_start":5,"column_end":79}},{"value":"/ the source of randomness.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25067,"byte_end":25096,"line_start":40,"line_end":40,"column_start":5,"column_end":34}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25101,"byte_end":25104,"line_start":41,"line_end":41,"column_start":5,"column_end":8}},{"value":"/ Note that this function takes `self` by value. This works since","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25109,"byte_end":25176,"line_start":42,"line_end":42,"column_start":5,"column_end":72}},{"value":"/ `Distribution` is impl'd for `&D` where `D: Distribution`,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25181,"byte_end":25249,"line_start":43,"line_end":43,"column_start":5,"column_end":73}},{"value":"/ however borrowing is not automatic hence `distr.sample_iter(...)` may","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25254,"byte_end":25327,"line_start":44,"line_end":44,"column_start":5,"column_end":78}},{"value":"/ need to be replaced with `(&distr).sample_iter(...)` to borrow or","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25332,"byte_end":25401,"line_start":45,"line_end":45,"column_start":5,"column_end":74}},{"value":"/ `(&*distr).sample_iter(...)` to reborrow an existing reference.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25406,"byte_end":25473,"line_start":46,"line_end":46,"column_start":5,"column_end":72}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25478,"byte_end":25481,"line_start":47,"line_end":47,"column_start":5,"column_end":8}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25486,"byte_end":25499,"line_start":48,"line_end":48,"column_start":5,"column_end":18}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25504,"byte_end":25507,"line_start":49,"line_end":49,"column_start":5,"column_end":8}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25512,"byte_end":25519,"line_start":50,"line_end":50,"column_start":5,"column_end":12}},{"value":"/ use rand::thread_rng;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25524,"byte_end":25549,"line_start":51,"line_end":51,"column_start":5,"column_end":30}},{"value":"/ use rand::distributions::{Distribution, Alphanumeric, Uniform, Standard};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25554,"byte_end":25631,"line_start":52,"line_end":52,"column_start":5,"column_end":82}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25636,"byte_end":25639,"line_start":53,"line_end":53,"column_start":5,"column_end":8}},{"value":"/ let mut rng = thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25644,"byte_end":25675,"line_start":54,"line_end":54,"column_start":5,"column_end":36}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25680,"byte_end":25683,"line_start":55,"line_end":55,"column_start":5,"column_end":8}},{"value":"/ // Vec of 16 x f32:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25688,"byte_end":25711,"line_start":56,"line_end":56,"column_start":5,"column_end":28}},{"value":"/ let v: Vec = Standard.sample_iter(&mut rng).take(16).collect();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25716,"byte_end":25788,"line_start":57,"line_end":57,"column_start":5,"column_end":77}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25793,"byte_end":25796,"line_start":58,"line_end":58,"column_start":5,"column_end":8}},{"value":"/ // String:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25801,"byte_end":25815,"line_start":59,"line_end":59,"column_start":5,"column_end":19}},{"value":"/ let s: String = Alphanumeric","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25820,"byte_end":25852,"line_start":60,"line_end":60,"column_start":5,"column_end":37}},{"value":"/ .sample_iter(&mut rng)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25857,"byte_end":25887,"line_start":61,"line_end":61,"column_start":5,"column_end":35}},{"value":"/ .take(7)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25892,"byte_end":25908,"line_start":62,"line_end":62,"column_start":5,"column_end":21}},{"value":"/ .map(char::from)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25913,"byte_end":25937,"line_start":63,"line_end":63,"column_start":5,"column_end":29}},{"value":"/ .collect();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25942,"byte_end":25961,"line_start":64,"line_end":64,"column_start":5,"column_end":24}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25966,"byte_end":25969,"line_start":65,"line_end":65,"column_start":5,"column_end":8}},{"value":"/ // Dice-rolling:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25974,"byte_end":25994,"line_start":66,"line_end":66,"column_start":5,"column_end":25}},{"value":"/ let die_range = Uniform::new_inclusive(1, 6);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":25999,"byte_end":26048,"line_start":67,"line_end":67,"column_start":5,"column_end":54}},{"value":"/ let mut roll_die = die_range.sample_iter(&mut rng);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26053,"byte_end":26108,"line_start":68,"line_end":68,"column_start":5,"column_end":60}},{"value":"/ while roll_die.next().unwrap() != 6 {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26113,"byte_end":26154,"line_start":69,"line_end":69,"column_start":5,"column_end":46}},{"value":"/ println!(\"Not a 6; rolling again!\");","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26159,"byte_end":26203,"line_start":70,"line_end":70,"column_start":5,"column_end":49}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26208,"byte_end":26213,"line_start":71,"line_end":71,"column_start":5,"column_end":10}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26218,"byte_end":26225,"line_start":72,"line_end":72,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":66},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26993,"byte_end":26996,"line_start":102,"line_end":102,"column_start":8,"column_end":11},"name":"map","qualname":"::distributions::distribution::Distribution::map","value":"pub fn map(Self, F) -> DistMap where F: Fn(T) -> S,\nSelf: Sized","parent":{"krate":0,"index":60},"children":[],"decl_id":null,"docs":" Create a distribution of values of 'S' by mapping the output of `Self`\n through the closure `F`","sig":null,"attributes":[{"value":"/ Create a distribution of values of 'S' by mapping the output of `Self`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26471,"byte_end":26545,"line_start":85,"line_end":85,"column_start":5,"column_end":79}},{"value":"/ through the closure `F`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26550,"byte_end":26577,"line_start":86,"line_end":86,"column_start":5,"column_end":32}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26582,"byte_end":26585,"line_start":87,"line_end":87,"column_start":5,"column_end":8}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26590,"byte_end":26603,"line_start":88,"line_end":88,"column_start":5,"column_end":18}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26608,"byte_end":26611,"line_start":89,"line_end":89,"column_start":5,"column_end":8}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26616,"byte_end":26623,"line_start":90,"line_end":90,"column_start":5,"column_end":12}},{"value":"/ use rand::thread_rng;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26628,"byte_end":26653,"line_start":91,"line_end":91,"column_start":5,"column_end":30}},{"value":"/ use rand::distributions::{Distribution, Uniform};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26658,"byte_end":26711,"line_start":92,"line_end":92,"column_start":5,"column_end":58}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26716,"byte_end":26719,"line_start":93,"line_end":93,"column_start":5,"column_end":8}},{"value":"/ let mut rng = thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26724,"byte_end":26755,"line_start":94,"line_end":94,"column_start":5,"column_end":36}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26760,"byte_end":26763,"line_start":95,"line_end":95,"column_start":5,"column_end":8}},{"value":"/ let die = Uniform::new_inclusive(1, 6);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26768,"byte_end":26811,"line_start":96,"line_end":96,"column_start":5,"column_end":48}},{"value":"/ let even_number = die.map(|num| num % 2 == 0);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26816,"byte_end":26866,"line_start":97,"line_end":97,"column_start":5,"column_end":55}},{"value":"/ while !even_number.sample(&mut rng) {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26871,"byte_end":26912,"line_start":98,"line_end":98,"column_start":5,"column_end":46}},{"value":"/ println!(\"Still odd; rolling again!\");","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26917,"byte_end":26963,"line_start":99,"line_end":99,"column_start":5,"column_end":51}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26968,"byte_end":26973,"line_start":100,"line_end":100,"column_start":5,"column_end":10}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":26978,"byte_end":26985,"line_start":101,"line_end":101,"column_start":5,"column_end":12}}]},{"kind":"Struct","id":{"krate":0,"index":1147},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":27706,"byte_end":27714,"line_start":129,"line_end":129,"column_start":12,"column_end":20},"name":"DistIter","qualname":"::distributions::distribution::DistIter","value":"DistIter { }","parent":null,"children":[{"krate":0,"index":1151},{"krate":0,"index":1152},{"krate":0,"index":1153}],"decl_id":null,"docs":" An iterator that generates random values of `T` with distribution `D`,\n using `R` as the source of randomness.","sig":null,"attributes":[{"value":"/ An iterator that generates random values of `T` with distribution `D`,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":27389,"byte_end":27463,"line_start":121,"line_end":121,"column_start":1,"column_end":75}},{"value":"/ using `R` as the source of randomness.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":27464,"byte_end":27506,"line_start":122,"line_end":122,"column_start":1,"column_end":43}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":27507,"byte_end":27510,"line_start":123,"line_end":123,"column_start":1,"column_end":4}},{"value":"/ This `struct` is created by the [`sample_iter`] method on [`Distribution`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":27511,"byte_end":27590,"line_start":124,"line_end":124,"column_start":1,"column_end":80}},{"value":"/ See its documentation for more.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":27591,"byte_end":27626,"line_start":125,"line_end":125,"column_start":1,"column_end":36}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":27627,"byte_end":27630,"line_start":126,"line_end":126,"column_start":1,"column_end":4}},{"value":"/ [`sample_iter`]: Distribution::sample_iter","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":27631,"byte_end":27677,"line_start":127,"line_end":127,"column_start":1,"column_end":47}}]},{"kind":"Struct","id":{"krate":0,"index":1159},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":28869,"byte_end":28876,"line_start":176,"line_end":176,"column_start":12,"column_end":19},"name":"DistMap","qualname":"::distributions::distribution::DistMap","value":"DistMap { }","parent":null,"children":[{"krate":0,"index":1164},{"krate":0,"index":1165},{"krate":0,"index":1166}],"decl_id":null,"docs":" A distribution of values of type `S` derived from the distribution `D`\n by mapping its output of type `T` through the closure `F`.","sig":null,"attributes":[{"value":"/ A distribution of values of type `S` derived from the distribution `D`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":28597,"byte_end":28671,"line_start":170,"line_end":170,"column_start":1,"column_end":75}},{"value":"/ by mapping its output of type `T` through the closure `F`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":28672,"byte_end":28734,"line_start":171,"line_end":171,"column_start":1,"column_end":63}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":28735,"byte_end":28738,"line_start":172,"line_end":172,"column_start":1,"column_end":4}},{"value":"/ This `struct` is created by the [`Distribution::map`] method.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":28739,"byte_end":28804,"line_start":173,"line_end":173,"column_start":1,"column_end":66}},{"value":"/ See its documentation for more.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":28805,"byte_end":28840,"line_start":174,"line_end":174,"column_start":1,"column_end":36}}]},{"kind":"Trait","id":{"krate":0,"index":93},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":29395,"byte_end":29405,"line_start":197,"line_end":197,"column_start":11,"column_end":21},"name":"DistString","qualname":"::distributions::distribution::DistString","value":"DistString","parent":null,"children":[{"krate":0,"index":94},{"krate":0,"index":96}],"decl_id":null,"docs":" `String` sampler","sig":null,"attributes":[{"value":"/ `String` sampler","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":29194,"byte_end":29214,"line_start":192,"line_end":192,"column_start":1,"column_end":21}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":29215,"byte_end":29218,"line_start":193,"line_end":193,"column_start":1,"column_end":4}},{"value":"/ Sampling a `String` of random characters is not quite the same as collecting","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":29219,"byte_end":29299,"line_start":194,"line_end":194,"column_start":1,"column_end":81}},{"value":"/ a sequence of chars. This trait contains some helpers.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":29300,"byte_end":29358,"line_start":195,"line_end":195,"column_start":1,"column_end":59}},{"value":"cfg(feature = \"alloc\")","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":29359,"byte_end":29384,"line_start":196,"line_end":196,"column_start":1,"column_end":26}}]},{"kind":"Method","id":{"krate":0,"index":94},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":29461,"byte_end":29474,"line_start":199,"line_end":199,"column_start":8,"column_end":21},"name":"append_string","qualname":"::distributions::distribution::DistString::append_string","value":"pub fn append_string(&Self, &mut R, &mut String, usize)","parent":{"krate":0,"index":93},"children":[],"decl_id":null,"docs":" Append `len` random chars to `string`\n","sig":null,"attributes":[{"value":"/ Append `len` random chars to `string`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":29412,"byte_end":29453,"line_start":198,"line_end":198,"column_start":5,"column_end":46}}]},{"kind":"Method","id":{"krate":0,"index":96},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":29618,"byte_end":29631,"line_start":203,"line_end":203,"column_start":8,"column_end":21},"name":"sample_string","qualname":"::distributions::distribution::DistString::sample_string","value":"pub fn sample_string(&Self, &mut R, usize) -> String","parent":{"krate":0,"index":93},"children":[],"decl_id":null,"docs":" Generate a `String` of `len` random chars\n","sig":null,"attributes":[{"value":"/ Generate a `String` of `len` random chars","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":29551,"byte_end":29596,"line_start":201,"line_end":201,"column_start":5,"column_end":50}},{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":29601,"byte_end":29610,"line_start":202,"line_end":202,"column_start":5,"column_end":14}}]},{"kind":"Struct","id":{"krate":0,"index":1173},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33333,"byte_end":33345,"line_start":46,"line_end":46,"column_start":12,"column_end":24},"name":"OpenClosed01","qualname":"::distributions::float::OpenClosed01","value":"","parent":null,"children":[],"decl_id":null,"docs":" A distribution to sample floating point numbers uniformly in the half-open\n interval `(0, 1]`, i.e. including 1 but not 0.","sig":null,"attributes":[{"value":"/ A distribution to sample floating point numbers uniformly in the half-open","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":32316,"byte_end":32394,"line_start":20,"line_end":20,"column_start":1,"column_end":79}},{"value":"/ interval `(0, 1]`, i.e. including 1 but not 0.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":32395,"byte_end":32445,"line_start":21,"line_end":21,"column_start":1,"column_end":51}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":32446,"byte_end":32449,"line_start":22,"line_end":22,"column_start":1,"column_end":4}},{"value":"/ All values that can be generated are of the form `n * ε/2`. For `f32`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":32450,"byte_end":32524,"line_start":23,"line_end":23,"column_start":1,"column_end":74}},{"value":"/ the 24 most significant random bits of a `u32` are used and for `f64` the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":32525,"byte_end":32602,"line_start":24,"line_end":24,"column_start":1,"column_end":78}},{"value":"/ 53 most significant bits of a `u64` are used. The conversion uses the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":32603,"byte_end":32676,"line_start":25,"line_end":25,"column_start":1,"column_end":74}},{"value":"/ multiplicative method.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":32677,"byte_end":32703,"line_start":26,"line_end":26,"column_start":1,"column_end":27}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":32704,"byte_end":32707,"line_start":27,"line_end":27,"column_start":1,"column_end":4}},{"value":"/ See also: [`Standard`] which samples from `[0, 1)`, [`Open01`]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":32708,"byte_end":32774,"line_start":28,"line_end":28,"column_start":1,"column_end":67}},{"value":"/ which samples from `(0, 1)` and [`Uniform`] which samples from arbitrary","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":32775,"byte_end":32851,"line_start":29,"line_end":29,"column_start":1,"column_end":77}},{"value":"/ ranges.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":32852,"byte_end":32863,"line_start":30,"line_end":30,"column_start":1,"column_end":12}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":32864,"byte_end":32867,"line_start":31,"line_end":31,"column_start":1,"column_end":4}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":32868,"byte_end":32881,"line_start":32,"line_end":32,"column_start":1,"column_end":14}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":32882,"byte_end":32889,"line_start":33,"line_end":33,"column_start":1,"column_end":8}},{"value":"/ use rand::{thread_rng, Rng};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":32890,"byte_end":32922,"line_start":34,"line_end":34,"column_start":1,"column_end":33}},{"value":"/ use rand::distributions::OpenClosed01;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":32923,"byte_end":32965,"line_start":35,"line_end":35,"column_start":1,"column_end":43}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":32966,"byte_end":32969,"line_start":36,"line_end":36,"column_start":1,"column_end":4}},{"value":"/ let val: f32 = thread_rng().sample(OpenClosed01);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":32970,"byte_end":33023,"line_start":37,"line_end":37,"column_start":1,"column_end":54}},{"value":"/ println!(\"f32 from (0, 1): {}\", val);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33024,"byte_end":33065,"line_start":38,"line_end":38,"column_start":1,"column_end":42}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33066,"byte_end":33073,"line_start":39,"line_end":39,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33074,"byte_end":33077,"line_start":40,"line_end":40,"column_start":1,"column_end":4}},{"value":"/ [`Standard`]: crate::distributions::Standard","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33078,"byte_end":33126,"line_start":41,"line_end":41,"column_start":1,"column_end":49}},{"value":"/ [`Open01`]: crate::distributions::Open01","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33127,"byte_end":33171,"line_start":42,"line_end":42,"column_start":1,"column_end":45}},{"value":"/ [`Uniform`]: crate::distributions::uniform::Uniform","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33172,"byte_end":33227,"line_start":43,"line_end":43,"column_start":1,"column_end":56}}]},{"kind":"Struct","id":{"krate":0,"index":1180},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":34340,"byte_end":34346,"line_start":73,"line_end":73,"column_start":12,"column_end":18},"name":"Open01","qualname":"::distributions::float::Open01","value":"","parent":null,"children":[],"decl_id":null,"docs":" A distribution to sample floating point numbers uniformly in the open\n interval `(0, 1)`, i.e. not including either endpoint.","sig":null,"attributes":[{"value":"/ A distribution to sample floating point numbers uniformly in the open","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33348,"byte_end":33421,"line_start":48,"line_end":48,"column_start":1,"column_end":74}},{"value":"/ interval `(0, 1)`, i.e. not including either endpoint.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33422,"byte_end":33480,"line_start":49,"line_end":49,"column_start":1,"column_end":59}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33481,"byte_end":33484,"line_start":50,"line_end":50,"column_start":1,"column_end":4}},{"value":"/ All values that can be generated are of the form `n * ε + ε/2`. For `f32`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33485,"byte_end":33564,"line_start":51,"line_end":51,"column_start":1,"column_end":78}},{"value":"/ the 23 most significant random bits of an `u32` are used, for `f64` 52 from","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33565,"byte_end":33644,"line_start":52,"line_end":52,"column_start":1,"column_end":80}},{"value":"/ an `u64`. The conversion uses a transmute-based method.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33645,"byte_end":33704,"line_start":53,"line_end":53,"column_start":1,"column_end":60}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33705,"byte_end":33708,"line_start":54,"line_end":54,"column_start":1,"column_end":4}},{"value":"/ See also: [`Standard`] which samples from `[0, 1)`, [`OpenClosed01`]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33709,"byte_end":33781,"line_start":55,"line_end":55,"column_start":1,"column_end":73}},{"value":"/ which samples from `(0, 1]` and [`Uniform`] which samples from arbitrary","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33782,"byte_end":33858,"line_start":56,"line_end":56,"column_start":1,"column_end":77}},{"value":"/ ranges.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33859,"byte_end":33870,"line_start":57,"line_end":57,"column_start":1,"column_end":12}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33871,"byte_end":33874,"line_start":58,"line_end":58,"column_start":1,"column_end":4}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33875,"byte_end":33888,"line_start":59,"line_end":59,"column_start":1,"column_end":14}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33889,"byte_end":33896,"line_start":60,"line_end":60,"column_start":1,"column_end":8}},{"value":"/ use rand::{thread_rng, Rng};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33897,"byte_end":33929,"line_start":61,"line_end":61,"column_start":1,"column_end":33}},{"value":"/ use rand::distributions::Open01;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33930,"byte_end":33966,"line_start":62,"line_end":62,"column_start":1,"column_end":37}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33967,"byte_end":33970,"line_start":63,"line_end":63,"column_start":1,"column_end":4}},{"value":"/ let val: f32 = thread_rng().sample(Open01);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":33971,"byte_end":34018,"line_start":64,"line_end":64,"column_start":1,"column_end":48}},{"value":"/ println!(\"f32 from (0, 1): {}\", val);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":34019,"byte_end":34060,"line_start":65,"line_end":65,"column_start":1,"column_end":42}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":34061,"byte_end":34068,"line_start":66,"line_end":66,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":34069,"byte_end":34072,"line_start":67,"line_end":67,"column_start":1,"column_end":4}},{"value":"/ [`Standard`]: crate::distributions::Standard","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":34073,"byte_end":34121,"line_start":68,"line_end":68,"column_start":1,"column_end":49}},{"value":"/ [`OpenClosed01`]: crate::distributions::OpenClosed01","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":34122,"byte_end":34178,"line_start":69,"line_end":69,"column_start":1,"column_end":57}},{"value":"/ [`Uniform`]: crate::distributions::uniform::Uniform","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":34179,"byte_end":34234,"line_start":70,"line_end":70,"column_start":1,"column_end":56}}]},{"kind":"Trait","id":{"krate":0,"index":115},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":34456,"byte_end":34465,"line_start":78,"line_end":78,"column_start":11,"column_end":20},"name":"IntoFloat","qualname":"::distributions::float::IntoFloat","value":"IntoFloat","parent":null,"children":[{"krate":0,"index":116},{"krate":0,"index":117}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Type","id":{"krate":0,"index":116},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":34477,"byte_end":34478,"line_start":79,"line_end":79,"column_start":10,"column_end":11},"name":"F","qualname":"::distributions::float::IntoFloat::F","value":"type F;","parent":{"krate":0,"index":115},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":117},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":34881,"byte_end":34905,"line_start":89,"line_end":89,"column_start":8,"column_end":32},"name":"into_float_with_exponent","qualname":"::distributions::float::IntoFloat::into_float_with_exponent","value":"pub fn into_float_with_exponent(Self, i32) -> Self::F","parent":{"krate":0,"index":115},"children":[],"decl_id":null,"docs":" Helper method to combine the fraction and a constant exponent into a\n float.","sig":null,"attributes":[{"value":"/ Helper method to combine the fraction and a constant exponent into a","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":34485,"byte_end":34557,"line_start":81,"line_end":81,"column_start":5,"column_end":77}},{"value":"/ float.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":34562,"byte_end":34572,"line_start":82,"line_end":82,"column_start":5,"column_end":15}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":34577,"byte_end":34580,"line_start":83,"line_end":83,"column_start":5,"column_end":8}},{"value":"/ Only the least significant bits of `self` may be set, 23 for `f32` and","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":34585,"byte_end":34659,"line_start":84,"line_end":84,"column_start":5,"column_end":79}},{"value":"/ 52 for `f64`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":34664,"byte_end":34681,"line_start":85,"line_end":85,"column_start":5,"column_end":22}},{"value":"/ The resulting value will fall in a range that depends on the exponent.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":34686,"byte_end":34760,"line_start":86,"line_end":86,"column_start":5,"column_end":79}},{"value":"/ As an example the range with exponent 0 will be","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":34765,"byte_end":34816,"line_start":87,"line_end":87,"column_start":5,"column_end":56}},{"value":"/ [20..21), which is [1..2).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/float.rs","byte_start":34821,"byte_end":34873,"line_start":88,"line_end":88,"column_start":5,"column_end":57}}]},{"kind":"Struct","id":{"krate":0,"index":1253},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":55581,"byte_end":55593,"line_start":69,"line_end":69,"column_start":12,"column_end":24},"name":"Alphanumeric","qualname":"::distributions::other::Alphanumeric","value":"","parent":null,"children":[],"decl_id":null,"docs":" Sample a `u8`, uniformly distributed over ASCII letters and numbers:\n a-z, A-Z and 0-9.","sig":null,"attributes":[{"value":"/ Sample a `u8`, uniformly distributed over ASCII letters and numbers:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":53890,"byte_end":53962,"line_start":29,"line_end":29,"column_start":1,"column_end":73}},{"value":"/ a-z, A-Z and 0-9.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":53963,"byte_end":53984,"line_start":30,"line_end":30,"column_start":1,"column_end":22}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":53985,"byte_end":53988,"line_start":31,"line_end":31,"column_start":1,"column_end":4}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":53989,"byte_end":54002,"line_start":32,"line_end":32,"column_start":1,"column_end":14}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54003,"byte_end":54006,"line_start":33,"line_end":33,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54007,"byte_end":54014,"line_start":34,"line_end":34,"column_start":1,"column_end":8}},{"value":"/ use rand::{Rng, thread_rng};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54015,"byte_end":54047,"line_start":35,"line_end":35,"column_start":1,"column_end":33}},{"value":"/ use rand::distributions::Alphanumeric;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54048,"byte_end":54090,"line_start":36,"line_end":36,"column_start":1,"column_end":43}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54091,"byte_end":54094,"line_start":37,"line_end":37,"column_start":1,"column_end":4}},{"value":"/ let mut rng = thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54095,"byte_end":54126,"line_start":38,"line_end":38,"column_start":1,"column_end":32}},{"value":"/ let chars: String = (0..7).map(|_| rng.sample(Alphanumeric) as char).collect();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54127,"byte_end":54210,"line_start":39,"line_end":39,"column_start":1,"column_end":84}},{"value":"/ println!(\"Random chars: {}\", chars);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54211,"byte_end":54251,"line_start":40,"line_end":40,"column_start":1,"column_end":41}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54252,"byte_end":54259,"line_start":41,"line_end":41,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54260,"byte_end":54263,"line_start":42,"line_end":42,"column_start":1,"column_end":4}},{"value":"/ The [`DistString`] trait provides an easier method of generating","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54264,"byte_end":54332,"line_start":43,"line_end":43,"column_start":1,"column_end":69}},{"value":"/ a random `String`, and offers more efficient allocation:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54333,"byte_end":54393,"line_start":44,"line_end":44,"column_start":1,"column_end":61}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54394,"byte_end":54401,"line_start":45,"line_end":45,"column_start":1,"column_end":8}},{"value":"/ use rand::distributions::{Alphanumeric, DistString};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54402,"byte_end":54458,"line_start":46,"line_end":46,"column_start":1,"column_end":57}},{"value":"/ let string = Alphanumeric.sample_string(&mut rand::thread_rng(), 16);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54459,"byte_end":54532,"line_start":47,"line_end":47,"column_start":1,"column_end":74}},{"value":"/ println!(\"Random string: {}\", string);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54533,"byte_end":54575,"line_start":48,"line_end":48,"column_start":1,"column_end":43}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54576,"byte_end":54583,"line_start":49,"line_end":49,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54584,"byte_end":54587,"line_start":50,"line_end":50,"column_start":1,"column_end":4}},{"value":"/ # Passwords","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54588,"byte_end":54603,"line_start":51,"line_end":51,"column_start":1,"column_end":16}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54604,"byte_end":54607,"line_start":52,"line_end":52,"column_start":1,"column_end":4}},{"value":"/ Users sometimes ask whether it is safe to use a string of random characters","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54608,"byte_end":54687,"line_start":53,"line_end":53,"column_start":1,"column_end":80}},{"value":"/ as a password. In principle, all RNGs in Rand implementing `CryptoRng` are","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54688,"byte_end":54766,"line_start":54,"line_end":54,"column_start":1,"column_end":79}},{"value":"/ suitable as a source of randomness for generating passwords (if they are","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54767,"byte_end":54843,"line_start":55,"line_end":55,"column_start":1,"column_end":77}},{"value":"/ properly seeded), but it is more conservative to only use randomness","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54844,"byte_end":54916,"line_start":56,"line_end":56,"column_start":1,"column_end":73}},{"value":"/ directly from the operating system via the `getrandom` crate, or the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54917,"byte_end":54989,"line_start":57,"line_end":57,"column_start":1,"column_end":73}},{"value":"/ corresponding bindings of a crypto library.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":54990,"byte_end":55037,"line_start":58,"line_end":58,"column_start":1,"column_end":48}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":55038,"byte_end":55041,"line_start":59,"line_end":59,"column_start":1,"column_end":4}},{"value":"/ When generating passwords or keys, it is important to consider the threat","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":55042,"byte_end":55119,"line_start":60,"line_end":60,"column_start":1,"column_end":78}},{"value":"/ model and in some cases the memorability of the password. This is out of","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":55120,"byte_end":55196,"line_start":61,"line_end":61,"column_start":1,"column_end":77}},{"value":"/ scope of the Rand project, and therefore we defer to the following","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":55197,"byte_end":55267,"line_start":62,"line_end":62,"column_start":1,"column_end":71}},{"value":"/ references:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":55268,"byte_end":55283,"line_start":63,"line_end":63,"column_start":1,"column_end":16}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":55284,"byte_end":55287,"line_start":64,"line_end":64,"column_start":1,"column_end":4}},{"value":"/ - [Wikipedia article on Password Strength](https://en.wikipedia.org/wiki/Password_strength)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":55288,"byte_end":55383,"line_start":65,"line_end":65,"column_start":1,"column_end":96}},{"value":"/ - [Diceware for generating memorable passwords](https://en.wikipedia.org/wiki/Diceware)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":55384,"byte_end":55475,"line_start":66,"line_end":66,"column_start":1,"column_end":92}}]},{"kind":"Struct","id":{"krate":0,"index":1572},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":67266,"byte_end":67271,"line_start":65,"line_end":65,"column_start":12,"column_end":17},"name":"Slice","qualname":"::distributions::slice::Slice","value":"Slice { }","parent":null,"children":[{"krate":0,"index":1575},{"krate":0,"index":1576}],"decl_id":null,"docs":" A distribution to sample items uniformly from a slice.","sig":null,"attributes":[{"value":"/ A distribution to sample items uniformly from a slice.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":65301,"byte_end":65359,"line_start":11,"line_end":11,"column_start":1,"column_end":59}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":65360,"byte_end":65363,"line_start":12,"line_end":12,"column_start":1,"column_end":4}},{"value":"/ [`Slice::new`] constructs a distribution referencing a slice and uniformly","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":65364,"byte_end":65442,"line_start":13,"line_end":13,"column_start":1,"column_end":79}},{"value":"/ samples references from the items in the slice. It may do extra work up","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":65443,"byte_end":65518,"line_start":14,"line_end":14,"column_start":1,"column_end":76}},{"value":"/ front to make sampling of multiple values faster; if only one sample from","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":65519,"byte_end":65596,"line_start":15,"line_end":15,"column_start":1,"column_end":78}},{"value":"/ the slice is required, [`SliceRandom::choose`] can be more efficient.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":65597,"byte_end":65670,"line_start":16,"line_end":16,"column_start":1,"column_end":74}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":65671,"byte_end":65674,"line_start":17,"line_end":17,"column_start":1,"column_end":4}},{"value":"/ Steps are taken to avoid bias which might be present in naive","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":65675,"byte_end":65740,"line_start":18,"line_end":18,"column_start":1,"column_end":66}},{"value":"/ implementations; for example `slice[rng.gen() % slice.len()]` samples from","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":65741,"byte_end":65819,"line_start":19,"line_end":19,"column_start":1,"column_end":79}},{"value":"/ the slice, but may be more likely to select numbers in the low range than","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":65820,"byte_end":65897,"line_start":20,"line_end":20,"column_start":1,"column_end":78}},{"value":"/ other values.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":65898,"byte_end":65915,"line_start":21,"line_end":21,"column_start":1,"column_end":18}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":65916,"byte_end":65919,"line_start":22,"line_end":22,"column_start":1,"column_end":4}},{"value":"/ This distribution samples with replacement; each sample is independent.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":65920,"byte_end":65995,"line_start":23,"line_end":23,"column_start":1,"column_end":76}},{"value":"/ Sampling without replacement requires state to be retained, and therefore","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":65996,"byte_end":66073,"line_start":24,"line_end":24,"column_start":1,"column_end":78}},{"value":"/ cannot be handled by a distribution; you should instead consider methods","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66074,"byte_end":66150,"line_start":25,"line_end":25,"column_start":1,"column_end":77}},{"value":"/ on [`SliceRandom`], such as [`SliceRandom::choose_multiple`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66151,"byte_end":66216,"line_start":26,"line_end":26,"column_start":1,"column_end":66}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66217,"byte_end":66220,"line_start":27,"line_end":27,"column_start":1,"column_end":4}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66221,"byte_end":66234,"line_start":28,"line_end":28,"column_start":1,"column_end":14}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66235,"byte_end":66238,"line_start":29,"line_end":29,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66239,"byte_end":66246,"line_start":30,"line_end":30,"column_start":1,"column_end":8}},{"value":"/ use rand::Rng;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66247,"byte_end":66265,"line_start":31,"line_end":31,"column_start":1,"column_end":19}},{"value":"/ use rand::distributions::Slice;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66266,"byte_end":66301,"line_start":32,"line_end":32,"column_start":1,"column_end":36}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66302,"byte_end":66305,"line_start":33,"line_end":33,"column_start":1,"column_end":4}},{"value":"/ let vowels = ['a', 'e', 'i', 'o', 'u'];","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66306,"byte_end":66349,"line_start":34,"line_end":34,"column_start":1,"column_end":44}},{"value":"/ let vowels_dist = Slice::new(&vowels).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66350,"byte_end":66401,"line_start":35,"line_end":35,"column_start":1,"column_end":52}},{"value":"/ let rng = rand::thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66402,"byte_end":66435,"line_start":36,"line_end":36,"column_start":1,"column_end":34}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66436,"byte_end":66439,"line_start":37,"line_end":37,"column_start":1,"column_end":4}},{"value":"/ // build a string of 10 vowels","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66440,"byte_end":66474,"line_start":38,"line_end":38,"column_start":1,"column_end":35}},{"value":"/ let vowel_string: String = rng","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66475,"byte_end":66509,"line_start":39,"line_end":39,"column_start":1,"column_end":35}},{"value":"/ .sample_iter(&vowels_dist)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66510,"byte_end":66544,"line_start":40,"line_end":40,"column_start":1,"column_end":35}},{"value":"/ .take(10)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66545,"byte_end":66562,"line_start":41,"line_end":41,"column_start":1,"column_end":18}},{"value":"/ .collect();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66563,"byte_end":66582,"line_start":42,"line_end":42,"column_start":1,"column_end":20}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66583,"byte_end":66586,"line_start":43,"line_end":43,"column_start":1,"column_end":4}},{"value":"/ println!(\"{}\", vowel_string);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66587,"byte_end":66620,"line_start":44,"line_end":44,"column_start":1,"column_end":34}},{"value":"/ assert_eq!(vowel_string.len(), 10);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66621,"byte_end":66660,"line_start":45,"line_end":45,"column_start":1,"column_end":40}},{"value":"/ assert!(vowel_string.chars().all(|c| vowels.contains(&c)));","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66661,"byte_end":66724,"line_start":46,"line_end":46,"column_start":1,"column_end":64}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66725,"byte_end":66732,"line_start":47,"line_end":47,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66733,"byte_end":66736,"line_start":48,"line_end":48,"column_start":1,"column_end":4}},{"value":"/ For a single sample, [`SliceRandom::choose`][crate::seq::SliceRandom::choose]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66737,"byte_end":66818,"line_start":49,"line_end":49,"column_start":1,"column_end":82}},{"value":"/ may be preferred:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66819,"byte_end":66840,"line_start":50,"line_end":50,"column_start":1,"column_end":22}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66841,"byte_end":66844,"line_start":51,"line_end":51,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66845,"byte_end":66852,"line_start":52,"line_end":52,"column_start":1,"column_end":8}},{"value":"/ use rand::seq::SliceRandom;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66853,"byte_end":66884,"line_start":53,"line_end":53,"column_start":1,"column_end":32}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66885,"byte_end":66888,"line_start":54,"line_end":54,"column_start":1,"column_end":4}},{"value":"/ let vowels = ['a', 'e', 'i', 'o', 'u'];","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66889,"byte_end":66932,"line_start":55,"line_end":55,"column_start":1,"column_end":44}},{"value":"/ let mut rng = rand::thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66933,"byte_end":66970,"line_start":56,"line_end":56,"column_start":1,"column_end":38}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66971,"byte_end":66974,"line_start":57,"line_end":57,"column_start":1,"column_end":4}},{"value":"/ println!(\"{}\", vowels.choose(&mut rng).unwrap())","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":66975,"byte_end":67027,"line_start":58,"line_end":58,"column_start":1,"column_end":53}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":67028,"byte_end":67035,"line_start":59,"line_end":59,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":67036,"byte_end":67039,"line_start":60,"line_end":60,"column_start":1,"column_end":4}},{"value":"/ [`SliceRandom`]: crate::seq::SliceRandom","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":67040,"byte_end":67084,"line_start":61,"line_end":61,"column_start":1,"column_end":45}},{"value":"/ [`SliceRandom::choose`]: crate::seq::SliceRandom::choose","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":67085,"byte_end":67145,"line_start":62,"line_end":62,"column_start":1,"column_end":61}},{"value":"/ [`SliceRandom::choose_multiple`]: crate::seq::SliceRandom::choose_multiple","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":67146,"byte_end":67224,"line_start":63,"line_end":63,"column_start":1,"column_end":79}}]},{"kind":"Method","id":{"krate":0,"index":237},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":67492,"byte_end":67495,"line_start":73,"line_end":73,"column_start":12,"column_end":15},"name":"new","qualname":"::new","value":"pub fn new(&'a [T]) -> Result","parent":null,"children":[],"decl_id":null,"docs":" Create a new `Slice` instance which samples uniformly from the slice.\n Returns `Err` if the slice is empty.\n","sig":null,"attributes":[{"value":"/ Create a new `Slice` instance which samples uniformly from the slice.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":67362,"byte_end":67435,"line_start":71,"line_end":71,"column_start":5,"column_end":78}},{"value":"/ Returns `Err` if the slice is empty.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":67440,"byte_end":67480,"line_start":72,"line_end":72,"column_start":5,"column_end":45}}]},{"kind":"Struct","id":{"krate":0,"index":1588},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":68454,"byte_end":68464,"line_start":105,"line_end":105,"column_start":12,"column_end":22},"name":"EmptySlice","qualname":"::distributions::slice::EmptySlice","value":"","parent":null,"children":[],"decl_id":null,"docs":" Error type indicating that a [`Slice`] distribution was improperly\n constructed with an empty slice.\n","sig":null,"attributes":[{"value":"/ Error type indicating that a [`Slice`] distribution was improperly","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":68305,"byte_end":68375,"line_start":102,"line_end":102,"column_start":1,"column_end":71}},{"value":"/ constructed with an empty slice.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":68376,"byte_end":68412,"line_start":103,"line_end":103,"column_start":1,"column_end":37}}]},{"kind":"Type","id":{"krate":0,"index":249},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/utils.rs","byte_start":69269,"byte_end":69275,"line_start":15,"line_end":15,"column_start":10,"column_end":16},"name":"Output","qualname":"::distributions::utils::WideningMultiply::Output","value":"type Output;","parent":{"krate":0,"index":247},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Type","id":{"krate":0,"index":258},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/utils.rs","byte_start":76192,"byte_end":76196,"line_start":218,"line_end":218,"column_start":10,"column_end":14},"name":"Mask","qualname":"::distributions::utils::FloatSIMDUtils::Mask","value":"type Mask;","parent":{"krate":0,"index":254},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Type","id":{"krate":0,"index":263},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/utils.rs","byte_start":76711,"byte_end":76715,"line_start":230,"line_end":230,"column_start":10,"column_end":14},"name":"UInt","qualname":"::distributions::utils::FloatSIMDUtils::UInt","value":"type UInt;","parent":{"krate":0,"index":254},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Struct","id":{"krate":0,"index":1646},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":85732,"byte_end":85745,"line_start":81,"line_end":81,"column_start":12,"column_end":25},"name":"WeightedIndex","qualname":"::distributions::weighted_index::WeightedIndex","value":"WeightedIndex { }","parent":null,"children":[{"krate":0,"index":1648},{"krate":0,"index":1649},{"krate":0,"index":1650}],"decl_id":null,"docs":" A distribution using weighted sampling of discrete items","sig":null,"attributes":[{"value":"/ A distribution using weighted sampling of discrete items","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":83117,"byte_end":83177,"line_start":23,"line_end":23,"column_start":1,"column_end":61}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":83178,"byte_end":83181,"line_start":24,"line_end":24,"column_start":1,"column_end":4}},{"value":"/ Sampling a `WeightedIndex` distribution returns the index of a randomly","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":83182,"byte_end":83257,"line_start":25,"line_end":25,"column_start":1,"column_end":76}},{"value":"/ selected element from the iterator used when the `WeightedIndex` was","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":83258,"byte_end":83330,"line_start":26,"line_end":26,"column_start":1,"column_end":73}},{"value":"/ created. The chance of a given element being picked is proportional to the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":83331,"byte_end":83409,"line_start":27,"line_end":27,"column_start":1,"column_end":79}},{"value":"/ value of the element. The weights can use any type `X` for which an","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":83410,"byte_end":83481,"line_start":28,"line_end":28,"column_start":1,"column_end":72}},{"value":"/ implementation of [`Uniform`] exists.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":83482,"byte_end":83526,"line_start":29,"line_end":29,"column_start":1,"column_end":45}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":83527,"byte_end":83530,"line_start":30,"line_end":30,"column_start":1,"column_end":4}},{"value":"/ # Performance","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":83531,"byte_end":83548,"line_start":31,"line_end":31,"column_start":1,"column_end":18}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":83549,"byte_end":83552,"line_start":32,"line_end":32,"column_start":1,"column_end":4}},{"value":"/ Time complexity of sampling from `WeightedIndex` is `O(log N)` where","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":83553,"byte_end":83625,"line_start":33,"line_end":33,"column_start":1,"column_end":73}},{"value":"/ `N` is the number of weights. As an alternative,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":83626,"byte_end":83678,"line_start":34,"line_end":34,"column_start":1,"column_end":53}},{"value":"/ [`rand_distr::weighted_alias`](https://docs.rs/rand_distr/*/rand_distr/weighted_alias/index.html)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":83679,"byte_end":83780,"line_start":35,"line_end":35,"column_start":1,"column_end":102}},{"value":"/ supports `O(1)` sampling, but with much higher initialisation cost.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":83781,"byte_end":83852,"line_start":36,"line_end":36,"column_start":1,"column_end":72}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":83853,"byte_end":83856,"line_start":37,"line_end":37,"column_start":1,"column_end":4}},{"value":"/ A `WeightedIndex` contains a `Vec` and a [`Uniform`] and so its","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":83857,"byte_end":83933,"line_start":38,"line_end":38,"column_start":1,"column_end":77}},{"value":"/ size is the sum of the size of those objects, possibly plus some alignment.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":83934,"byte_end":84013,"line_start":39,"line_end":39,"column_start":1,"column_end":80}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":84014,"byte_end":84017,"line_start":40,"line_end":40,"column_start":1,"column_end":4}},{"value":"/ Creating a `WeightedIndex` will allocate enough space to hold `N - 1`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":84018,"byte_end":84094,"line_start":41,"line_end":41,"column_start":1,"column_end":77}},{"value":"/ weights of type `X`, where `N` is the number of weights. However, since","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":84095,"byte_end":84170,"line_start":42,"line_end":42,"column_start":1,"column_end":76}},{"value":"/ `Vec` doesn't guarantee a particular growth strategy, additional memory","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":84171,"byte_end":84246,"line_start":43,"line_end":43,"column_start":1,"column_end":76}},{"value":"/ might be allocated but not used. Since the `WeightedIndex` object also","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":84247,"byte_end":84321,"line_start":44,"line_end":44,"column_start":1,"column_end":75}},{"value":"/ contains, this might cause additional allocations, though for primitive","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":84322,"byte_end":84397,"line_start":45,"line_end":45,"column_start":1,"column_end":76}},{"value":"/ types, [`Uniform`] doesn't allocate any memory.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":84398,"byte_end":84452,"line_start":46,"line_end":46,"column_start":1,"column_end":55}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":84453,"byte_end":84456,"line_start":47,"line_end":47,"column_start":1,"column_end":4}},{"value":"/ Sampling from `WeightedIndex` will result in a single call to","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":84457,"byte_end":84522,"line_start":48,"line_end":48,"column_start":1,"column_end":66}},{"value":"/ `Uniform::sample` (method of the [`Distribution`] trait), which typically","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":84523,"byte_end":84603,"line_start":49,"line_end":49,"column_start":1,"column_end":81}},{"value":"/ will request a single value from the underlying [`RngCore`], though the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":84604,"byte_end":84679,"line_start":50,"line_end":50,"column_start":1,"column_end":76}},{"value":"/ exact number depends on the implementation of `Uniform::sample`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":84680,"byte_end":84751,"line_start":51,"line_end":51,"column_start":1,"column_end":72}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":84752,"byte_end":84755,"line_start":52,"line_end":52,"column_start":1,"column_end":4}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":84756,"byte_end":84769,"line_start":53,"line_end":53,"column_start":1,"column_end":14}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":84770,"byte_end":84773,"line_start":54,"line_end":54,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":84774,"byte_end":84781,"line_start":55,"line_end":55,"column_start":1,"column_end":8}},{"value":"/ use rand::prelude::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":84782,"byte_end":84807,"line_start":56,"line_end":56,"column_start":1,"column_end":26}},{"value":"/ use rand::distributions::WeightedIndex;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":84808,"byte_end":84851,"line_start":57,"line_end":57,"column_start":1,"column_end":44}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":84852,"byte_end":84855,"line_start":58,"line_end":58,"column_start":1,"column_end":4}},{"value":"/ let choices = ['a', 'b', 'c'];","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":84856,"byte_end":84890,"line_start":59,"line_end":59,"column_start":1,"column_end":35}},{"value":"/ let weights = [2, 1, 1];","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":84891,"byte_end":84923,"line_start":60,"line_end":60,"column_start":1,"column_end":33}},{"value":"/ let dist = WeightedIndex::new(&weights).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":84924,"byte_end":84977,"line_start":61,"line_end":61,"column_start":1,"column_end":54}},{"value":"/ let mut rng = thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":84978,"byte_end":85009,"line_start":62,"line_end":62,"column_start":1,"column_end":32}},{"value":"/ for _ in 0..100 {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":85010,"byte_end":85031,"line_start":63,"line_end":63,"column_start":1,"column_end":22}},{"value":"/ // 50% chance to print 'a', 25% chance to print 'b', 25% chance to print 'c'","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":85032,"byte_end":85116,"line_start":64,"line_end":64,"column_start":1,"column_end":85}},{"value":"/ println!(\"{}\", choices[dist.sample(&mut rng)]);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":85117,"byte_end":85172,"line_start":65,"line_end":65,"column_start":1,"column_end":56}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":85173,"byte_end":85178,"line_start":66,"line_end":66,"column_start":1,"column_end":6}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":85179,"byte_end":85182,"line_start":67,"line_end":67,"column_start":1,"column_end":4}},{"value":"/ let items = [('a', 0), ('b', 3), ('c', 7)];","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":85183,"byte_end":85230,"line_start":68,"line_end":68,"column_start":1,"column_end":48}},{"value":"/ let dist2 = WeightedIndex::new(items.iter().map(|item| item.1)).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":85231,"byte_end":85308,"line_start":69,"line_end":69,"column_start":1,"column_end":78}},{"value":"/ for _ in 0..100 {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":85309,"byte_end":85330,"line_start":70,"line_end":70,"column_start":1,"column_end":22}},{"value":"/ // 0% chance to print 'a', 30% chance to print 'b', 70% chance to print 'c'","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":85331,"byte_end":85414,"line_start":71,"line_end":71,"column_start":1,"column_end":84}},{"value":"/ println!(\"{}\", items[dist2.sample(&mut rng)].0);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":85415,"byte_end":85471,"line_start":72,"line_end":72,"column_start":1,"column_end":57}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":85472,"byte_end":85477,"line_start":73,"line_end":73,"column_start":1,"column_end":6}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":85478,"byte_end":85485,"line_start":74,"line_end":74,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":85486,"byte_end":85489,"line_start":75,"line_end":75,"column_start":1,"column_end":4}},{"value":"/ [`Uniform`]: crate::distributions::Uniform","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":85490,"byte_end":85539,"line_start":76,"line_end":76,"column_start":1,"column_end":50}},{"value":"/ [`RngCore`]: crate::RngCore","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":85540,"byte_end":85571,"line_start":77,"line_end":77,"column_start":1,"column_end":32}}]},{"kind":"Method","id":{"krate":0,"index":311},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":86319,"byte_end":86322,"line_start":96,"line_end":96,"column_start":12,"column_end":15},"name":"new","qualname":">::new","value":"pub fn new(I) -> Result, WeightedError> where\nI: IntoIterator, I::Item: SampleBorrow,\nX: for<'a> ::core::ops::AddAssign<&'a X> + Clone + Default","parent":null,"children":[],"decl_id":null,"docs":" Creates a new a `WeightedIndex` [`Distribution`] using the values\n in `weights`. The weights can use any type `X` for which an\n implementation of [`Uniform`] exists.","sig":null,"attributes":[{"value":"/ Creates a new a `WeightedIndex` [`Distribution`] using the values","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":85931,"byte_end":86000,"line_start":88,"line_end":88,"column_start":5,"column_end":74}},{"value":"/ in `weights`. The weights can use any type `X` for which an","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":86005,"byte_end":86068,"line_start":89,"line_end":89,"column_start":5,"column_end":68}},{"value":"/ implementation of [`Uniform`] exists.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":86073,"byte_end":86117,"line_start":90,"line_end":90,"column_start":5,"column_end":49}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":86122,"byte_end":86125,"line_start":91,"line_end":91,"column_start":5,"column_end":8}},{"value":"/ Returns an error if the iterator is empty, if any weight is `< 0`, or","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":86130,"byte_end":86203,"line_start":92,"line_end":92,"column_start":5,"column_end":78}},{"value":"/ if its total value is 0.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":86208,"byte_end":86236,"line_start":93,"line_end":93,"column_start":5,"column_end":33}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":86241,"byte_end":86244,"line_start":94,"line_end":94,"column_start":5,"column_end":8}},{"value":"/ [`Uniform`]: crate::distributions::uniform::Uniform","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":86249,"byte_end":86307,"line_start":95,"line_end":95,"column_start":5,"column_end":63}}]},{"kind":"Method","id":{"krate":0,"index":314},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":88010,"byte_end":88024,"line_start":142,"line_end":142,"column_start":12,"column_end":26},"name":"update_weights","qualname":">::update_weights","value":"pub fn update_weights(&mut Self, &[(usize, &X)]) -> Result<(), WeightedError>\nwhere X: for<'a> ::core::ops::AddAssign<&'a X> +\nfor<'a> ::core::ops::SubAssign<&'a X> + Clone + Default","parent":null,"children":[],"decl_id":null,"docs":" Update a subset of weights, without changing the number of weights.","sig":null,"attributes":[{"value":"/ Update a subset of weights, without changing the number of weights.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":87587,"byte_end":87658,"line_start":133,"line_end":133,"column_start":5,"column_end":76}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":87663,"byte_end":87666,"line_start":134,"line_end":134,"column_start":5,"column_end":8}},{"value":"/ `new_weights` must be sorted by the index.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":87671,"byte_end":87717,"line_start":135,"line_end":135,"column_start":5,"column_end":51}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":87722,"byte_end":87725,"line_start":136,"line_end":136,"column_start":5,"column_end":8}},{"value":"/ Using this method instead of `new` might be more efficient if only a small number of","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":87730,"byte_end":87818,"line_start":137,"line_end":137,"column_start":5,"column_end":93}},{"value":"/ weights is modified. No allocations are performed, unless the weight type `X` uses","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":87823,"byte_end":87909,"line_start":138,"line_end":138,"column_start":5,"column_end":91}},{"value":"/ allocation internally.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":87914,"byte_end":87940,"line_start":139,"line_end":139,"column_start":5,"column_end":31}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":87945,"byte_end":87948,"line_start":140,"line_end":140,"column_start":5,"column_end":8}},{"value":"/ In case of error, `self` is not modified.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":87953,"byte_end":87998,"line_start":141,"line_end":141,"column_start":5,"column_end":50}}]},{"kind":"TupleVariant","id":{"krate":0,"index":1664},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":97788,"byte_end":97794,"line_start":433,"line_end":433,"column_start":5,"column_end":11},"name":"NoItem","qualname":"::distributions::weighted_index::WeightedError::NoItem","value":"WeightedError::NoItem","parent":{"krate":0,"index":1663},"children":[],"decl_id":null,"docs":" The provided weight collection contains no items.\n","sig":null,"attributes":[{"value":"/ The provided weight collection contains no items.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":97730,"byte_end":97783,"line_start":432,"line_end":432,"column_start":5,"column_end":58}}]},{"kind":"TupleVariant","id":{"krate":0,"index":1666},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":97915,"byte_end":97928,"line_start":437,"line_end":437,"column_start":5,"column_end":18},"name":"InvalidWeight","qualname":"::distributions::weighted_index::WeightedError::InvalidWeight","value":"WeightedError::InvalidWeight","parent":{"krate":0,"index":1663},"children":[],"decl_id":null,"docs":" A weight is either less than zero, greater than the supported maximum,\n NaN, or otherwise invalid.\n","sig":null,"attributes":[{"value":"/ A weight is either less than zero, greater than the supported maximum,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":97801,"byte_end":97875,"line_start":435,"line_end":435,"column_start":5,"column_end":79}},{"value":"/ NaN, or otherwise invalid.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":97880,"byte_end":97910,"line_start":436,"line_end":436,"column_start":5,"column_end":35}}]},{"kind":"TupleVariant","id":{"krate":0,"index":1668},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":97997,"byte_end":98011,"line_start":440,"line_end":440,"column_start":5,"column_end":19},"name":"AllWeightsZero","qualname":"::distributions::weighted_index::WeightedError::AllWeightsZero","value":"WeightedError::AllWeightsZero","parent":{"krate":0,"index":1663},"children":[],"decl_id":null,"docs":" All items in the provided weight collection are zero.\n","sig":null,"attributes":[{"value":"/ All items in the provided weight collection are zero.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":97935,"byte_end":97992,"line_start":439,"line_end":439,"column_start":5,"column_end":62}}]},{"kind":"TupleVariant","id":{"krate":0,"index":1670},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":98089,"byte_end":98096,"line_start":443,"line_end":443,"column_start":5,"column_end":12},"name":"TooMany","qualname":"::distributions::weighted_index::WeightedError::TooMany","value":"WeightedError::TooMany","parent":{"krate":0,"index":1663},"children":[],"decl_id":null,"docs":" Too many weights are provided (length greater than `u32::MAX`)\n","sig":null,"attributes":[{"value":"/ Too many weights are provided (length greater than `u32::MAX`)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":98018,"byte_end":98084,"line_start":442,"line_end":442,"column_start":5,"column_end":71}}]},{"kind":"Enum","id":{"krate":0,"index":1663},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":97710,"byte_end":97723,"line_start":431,"line_end":431,"column_start":10,"column_end":23},"name":"WeightedError","qualname":"::distributions::weighted_index::WeightedError","value":"pub enum WeightedError { NoItem, InvalidWeight, AllWeightsZero, TooMany, }","parent":null,"children":[{"krate":0,"index":1664},{"krate":0,"index":1666},{"krate":0,"index":1668},{"krate":0,"index":1670}],"decl_id":null,"docs":" Error type returned from `WeightedIndex::new`.\n","sig":null,"attributes":[{"value":"/ Error type returned from `WeightedIndex::new`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":97555,"byte_end":97605,"line_start":428,"line_end":428,"column_start":1,"column_end":51}}]},{"kind":"Mod","id":{"krate":0,"index":328},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":11195,"byte_end":11208,"line_start":107,"line_end":107,"column_start":9,"column_end":22},"name":"hidden_export","qualname":"::distributions::hidden_export","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","parent":null,"children":[{"krate":0,"index":329}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Mod","id":{"krate":0,"index":332},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"name":"uniform","qualname":"::distributions::uniform","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","parent":null,"children":[{"krate":0,"index":333},{"krate":0,"index":336},{"krate":0,"index":337},{"krate":0,"index":340},{"krate":0,"index":343},{"krate":0,"index":346},{"krate":0,"index":347},{"krate":0,"index":350},{"krate":0,"index":353},{"krate":0,"index":356},{"krate":0,"index":359},{"krate":0,"index":362},{"krate":0,"index":363},{"krate":0,"index":366},{"krate":0,"index":1683},{"krate":0,"index":1687},{"krate":0,"index":1690},{"krate":0,"index":1692},{"krate":0,"index":1695},{"krate":0,"index":1697},{"krate":0,"index":369},{"krate":0,"index":377},{"krate":0,"index":381},{"krate":0,"index":383},{"krate":0,"index":401},{"krate":0,"index":404},{"krate":0,"index":407},{"krate":0,"index":410},{"krate":0,"index":413},{"krate":0,"index":417},{"krate":0,"index":422},{"krate":0,"index":427},{"krate":0,"index":1701},{"krate":0,"index":1706},{"krate":0,"index":1709},{"krate":0,"index":1711},{"krate":0,"index":1714},{"krate":0,"index":1716},{"krate":0,"index":432},{"krate":0,"index":1720},{"krate":0,"index":1722},{"krate":0,"index":1740},{"krate":0,"index":1742},{"krate":0,"index":1760},{"krate":0,"index":1762},{"krate":0,"index":1780},{"krate":0,"index":1782},{"krate":0,"index":1800},{"krate":0,"index":1802},{"krate":0,"index":1820},{"krate":0,"index":1822},{"krate":0,"index":1840},{"krate":0,"index":1842},{"krate":0,"index":1860},{"krate":0,"index":1862},{"krate":0,"index":1880},{"krate":0,"index":1882},{"krate":0,"index":1900},{"krate":0,"index":1902},{"krate":0,"index":1920},{"krate":0,"index":1922},{"krate":0,"index":1940},{"krate":0,"index":1942},{"krate":0,"index":433},{"krate":0,"index":1960},{"krate":0,"index":1962},{"krate":0,"index":1964},{"krate":0,"index":1965},{"krate":0,"index":435},{"krate":0,"index":436},{"krate":0,"index":437},{"krate":0,"index":438},{"krate":0,"index":1967},{"krate":0,"index":1971},{"krate":0,"index":1974},{"krate":0,"index":1976},{"krate":0,"index":1979},{"krate":0,"index":1981},{"krate":0,"index":448},{"krate":0,"index":1985},{"krate":0,"index":1987},{"krate":0,"index":2001},{"krate":0,"index":2003},{"krate":0,"index":2017},{"krate":0,"index":2020},{"krate":0,"index":2022},{"krate":0,"index":2023},{"krate":0,"index":2025},{"krate":0,"index":2035},{"krate":0,"index":2037},{"krate":0,"index":2038},{"krate":0,"index":449},{"krate":0,"index":451}],"decl_id":null,"docs":" A distribution uniformly sampling numbers within a given range.","sig":null,"attributes":[{"value":"/ A distribution uniformly sampling numbers within a given range.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":99062,"byte_end":99129,"line_start":10,"line_end":10,"column_start":1,"column_end":68}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":99130,"byte_end":99133,"line_start":11,"line_end":11,"column_start":1,"column_end":4}},{"value":"/ [`Uniform`] is the standard distribution to sample uniformly from a range;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":99134,"byte_end":99212,"line_start":12,"line_end":12,"column_start":1,"column_end":79}},{"value":"/ e.g. `Uniform::new_inclusive(1, 6)` can sample integers from 1 to 6, like a","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":99213,"byte_end":99292,"line_start":13,"line_end":13,"column_start":1,"column_end":80}},{"value":"/ standard die. [`Rng::gen_range`] supports any type supported by","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":99293,"byte_end":99360,"line_start":14,"line_end":14,"column_start":1,"column_end":68}},{"value":"/ [`Uniform`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":99361,"byte_end":99377,"line_start":15,"line_end":15,"column_start":1,"column_end":17}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":99378,"byte_end":99381,"line_start":16,"line_end":16,"column_start":1,"column_end":4}},{"value":"/ This distribution is provided with support for several primitive types","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":99382,"byte_end":99456,"line_start":17,"line_end":17,"column_start":1,"column_end":75}},{"value":"/ (all integer and floating-point types) as well as [`std::time::Duration`],","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":99457,"byte_end":99535,"line_start":18,"line_end":18,"column_start":1,"column_end":79}},{"value":"/ and supports extension to user-defined types via a type-specific *back-end*","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":99536,"byte_end":99615,"line_start":19,"line_end":19,"column_start":1,"column_end":80}},{"value":"/ implementation.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":99616,"byte_end":99635,"line_start":20,"line_end":20,"column_start":1,"column_end":20}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":99636,"byte_end":99639,"line_start":21,"line_end":21,"column_start":1,"column_end":4}},{"value":"/ The types [`UniformInt`], [`UniformFloat`] and [`UniformDuration`] are the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":99640,"byte_end":99718,"line_start":22,"line_end":22,"column_start":1,"column_end":79}},{"value":"/ back-ends supporting sampling from primitive integer and floating-point","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":99719,"byte_end":99794,"line_start":23,"line_end":23,"column_start":1,"column_end":76}},{"value":"/ ranges as well as from [`std::time::Duration`]; these types do not normally","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":99795,"byte_end":99874,"line_start":24,"line_end":24,"column_start":1,"column_end":80}},{"value":"/ need to be used directly (unless implementing a derived back-end).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":99875,"byte_end":99945,"line_start":25,"line_end":25,"column_start":1,"column_end":71}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":99946,"byte_end":99949,"line_start":26,"line_end":26,"column_start":1,"column_end":4}},{"value":"/ # Example usage","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":99950,"byte_end":99969,"line_start":27,"line_end":27,"column_start":1,"column_end":20}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":99970,"byte_end":99973,"line_start":28,"line_end":28,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":99974,"byte_end":99981,"line_start":29,"line_end":29,"column_start":1,"column_end":8}},{"value":"/ use rand::{Rng, thread_rng};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":99982,"byte_end":100014,"line_start":30,"line_end":30,"column_start":1,"column_end":33}},{"value":"/ use rand::distributions::Uniform;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":100015,"byte_end":100052,"line_start":31,"line_end":31,"column_start":1,"column_end":38}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":100053,"byte_end":100056,"line_start":32,"line_end":32,"column_start":1,"column_end":4}},{"value":"/ let mut rng = thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":100057,"byte_end":100088,"line_start":33,"line_end":33,"column_start":1,"column_end":32}},{"value":"/ let side = Uniform::new(-10.0, 10.0);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":100089,"byte_end":100130,"line_start":34,"line_end":34,"column_start":1,"column_end":42}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":100131,"byte_end":100134,"line_start":35,"line_end":35,"column_start":1,"column_end":4}},{"value":"/ // sample between 1 and 10 points","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":100135,"byte_end":100172,"line_start":36,"line_end":36,"column_start":1,"column_end":38}},{"value":"/ for _ in 0..rng.gen_range(1..=10) {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":100173,"byte_end":100212,"line_start":37,"line_end":37,"column_start":1,"column_end":40}},{"value":"/ // sample a point from the square with sides -10 - 10 in two dimensions","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":100213,"byte_end":100292,"line_start":38,"line_end":38,"column_start":1,"column_end":80}},{"value":"/ let (x, y) = (rng.sample(side), rng.sample(side));","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":100293,"byte_end":100351,"line_start":39,"line_end":39,"column_start":1,"column_end":59}},{"value":"/ println!(\"Point: {}, {}\", x, y);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":100352,"byte_end":100392,"line_start":40,"line_end":40,"column_start":1,"column_end":41}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":100393,"byte_end":100398,"line_start":41,"line_end":41,"column_start":1,"column_end":6}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":100399,"byte_end":100406,"line_start":42,"line_end":42,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":100407,"byte_end":100410,"line_start":43,"line_end":43,"column_start":1,"column_end":4}},{"value":"/ # Extending `Uniform` to support a custom type","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":100411,"byte_end":100461,"line_start":44,"line_end":44,"column_start":1,"column_end":51}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":100462,"byte_end":100465,"line_start":45,"line_end":45,"column_start":1,"column_end":4}},{"value":"/ To extend [`Uniform`] to support your own types, write a back-end which","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":100466,"byte_end":100541,"line_start":46,"line_end":46,"column_start":1,"column_end":76}},{"value":"/ implements the [`UniformSampler`] trait, then implement the [`SampleUniform`]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":100542,"byte_end":100623,"line_start":47,"line_end":47,"column_start":1,"column_end":82}},{"value":"/ helper trait to \"register\" your back-end. See the `MyF32` example below.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":100624,"byte_end":100700,"line_start":48,"line_end":48,"column_start":1,"column_end":77}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":100701,"byte_end":100704,"line_start":49,"line_end":49,"column_start":1,"column_end":4}},{"value":"/ At a minimum, the back-end needs to store any parameters needed for sampling","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":100705,"byte_end":100785,"line_start":50,"line_end":50,"column_start":1,"column_end":81}},{"value":"/ (e.g. the target range) and implement `new`, `new_inclusive` and `sample`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":100786,"byte_end":100864,"line_start":51,"line_end":51,"column_start":1,"column_end":79}},{"value":"/ Those methods should include an assert to check the range is valid (i.e.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":100865,"byte_end":100941,"line_start":52,"line_end":52,"column_start":1,"column_end":77}},{"value":"/ `low < high`). The example below merely wraps another back-end.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":100942,"byte_end":101009,"line_start":53,"line_end":53,"column_start":1,"column_end":68}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101010,"byte_end":101013,"line_start":54,"line_end":54,"column_start":1,"column_end":4}},{"value":"/ The `new`, `new_inclusive` and `sample_single` functions use arguments of","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101014,"byte_end":101091,"line_start":55,"line_end":55,"column_start":1,"column_end":78}},{"value":"/ type SampleBorrow in order to support passing in values by reference or","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101092,"byte_end":101170,"line_start":56,"line_end":56,"column_start":1,"column_end":79}},{"value":"/ by value. In the implementation of these functions, you can choose to","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101171,"byte_end":101244,"line_start":57,"line_end":57,"column_start":1,"column_end":74}},{"value":"/ simply use the reference returned by [`SampleBorrow::borrow`], or you can choose","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101245,"byte_end":101329,"line_start":58,"line_end":58,"column_start":1,"column_end":85}},{"value":"/ to copy or clone the value, whatever is appropriate for your type.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101330,"byte_end":101400,"line_start":59,"line_end":59,"column_start":1,"column_end":71}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101401,"byte_end":101404,"line_start":60,"line_end":60,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101405,"byte_end":101412,"line_start":61,"line_end":61,"column_start":1,"column_end":8}},{"value":"/ use rand::prelude::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101413,"byte_end":101438,"line_start":62,"line_end":62,"column_start":1,"column_end":26}},{"value":"/ use rand::distributions::uniform::{Uniform, SampleUniform,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101439,"byte_end":101501,"line_start":63,"line_end":63,"column_start":1,"column_end":63}},{"value":"/ UniformSampler, UniformFloat, SampleBorrow};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101502,"byte_end":101558,"line_start":64,"line_end":64,"column_start":1,"column_end":57}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101559,"byte_end":101562,"line_start":65,"line_end":65,"column_start":1,"column_end":4}},{"value":"/ struct MyF32(f32);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101563,"byte_end":101585,"line_start":66,"line_end":66,"column_start":1,"column_end":23}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101586,"byte_end":101589,"line_start":67,"line_end":67,"column_start":1,"column_end":4}},{"value":"/ #[derive(Clone, Copy, Debug)]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101590,"byte_end":101623,"line_start":68,"line_end":68,"column_start":1,"column_end":34}},{"value":"/ struct UniformMyF32(UniformFloat);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101624,"byte_end":101667,"line_start":69,"line_end":69,"column_start":1,"column_end":44}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101668,"byte_end":101671,"line_start":70,"line_end":70,"column_start":1,"column_end":4}},{"value":"/ impl UniformSampler for UniformMyF32 {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101672,"byte_end":101714,"line_start":71,"line_end":71,"column_start":1,"column_end":43}},{"value":"/ type X = MyF32;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101715,"byte_end":101738,"line_start":72,"line_end":72,"column_start":1,"column_end":24}},{"value":"/ fn new(low: B1, high: B2) -> Self","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101739,"byte_end":101788,"line_start":73,"line_end":73,"column_start":1,"column_end":50}},{"value":"/ where B1: SampleBorrow + Sized,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101789,"byte_end":101841,"line_start":74,"line_end":74,"column_start":1,"column_end":53}},{"value":"/ B2: SampleBorrow + Sized","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101842,"byte_end":101893,"line_start":75,"line_end":75,"column_start":1,"column_end":52}},{"value":"/ {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101894,"byte_end":101903,"line_start":76,"line_end":76,"column_start":1,"column_end":10}},{"value":"/ UniformMyF32(UniformFloat::::new(low.borrow().0, high.borrow().0))","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101904,"byte_end":101987,"line_start":77,"line_end":77,"column_start":1,"column_end":84}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101988,"byte_end":101997,"line_start":78,"line_end":78,"column_start":1,"column_end":10}},{"value":"/ fn new_inclusive(low: B1, high: B2) -> Self","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":101998,"byte_end":102057,"line_start":79,"line_end":79,"column_start":1,"column_end":60}},{"value":"/ where B1: SampleBorrow + Sized,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102058,"byte_end":102110,"line_start":80,"line_end":80,"column_start":1,"column_end":53}},{"value":"/ B2: SampleBorrow + Sized","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102111,"byte_end":102162,"line_start":81,"line_end":81,"column_start":1,"column_end":52}},{"value":"/ {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102163,"byte_end":102172,"line_start":82,"line_end":82,"column_start":1,"column_end":10}},{"value":"/ UniformMyF32(UniformFloat::::new_inclusive(","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102173,"byte_end":102233,"line_start":83,"line_end":83,"column_start":1,"column_end":61}},{"value":"/ low.borrow().0,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102234,"byte_end":102265,"line_start":84,"line_end":84,"column_start":1,"column_end":32}},{"value":"/ high.borrow().0,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102266,"byte_end":102298,"line_start":85,"line_end":85,"column_start":1,"column_end":33}},{"value":"/ ))","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102299,"byte_end":102313,"line_start":86,"line_end":86,"column_start":1,"column_end":15}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102314,"byte_end":102323,"line_start":87,"line_end":87,"column_start":1,"column_end":10}},{"value":"/ fn sample(&self, rng: &mut R) -> Self::X {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102324,"byte_end":102391,"line_start":88,"line_end":88,"column_start":1,"column_end":68}},{"value":"/ MyF32(self.0.sample(rng))","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102392,"byte_end":102429,"line_start":89,"line_end":89,"column_start":1,"column_end":38}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102430,"byte_end":102439,"line_start":90,"line_end":90,"column_start":1,"column_end":10}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102440,"byte_end":102445,"line_start":91,"line_end":91,"column_start":1,"column_end":6}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102446,"byte_end":102449,"line_start":92,"line_end":92,"column_start":1,"column_end":4}},{"value":"/ impl SampleUniform for MyF32 {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102450,"byte_end":102484,"line_start":93,"line_end":93,"column_start":1,"column_end":35}},{"value":"/ type Sampler = UniformMyF32;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102485,"byte_end":102521,"line_start":94,"line_end":94,"column_start":1,"column_end":37}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102522,"byte_end":102527,"line_start":95,"line_end":95,"column_start":1,"column_end":6}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102528,"byte_end":102531,"line_start":96,"line_end":96,"column_start":1,"column_end":4}},{"value":"/ let (low, high) = (MyF32(17.0f32), MyF32(22.0f32));","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102532,"byte_end":102587,"line_start":97,"line_end":97,"column_start":1,"column_end":56}},{"value":"/ let uniform = Uniform::new(low, high);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102588,"byte_end":102630,"line_start":98,"line_end":98,"column_start":1,"column_end":43}},{"value":"/ let x = uniform.sample(&mut thread_rng());","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102631,"byte_end":102677,"line_start":99,"line_end":99,"column_start":1,"column_end":47}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102678,"byte_end":102685,"line_start":100,"line_end":100,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102686,"byte_end":102689,"line_start":101,"line_end":101,"column_start":1,"column_end":4}},{"value":"/ [`SampleUniform`]: crate::distributions::uniform::SampleUniform","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102690,"byte_end":102757,"line_start":102,"line_end":102,"column_start":1,"column_end":68}},{"value":"/ [`UniformSampler`]: crate::distributions::uniform::UniformSampler","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102758,"byte_end":102827,"line_start":103,"line_end":103,"column_start":1,"column_end":70}},{"value":"/ [`UniformInt`]: crate::distributions::uniform::UniformInt","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102828,"byte_end":102889,"line_start":104,"line_end":104,"column_start":1,"column_end":62}},{"value":"/ [`UniformFloat`]: crate::distributions::uniform::UniformFloat","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102890,"byte_end":102955,"line_start":105,"line_end":105,"column_start":1,"column_end":66}},{"value":"/ [`UniformDuration`]: crate::distributions::uniform::UniformDuration","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":102956,"byte_end":103027,"line_start":106,"line_end":106,"column_start":1,"column_end":72}},{"value":"/ [`SampleBorrow::borrow`]: crate::distributions::uniform::SampleBorrow::borrow","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":103028,"byte_end":103109,"line_start":107,"line_end":107,"column_start":1,"column_end":82}}]},{"kind":"Struct","id":{"krate":0,"index":1683},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105818,"byte_end":105825,"line_start":179,"line_end":179,"column_start":12,"column_end":19},"name":"Uniform","qualname":"::distributions::uniform::Uniform","value":"","parent":null,"children":[],"decl_id":null,"docs":" Sample values uniformly between two bounds.","sig":null,"attributes":[{"value":"/ Sample values uniformly between two bounds.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":103649,"byte_end":103696,"line_start":126,"line_end":126,"column_start":1,"column_end":48}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":103697,"byte_end":103700,"line_start":127,"line_end":127,"column_start":1,"column_end":4}},{"value":"/ [`Uniform::new`] and [`Uniform::new_inclusive`] construct a uniform","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":103701,"byte_end":103772,"line_start":128,"line_end":128,"column_start":1,"column_end":72}},{"value":"/ distribution sampling from the given range; these functions may do extra","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":103773,"byte_end":103849,"line_start":129,"line_end":129,"column_start":1,"column_end":77}},{"value":"/ work up front to make sampling of multiple values faster. If only one sample","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":103850,"byte_end":103930,"line_start":130,"line_end":130,"column_start":1,"column_end":81}},{"value":"/ from the range is required, [`Rng::gen_range`] can be more efficient.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":103931,"byte_end":104004,"line_start":131,"line_end":131,"column_start":1,"column_end":74}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":104005,"byte_end":104008,"line_start":132,"line_end":132,"column_start":1,"column_end":4}},{"value":"/ When sampling from a constant range, many calculations can happen at","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":104009,"byte_end":104081,"line_start":133,"line_end":133,"column_start":1,"column_end":73}},{"value":"/ compile-time and all methods should be fast; for floating-point ranges and","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":104082,"byte_end":104160,"line_start":134,"line_end":134,"column_start":1,"column_end":79}},{"value":"/ the full range of integer types this should have comparable performance to","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":104161,"byte_end":104239,"line_start":135,"line_end":135,"column_start":1,"column_end":79}},{"value":"/ the `Standard` distribution.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":104240,"byte_end":104272,"line_start":136,"line_end":136,"column_start":1,"column_end":33}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":104273,"byte_end":104276,"line_start":137,"line_end":137,"column_start":1,"column_end":4}},{"value":"/ Steps are taken to avoid bias which might be present in naive","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":104277,"byte_end":104342,"line_start":138,"line_end":138,"column_start":1,"column_end":66}},{"value":"/ implementations; for example `rng.gen::() % 170` samples from the range","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":104343,"byte_end":104422,"line_start":139,"line_end":139,"column_start":1,"column_end":80}},{"value":"/ `[0, 169]` but is twice as likely to select numbers less than 85 than other","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":104423,"byte_end":104502,"line_start":140,"line_end":140,"column_start":1,"column_end":80}},{"value":"/ values. Further, the implementations here give more weight to the high-bits","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":104503,"byte_end":104582,"line_start":141,"line_end":141,"column_start":1,"column_end":80}},{"value":"/ generated by the RNG than the low bits, since with some RNGs the low-bits","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":104583,"byte_end":104660,"line_start":142,"line_end":142,"column_start":1,"column_end":78}},{"value":"/ are of lower quality than the high bits.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":104661,"byte_end":104705,"line_start":143,"line_end":143,"column_start":1,"column_end":45}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":104706,"byte_end":104709,"line_start":144,"line_end":144,"column_start":1,"column_end":4}},{"value":"/ Implementations must sample in `[low, high)` range for","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":104710,"byte_end":104768,"line_start":145,"line_end":145,"column_start":1,"column_end":59}},{"value":"/ `Uniform::new(low, high)`, i.e., excluding `high`. In particular, care must","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":104769,"byte_end":104848,"line_start":146,"line_end":146,"column_start":1,"column_end":80}},{"value":"/ be taken to ensure that rounding never results values `< low` or `>= high`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":104849,"byte_end":104928,"line_start":147,"line_end":147,"column_start":1,"column_end":80}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":104929,"byte_end":104932,"line_start":148,"line_end":148,"column_start":1,"column_end":4}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":104933,"byte_end":104946,"line_start":149,"line_end":149,"column_start":1,"column_end":14}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":104947,"byte_end":104950,"line_start":150,"line_end":150,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":104951,"byte_end":104958,"line_start":151,"line_end":151,"column_start":1,"column_end":8}},{"value":"/ use rand::distributions::{Distribution, Uniform};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":104959,"byte_end":105012,"line_start":152,"line_end":152,"column_start":1,"column_end":54}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105013,"byte_end":105016,"line_start":153,"line_end":153,"column_start":1,"column_end":4}},{"value":"/ let between = Uniform::from(10..10000);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105017,"byte_end":105060,"line_start":154,"line_end":154,"column_start":1,"column_end":44}},{"value":"/ let mut rng = rand::thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105061,"byte_end":105098,"line_start":155,"line_end":155,"column_start":1,"column_end":38}},{"value":"/ let mut sum = 0;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105099,"byte_end":105119,"line_start":156,"line_end":156,"column_start":1,"column_end":21}},{"value":"/ for _ in 0..1000 {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105120,"byte_end":105142,"line_start":157,"line_end":157,"column_start":1,"column_end":23}},{"value":"/ sum += between.sample(&mut rng);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105143,"byte_end":105183,"line_start":158,"line_end":158,"column_start":1,"column_end":41}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105184,"byte_end":105189,"line_start":159,"line_end":159,"column_start":1,"column_end":6}},{"value":"/ println!(\"{}\", sum);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105190,"byte_end":105214,"line_start":160,"line_end":160,"column_start":1,"column_end":25}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105215,"byte_end":105222,"line_start":161,"line_end":161,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105223,"byte_end":105226,"line_start":162,"line_end":162,"column_start":1,"column_end":4}},{"value":"/ For a single sample, [`Rng::gen_range`] may be preferred:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105227,"byte_end":105288,"line_start":163,"line_end":163,"column_start":1,"column_end":62}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105289,"byte_end":105292,"line_start":164,"line_end":164,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105293,"byte_end":105300,"line_start":165,"line_end":165,"column_start":1,"column_end":8}},{"value":"/ use rand::Rng;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105301,"byte_end":105319,"line_start":166,"line_end":166,"column_start":1,"column_end":19}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105320,"byte_end":105323,"line_start":167,"line_end":167,"column_start":1,"column_end":4}},{"value":"/ let mut rng = rand::thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105324,"byte_end":105361,"line_start":168,"line_end":168,"column_start":1,"column_end":38}},{"value":"/ println!(\"{}\", rng.gen_range(0..10));","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105362,"byte_end":105403,"line_start":169,"line_end":169,"column_start":1,"column_end":42}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105404,"byte_end":105411,"line_start":170,"line_end":170,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105412,"byte_end":105415,"line_start":171,"line_end":171,"column_start":1,"column_end":4}},{"value":"/ [`new`]: Uniform::new","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105416,"byte_end":105441,"line_start":172,"line_end":172,"column_start":1,"column_end":26}},{"value":"/ [`new_inclusive`]: Uniform::new_inclusive","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105442,"byte_end":105487,"line_start":173,"line_end":173,"column_start":1,"column_end":46}},{"value":"/ [`Rng::gen_range`]: Rng::gen_range","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105488,"byte_end":105526,"line_start":174,"line_end":174,"column_start":1,"column_end":39}}]},{"kind":"Method","id":{"krate":0,"index":371},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":106061,"byte_end":106064,"line_start":184,"line_end":184,"column_start":12,"column_end":15},"name":"new","qualname":">::new","value":"pub fn new(B1, B2) -> Uniform where B1: SampleBorrow + Sized,\nB2: SampleBorrow + Sized","parent":null,"children":[],"decl_id":null,"docs":" Create a new `Uniform` instance which samples uniformly from the half\n open range `[low, high)` (excluding `high`). Panics if `low >= high`.\n","sig":null,"attributes":[{"value":"/ Create a new `Uniform` instance which samples uniformly from the half","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105898,"byte_end":105971,"line_start":182,"line_end":182,"column_start":5,"column_end":78}},{"value":"/ open range `[low, high)` (excluding `high`). Panics if `low >= high`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105976,"byte_end":106049,"line_start":183,"line_end":183,"column_start":5,"column_end":78}}]},{"kind":"Method","id":{"krate":0,"index":374},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":106403,"byte_end":106416,"line_start":194,"line_end":194,"column_start":12,"column_end":25},"name":"new_inclusive","qualname":">::new_inclusive","value":"pub fn new_inclusive(B1, B2) -> Uniform where B1: SampleBorrow +\nSized, B2: SampleBorrow + Sized","parent":null,"children":[],"decl_id":null,"docs":" Create a new `Uniform` instance which samples uniformly from the closed\n range `[low, high]` (inclusive). Panics if `low > high`.\n","sig":null,"attributes":[{"value":"/ Create a new `Uniform` instance which samples uniformly from the closed","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":106251,"byte_end":106326,"line_start":192,"line_end":192,"column_start":5,"column_end":80}},{"value":"/ range `[low, high]` (inclusive). Panics if `low > high`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":106331,"byte_end":106391,"line_start":193,"line_end":193,"column_start":5,"column_end":65}}]},{"kind":"Trait","id":{"krate":0,"index":381},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107062,"byte_end":107075,"line_start":216,"line_end":216,"column_start":11,"column_end":24},"name":"SampleUniform","qualname":"::distributions::uniform::SampleUniform","value":"SampleUniform: Sized","parent":null,"children":[{"krate":0,"index":382}],"decl_id":null,"docs":" Helper trait for creating objects using the correct implementation of\n [`UniformSampler`] for the sampling type.","sig":null,"attributes":[{"value":"/ Helper trait for creating objects using the correct implementation of","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":106761,"byte_end":106834,"line_start":209,"line_end":209,"column_start":1,"column_end":74}},{"value":"/ [`UniformSampler`] for the sampling type.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":106835,"byte_end":106880,"line_start":210,"line_end":210,"column_start":1,"column_end":46}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":106881,"byte_end":106884,"line_start":211,"line_end":211,"column_start":1,"column_end":4}},{"value":"/ See the [module documentation] on how to implement [`Uniform`] range","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":106885,"byte_end":106957,"line_start":212,"line_end":212,"column_start":1,"column_end":73}},{"value":"/ sampling for a custom type.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":106958,"byte_end":106989,"line_start":213,"line_end":213,"column_start":1,"column_end":32}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":106990,"byte_end":106993,"line_start":214,"line_end":214,"column_start":1,"column_end":4}},{"value":"/ [module documentation]: crate::distributions::uniform","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":106994,"byte_end":107051,"line_start":215,"line_end":215,"column_start":1,"column_end":58}}]},{"kind":"Type","id":{"krate":0,"index":382},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107159,"byte_end":107166,"line_start":218,"line_end":218,"column_start":10,"column_end":17},"name":"Sampler","qualname":"::distributions::uniform::SampleUniform::Sampler","value":"type Sampler: UniformSampler;","parent":{"krate":0,"index":381},"children":[],"decl_id":null,"docs":" The `UniformSampler` implementation supporting type `X`.\n","sig":null,"attributes":[{"value":"/ The `UniformSampler` implementation supporting type `X`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107089,"byte_end":107149,"line_start":217,"line_end":217,"column_start":5,"column_end":65}}]},{"kind":"Trait","id":{"krate":0,"index":383},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107641,"byte_end":107655,"line_start":231,"line_end":231,"column_start":11,"column_end":25},"name":"UniformSampler","qualname":"::distributions::uniform::UniformSampler","value":"UniformSampler: Sized","parent":null,"children":[{"krate":0,"index":384},{"krate":0,"index":385},{"krate":0,"index":388},{"krate":0,"index":391},{"krate":0,"index":393},{"krate":0,"index":397}],"decl_id":null,"docs":" Helper trait handling actual uniform sampling.","sig":null,"attributes":[{"value":"/ Helper trait handling actual uniform sampling.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107197,"byte_end":107247,"line_start":221,"line_end":221,"column_start":1,"column_end":51}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107248,"byte_end":107251,"line_start":222,"line_end":222,"column_start":1,"column_end":4}},{"value":"/ See the [module documentation] on how to implement [`Uniform`] range","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107252,"byte_end":107324,"line_start":223,"line_end":223,"column_start":1,"column_end":73}},{"value":"/ sampling for a custom type.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107325,"byte_end":107356,"line_start":224,"line_end":224,"column_start":1,"column_end":32}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107357,"byte_end":107360,"line_start":225,"line_end":225,"column_start":1,"column_end":4}},{"value":"/ Implementation of [`sample_single`] is optional, and is only useful when","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107361,"byte_end":107437,"line_start":226,"line_end":226,"column_start":1,"column_end":77}},{"value":"/ the implementation can be faster than `Self::new(low, high).sample(rng)`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107438,"byte_end":107515,"line_start":227,"line_end":227,"column_start":1,"column_end":78}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107516,"byte_end":107519,"line_start":228,"line_end":228,"column_start":1,"column_end":4}},{"value":"/ [module documentation]: crate::distributions::uniform","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107520,"byte_end":107577,"line_start":229,"line_end":229,"column_start":1,"column_end":58}},{"value":"/ [`sample_single`]: UniformSampler::sample_single","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107578,"byte_end":107630,"line_start":230,"line_end":230,"column_start":1,"column_end":53}}]},{"kind":"Type","id":{"krate":0,"index":384},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107723,"byte_end":107724,"line_start":233,"line_end":233,"column_start":10,"column_end":11},"name":"X","qualname":"::distributions::uniform::UniformSampler::X","value":"type X;","parent":{"krate":0,"index":383},"children":[],"decl_id":null,"docs":" The type sampled by this implementation.\n","sig":null,"attributes":[{"value":"/ The type sampled by this implementation.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107669,"byte_end":107713,"line_start":232,"line_end":232,"column_start":5,"column_end":49}}]},{"kind":"Method","id":{"krate":0,"index":385},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107987,"byte_end":107990,"line_start":240,"line_end":240,"column_start":8,"column_end":11},"name":"new","qualname":"::distributions::uniform::UniformSampler::new","value":"pub fn new(B1, B2) -> Self where B1: SampleBorrow + Sized,\nB2: SampleBorrow + Sized","parent":{"krate":0,"index":383},"children":[],"decl_id":null,"docs":" Construct self, with inclusive lower bound and exclusive upper bound\n `[low, high)`.","sig":null,"attributes":[{"value":"/ Construct self, with inclusive lower bound and exclusive upper bound","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107731,"byte_end":107803,"line_start":235,"line_end":235,"column_start":5,"column_end":77}},{"value":"/ `[low, high)`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107808,"byte_end":107826,"line_start":236,"line_end":236,"column_start":5,"column_end":23}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107831,"byte_end":107834,"line_start":237,"line_end":237,"column_start":5,"column_end":8}},{"value":"/ Usually users should not call this directly but instead use","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107839,"byte_end":107902,"line_start":238,"line_end":238,"column_start":5,"column_end":68}},{"value":"/ `Uniform::new`, which asserts that `low < high` before calling this.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107907,"byte_end":107979,"line_start":239,"line_end":239,"column_start":5,"column_end":77}}]},{"kind":"Method","id":{"krate":0,"index":388},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":108363,"byte_end":108376,"line_start":250,"line_end":250,"column_start":8,"column_end":21},"name":"new_inclusive","qualname":"::distributions::uniform::UniformSampler::new_inclusive","value":"pub fn new_inclusive(B1, B2) -> Self where B1: SampleBorrow +\nSized, B2: SampleBorrow + Sized","parent":{"krate":0,"index":383},"children":[],"decl_id":null,"docs":" Construct self, with inclusive bounds `[low, high]`.","sig":null,"attributes":[{"value":"/ Construct self, with inclusive bounds `[low, high]`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":108127,"byte_end":108183,"line_start":245,"line_end":245,"column_start":5,"column_end":61}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":108188,"byte_end":108191,"line_start":246,"line_end":246,"column_start":5,"column_end":8}},{"value":"/ Usually users should not call this directly but instead use","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":108196,"byte_end":108259,"line_start":247,"line_end":247,"column_start":5,"column_end":68}},{"value":"/ `Uniform::new_inclusive`, which asserts that `low <= high` before","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":108264,"byte_end":108333,"line_start":248,"line_end":248,"column_start":5,"column_end":74}},{"value":"/ calling this.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":108338,"byte_end":108355,"line_start":249,"line_end":249,"column_start":5,"column_end":22}}]},{"kind":"Method","id":{"krate":0,"index":391},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":108540,"byte_end":108546,"line_start":256,"line_end":256,"column_start":8,"column_end":14},"name":"sample","qualname":"::distributions::uniform::UniformSampler::sample","value":"pub fn sample(&Self, &mut R) -> Self::X","parent":{"krate":0,"index":383},"children":[],"decl_id":null,"docs":" Sample a value.\n","sig":null,"attributes":[{"value":"/ Sample a value.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":108513,"byte_end":108532,"line_start":255,"line_end":255,"column_start":5,"column_end":24}}]},{"kind":"Method","id":{"krate":0,"index":393},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":109521,"byte_end":109534,"line_start":277,"line_end":277,"column_start":8,"column_end":21},"name":"sample_single","qualname":"::distributions::uniform::UniformSampler::sample_single","value":"pub fn sample_single(B1, B2, &mut R) -> Self::X where\nB1: SampleBorrow + Sized, B2: SampleBorrow + Sized","parent":{"krate":0,"index":383},"children":[],"decl_id":null,"docs":" Sample a single value uniformly from a range with inclusive lower bound\n and exclusive upper bound `[low, high)`.","sig":null,"attributes":[{"value":"/ Sample a single value uniformly from a range with inclusive lower bound","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":108601,"byte_end":108676,"line_start":258,"line_end":258,"column_start":5,"column_end":80}},{"value":"/ and exclusive upper bound `[low, high)`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":108681,"byte_end":108725,"line_start":259,"line_end":259,"column_start":5,"column_end":49}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":108730,"byte_end":108733,"line_start":260,"line_end":260,"column_start":5,"column_end":8}},{"value":"/ By default this is implemented using","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":108738,"byte_end":108778,"line_start":261,"line_end":261,"column_start":5,"column_end":45}},{"value":"/ `UniformSampler::new(low, high).sample(rng)`. However, for some types","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":108783,"byte_end":108856,"line_start":262,"line_end":262,"column_start":5,"column_end":78}},{"value":"/ more optimal implementations for single usage may be provided via this","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":108861,"byte_end":108935,"line_start":263,"line_end":263,"column_start":5,"column_end":79}},{"value":"/ method (which is the case for integers and floats).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":108940,"byte_end":108995,"line_start":264,"line_end":264,"column_start":5,"column_end":60}},{"value":"/ Results may not be identical.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":109000,"byte_end":109033,"line_start":265,"line_end":265,"column_start":5,"column_end":38}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":109038,"byte_end":109041,"line_start":266,"line_end":266,"column_start":5,"column_end":8}},{"value":"/ Note that to use this method in a generic context, the type needs to be","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":109046,"byte_end":109121,"line_start":267,"line_end":267,"column_start":5,"column_end":80}},{"value":"/ retrieved via `SampleUniform::Sampler` as follows:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":109126,"byte_end":109180,"line_start":268,"line_end":268,"column_start":5,"column_end":59}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":109185,"byte_end":109192,"line_start":269,"line_end":269,"column_start":5,"column_end":12}},{"value":"/ use rand::{thread_rng, distributions::uniform::{SampleUniform, UniformSampler}};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":109197,"byte_end":109281,"line_start":270,"line_end":270,"column_start":5,"column_end":89}},{"value":"/ # #[allow(unused)]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":109286,"byte_end":109308,"line_start":271,"line_end":271,"column_start":5,"column_end":27}},{"value":"/ fn sample_from_range(lb: T, ub: T) -> T {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":109313,"byte_end":109376,"line_start":272,"line_end":272,"column_start":5,"column_end":68}},{"value":"/ let mut rng = thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":109381,"byte_end":109416,"line_start":273,"line_end":273,"column_start":5,"column_end":40}},{"value":"/ ::Sampler::sample_single(lb, ub, &mut rng)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":109421,"byte_end":109491,"line_start":274,"line_end":274,"column_start":5,"column_end":75}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":109496,"byte_end":109501,"line_start":275,"line_end":275,"column_start":5,"column_end":10}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":109506,"byte_end":109513,"line_start":276,"line_end":276,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":397},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":110210,"byte_end":110233,"line_start":294,"line_end":294,"column_start":8,"column_end":31},"name":"sample_single_inclusive","qualname":"::distributions::uniform::UniformSampler::sample_single_inclusive","value":"pub fn sample_single_inclusive(B1, B2, &mut R)\n-> Self::X where B1: SampleBorrow + Sized,\nB2: SampleBorrow + Sized","parent":{"krate":0,"index":383},"children":[],"decl_id":null,"docs":" Sample a single value uniformly from a range with inclusive lower bound\n and inclusive upper bound `[low, high]`.","sig":null,"attributes":[{"value":"/ Sample a single value uniformly from a range with inclusive lower bound","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":109804,"byte_end":109879,"line_start":286,"line_end":286,"column_start":5,"column_end":80}},{"value":"/ and inclusive upper bound `[low, high]`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":109884,"byte_end":109928,"line_start":287,"line_end":287,"column_start":5,"column_end":49}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":109933,"byte_end":109936,"line_start":288,"line_end":288,"column_start":5,"column_end":8}},{"value":"/ By default this is implemented using","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":109941,"byte_end":109981,"line_start":289,"line_end":289,"column_start":5,"column_end":45}},{"value":"/ `UniformSampler::new_inclusive(low, high).sample(rng)`. However, for","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":109986,"byte_end":110058,"line_start":290,"line_end":290,"column_start":5,"column_end":77}},{"value":"/ some types more optimal implementations for single usage may be provided","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":110063,"byte_end":110139,"line_start":291,"line_end":291,"column_start":5,"column_end":81}},{"value":"/ via this method.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":110144,"byte_end":110164,"line_start":292,"line_end":292,"column_start":5,"column_end":25}},{"value":"/ Results may not be identical.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":110169,"byte_end":110202,"line_start":293,"line_end":293,"column_start":5,"column_end":38}}]},{"kind":"Trait","id":{"krate":0,"index":407},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":111069,"byte_end":111081,"line_start":322,"line_end":322,"column_start":11,"column_end":23},"name":"SampleBorrow","qualname":"::distributions::uniform::SampleBorrow","value":"SampleBorrow","parent":null,"children":[{"krate":0,"index":409}],"decl_id":null,"docs":" Helper trait similar to [`Borrow`] but implemented\n only for SampleUniform and references to SampleUniform in\n order to resolve ambiguity issues.","sig":null,"attributes":[{"value":"/ Helper trait similar to [`Borrow`] but implemented","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":110863,"byte_end":110917,"line_start":317,"line_end":317,"column_start":1,"column_end":55}},{"value":"/ only for SampleUniform and references to SampleUniform in","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":110918,"byte_end":110979,"line_start":318,"line_end":318,"column_start":1,"column_end":62}},{"value":"/ order to resolve ambiguity issues.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":110980,"byte_end":111018,"line_start":319,"line_end":319,"column_start":1,"column_end":39}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":111019,"byte_end":111022,"line_start":320,"line_end":320,"column_start":1,"column_end":4}},{"value":"/ [`Borrow`]: std::borrow::Borrow","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":111023,"byte_end":111058,"line_start":321,"line_end":321,"column_start":1,"column_end":36}}]},{"kind":"Method","id":{"krate":0,"index":409},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":111235,"byte_end":111241,"line_start":326,"line_end":326,"column_start":8,"column_end":14},"name":"borrow","qualname":"::distributions::uniform::SampleBorrow::borrow","value":"pub fn borrow(&Self) -> &Borrowed","parent":{"krate":0,"index":407},"children":[],"decl_id":null,"docs":" Immutably borrows from an owned value. See [`Borrow::borrow`]","sig":null,"attributes":[{"value":"/ Immutably borrows from an owned value. See [`Borrow::borrow`]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":111098,"byte_end":111163,"line_start":323,"line_end":323,"column_start":5,"column_end":70}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":111168,"byte_end":111171,"line_start":324,"line_end":324,"column_start":5,"column_end":8}},{"value":"/ [`Borrow::borrow`]: std::borrow::Borrow::borrow","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":111176,"byte_end":111227,"line_start":325,"line_end":325,"column_start":5,"column_end":56}}]},{"kind":"Trait","id":{"krate":0,"index":417},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":111781,"byte_end":111792,"line_start":349,"line_end":349,"column_start":11,"column_end":22},"name":"SampleRange","qualname":"::distributions::uniform::SampleRange","value":"SampleRange","parent":null,"children":[{"krate":0,"index":419},{"krate":0,"index":421}],"decl_id":null,"docs":" Range that supports generating a single sample efficiently.","sig":null,"attributes":[{"value":"/ Range that supports generating a single sample efficiently.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":111599,"byte_end":111662,"line_start":345,"line_end":345,"column_start":1,"column_end":64}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":111663,"byte_end":111666,"line_start":346,"line_end":346,"column_start":1,"column_end":4}},{"value":"/ Any type implementing this trait can be used to specify the sampled range","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":111667,"byte_end":111744,"line_start":347,"line_end":347,"column_start":1,"column_end":78}},{"value":"/ for `Rng::gen_range`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":111745,"byte_end":111770,"line_start":348,"line_end":348,"column_start":1,"column_end":26}}]},{"kind":"Method","id":{"krate":0,"index":419},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":111853,"byte_end":111866,"line_start":351,"line_end":351,"column_start":8,"column_end":21},"name":"sample_single","qualname":"::distributions::uniform::SampleRange::sample_single","value":"pub fn sample_single(Self, &mut R) -> T","parent":{"krate":0,"index":417},"children":[],"decl_id":null,"docs":" Generate a sample from the given range.\n","sig":null,"attributes":[{"value":"/ Generate a sample from the given range.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":111802,"byte_end":111845,"line_start":350,"line_end":350,"column_start":5,"column_end":48}}]},{"kind":"Method","id":{"krate":0,"index":421},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":111963,"byte_end":111971,"line_start":354,"line_end":354,"column_start":8,"column_end":16},"name":"is_empty","qualname":"::distributions::uniform::SampleRange::is_empty","value":"pub fn is_empty(&Self) -> bool","parent":{"krate":0,"index":417},"children":[],"decl_id":null,"docs":" Check whether the range is empty.\n","sig":null,"attributes":[{"value":"/ Check whether the range is empty.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":111918,"byte_end":111955,"line_start":353,"line_end":353,"column_start":5,"column_end":42}}]},{"kind":"Struct","id":{"krate":0,"index":1701},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":114769,"byte_end":114779,"line_start":423,"line_end":423,"column_start":12,"column_end":22},"name":"UniformInt","qualname":"::distributions::uniform::UniformInt","value":"UniformInt { }","parent":null,"children":[{"krate":0,"index":1703},{"krate":0,"index":1704},{"krate":0,"index":1705}],"decl_id":null,"docs":" The back-end implementing [`UniformSampler`] for integer types.","sig":null,"attributes":[{"value":"/ The back-end implementing [`UniformSampler`] for integer types.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":112749,"byte_end":112816,"line_start":387,"line_end":387,"column_start":1,"column_end":68}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":112817,"byte_end":112820,"line_start":388,"line_end":388,"column_start":1,"column_end":4}},{"value":"/ Unless you are implementing [`UniformSampler`] for your own type, this type","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":112821,"byte_end":112900,"line_start":389,"line_end":389,"column_start":1,"column_end":80}},{"value":"/ should not be used directly, use [`Uniform`] instead.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":112901,"byte_end":112958,"line_start":390,"line_end":390,"column_start":1,"column_end":58}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":112959,"byte_end":112962,"line_start":391,"line_end":391,"column_start":1,"column_end":4}},{"value":"/ # Implementation notes","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":112963,"byte_end":112989,"line_start":392,"line_end":392,"column_start":1,"column_end":27}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":112990,"byte_end":112993,"line_start":393,"line_end":393,"column_start":1,"column_end":4}},{"value":"/ For simplicity, we use the same generic struct `UniformInt` for all","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":112994,"byte_end":113068,"line_start":394,"line_end":394,"column_start":1,"column_end":75}},{"value":"/ integer types `X`. This gives us only one field type, `X`; to store unsigned","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":113069,"byte_end":113149,"line_start":395,"line_end":395,"column_start":1,"column_end":81}},{"value":"/ values of this size, we take use the fact that these conversions are no-ops.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":113150,"byte_end":113230,"line_start":396,"line_end":396,"column_start":1,"column_end":81}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":113231,"byte_end":113234,"line_start":397,"line_end":397,"column_start":1,"column_end":4}},{"value":"/ For a closed range, the number of possible numbers we should generate is","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":113235,"byte_end":113311,"line_start":398,"line_end":398,"column_start":1,"column_end":77}},{"value":"/ `range = (high - low + 1)`. To avoid bias, we must ensure that the size of","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":113312,"byte_end":113390,"line_start":399,"line_end":399,"column_start":1,"column_end":79}},{"value":"/ our sample space, `zone`, is a multiple of `range`; other values must be","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":113391,"byte_end":113467,"line_start":400,"line_end":400,"column_start":1,"column_end":77}},{"value":"/ rejected (by replacing with a new random sample).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":113468,"byte_end":113521,"line_start":401,"line_end":401,"column_start":1,"column_end":54}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":113522,"byte_end":113525,"line_start":402,"line_end":402,"column_start":1,"column_end":4}},{"value":"/ As a special case, we use `range = 0` to represent the full range of the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":113526,"byte_end":113602,"line_start":403,"line_end":403,"column_start":1,"column_end":77}},{"value":"/ result type (i.e. for `new_inclusive($ty::MIN, $ty::MAX)`).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":113603,"byte_end":113666,"line_start":404,"line_end":404,"column_start":1,"column_end":64}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":113667,"byte_end":113670,"line_start":405,"line_end":405,"column_start":1,"column_end":4}},{"value":"/ The optimum `zone` is the largest product of `range` which fits in our","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":113671,"byte_end":113745,"line_start":406,"line_end":406,"column_start":1,"column_end":75}},{"value":"/ (unsigned) target type. We calculate this by calculating how many numbers we","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":113746,"byte_end":113826,"line_start":407,"line_end":407,"column_start":1,"column_end":81}},{"value":"/ must reject: `reject = (MAX + 1) % range = (MAX - range + 1) % range`. Any (large)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":113827,"byte_end":113913,"line_start":408,"line_end":408,"column_start":1,"column_end":87}},{"value":"/ product of `range` will suffice, thus in `sample_single` we multiply by a","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":113914,"byte_end":113991,"line_start":409,"line_end":409,"column_start":1,"column_end":78}},{"value":"/ power of 2 via bit-shifting (faster but may cause more rejections).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":113992,"byte_end":114063,"line_start":410,"line_end":410,"column_start":1,"column_end":72}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":114064,"byte_end":114067,"line_start":411,"line_end":411,"column_start":1,"column_end":4}},{"value":"/ The smallest integer PRNGs generate is `u32`. For 8- and 16-bit outputs we","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":114068,"byte_end":114146,"line_start":412,"line_end":412,"column_start":1,"column_end":79}},{"value":"/ use `u32` for our `zone` and samples (because it's not slower and because","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":114147,"byte_end":114224,"line_start":413,"line_end":413,"column_start":1,"column_end":78}},{"value":"/ it reduces the chance of having to reject a sample). In this case we cannot","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":114225,"byte_end":114304,"line_start":414,"line_end":414,"column_start":1,"column_end":80}},{"value":"/ store `zone` in the target type since it is too large, however we know","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":114305,"byte_end":114379,"line_start":415,"line_end":415,"column_start":1,"column_end":75}},{"value":"/ `ints_to_reject < range <= $unsigned::MAX`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":114380,"byte_end":114427,"line_start":416,"line_end":416,"column_start":1,"column_end":48}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":114428,"byte_end":114431,"line_start":417,"line_end":417,"column_start":1,"column_end":4}},{"value":"/ An alternative to using a modulus is widening multiply: After a widening","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":114432,"byte_end":114508,"line_start":418,"line_end":418,"column_start":1,"column_end":77}},{"value":"/ multiply by `range`, the result is in the high word. Then comparing the low","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":114509,"byte_end":114588,"line_start":419,"line_end":419,"column_start":1,"column_end":80}},{"value":"/ word against `zone` makes sure our distribution is uniform.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":114589,"byte_end":114652,"line_start":420,"line_end":420,"column_start":1,"column_end":64}}]},{"kind":"Struct","id":{"krate":0,"index":1960},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":126959,"byte_end":126970,"line_start":732,"line_end":732,"column_start":12,"column_end":23},"name":"UniformChar","qualname":"::distributions::uniform::UniformChar","value":"UniformChar { }","parent":null,"children":[{"krate":0,"index":1961}],"decl_id":null,"docs":" The back-end implementing [`UniformSampler`] for `char`.","sig":null,"attributes":[{"value":"/ The back-end implementing [`UniformSampler`] for `char`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":126401,"byte_end":126461,"line_start":721,"line_end":721,"column_start":1,"column_end":61}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":126462,"byte_end":126465,"line_start":722,"line_end":722,"column_start":1,"column_end":4}},{"value":"/ Unless you are implementing [`UniformSampler`] for your own type, this type","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":126466,"byte_end":126545,"line_start":723,"line_end":723,"column_start":1,"column_end":80}},{"value":"/ should not be used directly, use [`Uniform`] instead.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":126546,"byte_end":126603,"line_start":724,"line_end":724,"column_start":1,"column_end":58}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":126604,"byte_end":126607,"line_start":725,"line_end":725,"column_start":1,"column_end":4}},{"value":"/ This differs from integer range sampling since the range `0xD800..=0xDFFF`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":126608,"byte_end":126686,"line_start":726,"line_end":726,"column_start":1,"column_end":79}},{"value":"/ are used for surrogate pairs in UCS and UTF-16, and consequently are not","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":126687,"byte_end":126763,"line_start":727,"line_end":727,"column_start":1,"column_end":77}},{"value":"/ valid Unicode code points. We must therefore avoid sampling values in this","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":126764,"byte_end":126842,"line_start":728,"line_end":728,"column_start":1,"column_end":79}},{"value":"/ range.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":126843,"byte_end":126853,"line_start":729,"line_end":729,"column_start":1,"column_end":11}}]},{"kind":"Struct","id":{"krate":0,"index":1967},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":129853,"byte_end":129865,"line_start":811,"line_end":811,"column_start":12,"column_end":24},"name":"UniformFloat","qualname":"::distributions::uniform::UniformFloat","value":"UniformFloat { }","parent":null,"children":[{"krate":0,"index":1969},{"krate":0,"index":1970}],"decl_id":null,"docs":" The back-end implementing [`UniformSampler`] for floating-point types.","sig":null,"attributes":[{"value":"/ The back-end implementing [`UniformSampler`] for floating-point types.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":128852,"byte_end":128926,"line_start":790,"line_end":790,"column_start":1,"column_end":75}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":128927,"byte_end":128930,"line_start":791,"line_end":791,"column_start":1,"column_end":4}},{"value":"/ Unless you are implementing [`UniformSampler`] for your own type, this type","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":128931,"byte_end":129010,"line_start":792,"line_end":792,"column_start":1,"column_end":80}},{"value":"/ should not be used directly, use [`Uniform`] instead.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":129011,"byte_end":129068,"line_start":793,"line_end":793,"column_start":1,"column_end":58}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":129069,"byte_end":129072,"line_start":794,"line_end":794,"column_start":1,"column_end":4}},{"value":"/ # Implementation notes","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":129073,"byte_end":129099,"line_start":795,"line_end":795,"column_start":1,"column_end":27}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":129100,"byte_end":129103,"line_start":796,"line_end":796,"column_start":1,"column_end":4}},{"value":"/ Instead of generating a float in the `[0, 1)` range using [`Standard`], the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":129104,"byte_end":129183,"line_start":797,"line_end":797,"column_start":1,"column_end":80}},{"value":"/ `UniformFloat` implementation converts the output of an PRNG itself. This","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":129184,"byte_end":129261,"line_start":798,"line_end":798,"column_start":1,"column_end":78}},{"value":"/ way one or two steps can be optimized out.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":129262,"byte_end":129308,"line_start":799,"line_end":799,"column_start":1,"column_end":47}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":129309,"byte_end":129312,"line_start":800,"line_end":800,"column_start":1,"column_end":4}},{"value":"/ The floats are first converted to a value in the `[1, 2)` interval using a","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":129313,"byte_end":129391,"line_start":801,"line_end":801,"column_start":1,"column_end":79}},{"value":"/ transmute-based method, and then mapped to the expected range with a","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":129392,"byte_end":129464,"line_start":802,"line_end":802,"column_start":1,"column_end":73}},{"value":"/ multiply and addition. Values produced this way have what equals 23 bits of","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":129465,"byte_end":129544,"line_start":803,"line_end":803,"column_start":1,"column_end":80}},{"value":"/ random digits for an `f32`, and 52 for an `f64`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":129545,"byte_end":129597,"line_start":804,"line_end":804,"column_start":1,"column_end":53}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":129598,"byte_end":129601,"line_start":805,"line_end":805,"column_start":1,"column_end":4}},{"value":"/ [`new`]: UniformSampler::new","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":129602,"byte_end":129634,"line_start":806,"line_end":806,"column_start":1,"column_end":33}},{"value":"/ [`new_inclusive`]: UniformSampler::new_inclusive","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":129635,"byte_end":129687,"line_start":807,"line_end":807,"column_start":1,"column_end":53}},{"value":"/ [`Standard`]: crate::distributions::Standard","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":129688,"byte_end":129736,"line_start":808,"line_end":808,"column_start":1,"column_end":49}}]},{"kind":"Struct","id":{"krate":0,"index":2017},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":138875,"byte_end":138890,"line_start":1024,"line_end":1024,"column_start":12,"column_end":27},"name":"UniformDuration","qualname":"::distributions::uniform::UniformDuration","value":"UniformDuration { }","parent":null,"children":[{"krate":0,"index":2018},{"krate":0,"index":2019}],"decl_id":null,"docs":" The back-end implementing [`UniformSampler`] for `Duration`.","sig":null,"attributes":[{"value":"/ The back-end implementing [`UniformSampler`] for `Duration`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":138562,"byte_end":138626,"line_start":1018,"line_end":1018,"column_start":1,"column_end":65}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":138627,"byte_end":138630,"line_start":1019,"line_end":1019,"column_start":1,"column_end":4}},{"value":"/ Unless you are implementing [`UniformSampler`] for your own types, this type","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":138631,"byte_end":138711,"line_start":1020,"line_end":1020,"column_start":1,"column_end":81}},{"value":"/ should not be used directly, use [`Uniform`] instead.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":138712,"byte_end":138769,"line_start":1021,"line_end":1021,"column_start":1,"column_end":58}}]},{"kind":"Mod","id":{"krate":0,"index":462},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"name":"weighted","qualname":"::distributions::weighted","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs","parent":null,"children":[{"krate":0,"index":463},{"krate":0,"index":464},{"krate":0,"index":467},{"krate":0,"index":470}],"decl_id":null,"docs":" Weighted index sampling","sig":null,"attributes":[{"value":"deprecated(since = \"0.8.0\", note =\n \"use rand::distributions::{WeightedIndex, WeightedError} instead\")","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":11289,"byte_end":11403,"line_start":111,"line_end":114,"column_start":1,"column_end":3}},{"value":"cfg(feature = \"alloc\")","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":11404,"byte_end":11429,"line_start":115,"line_end":115,"column_start":1,"column_end":26}},{"value":"/ Weighted index sampling","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs","byte_start":161958,"byte_end":161985,"line_start":9,"line_end":9,"column_start":1,"column_end":28}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs","byte_start":161986,"byte_end":161989,"line_start":10,"line_end":10,"column_start":1,"column_end":4}},{"value":"/ This module is deprecated. Use [`crate::distributions::WeightedIndex`] and","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs","byte_start":161990,"byte_end":162068,"line_start":11,"line_end":11,"column_start":1,"column_end":79}},{"value":"/ [`crate::distributions::WeightedError`] instead.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs","byte_start":162069,"byte_end":162121,"line_start":12,"line_end":12,"column_start":1,"column_end":53}}]},{"kind":"Mod","id":{"krate":0,"index":470},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs","byte_start":162269,"byte_end":162281,"line_start":18,"line_end":18,"column_start":9,"column_end":21},"name":"alias_method","qualname":"::distributions::weighted::alias_method","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs","parent":null,"children":[{"krate":0,"index":471},{"krate":0,"index":472},{"krate":0,"index":474},{"krate":0,"index":477},{"krate":0,"index":2040},{"krate":0,"index":2043},{"krate":0,"index":480},{"krate":0,"index":483},{"krate":0,"index":484},{"krate":0,"index":2046},{"krate":0,"index":2047},{"krate":0,"index":2048},{"krate":0,"index":2049},{"krate":0,"index":2050},{"krate":0,"index":2051},{"krate":0,"index":2052},{"krate":0,"index":2053},{"krate":0,"index":2054},{"krate":0,"index":2055},{"krate":0,"index":2056},{"krate":0,"index":2057},{"krate":0,"index":2058},{"krate":0,"index":2059}],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"allow(missing_docs)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs","byte_start":162171,"byte_end":162193,"line_start":16,"line_end":16,"column_start":1,"column_end":23}},{"value":"deprecated(since = \"0.8.0\", note = \"moved to rand_distr crate\")","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs","byte_start":162194,"byte_end":162260,"line_start":17,"line_end":17,"column_start":1,"column_end":67}}]},{"kind":"Struct","id":{"krate":0,"index":2040},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs","byte_start":162550,"byte_end":162563,"line_start":26,"line_end":26,"column_start":16,"column_end":29},"name":"WeightedIndex","qualname":"::distributions::weighted::alias_method::WeightedIndex","value":"WeightedIndex { }","parent":null,"children":[{"krate":0,"index":2042}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":482},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs","byte_start":162671,"byte_end":162674,"line_start":30,"line_end":30,"column_start":16,"column_end":19},"name":"new","qualname":">::new","value":"pub fn new(Vec) -> Result","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":483},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs","byte_start":162796,"byte_end":162802,"line_start":35,"line_end":35,"column_start":15,"column_end":21},"name":"Weight","qualname":"::distributions::weighted::alias_method::Weight","value":"Weight","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Struct","id":{"krate":0,"index":2060},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":15701,"byte_end":15709,"line_start":218,"line_end":218,"column_start":12,"column_end":20},"name":"Standard","qualname":"::distributions::Standard","value":"","parent":null,"children":[],"decl_id":null,"docs":" A generic random value distribution, implemented for many primitive types.\n Usually generates values with a numerically uniform distribution, and with a\n range appropriate to the type.","sig":null,"attributes":[{"value":"/ A generic random value distribution, implemented for many primitive types.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":11960,"byte_end":12038,"line_start":134,"line_end":134,"column_start":1,"column_end":79}},{"value":"/ Usually generates values with a numerically uniform distribution, and with a","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":12039,"byte_end":12119,"line_start":135,"line_end":135,"column_start":1,"column_end":81}},{"value":"/ range appropriate to the type.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":12120,"byte_end":12154,"line_start":136,"line_end":136,"column_start":1,"column_end":35}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":12155,"byte_end":12158,"line_start":137,"line_end":137,"column_start":1,"column_end":4}},{"value":"/ ## Provided implementations","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":12159,"byte_end":12190,"line_start":138,"line_end":138,"column_start":1,"column_end":32}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":12191,"byte_end":12194,"line_start":139,"line_end":139,"column_start":1,"column_end":4}},{"value":"/ Assuming the provided `Rng` is well-behaved, these implementations","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":12195,"byte_end":12265,"line_start":140,"line_end":140,"column_start":1,"column_end":71}},{"value":"/ generate values with the following ranges and distributions:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":12266,"byte_end":12330,"line_start":141,"line_end":141,"column_start":1,"column_end":65}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":12331,"byte_end":12334,"line_start":142,"line_end":142,"column_start":1,"column_end":4}},{"value":"/ * Integers (`i32`, `u32`, `isize`, `usize`, etc.): Uniformly distributed","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":12335,"byte_end":12411,"line_start":143,"line_end":143,"column_start":1,"column_end":77}},{"value":"/ over all values of the type.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":12412,"byte_end":12446,"line_start":144,"line_end":144,"column_start":1,"column_end":35}},{"value":"/ * `char`: Uniformly distributed over all Unicode scalar values, i.e. all","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":12447,"byte_end":12523,"line_start":145,"line_end":145,"column_start":1,"column_end":77}},{"value":"/ code points in the range `0...0x10_FFFF`, except for the range","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":12524,"byte_end":12592,"line_start":146,"line_end":146,"column_start":1,"column_end":69}},{"value":"/ `0xD800...0xDFFF` (the surrogate code points). This includes","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":12593,"byte_end":12659,"line_start":147,"line_end":147,"column_start":1,"column_end":67}},{"value":"/ unassigned/reserved code points.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":12660,"byte_end":12698,"line_start":148,"line_end":148,"column_start":1,"column_end":39}},{"value":"/ * `bool`: Generates `false` or `true`, each with probability 0.5.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":12699,"byte_end":12768,"line_start":149,"line_end":149,"column_start":1,"column_end":70}},{"value":"/ * Floating point types (`f32` and `f64`): Uniformly distributed in the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":12769,"byte_end":12843,"line_start":150,"line_end":150,"column_start":1,"column_end":75}},{"value":"/ half-open range `[0, 1)`. See notes below.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":12844,"byte_end":12892,"line_start":151,"line_end":151,"column_start":1,"column_end":49}},{"value":"/ * Wrapping integers (`Wrapping`), besides the type identical to their","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":12893,"byte_end":12969,"line_start":152,"line_end":152,"column_start":1,"column_end":77}},{"value":"/ normal integer variants.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":12970,"byte_end":13000,"line_start":153,"line_end":153,"column_start":1,"column_end":31}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":13001,"byte_end":13004,"line_start":154,"line_end":154,"column_start":1,"column_end":4}},{"value":"/ The `Standard` distribution also supports generation of the following","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":13005,"byte_end":13078,"line_start":155,"line_end":155,"column_start":1,"column_end":74}},{"value":"/ compound types where all component types are supported:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":13079,"byte_end":13138,"line_start":156,"line_end":156,"column_start":1,"column_end":60}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":13139,"byte_end":13142,"line_start":157,"line_end":157,"column_start":1,"column_end":4}},{"value":"/ * Tuples (up to 12 elements): each element is generated sequentially.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":13143,"byte_end":13218,"line_start":158,"line_end":158,"column_start":1,"column_end":76}},{"value":"/ * Arrays (up to 32 elements): each element is generated sequentially;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":13219,"byte_end":13294,"line_start":159,"line_end":159,"column_start":1,"column_end":76}},{"value":"/ see also [`Rng::fill`] which supports arbitrary array length for integer","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":13295,"byte_end":13375,"line_start":160,"line_end":160,"column_start":1,"column_end":81}},{"value":"/ and float types and tends to be faster for `u32` and smaller types.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":13376,"byte_end":13451,"line_start":161,"line_end":161,"column_start":1,"column_end":76}},{"value":"/ When using `rustc` ≥ 1.51, enable the `min_const_gen` feature to support","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":13452,"byte_end":13534,"line_start":162,"line_end":162,"column_start":1,"column_end":81}},{"value":"/ arrays larger than 32 elements.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":13535,"byte_end":13574,"line_start":163,"line_end":163,"column_start":1,"column_end":40}},{"value":"/ Note that [`Rng::fill`] and `Standard`'s array support are *not* equivalent:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":13575,"byte_end":13659,"line_start":164,"line_end":164,"column_start":1,"column_end":85}},{"value":"/ the former is optimised for integer types (using fewer RNG calls for","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":13660,"byte_end":13736,"line_start":165,"line_end":165,"column_start":1,"column_end":77}},{"value":"/ element types smaller than the RNG word size), while the latter supports","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":13737,"byte_end":13817,"line_start":166,"line_end":166,"column_start":1,"column_end":81}},{"value":"/ any element type supported by `Standard`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":13818,"byte_end":13867,"line_start":167,"line_end":167,"column_start":1,"column_end":50}},{"value":"/ * `Option` first generates a `bool`, and if true generates and returns","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":13868,"byte_end":13947,"line_start":168,"line_end":168,"column_start":1,"column_end":80}},{"value":"/ `Some(value)` where `value: T`, otherwise returning `None`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":13948,"byte_end":14015,"line_start":169,"line_end":169,"column_start":1,"column_end":68}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14016,"byte_end":14019,"line_start":170,"line_end":170,"column_start":1,"column_end":4}},{"value":"/ ## Custom implementations","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14020,"byte_end":14049,"line_start":171,"line_end":171,"column_start":1,"column_end":30}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14050,"byte_end":14053,"line_start":172,"line_end":172,"column_start":1,"column_end":4}},{"value":"/ The [`Standard`] distribution may be implemented for user types as follows:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14054,"byte_end":14133,"line_start":173,"line_end":173,"column_start":1,"column_end":80}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14134,"byte_end":14137,"line_start":174,"line_end":174,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14138,"byte_end":14145,"line_start":175,"line_end":175,"column_start":1,"column_end":8}},{"value":"/ # #![allow(dead_code)]","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14146,"byte_end":14172,"line_start":176,"line_end":176,"column_start":1,"column_end":27}},{"value":"/ use rand::Rng;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14173,"byte_end":14191,"line_start":177,"line_end":177,"column_start":1,"column_end":19}},{"value":"/ use rand::distributions::{Distribution, Standard};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14192,"byte_end":14246,"line_start":178,"line_end":178,"column_start":1,"column_end":55}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14247,"byte_end":14250,"line_start":179,"line_end":179,"column_start":1,"column_end":4}},{"value":"/ struct MyF32 {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14251,"byte_end":14269,"line_start":180,"line_end":180,"column_start":1,"column_end":19}},{"value":"/ x: f32,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14270,"byte_end":14285,"line_start":181,"line_end":181,"column_start":1,"column_end":16}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14286,"byte_end":14291,"line_start":182,"line_end":182,"column_start":1,"column_end":6}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14292,"byte_end":14295,"line_start":183,"line_end":183,"column_start":1,"column_end":4}},{"value":"/ impl Distribution for Standard {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14296,"byte_end":14339,"line_start":184,"line_end":184,"column_start":1,"column_end":44}},{"value":"/ fn sample(&self, rng: &mut R) -> MyF32 {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14340,"byte_end":14405,"line_start":185,"line_end":185,"column_start":1,"column_end":66}},{"value":"/ MyF32 { x: rng.gen() }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14406,"byte_end":14440,"line_start":186,"line_end":186,"column_start":1,"column_end":35}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14441,"byte_end":14450,"line_start":187,"line_end":187,"column_start":1,"column_end":10}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14451,"byte_end":14456,"line_start":188,"line_end":188,"column_start":1,"column_end":6}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14457,"byte_end":14464,"line_start":189,"line_end":189,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14465,"byte_end":14468,"line_start":190,"line_end":190,"column_start":1,"column_end":4}},{"value":"/ ## Example usage","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14469,"byte_end":14489,"line_start":191,"line_end":191,"column_start":1,"column_end":21}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14490,"byte_end":14497,"line_start":192,"line_end":192,"column_start":1,"column_end":8}},{"value":"/ use rand::prelude::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14498,"byte_end":14523,"line_start":193,"line_end":193,"column_start":1,"column_end":26}},{"value":"/ use rand::distributions::Standard;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14524,"byte_end":14562,"line_start":194,"line_end":194,"column_start":1,"column_end":39}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14563,"byte_end":14566,"line_start":195,"line_end":195,"column_start":1,"column_end":4}},{"value":"/ let val: f32 = StdRng::from_entropy().sample(Standard);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14567,"byte_end":14626,"line_start":196,"line_end":196,"column_start":1,"column_end":60}},{"value":"/ println!(\"f32 from [0, 1): {}\", val);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14627,"byte_end":14668,"line_start":197,"line_end":197,"column_start":1,"column_end":42}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14669,"byte_end":14676,"line_start":198,"line_end":198,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14677,"byte_end":14680,"line_start":199,"line_end":199,"column_start":1,"column_end":4}},{"value":"/ # Floating point implementation","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14681,"byte_end":14716,"line_start":200,"line_end":200,"column_start":1,"column_end":36}},{"value":"/ The floating point implementations for `Standard` generate a random value in","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14717,"byte_end":14797,"line_start":201,"line_end":201,"column_start":1,"column_end":81}},{"value":"/ the half-open interval `[0, 1)`, i.e. including 0 but not 1.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14798,"byte_end":14862,"line_start":202,"line_end":202,"column_start":1,"column_end":65}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14863,"byte_end":14866,"line_start":203,"line_end":203,"column_start":1,"column_end":4}},{"value":"/ All values that can be generated are of the form `n * ε/2`. For `f32`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14867,"byte_end":14941,"line_start":204,"line_end":204,"column_start":1,"column_end":74}},{"value":"/ the 24 most significant random bits of a `u32` are used and for `f64` the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":14942,"byte_end":15019,"line_start":205,"line_end":205,"column_start":1,"column_end":78}},{"value":"/ 53 most significant bits of a `u64` are used. The conversion uses the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":15020,"byte_end":15093,"line_start":206,"line_end":206,"column_start":1,"column_end":74}},{"value":"/ multiplicative method: `(rng.gen::<$uty>() >> N) as $ty * (ε/2)`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":15094,"byte_end":15164,"line_start":207,"line_end":207,"column_start":1,"column_end":70}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":15165,"byte_end":15168,"line_start":208,"line_end":208,"column_start":1,"column_end":4}},{"value":"/ See also: [`Open01`] which samples from `(0, 1)`, [`OpenClosed01`] which","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":15169,"byte_end":15245,"line_start":209,"line_end":209,"column_start":1,"column_end":77}},{"value":"/ samples from `(0, 1]` and `Rng::gen_range(0..1)` which also samples from","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":15246,"byte_end":15322,"line_start":210,"line_end":210,"column_start":1,"column_end":77}},{"value":"/ `[0, 1)`. Note that `Open01` uses transmute-based methods which yield 1 bit","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":15323,"byte_end":15402,"line_start":211,"line_end":211,"column_start":1,"column_end":80}},{"value":"/ less precision but may perform faster on some architectures (on modern Intel","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":15403,"byte_end":15483,"line_start":212,"line_end":212,"column_start":1,"column_end":81}},{"value":"/ CPUs all methods have approximately equal performance).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":15484,"byte_end":15543,"line_start":213,"line_end":213,"column_start":1,"column_end":60}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":15544,"byte_end":15547,"line_start":214,"line_end":214,"column_start":1,"column_end":4}},{"value":"/ [`Uniform`]: uniform::Uniform","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":15548,"byte_end":15581,"line_start":215,"line_end":215,"column_start":1,"column_end":34}}]},{"kind":"Mod","id":{"krate":0,"index":531},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"name":"prelude","qualname":"::prelude","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","parent":null,"children":[{"krate":0,"index":532},{"krate":0,"index":535},{"krate":0,"index":538},{"krate":0,"index":541},{"krate":0,"index":542},{"krate":0,"index":545},{"krate":0,"index":548},{"krate":0,"index":549},{"krate":0,"index":552},{"krate":0,"index":555},{"krate":0,"index":556},{"krate":0,"index":559},{"krate":0,"index":562},{"krate":0,"index":565}],"decl_id":null,"docs":" Convenience re-export of common members","sig":null,"attributes":[{"value":"/ Convenience re-export of common members","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","byte_start":163495,"byte_end":163538,"line_start":9,"line_end":9,"column_start":1,"column_end":44}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","byte_start":163539,"byte_end":163542,"line_start":10,"line_end":10,"column_start":1,"column_end":4}},{"value":"/ Like the standard library's prelude, this module simplifies importing of","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","byte_start":163543,"byte_end":163619,"line_start":11,"line_end":11,"column_start":1,"column_end":77}},{"value":"/ common items. Unlike the standard prelude, the contents of this module must","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","byte_start":163620,"byte_end":163699,"line_start":12,"line_end":12,"column_start":1,"column_end":80}},{"value":"/ be imported manually:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","byte_start":163700,"byte_end":163725,"line_start":13,"line_end":13,"column_start":1,"column_end":26}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","byte_start":163726,"byte_end":163729,"line_start":14,"line_end":14,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","byte_start":163730,"byte_end":163737,"line_start":15,"line_end":15,"column_start":1,"column_end":8}},{"value":"/ use rand::prelude::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","byte_start":163738,"byte_end":163763,"line_start":16,"line_end":16,"column_start":1,"column_end":26}},{"value":"/ # let mut r = StdRng::from_rng(thread_rng()).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","byte_start":163764,"byte_end":163822,"line_start":17,"line_end":17,"column_start":1,"column_end":59}},{"value":"/ # let _: f32 = r.gen();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","byte_start":163823,"byte_end":163850,"line_start":18,"line_end":18,"column_start":1,"column_end":28}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/prelude.rs","byte_start":163851,"byte_end":163858,"line_start":19,"line_end":19,"column_start":1,"column_end":8}}]},{"kind":"Trait","id":{"krate":0,"index":603},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166588,"byte_end":166591,"line_start":55,"line_end":55,"column_start":11,"column_end":14},"name":"Rng","qualname":"::rng::Rng","value":"Rng: RngCore","parent":null,"children":[{"krate":0,"index":604},{"krate":0,"index":606},{"krate":0,"index":609},{"krate":0,"index":612},{"krate":0,"index":615},{"krate":0,"index":618},{"krate":0,"index":620},{"krate":0,"index":621}],"decl_id":null,"docs":" An automatically-implemented extension trait on [`RngCore`] providing high-level\n generic methods for sampling values and other convenience methods.","sig":null,"attributes":[{"value":"/ An automatically-implemented extension trait on [`RngCore`] providing high-level","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":165057,"byte_end":165141,"line_start":18,"line_end":18,"column_start":1,"column_end":85}},{"value":"/ generic methods for sampling values and other convenience methods.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":165142,"byte_end":165212,"line_start":19,"line_end":19,"column_start":1,"column_end":71}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":165213,"byte_end":165216,"line_start":20,"line_end":20,"column_start":1,"column_end":4}},{"value":"/ This is the primary trait to use when generating random values.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":165217,"byte_end":165284,"line_start":21,"line_end":21,"column_start":1,"column_end":68}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":165285,"byte_end":165288,"line_start":22,"line_end":22,"column_start":1,"column_end":4}},{"value":"/ # Generic usage","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":165289,"byte_end":165308,"line_start":23,"line_end":23,"column_start":1,"column_end":20}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":165309,"byte_end":165312,"line_start":24,"line_end":24,"column_start":1,"column_end":4}},{"value":"/ The basic pattern is `fn foo(rng: &mut R)`. Some","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":165313,"byte_end":165382,"line_start":25,"line_end":25,"column_start":1,"column_end":70}},{"value":"/ things are worth noting here:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":165383,"byte_end":165416,"line_start":26,"line_end":26,"column_start":1,"column_end":34}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":165417,"byte_end":165420,"line_start":27,"line_end":27,"column_start":1,"column_end":4}},{"value":"/ - Since `Rng: RngCore` and every `RngCore` implements `Rng`, it makes no","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":165421,"byte_end":165497,"line_start":28,"line_end":28,"column_start":1,"column_end":77}},{"value":"/ difference whether we use `R: Rng` or `R: RngCore`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":165498,"byte_end":165555,"line_start":29,"line_end":29,"column_start":1,"column_end":58}},{"value":"/ - The `+ ?Sized` un-bounding allows functions to be called directly on","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":165556,"byte_end":165630,"line_start":30,"line_end":30,"column_start":1,"column_end":75}},{"value":"/ type-erased references; i.e. `foo(r)` where `r: &mut dyn RngCore`. Without","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":165631,"byte_end":165711,"line_start":31,"line_end":31,"column_start":1,"column_end":81}},{"value":"/ this it would be necessary to write `foo(&mut r)`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":165712,"byte_end":165768,"line_start":32,"line_end":32,"column_start":1,"column_end":57}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":165769,"byte_end":165772,"line_start":33,"line_end":33,"column_start":1,"column_end":4}},{"value":"/ An alternative pattern is possible: `fn foo(rng: R)`. This has some","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":165773,"byte_end":165852,"line_start":34,"line_end":34,"column_start":1,"column_end":80}},{"value":"/ trade-offs. It allows the argument to be consumed directly without a `&mut`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":165853,"byte_end":165932,"line_start":35,"line_end":35,"column_start":1,"column_end":80}},{"value":"/ (which is how `from_rng(thread_rng())` works); also it still works directly","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":165933,"byte_end":166012,"line_start":36,"line_end":36,"column_start":1,"column_end":80}},{"value":"/ on references (including type-erased references). Unfortunately within the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166013,"byte_end":166091,"line_start":37,"line_end":37,"column_start":1,"column_end":79}},{"value":"/ function `foo` it is not known whether `rng` is a reference type or not,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166092,"byte_end":166168,"line_start":38,"line_end":38,"column_start":1,"column_end":77}},{"value":"/ hence many uses of `rng` require an extra reference, either explicitly","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166169,"byte_end":166243,"line_start":39,"line_end":39,"column_start":1,"column_end":75}},{"value":"/ (`distr.sample(&mut rng)`) or implicitly (`rng.gen()`); one may hope the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166244,"byte_end":166320,"line_start":40,"line_end":40,"column_start":1,"column_end":77}},{"value":"/ optimiser can remove redundant references later.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166321,"byte_end":166373,"line_start":41,"line_end":41,"column_start":1,"column_end":53}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166374,"byte_end":166377,"line_start":42,"line_end":42,"column_start":1,"column_end":4}},{"value":"/ Example:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166378,"byte_end":166390,"line_start":43,"line_end":43,"column_start":1,"column_end":13}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166391,"byte_end":166394,"line_start":44,"line_end":44,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166395,"byte_end":166402,"line_start":45,"line_end":45,"column_start":1,"column_end":8}},{"value":"/ # use rand::thread_rng;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166403,"byte_end":166430,"line_start":46,"line_end":46,"column_start":1,"column_end":28}},{"value":"/ use rand::Rng;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166431,"byte_end":166449,"line_start":47,"line_end":47,"column_start":1,"column_end":19}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166450,"byte_end":166453,"line_start":48,"line_end":48,"column_start":1,"column_end":4}},{"value":"/ fn foo(rng: &mut R) -> f32 {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166454,"byte_end":166503,"line_start":49,"line_end":49,"column_start":1,"column_end":50}},{"value":"/ rng.gen()","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166504,"byte_end":166521,"line_start":50,"line_end":50,"column_start":1,"column_end":18}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166522,"byte_end":166527,"line_start":51,"line_end":51,"column_start":1,"column_end":6}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166528,"byte_end":166531,"line_start":52,"line_end":52,"column_start":1,"column_end":4}},{"value":"/ # let v = foo(&mut thread_rng());","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166532,"byte_end":166569,"line_start":53,"line_end":53,"column_start":1,"column_end":38}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166570,"byte_end":166577,"line_start":54,"line_end":54,"column_start":1,"column_end":8}}]},{"kind":"Method","id":{"krate":0,"index":604},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":167864,"byte_end":167867,"line_start":93,"line_end":93,"column_start":8,"column_end":11},"name":"gen","qualname":"::rng::Rng::gen","value":"pub fn gen(&mut Self) -> T where Standard: Distribution","parent":{"krate":0,"index":603},"children":[],"decl_id":null,"docs":" Return a random value supporting the [`Standard`] distribution.","sig":null,"attributes":[{"value":"/ Return a random value supporting the [`Standard`] distribution.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166607,"byte_end":166674,"line_start":56,"line_end":56,"column_start":5,"column_end":72}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166679,"byte_end":166682,"line_start":57,"line_end":57,"column_start":5,"column_end":8}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166687,"byte_end":166700,"line_start":58,"line_end":58,"column_start":5,"column_end":18}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166705,"byte_end":166708,"line_start":59,"line_end":59,"column_start":5,"column_end":8}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166713,"byte_end":166720,"line_start":60,"line_end":60,"column_start":5,"column_end":12}},{"value":"/ use rand::{thread_rng, Rng};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166725,"byte_end":166757,"line_start":61,"line_end":61,"column_start":5,"column_end":37}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166762,"byte_end":166765,"line_start":62,"line_end":62,"column_start":5,"column_end":8}},{"value":"/ let mut rng = thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166770,"byte_end":166801,"line_start":63,"line_end":63,"column_start":5,"column_end":36}},{"value":"/ let x: u32 = rng.gen();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166806,"byte_end":166833,"line_start":64,"line_end":64,"column_start":5,"column_end":32}},{"value":"/ println!(\"{}\", x);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166838,"byte_end":166860,"line_start":65,"line_end":65,"column_start":5,"column_end":27}},{"value":"/ println!(\"{:?}\", rng.gen::<(f64, bool)>());","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166865,"byte_end":166912,"line_start":66,"line_end":66,"column_start":5,"column_end":52}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166917,"byte_end":166924,"line_start":67,"line_end":67,"column_start":5,"column_end":12}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166929,"byte_end":166932,"line_start":68,"line_end":68,"column_start":5,"column_end":8}},{"value":"/ # Arrays and tuples","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166937,"byte_end":166960,"line_start":69,"line_end":69,"column_start":5,"column_end":28}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166965,"byte_end":166968,"line_start":70,"line_end":70,"column_start":5,"column_end":8}},{"value":"/ The `rng.gen()` method is able to generate arrays (up to 32 elements)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166973,"byte_end":167046,"line_start":71,"line_end":71,"column_start":5,"column_end":78}},{"value":"/ and tuples (up to 12 elements), so long as all element types can be","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":167051,"byte_end":167122,"line_start":72,"line_end":72,"column_start":5,"column_end":76}},{"value":"/ generated.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":167127,"byte_end":167141,"line_start":73,"line_end":73,"column_start":5,"column_end":19}},{"value":"/ When using `rustc` ≥ 1.51, enable the `min_const_gen` feature to support","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":167146,"byte_end":167224,"line_start":74,"line_end":74,"column_start":5,"column_end":81}},{"value":"/ arrays larger than 32 elements.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":167229,"byte_end":167264,"line_start":75,"line_end":75,"column_start":5,"column_end":40}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":167269,"byte_end":167272,"line_start":76,"line_end":76,"column_start":5,"column_end":8}},{"value":"/ For arrays of integers, especially for those with small element types","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":167277,"byte_end":167350,"line_start":77,"line_end":77,"column_start":5,"column_end":78}},{"value":"/ (< 64 bit), it will likely be faster to instead use [`Rng::fill`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":167355,"byte_end":167425,"line_start":78,"line_end":78,"column_start":5,"column_end":75}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":167430,"byte_end":167433,"line_start":79,"line_end":79,"column_start":5,"column_end":8}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":167438,"byte_end":167445,"line_start":80,"line_end":80,"column_start":5,"column_end":12}},{"value":"/ use rand::{thread_rng, Rng};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":167450,"byte_end":167482,"line_start":81,"line_end":81,"column_start":5,"column_end":37}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":167487,"byte_end":167490,"line_start":82,"line_end":82,"column_start":5,"column_end":8}},{"value":"/ let mut rng = thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":167495,"byte_end":167526,"line_start":83,"line_end":83,"column_start":5,"column_end":36}},{"value":"/ let tuple: (u8, i32, char) = rng.gen(); // arbitrary tuple support","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":167531,"byte_end":167601,"line_start":84,"line_end":84,"column_start":5,"column_end":75}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":167606,"byte_end":167609,"line_start":85,"line_end":85,"column_start":5,"column_end":8}},{"value":"/ let arr1: [f32; 32] = rng.gen(); // array construction","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":167614,"byte_end":167679,"line_start":86,"line_end":86,"column_start":5,"column_end":70}},{"value":"/ let mut arr2 = [0u8; 128];","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":167684,"byte_end":167714,"line_start":87,"line_end":87,"column_start":5,"column_end":35}},{"value":"/ rng.fill(&mut arr2); // array fill","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":167719,"byte_end":167776,"line_start":88,"line_end":88,"column_start":5,"column_end":62}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":167781,"byte_end":167788,"line_start":89,"line_end":89,"column_start":5,"column_end":12}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":167793,"byte_end":167796,"line_start":90,"line_end":90,"column_start":5,"column_end":8}},{"value":"/ [`Standard`]: distributions::Standard","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":167801,"byte_end":167842,"line_start":91,"line_end":91,"column_start":5,"column_end":46}},{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":167847,"byte_end":167856,"line_start":92,"line_end":92,"column_start":5,"column_end":14}}]},{"kind":"Method","id":{"krate":0,"index":606},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168902,"byte_end":168911,"line_start":129,"line_end":129,"column_start":8,"column_end":17},"name":"gen_range","qualname":"::rng::Rng::gen_range","value":"pub fn gen_range(&mut Self, R) -> T where T: SampleUniform,\nR: SampleRange","parent":{"krate":0,"index":603},"children":[],"decl_id":null,"docs":" Generate a random value in the given range.","sig":null,"attributes":[{"value":"/ Generate a random value in the given range.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":167966,"byte_end":168013,"line_start":98,"line_end":98,"column_start":5,"column_end":52}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168018,"byte_end":168021,"line_start":99,"line_end":99,"column_start":5,"column_end":8}},{"value":"/ This function is optimised for the case that only a single sample is","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168026,"byte_end":168098,"line_start":100,"line_end":100,"column_start":5,"column_end":77}},{"value":"/ made from the given range. See also the [`Uniform`] distribution","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168103,"byte_end":168171,"line_start":101,"line_end":101,"column_start":5,"column_end":73}},{"value":"/ type which may be faster if sampling from the same range repeatedly.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168176,"byte_end":168248,"line_start":102,"line_end":102,"column_start":5,"column_end":77}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168253,"byte_end":168256,"line_start":103,"line_end":103,"column_start":5,"column_end":8}},{"value":"/ Only `gen_range(low..high)` and `gen_range(low..=high)` are supported.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168261,"byte_end":168335,"line_start":104,"line_end":104,"column_start":5,"column_end":79}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168340,"byte_end":168343,"line_start":105,"line_end":105,"column_start":5,"column_end":8}},{"value":"/ # Panics","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168348,"byte_end":168360,"line_start":106,"line_end":106,"column_start":5,"column_end":17}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168365,"byte_end":168368,"line_start":107,"line_end":107,"column_start":5,"column_end":8}},{"value":"/ Panics if the range is empty.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168373,"byte_end":168406,"line_start":108,"line_end":108,"column_start":5,"column_end":38}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168411,"byte_end":168414,"line_start":109,"line_end":109,"column_start":5,"column_end":8}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168419,"byte_end":168432,"line_start":110,"line_end":110,"column_start":5,"column_end":18}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168437,"byte_end":168440,"line_start":111,"line_end":111,"column_start":5,"column_end":8}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168445,"byte_end":168452,"line_start":112,"line_end":112,"column_start":5,"column_end":12}},{"value":"/ use rand::{thread_rng, Rng};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168457,"byte_end":168489,"line_start":113,"line_end":113,"column_start":5,"column_end":37}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168494,"byte_end":168497,"line_start":114,"line_end":114,"column_start":5,"column_end":8}},{"value":"/ let mut rng = thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168502,"byte_end":168533,"line_start":115,"line_end":115,"column_start":5,"column_end":36}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168538,"byte_end":168541,"line_start":116,"line_end":116,"column_start":5,"column_end":8}},{"value":"/ // Exclusive range","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168546,"byte_end":168568,"line_start":117,"line_end":117,"column_start":5,"column_end":27}},{"value":"/ let n: u32 = rng.gen_range(0..10);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168573,"byte_end":168611,"line_start":118,"line_end":118,"column_start":5,"column_end":43}},{"value":"/ println!(\"{}\", n);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168616,"byte_end":168638,"line_start":119,"line_end":119,"column_start":5,"column_end":27}},{"value":"/ let m: f64 = rng.gen_range(-40.0..1.3e5);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168643,"byte_end":168688,"line_start":120,"line_end":120,"column_start":5,"column_end":50}},{"value":"/ println!(\"{}\", m);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168693,"byte_end":168715,"line_start":121,"line_end":121,"column_start":5,"column_end":27}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168720,"byte_end":168723,"line_start":122,"line_end":122,"column_start":5,"column_end":8}},{"value":"/ // Inclusive range","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168728,"byte_end":168750,"line_start":123,"line_end":123,"column_start":5,"column_end":27}},{"value":"/ let n: u32 = rng.gen_range(0..=10);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168755,"byte_end":168794,"line_start":124,"line_end":124,"column_start":5,"column_end":44}},{"value":"/ println!(\"{}\", n);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168799,"byte_end":168821,"line_start":125,"line_end":125,"column_start":5,"column_end":27}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168826,"byte_end":168833,"line_start":126,"line_end":126,"column_start":5,"column_end":12}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168838,"byte_end":168841,"line_start":127,"line_end":127,"column_start":5,"column_end":8}},{"value":"/ [`Uniform`]: distributions::uniform::Uniform","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":168846,"byte_end":168894,"line_start":128,"line_end":128,"column_start":5,"column_end":53}}]},{"kind":"Method","id":{"krate":0,"index":609},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":169598,"byte_end":169604,"line_start":152,"line_end":152,"column_start":8,"column_end":14},"name":"sample","qualname":"::rng::Rng::sample","value":"pub fn sample>(&mut Self, D) -> T","parent":{"krate":0,"index":603},"children":[],"decl_id":null,"docs":" Sample a new value, using the given distribution.","sig":null,"attributes":[{"value":"/ Sample a new value, using the given distribution.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":169122,"byte_end":169175,"line_start":138,"line_end":138,"column_start":5,"column_end":58}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":169180,"byte_end":169183,"line_start":139,"line_end":139,"column_start":5,"column_end":8}},{"value":"/ ### Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":169188,"byte_end":169203,"line_start":140,"line_end":140,"column_start":5,"column_end":20}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":169208,"byte_end":169211,"line_start":141,"line_end":141,"column_start":5,"column_end":8}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":169216,"byte_end":169223,"line_start":142,"line_end":142,"column_start":5,"column_end":12}},{"value":"/ use rand::{thread_rng, Rng};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":169228,"byte_end":169260,"line_start":143,"line_end":143,"column_start":5,"column_end":37}},{"value":"/ use rand::distributions::Uniform;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":169265,"byte_end":169302,"line_start":144,"line_end":144,"column_start":5,"column_end":42}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":169307,"byte_end":169310,"line_start":145,"line_end":145,"column_start":5,"column_end":8}},{"value":"/ let mut rng = thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":169315,"byte_end":169346,"line_start":146,"line_end":146,"column_start":5,"column_end":36}},{"value":"/ let x = rng.sample(Uniform::new(10u32, 15));","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":169351,"byte_end":169399,"line_start":147,"line_end":147,"column_start":5,"column_end":53}},{"value":"/ // Type annotation requires two types, the type and distribution; the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":169404,"byte_end":169477,"line_start":148,"line_end":148,"column_start":5,"column_end":78}},{"value":"/ // distribution can be inferred.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":169482,"byte_end":169518,"line_start":149,"line_end":149,"column_start":5,"column_end":41}},{"value":"/ let y = rng.sample::(Uniform::new(10, 15));","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":169523,"byte_end":169578,"line_start":150,"line_end":150,"column_start":5,"column_end":60}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":169583,"byte_end":169590,"line_start":151,"line_end":151,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":612},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":171005,"byte_end":171016,"line_start":192,"line_end":192,"column_start":8,"column_end":19},"name":"sample_iter","qualname":"::rng::Rng::sample_iter","value":"pub fn sample_iter(Self, D) -> distributions::DistIter where\nD: Distribution, Self: Sized","parent":{"krate":0,"index":603},"children":[],"decl_id":null,"docs":" Create an iterator that generates values using the given distribution.","sig":null,"attributes":[{"value":"/ Create an iterator that generates values using the given distribution.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":169694,"byte_end":169768,"line_start":156,"line_end":156,"column_start":5,"column_end":79}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":169773,"byte_end":169776,"line_start":157,"line_end":157,"column_start":5,"column_end":8}},{"value":"/ Note that this function takes its arguments by value. This works since","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":169781,"byte_end":169855,"line_start":158,"line_end":158,"column_start":5,"column_end":79}},{"value":"/ `(&mut R): Rng where R: Rng` and","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":169860,"byte_end":169896,"line_start":159,"line_end":159,"column_start":5,"column_end":41}},{"value":"/ `(&D): Distribution where D: Distribution`,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":169901,"byte_end":169948,"line_start":160,"line_end":160,"column_start":5,"column_end":52}},{"value":"/ however borrowing is not automatic hence `rng.sample_iter(...)` may","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":169953,"byte_end":170024,"line_start":161,"line_end":161,"column_start":5,"column_end":76}},{"value":"/ need to be replaced with `(&mut rng).sample_iter(...)`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170029,"byte_end":170088,"line_start":162,"line_end":162,"column_start":5,"column_end":64}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170093,"byte_end":170096,"line_start":163,"line_end":163,"column_start":5,"column_end":8}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170101,"byte_end":170114,"line_start":164,"line_end":164,"column_start":5,"column_end":18}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170119,"byte_end":170122,"line_start":165,"line_end":165,"column_start":5,"column_end":8}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170127,"byte_end":170134,"line_start":166,"line_end":166,"column_start":5,"column_end":12}},{"value":"/ use rand::{thread_rng, Rng};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170139,"byte_end":170171,"line_start":167,"line_end":167,"column_start":5,"column_end":37}},{"value":"/ use rand::distributions::{Alphanumeric, Uniform, Standard};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170176,"byte_end":170239,"line_start":168,"line_end":168,"column_start":5,"column_end":68}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170244,"byte_end":170247,"line_start":169,"line_end":169,"column_start":5,"column_end":8}},{"value":"/ let mut rng = thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170252,"byte_end":170283,"line_start":170,"line_end":170,"column_start":5,"column_end":36}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170288,"byte_end":170291,"line_start":171,"line_end":171,"column_start":5,"column_end":8}},{"value":"/ // Vec of 16 x f32:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170296,"byte_end":170319,"line_start":172,"line_end":172,"column_start":5,"column_end":28}},{"value":"/ let v: Vec = (&mut rng).sample_iter(Standard).take(16).collect();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170324,"byte_end":170398,"line_start":173,"line_end":173,"column_start":5,"column_end":79}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170403,"byte_end":170406,"line_start":174,"line_end":174,"column_start":5,"column_end":8}},{"value":"/ // String:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170411,"byte_end":170425,"line_start":175,"line_end":175,"column_start":5,"column_end":19}},{"value":"/ let s: String = (&mut rng).sample_iter(Alphanumeric)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170430,"byte_end":170486,"line_start":176,"line_end":176,"column_start":5,"column_end":61}},{"value":"/ .take(7)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170491,"byte_end":170507,"line_start":177,"line_end":177,"column_start":5,"column_end":21}},{"value":"/ .map(char::from)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170512,"byte_end":170536,"line_start":178,"line_end":178,"column_start":5,"column_end":29}},{"value":"/ .collect();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170541,"byte_end":170560,"line_start":179,"line_end":179,"column_start":5,"column_end":24}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170565,"byte_end":170568,"line_start":180,"line_end":180,"column_start":5,"column_end":8}},{"value":"/ // Combined values","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170573,"byte_end":170595,"line_start":181,"line_end":181,"column_start":5,"column_end":27}},{"value":"/ println!(\"{:?}\", (&mut rng).sample_iter(Standard).take(5)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170600,"byte_end":170661,"line_start":182,"line_end":182,"column_start":5,"column_end":66}},{"value":"/ .collect::>());","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170666,"byte_end":170731,"line_start":183,"line_end":183,"column_start":5,"column_end":70}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170736,"byte_end":170739,"line_start":184,"line_end":184,"column_start":5,"column_end":8}},{"value":"/ // Dice-rolling:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170744,"byte_end":170764,"line_start":185,"line_end":185,"column_start":5,"column_end":25}},{"value":"/ let die_range = Uniform::new_inclusive(1, 6);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170769,"byte_end":170818,"line_start":186,"line_end":186,"column_start":5,"column_end":54}},{"value":"/ let mut roll_die = (&mut rng).sample_iter(die_range);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170823,"byte_end":170880,"line_start":187,"line_end":187,"column_start":5,"column_end":62}},{"value":"/ while roll_die.next().unwrap() != 6 {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170885,"byte_end":170926,"line_start":188,"line_end":188,"column_start":5,"column_end":46}},{"value":"/ println!(\"Not a 6; rolling again!\");","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170931,"byte_end":170975,"line_start":189,"line_end":189,"column_start":5,"column_end":49}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170980,"byte_end":170985,"line_start":190,"line_end":190,"column_start":5,"column_end":10}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":170990,"byte_end":170997,"line_start":191,"line_end":191,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":615},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":171750,"byte_end":171754,"line_start":218,"line_end":218,"column_start":8,"column_end":12},"name":"fill","qualname":"::rng::Rng::fill","value":"pub fn fill(&mut Self, &mut T)","parent":{"krate":0,"index":603},"children":[],"decl_id":null,"docs":" Fill any type implementing [`Fill`] with random data","sig":null,"attributes":[{"value":"/ Fill any type implementing [`Fill`] with random data","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":171186,"byte_end":171242,"line_start":200,"line_end":200,"column_start":5,"column_end":61}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":171247,"byte_end":171250,"line_start":201,"line_end":201,"column_start":5,"column_end":8}},{"value":"/ The distribution is expected to be uniform with portable results, but","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":171255,"byte_end":171328,"line_start":202,"line_end":202,"column_start":5,"column_end":78}},{"value":"/ this cannot be guaranteed for third-party implementations.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":171333,"byte_end":171395,"line_start":203,"line_end":203,"column_start":5,"column_end":67}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":171400,"byte_end":171403,"line_start":204,"line_end":204,"column_start":5,"column_end":8}},{"value":"/ This is identical to [`try_fill`] except that it panics on error.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":171408,"byte_end":171477,"line_start":205,"line_end":205,"column_start":5,"column_end":74}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":171482,"byte_end":171485,"line_start":206,"line_end":206,"column_start":5,"column_end":8}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":171490,"byte_end":171503,"line_start":207,"line_end":207,"column_start":5,"column_end":18}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":171508,"byte_end":171511,"line_start":208,"line_end":208,"column_start":5,"column_end":8}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":171516,"byte_end":171523,"line_start":209,"line_end":209,"column_start":5,"column_end":12}},{"value":"/ use rand::{thread_rng, Rng};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":171528,"byte_end":171560,"line_start":210,"line_end":210,"column_start":5,"column_end":37}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":171565,"byte_end":171568,"line_start":211,"line_end":211,"column_start":5,"column_end":8}},{"value":"/ let mut arr = [0i8; 20];","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":171573,"byte_end":171601,"line_start":212,"line_end":212,"column_start":5,"column_end":33}},{"value":"/ thread_rng().fill(&mut arr[..]);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":171606,"byte_end":171642,"line_start":213,"line_end":213,"column_start":5,"column_end":41}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":171647,"byte_end":171654,"line_start":214,"line_end":214,"column_start":5,"column_end":12}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":171659,"byte_end":171662,"line_start":215,"line_end":215,"column_start":5,"column_end":8}},{"value":"/ [`fill_bytes`]: RngCore::fill_bytes","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":171667,"byte_end":171706,"line_start":216,"line_end":216,"column_start":5,"column_end":44}},{"value":"/ [`try_fill`]: Rng::try_fill","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":171711,"byte_end":171742,"line_start":217,"line_end":217,"column_start":5,"column_end":36}}]},{"kind":"Method","id":{"krate":0,"index":618},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172594,"byte_end":172602,"line_start":246,"line_end":246,"column_start":8,"column_end":16},"name":"try_fill","qualname":"::rng::Rng::try_fill","value":"pub fn try_fill(&mut Self, &mut T) -> Result<(), Error>","parent":{"krate":0,"index":603},"children":[],"decl_id":null,"docs":" Fill any type implementing [`Fill`] with random data","sig":null,"attributes":[{"value":"/ Fill any type implementing [`Fill`] with random data","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":171886,"byte_end":171942,"line_start":222,"line_end":222,"column_start":5,"column_end":61}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":171947,"byte_end":171950,"line_start":223,"line_end":223,"column_start":5,"column_end":8}},{"value":"/ The distribution is expected to be uniform with portable results, but","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":171955,"byte_end":172028,"line_start":224,"line_end":224,"column_start":5,"column_end":78}},{"value":"/ this cannot be guaranteed for third-party implementations.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172033,"byte_end":172095,"line_start":225,"line_end":225,"column_start":5,"column_end":67}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172100,"byte_end":172103,"line_start":226,"line_end":226,"column_start":5,"column_end":8}},{"value":"/ This is identical to [`fill`] except that it forwards errors.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172108,"byte_end":172173,"line_start":227,"line_end":227,"column_start":5,"column_end":70}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172178,"byte_end":172181,"line_start":228,"line_end":228,"column_start":5,"column_end":8}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172186,"byte_end":172199,"line_start":229,"line_end":229,"column_start":5,"column_end":18}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172204,"byte_end":172207,"line_start":230,"line_end":230,"column_start":5,"column_end":8}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172212,"byte_end":172219,"line_start":231,"line_end":231,"column_start":5,"column_end":12}},{"value":"/ # use rand::Error;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172224,"byte_end":172246,"line_start":232,"line_end":232,"column_start":5,"column_end":27}},{"value":"/ use rand::{thread_rng, Rng};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172251,"byte_end":172283,"line_start":233,"line_end":233,"column_start":5,"column_end":37}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172288,"byte_end":172291,"line_start":234,"line_end":234,"column_start":5,"column_end":8}},{"value":"/ # fn try_inner() -> Result<(), Error> {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172296,"byte_end":172339,"line_start":235,"line_end":235,"column_start":5,"column_end":48}},{"value":"/ let mut arr = [0u64; 4];","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172344,"byte_end":172372,"line_start":236,"line_end":236,"column_start":5,"column_end":33}},{"value":"/ thread_rng().try_fill(&mut arr[..])?;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172377,"byte_end":172418,"line_start":237,"line_end":237,"column_start":5,"column_end":46}},{"value":"/ # Ok(())","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172423,"byte_end":172435,"line_start":238,"line_end":238,"column_start":5,"column_end":17}},{"value":"/ # }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172440,"byte_end":172447,"line_start":239,"line_end":239,"column_start":5,"column_end":12}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172452,"byte_end":172455,"line_start":240,"line_end":240,"column_start":5,"column_end":8}},{"value":"/ # try_inner().unwrap()","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172460,"byte_end":172486,"line_start":241,"line_end":241,"column_start":5,"column_end":31}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172491,"byte_end":172498,"line_start":242,"line_end":242,"column_start":5,"column_end":12}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172503,"byte_end":172506,"line_start":243,"line_end":243,"column_start":5,"column_end":8}},{"value":"/ [`try_fill_bytes`]: RngCore::try_fill_bytes","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172511,"byte_end":172558,"line_start":244,"line_end":244,"column_start":5,"column_end":52}},{"value":"/ [`fill`]: Rng::fill","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172563,"byte_end":172586,"line_start":245,"line_end":245,"column_start":5,"column_end":28}}]},{"kind":"Method","id":{"krate":0,"index":620},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173228,"byte_end":173236,"line_start":270,"line_end":270,"column_start":8,"column_end":16},"name":"gen_bool","qualname":"::rng::Rng::gen_bool","value":"pub fn gen_bool(&mut Self, f64) -> bool","parent":{"krate":0,"index":603},"children":[],"decl_id":null,"docs":" Return a bool with a probability `p` of being true.","sig":null,"attributes":[{"value":"/ Return a bool with a probability `p` of being true.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172708,"byte_end":172763,"line_start":250,"line_end":250,"column_start":5,"column_end":60}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172768,"byte_end":172771,"line_start":251,"line_end":251,"column_start":5,"column_end":8}},{"value":"/ See also the [`Bernoulli`] distribution, which may be faster if","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172776,"byte_end":172843,"line_start":252,"line_end":252,"column_start":5,"column_end":72}},{"value":"/ sampling from the same probability repeatedly.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172848,"byte_end":172898,"line_start":253,"line_end":253,"column_start":5,"column_end":55}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172903,"byte_end":172906,"line_start":254,"line_end":254,"column_start":5,"column_end":8}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172911,"byte_end":172924,"line_start":255,"line_end":255,"column_start":5,"column_end":18}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172929,"byte_end":172932,"line_start":256,"line_end":256,"column_start":5,"column_end":8}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172937,"byte_end":172944,"line_start":257,"line_end":257,"column_start":5,"column_end":12}},{"value":"/ use rand::{thread_rng, Rng};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172949,"byte_end":172981,"line_start":258,"line_end":258,"column_start":5,"column_end":37}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172986,"byte_end":172989,"line_start":259,"line_end":259,"column_start":5,"column_end":8}},{"value":"/ let mut rng = thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":172994,"byte_end":173025,"line_start":260,"line_end":260,"column_start":5,"column_end":36}},{"value":"/ println!(\"{}\", rng.gen_bool(1.0 / 3.0));","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173030,"byte_end":173074,"line_start":261,"line_end":261,"column_start":5,"column_end":49}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173079,"byte_end":173086,"line_start":262,"line_end":262,"column_start":5,"column_end":12}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173091,"byte_end":173094,"line_start":263,"line_end":263,"column_start":5,"column_end":8}},{"value":"/ # Panics","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173099,"byte_end":173111,"line_start":264,"line_end":264,"column_start":5,"column_end":17}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173116,"byte_end":173119,"line_start":265,"line_end":265,"column_start":5,"column_end":8}},{"value":"/ If `p < 0` or `p > 1`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173124,"byte_end":173150,"line_start":266,"line_end":266,"column_start":5,"column_end":31}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173155,"byte_end":173158,"line_start":267,"line_end":267,"column_start":5,"column_end":8}},{"value":"/ [`Bernoulli`]: distributions::Bernoulli","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173163,"byte_end":173206,"line_start":268,"line_end":268,"column_start":5,"column_end":48}},{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173211,"byte_end":173220,"line_start":269,"line_end":269,"column_start":5,"column_end":14}}]},{"kind":"Method","id":{"krate":0,"index":621},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":174212,"byte_end":174221,"line_start":299,"line_end":299,"column_start":8,"column_end":17},"name":"gen_ratio","qualname":"::rng::Rng::gen_ratio","value":"pub fn gen_ratio(&mut Self, u32, u32) -> bool","parent":{"krate":0,"index":603},"children":[],"decl_id":null,"docs":" Return a bool with a probability of `numerator/denominator` of being\n true. I.e. `gen_ratio(2, 3)` has chance of 2 in 3, or about 67%, of\n returning true. If `numerator == denominator`, then the returned value\n is guaranteed to be `true`. If `numerator == 0`, then the returned\n value is guaranteed to be `false`.","sig":null,"attributes":[{"value":"/ Return a bool with a probability of `numerator/denominator` of being","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173359,"byte_end":173431,"line_start":275,"line_end":275,"column_start":5,"column_end":77}},{"value":"/ true. I.e. `gen_ratio(2, 3)` has chance of 2 in 3, or about 67%, of","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173436,"byte_end":173507,"line_start":276,"line_end":276,"column_start":5,"column_end":76}},{"value":"/ returning true. If `numerator == denominator`, then the returned value","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173512,"byte_end":173586,"line_start":277,"line_end":277,"column_start":5,"column_end":79}},{"value":"/ is guaranteed to be `true`. If `numerator == 0`, then the returned","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173591,"byte_end":173661,"line_start":278,"line_end":278,"column_start":5,"column_end":75}},{"value":"/ value is guaranteed to be `false`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173666,"byte_end":173704,"line_start":279,"line_end":279,"column_start":5,"column_end":43}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173709,"byte_end":173712,"line_start":280,"line_end":280,"column_start":5,"column_end":8}},{"value":"/ See also the [`Bernoulli`] distribution, which may be faster if","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173717,"byte_end":173784,"line_start":281,"line_end":281,"column_start":5,"column_end":72}},{"value":"/ sampling from the same `numerator` and `denominator` repeatedly.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173789,"byte_end":173857,"line_start":282,"line_end":282,"column_start":5,"column_end":73}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173862,"byte_end":173865,"line_start":283,"line_end":283,"column_start":5,"column_end":8}},{"value":"/ # Panics","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173870,"byte_end":173882,"line_start":284,"line_end":284,"column_start":5,"column_end":17}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173887,"byte_end":173890,"line_start":285,"line_end":285,"column_start":5,"column_end":8}},{"value":"/ If `denominator == 0` or `numerator > denominator`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173895,"byte_end":173950,"line_start":286,"line_end":286,"column_start":5,"column_end":60}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173955,"byte_end":173958,"line_start":287,"line_end":287,"column_start":5,"column_end":8}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173963,"byte_end":173976,"line_start":288,"line_end":288,"column_start":5,"column_end":18}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173981,"byte_end":173984,"line_start":289,"line_end":289,"column_start":5,"column_end":8}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":173989,"byte_end":173996,"line_start":290,"line_end":290,"column_start":5,"column_end":12}},{"value":"/ use rand::{thread_rng, Rng};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":174001,"byte_end":174033,"line_start":291,"line_end":291,"column_start":5,"column_end":37}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":174038,"byte_end":174041,"line_start":292,"line_end":292,"column_start":5,"column_end":8}},{"value":"/ let mut rng = thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":174046,"byte_end":174077,"line_start":293,"line_end":293,"column_start":5,"column_end":36}},{"value":"/ println!(\"{}\", rng.gen_ratio(2, 3));","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":174082,"byte_end":174122,"line_start":294,"line_end":294,"column_start":5,"column_end":45}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":174127,"byte_end":174134,"line_start":295,"line_end":295,"column_start":5,"column_end":12}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":174139,"byte_end":174142,"line_start":296,"line_end":296,"column_start":5,"column_end":8}},{"value":"/ [`Bernoulli`]: distributions::Bernoulli","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":174147,"byte_end":174190,"line_start":297,"line_end":297,"column_start":5,"column_end":48}},{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":174195,"byte_end":174204,"line_start":298,"line_end":298,"column_start":5,"column_end":14}}]},{"kind":"Trait","id":{"krate":0,"index":624},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":174770,"byte_end":174774,"line_start":314,"line_end":314,"column_start":11,"column_end":15},"name":"Fill","qualname":"::rng::Fill","value":"Fill","parent":null,"children":[{"krate":0,"index":625}],"decl_id":null,"docs":" Types which may be filled with random data","sig":null,"attributes":[{"value":"/ Types which may be filled with random data","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":174436,"byte_end":174482,"line_start":307,"line_end":307,"column_start":1,"column_end":47}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":174483,"byte_end":174486,"line_start":308,"line_end":308,"column_start":1,"column_end":4}},{"value":"/ This trait allows arrays to be efficiently filled with random data.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":174487,"byte_end":174558,"line_start":309,"line_end":309,"column_start":1,"column_end":72}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":174559,"byte_end":174562,"line_start":310,"line_end":310,"column_start":1,"column_end":4}},{"value":"/ Implementations are expected to be portable across machines unless","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":174563,"byte_end":174633,"line_start":311,"line_end":311,"column_start":1,"column_end":71}},{"value":"/ clearly documented otherwise (see the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":174634,"byte_end":174675,"line_start":312,"line_end":312,"column_start":1,"column_end":42}},{"value":"/ [Chapter on Portability](https://rust-random.github.io/book/portability.html)).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":174676,"byte_end":174759,"line_start":313,"line_end":313,"column_start":1,"column_end":84}}]},{"kind":"Method","id":{"krate":0,"index":625},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":174819,"byte_end":174827,"line_start":316,"line_end":316,"column_start":8,"column_end":16},"name":"try_fill","qualname":"::rng::Fill::try_fill","value":"pub fn try_fill(&mut Self, &mut R) -> Result<(), Error>","parent":{"krate":0,"index":624},"children":[],"decl_id":null,"docs":" Fill self with random data\n","sig":null,"attributes":[{"value":"/ Fill self with random data","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":174781,"byte_end":174811,"line_start":315,"line_end":315,"column_start":5,"column_end":35}}]},{"kind":"Mod","id":{"krate":0,"index":633},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"name":"rngs","qualname":"::rngs","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","parent":null,"children":[{"krate":0,"index":634},{"krate":0,"index":761},{"krate":0,"index":779},{"krate":0,"index":810},{"krate":0,"index":853},{"krate":0,"index":856},{"krate":0,"index":859},{"krate":0,"index":860}],"decl_id":null,"docs":" Random number generators and adapters","sig":null,"attributes":[{"value":"/ Random number generators and adapters","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":183735,"byte_end":183776,"line_start":9,"line_end":9,"column_start":1,"column_end":42}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":183777,"byte_end":183780,"line_start":10,"line_end":10,"column_start":1,"column_end":4}},{"value":"/ ## Background: Random number generators (RNGs)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":183781,"byte_end":183831,"line_start":11,"line_end":11,"column_start":1,"column_end":51}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":183832,"byte_end":183835,"line_start":12,"line_end":12,"column_start":1,"column_end":4}},{"value":"/ Computers cannot produce random numbers from nowhere. We classify","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":183836,"byte_end":183905,"line_start":13,"line_end":13,"column_start":1,"column_end":70}},{"value":"/ random number generators as follows:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":183906,"byte_end":183946,"line_start":14,"line_end":14,"column_start":1,"column_end":41}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":183947,"byte_end":183950,"line_start":15,"line_end":15,"column_start":1,"column_end":4}},{"value":"/ - \"True\" random number generators (TRNGs) use hard-to-predict data sources","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":183951,"byte_end":184031,"line_start":16,"line_end":16,"column_start":1,"column_end":81}},{"value":"/ (e.g. the high-resolution parts of event timings and sensor jitter) to","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":184032,"byte_end":184110,"line_start":17,"line_end":17,"column_start":1,"column_end":79}},{"value":"/ harvest random bit-sequences, apply algorithms to remove bias and","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":184111,"byte_end":184184,"line_start":18,"line_end":18,"column_start":1,"column_end":74}},{"value":"/ estimate available entropy, then combine these bits into a byte-sequence","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":184185,"byte_end":184265,"line_start":19,"line_end":19,"column_start":1,"column_end":81}},{"value":"/ or an entropy pool. This job is usually done by the operating system or","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":184266,"byte_end":184345,"line_start":20,"line_end":20,"column_start":1,"column_end":80}},{"value":"/ a hardware generator (HRNG).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":184346,"byte_end":184382,"line_start":21,"line_end":21,"column_start":1,"column_end":37}},{"value":"/ - \"Pseudo\"-random number generators (PRNGs) use algorithms to transform a","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":184383,"byte_end":184462,"line_start":22,"line_end":22,"column_start":1,"column_end":80}},{"value":"/ seed into a sequence of pseudo-random numbers. These generators can be","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":184463,"byte_end":184541,"line_start":23,"line_end":23,"column_start":1,"column_end":79}},{"value":"/ fast and produce well-distributed unpredictable random numbers (or not).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":184542,"byte_end":184622,"line_start":24,"line_end":24,"column_start":1,"column_end":81}},{"value":"/ They are usually deterministic: given algorithm and seed, the output","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":184623,"byte_end":184699,"line_start":25,"line_end":25,"column_start":1,"column_end":77}},{"value":"/ sequence can be reproduced. They have finite period and eventually loop;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":184700,"byte_end":184780,"line_start":26,"line_end":26,"column_start":1,"column_end":81}},{"value":"/ with many algorithms this period is fixed and can be proven sufficiently","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":184781,"byte_end":184861,"line_start":27,"line_end":27,"column_start":1,"column_end":81}},{"value":"/ long, while others are chaotic and the period depends on the seed.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":184862,"byte_end":184936,"line_start":28,"line_end":28,"column_start":1,"column_end":75}},{"value":"/ - \"Cryptographically secure\" pseudo-random number generators (CSPRNGs)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":184937,"byte_end":185013,"line_start":29,"line_end":29,"column_start":1,"column_end":77}},{"value":"/ are the sub-set of PRNGs which are secure. Security of the generator","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185014,"byte_end":185090,"line_start":30,"line_end":30,"column_start":1,"column_end":77}},{"value":"/ relies both on hiding the internal state and using a strong algorithm.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185091,"byte_end":185169,"line_start":31,"line_end":31,"column_start":1,"column_end":79}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185170,"byte_end":185173,"line_start":32,"line_end":32,"column_start":1,"column_end":4}},{"value":"/ ## Traits and functionality","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185174,"byte_end":185205,"line_start":33,"line_end":33,"column_start":1,"column_end":32}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185206,"byte_end":185209,"line_start":34,"line_end":34,"column_start":1,"column_end":4}},{"value":"/ All RNGs implement the [`RngCore`] trait, as a consequence of which the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185210,"byte_end":185285,"line_start":35,"line_end":35,"column_start":1,"column_end":76}},{"value":"/ [`Rng`] extension trait is automatically implemented. Secure RNGs may","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185286,"byte_end":185359,"line_start":36,"line_end":36,"column_start":1,"column_end":74}},{"value":"/ additionally implement the [`CryptoRng`] trait.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185360,"byte_end":185411,"line_start":37,"line_end":37,"column_start":1,"column_end":52}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185412,"byte_end":185415,"line_start":38,"line_end":38,"column_start":1,"column_end":4}},{"value":"/ All PRNGs require a seed to produce their random number sequence. The","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185416,"byte_end":185489,"line_start":39,"line_end":39,"column_start":1,"column_end":74}},{"value":"/ [`SeedableRng`] trait provides three ways of constructing PRNGs:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185490,"byte_end":185558,"line_start":40,"line_end":40,"column_start":1,"column_end":69}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185559,"byte_end":185562,"line_start":41,"line_end":41,"column_start":1,"column_end":4}},{"value":"/ - `from_seed` accepts a type specific to the PRNG","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185563,"byte_end":185618,"line_start":42,"line_end":42,"column_start":1,"column_end":56}},{"value":"/ - `from_rng` allows a PRNG to be seeded from any other RNG","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185619,"byte_end":185683,"line_start":43,"line_end":43,"column_start":1,"column_end":65}},{"value":"/ - `seed_from_u64` allows any PRNG to be seeded from a `u64` insecurely","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185684,"byte_end":185760,"line_start":44,"line_end":44,"column_start":1,"column_end":77}},{"value":"/ - `from_entropy` securely seeds a PRNG from fresh entropy","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185761,"byte_end":185824,"line_start":45,"line_end":45,"column_start":1,"column_end":64}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185825,"byte_end":185828,"line_start":46,"line_end":46,"column_start":1,"column_end":4}},{"value":"/ Use the [`rand_core`] crate when implementing your own RNGs.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185829,"byte_end":185893,"line_start":47,"line_end":47,"column_start":1,"column_end":65}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185894,"byte_end":185897,"line_start":48,"line_end":48,"column_start":1,"column_end":4}},{"value":"/ ## Our generators","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185898,"byte_end":185919,"line_start":49,"line_end":49,"column_start":1,"column_end":22}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185920,"byte_end":185923,"line_start":50,"line_end":50,"column_start":1,"column_end":4}},{"value":"/ This crate provides several random number generators:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185924,"byte_end":185981,"line_start":51,"line_end":51,"column_start":1,"column_end":58}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185982,"byte_end":185985,"line_start":52,"line_end":52,"column_start":1,"column_end":4}},{"value":"/ - [`OsRng`] is an interface to the operating system's random number","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":185986,"byte_end":186059,"line_start":53,"line_end":53,"column_start":1,"column_end":74}},{"value":"/ source. Typically the operating system uses a CSPRNG with entropy","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":186060,"byte_end":186133,"line_start":54,"line_end":54,"column_start":1,"column_end":74}},{"value":"/ provided by a TRNG and some type of on-going re-seeding.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":186134,"byte_end":186198,"line_start":55,"line_end":55,"column_start":1,"column_end":65}},{"value":"/ - [`ThreadRng`], provided by the [`thread_rng`] function, is a handle to a","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":186199,"byte_end":186279,"line_start":56,"line_end":56,"column_start":1,"column_end":81}},{"value":"/ thread-local CSPRNG with periodic seeding from [`OsRng`]. Because this","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":186280,"byte_end":186358,"line_start":57,"line_end":57,"column_start":1,"column_end":79}},{"value":"/ is local, it is typically much faster than [`OsRng`]. It should be","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":186359,"byte_end":186433,"line_start":58,"line_end":58,"column_start":1,"column_end":75}},{"value":"/ secure, though the paranoid may prefer [`OsRng`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":186434,"byte_end":186491,"line_start":59,"line_end":59,"column_start":1,"column_end":58}},{"value":"/ - [`StdRng`] is a CSPRNG chosen for good performance and trust of security","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":186492,"byte_end":186572,"line_start":60,"line_end":60,"column_start":1,"column_end":81}},{"value":"/ (based on reviews, maturity and usage). The current algorithm is ChaCha12,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":186573,"byte_end":186655,"line_start":61,"line_end":61,"column_start":1,"column_end":83}},{"value":"/ which is well established and rigorously analysed.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":186656,"byte_end":186714,"line_start":62,"line_end":62,"column_start":1,"column_end":59}},{"value":"/ [`StdRng`] provides the algorithm used by [`ThreadRng`] but without","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":186715,"byte_end":186790,"line_start":63,"line_end":63,"column_start":1,"column_end":76}},{"value":"/ periodic reseeding.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":186791,"byte_end":186818,"line_start":64,"line_end":64,"column_start":1,"column_end":28}},{"value":"/ - [`SmallRng`] is an **insecure** PRNG designed to be fast, simple, require","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":186819,"byte_end":186900,"line_start":65,"line_end":65,"column_start":1,"column_end":82}},{"value":"/ little memory, and have good output quality.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":186901,"byte_end":186953,"line_start":66,"line_end":66,"column_start":1,"column_end":53}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":186954,"byte_end":186957,"line_start":67,"line_end":67,"column_start":1,"column_end":4}},{"value":"/ The algorithms selected for [`StdRng`] and [`SmallRng`] may change in any","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":186958,"byte_end":187035,"line_start":68,"line_end":68,"column_start":1,"column_end":78}},{"value":"/ release and may be platform-dependent, therefore they should be considered","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":187036,"byte_end":187114,"line_start":69,"line_end":69,"column_start":1,"column_end":79}},{"value":"/ **not reproducible**.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":187115,"byte_end":187140,"line_start":70,"line_end":70,"column_start":1,"column_end":26}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":187141,"byte_end":187144,"line_start":71,"line_end":71,"column_start":1,"column_end":4}},{"value":"/ ## Additional generators","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":187145,"byte_end":187173,"line_start":72,"line_end":72,"column_start":1,"column_end":29}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":187174,"byte_end":187177,"line_start":73,"line_end":73,"column_start":1,"column_end":4}},{"value":"/ **TRNGs**: The [`rdrand`] crate provides an interface to the RDRAND and","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":187178,"byte_end":187253,"line_start":74,"line_end":74,"column_start":1,"column_end":76}},{"value":"/ RDSEED instructions available in modern Intel and AMD CPUs.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":187254,"byte_end":187317,"line_start":75,"line_end":75,"column_start":1,"column_end":64}},{"value":"/ The [`rand_jitter`] crate provides a user-space implementation of","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":187318,"byte_end":187387,"line_start":76,"line_end":76,"column_start":1,"column_end":70}},{"value":"/ entropy harvesting from CPU timer jitter, but is very slow and has","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":187388,"byte_end":187458,"line_start":77,"line_end":77,"column_start":1,"column_end":71}},{"value":"/ [security issues](https://github.com/rust-random/rand/issues/699).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":187459,"byte_end":187529,"line_start":78,"line_end":78,"column_start":1,"column_end":71}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":187530,"byte_end":187533,"line_start":79,"line_end":79,"column_start":1,"column_end":4}},{"value":"/ **PRNGs**: Several companion crates are available, providing individual or","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":187534,"byte_end":187612,"line_start":80,"line_end":80,"column_start":1,"column_end":79}},{"value":"/ families of PRNG algorithms. These provide the implementations behind","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":187613,"byte_end":187686,"line_start":81,"line_end":81,"column_start":1,"column_end":74}},{"value":"/ [`StdRng`] and [`SmallRng`] but can also be used directly, indeed *should*","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":187687,"byte_end":187765,"line_start":82,"line_end":82,"column_start":1,"column_end":79}},{"value":"/ be used directly when **reproducibility** matters.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":187766,"byte_end":187820,"line_start":83,"line_end":83,"column_start":1,"column_end":55}},{"value":"/ Some suggestions are: [`rand_chacha`], [`rand_pcg`], [`rand_xoshiro`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":187821,"byte_end":187895,"line_start":84,"line_end":84,"column_start":1,"column_end":75}},{"value":"/ A full list can be found by searching for crates with the [`rng` tag].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":187896,"byte_end":187970,"line_start":85,"line_end":85,"column_start":1,"column_end":75}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":187971,"byte_end":187974,"line_start":86,"line_end":86,"column_start":1,"column_end":4}},{"value":"/ [`Rng`]: crate::Rng","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":187975,"byte_end":187998,"line_start":87,"line_end":87,"column_start":1,"column_end":24}},{"value":"/ [`RngCore`]: crate::RngCore","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":187999,"byte_end":188030,"line_start":88,"line_end":88,"column_start":1,"column_end":32}},{"value":"/ [`CryptoRng`]: crate::CryptoRng","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":188031,"byte_end":188066,"line_start":89,"line_end":89,"column_start":1,"column_end":36}},{"value":"/ [`SeedableRng`]: crate::SeedableRng","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":188067,"byte_end":188106,"line_start":90,"line_end":90,"column_start":1,"column_end":40}},{"value":"/ [`thread_rng`]: crate::thread_rng","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":188107,"byte_end":188144,"line_start":91,"line_end":91,"column_start":1,"column_end":38}},{"value":"/ [`rdrand`]: https://crates.io/crates/rdrand","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":188145,"byte_end":188192,"line_start":92,"line_end":92,"column_start":1,"column_end":48}},{"value":"/ [`rand_jitter`]: https://crates.io/crates/rand_jitter","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":188193,"byte_end":188250,"line_start":93,"line_end":93,"column_start":1,"column_end":58}},{"value":"/ [`rand_chacha`]: https://crates.io/crates/rand_chacha","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":188251,"byte_end":188308,"line_start":94,"line_end":94,"column_start":1,"column_end":58}},{"value":"/ [`rand_pcg`]: https://crates.io/crates/rand_pcg","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":188309,"byte_end":188360,"line_start":95,"line_end":95,"column_start":1,"column_end":52}},{"value":"/ [`rand_xoshiro`]: https://crates.io/crates/rand_xoshiro","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":188361,"byte_end":188420,"line_start":96,"line_end":96,"column_start":1,"column_end":60}},{"value":"/ [`rng` tag]: https://crates.io/keywords/rng","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":188421,"byte_end":188468,"line_start":97,"line_end":97,"column_start":1,"column_end":48}}]},{"kind":"Mod","id":{"krate":0,"index":634},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/mod.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"name":"adapter","qualname":"::rngs::adapter","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/mod.rs","parent":null,"children":[{"krate":0,"index":635},{"krate":0,"index":667},{"krate":0,"index":751},{"krate":0,"index":752},{"krate":0,"index":755},{"krate":0,"index":758}],"decl_id":null,"docs":" Wrappers / adapters forming RNGs\n","sig":null,"attributes":[{"value":"cfg(feature = \"std\")","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":188518,"byte_end":188541,"line_start":100,"line_end":100,"column_start":1,"column_end":24}},{"value":"/ Wrappers / adapters forming RNGs","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/mod.rs","byte_start":189697,"byte_end":189733,"line_start":9,"line_end":9,"column_start":1,"column_end":37}}]},{"kind":"Struct","id":{"krate":0,"index":2345},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":191209,"byte_end":191216,"line_start":39,"line_end":39,"column_start":12,"column_end":19},"name":"ReadRng","qualname":"::rngs::adapter::read::ReadRng","value":"ReadRng { }","parent":null,"children":[{"krate":0,"index":2347}],"decl_id":null,"docs":" An RNG that reads random bytes straight from any type supporting\n [`std::io::Read`], for example files.","sig":null,"attributes":[{"value":"/ An RNG that reads random bytes straight from any type supporting","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":190420,"byte_end":190488,"line_start":20,"line_end":20,"column_start":1,"column_end":69}},{"value":"/ [`std::io::Read`], for example files.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":190489,"byte_end":190530,"line_start":21,"line_end":21,"column_start":1,"column_end":42}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":190531,"byte_end":190534,"line_start":22,"line_end":22,"column_start":1,"column_end":4}},{"value":"/ This will work best with an infinite reader, but that is not required.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":190535,"byte_end":190609,"line_start":23,"line_end":23,"column_start":1,"column_end":75}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":190610,"byte_end":190613,"line_start":24,"line_end":24,"column_start":1,"column_end":4}},{"value":"/ This can be used with `/dev/urandom` on Unix but it is recommended to use","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":190614,"byte_end":190691,"line_start":25,"line_end":25,"column_start":1,"column_end":78}},{"value":"/ [`OsRng`] instead.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":190692,"byte_end":190714,"line_start":26,"line_end":26,"column_start":1,"column_end":23}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":190715,"byte_end":190718,"line_start":27,"line_end":27,"column_start":1,"column_end":4}},{"value":"/ # Panics","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":190719,"byte_end":190731,"line_start":28,"line_end":28,"column_start":1,"column_end":13}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":190732,"byte_end":190735,"line_start":29,"line_end":29,"column_start":1,"column_end":4}},{"value":"/ `ReadRng` uses [`std::io::Read::read_exact`], which retries on interrupts.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":190736,"byte_end":190814,"line_start":30,"line_end":30,"column_start":1,"column_end":79}},{"value":"/ All other errors from the underlying reader, including when it does not","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":190815,"byte_end":190890,"line_start":31,"line_end":31,"column_start":1,"column_end":76}},{"value":"/ have enough data, will only be reported through [`try_fill_bytes`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":190891,"byte_end":190962,"line_start":32,"line_end":32,"column_start":1,"column_end":72}},{"value":"/ The other [`RngCore`] methods will panic in case of an error.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":190963,"byte_end":191028,"line_start":33,"line_end":33,"column_start":1,"column_end":66}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":191029,"byte_end":191032,"line_start":34,"line_end":34,"column_start":1,"column_end":4}},{"value":"/ [`OsRng`]: crate::rngs::OsRng","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":191033,"byte_end":191066,"line_start":35,"line_end":35,"column_start":1,"column_end":34}},{"value":"/ [`try_fill_bytes`]: RngCore::try_fill_bytes","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":191067,"byte_end":191114,"line_start":36,"line_end":36,"column_start":1,"column_end":48}},{"value":"deprecated(since = \"0.8.4\", note = \"removal due to lack of usage\")","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":191132,"byte_end":191197,"line_start":38,"line_end":38,"column_start":1,"column_end":66}}]},{"kind":"Method","id":{"krate":0,"index":654},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":191324,"byte_end":191327,"line_start":45,"line_end":45,"column_start":12,"column_end":15},"name":"new","qualname":">::new","value":"pub fn new(R) -> ReadRng","parent":null,"children":[],"decl_id":null,"docs":" Create a new `ReadRng` from a `Read`.\n","sig":null,"attributes":[{"value":"/ Create a new `ReadRng` from a `Read`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":191271,"byte_end":191312,"line_start":44,"line_end":44,"column_start":5,"column_end":46}}]},{"kind":"Struct","id":{"krate":0,"index":2351},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":192265,"byte_end":192274,"line_start":82,"line_end":82,"column_start":12,"column_end":21},"name":"ReadError","qualname":"::rngs::adapter::read::ReadError","value":"","parent":null,"children":[],"decl_id":null,"docs":" `ReadRng` error type\n","sig":null,"attributes":[{"value":"/ `ReadRng` error type","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":192183,"byte_end":192207,"line_start":79,"line_end":79,"column_start":1,"column_end":25}},{"value":"deprecated(since = \"0.8.4\")","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":192225,"byte_end":192253,"line_start":81,"line_end":81,"column_start":1,"column_end":29}}]},{"kind":"Struct","id":{"krate":0,"index":2356},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":197445,"byte_end":197457,"line_start":85,"line_end":85,"column_start":12,"column_end":24},"name":"ReseedingRng","qualname":"::rngs::adapter::reseeding::ReseedingRng","value":"","parent":null,"children":[],"decl_id":null,"docs":" A wrapper around any PRNG that implements [`BlockRngCore`], that adds the\n ability to reseed it.","sig":null,"attributes":[{"value":"/ A wrapper around any PRNG that implements [`BlockRngCore`], that adds the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":194623,"byte_end":194700,"line_start":18,"line_end":18,"column_start":1,"column_end":78}},{"value":"/ ability to reseed it.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":194701,"byte_end":194726,"line_start":19,"line_end":19,"column_start":1,"column_end":26}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":194727,"byte_end":194730,"line_start":20,"line_end":20,"column_start":1,"column_end":4}},{"value":"/ `ReseedingRng` reseeds the underlying PRNG in the following cases:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":194731,"byte_end":194801,"line_start":21,"line_end":21,"column_start":1,"column_end":71}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":194802,"byte_end":194805,"line_start":22,"line_end":22,"column_start":1,"column_end":4}},{"value":"/ - On a manual call to [`reseed()`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":194806,"byte_end":194845,"line_start":23,"line_end":23,"column_start":1,"column_end":40}},{"value":"/ - After `clone()`, the clone will be reseeded on first use.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":194846,"byte_end":194909,"line_start":24,"line_end":24,"column_start":1,"column_end":64}},{"value":"/ - When a process is forked on UNIX, the RNGs in both the parent and child","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":194910,"byte_end":194987,"line_start":25,"line_end":25,"column_start":1,"column_end":78}},{"value":"/ processes will be reseeded just before the next call to","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":194988,"byte_end":195049,"line_start":26,"line_end":26,"column_start":1,"column_end":62}},{"value":"/ [`BlockRngCore::generate`], i.e. \"soon\". For ChaCha and Hc128 this is a","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":195050,"byte_end":195127,"line_start":27,"line_end":27,"column_start":1,"column_end":78}},{"value":"/ maximum of fifteen `u32` values before reseeding.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":195128,"byte_end":195183,"line_start":28,"line_end":28,"column_start":1,"column_end":56}},{"value":"/ - After the PRNG has generated a configurable number of random bytes.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":195184,"byte_end":195257,"line_start":29,"line_end":29,"column_start":1,"column_end":74}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":195258,"byte_end":195261,"line_start":30,"line_end":30,"column_start":1,"column_end":4}},{"value":"/ # When should reseeding after a fixed number of generated bytes be used?","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":195262,"byte_end":195338,"line_start":31,"line_end":31,"column_start":1,"column_end":77}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":195339,"byte_end":195342,"line_start":32,"line_end":32,"column_start":1,"column_end":4}},{"value":"/ Reseeding after a fixed number of generated bytes is never strictly","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":195343,"byte_end":195414,"line_start":33,"line_end":33,"column_start":1,"column_end":72}},{"value":"/ *necessary*. Cryptographic PRNGs don't have a limited number of bytes they","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":195415,"byte_end":195493,"line_start":34,"line_end":34,"column_start":1,"column_end":79}},{"value":"/ can output, or at least not a limit reachable in any practical way. There is","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":195494,"byte_end":195574,"line_start":35,"line_end":35,"column_start":1,"column_end":81}},{"value":"/ no such thing as 'running out of entropy'.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":195575,"byte_end":195621,"line_start":36,"line_end":36,"column_start":1,"column_end":47}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":195622,"byte_end":195625,"line_start":37,"line_end":37,"column_start":1,"column_end":4}},{"value":"/ Occasionally reseeding can be seen as some form of 'security in depth'. Even","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":195626,"byte_end":195706,"line_start":38,"line_end":38,"column_start":1,"column_end":81}},{"value":"/ if in the future a cryptographic weakness is found in the CSPRNG being used,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":195707,"byte_end":195787,"line_start":39,"line_end":39,"column_start":1,"column_end":81}},{"value":"/ or a flaw in the implementation, occasionally reseeding should make","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":195788,"byte_end":195859,"line_start":40,"line_end":40,"column_start":1,"column_end":72}},{"value":"/ exploiting it much more difficult or even impossible.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":195860,"byte_end":195917,"line_start":41,"line_end":41,"column_start":1,"column_end":58}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":195918,"byte_end":195921,"line_start":42,"line_end":42,"column_start":1,"column_end":4}},{"value":"/ Use [`ReseedingRng::new`] with a `threshold` of `0` to disable reseeding","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":195922,"byte_end":195998,"line_start":43,"line_end":43,"column_start":1,"column_end":77}},{"value":"/ after a fixed number of generated bytes.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":195999,"byte_end":196043,"line_start":44,"line_end":44,"column_start":1,"column_end":45}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196044,"byte_end":196047,"line_start":45,"line_end":45,"column_start":1,"column_end":4}},{"value":"/ # Limitations","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196048,"byte_end":196065,"line_start":46,"line_end":46,"column_start":1,"column_end":18}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196066,"byte_end":196069,"line_start":47,"line_end":47,"column_start":1,"column_end":4}},{"value":"/ It is recommended that a `ReseedingRng` (including `ThreadRng`) not be used","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196070,"byte_end":196149,"line_start":48,"line_end":48,"column_start":1,"column_end":80}},{"value":"/ from a fork handler.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196150,"byte_end":196174,"line_start":49,"line_end":49,"column_start":1,"column_end":25}},{"value":"/ Use `OsRng` or `getrandom`, or defer your use of the RNG until later.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196175,"byte_end":196248,"line_start":50,"line_end":50,"column_start":1,"column_end":74}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196249,"byte_end":196252,"line_start":51,"line_end":51,"column_start":1,"column_end":4}},{"value":"/ # Error handling","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196253,"byte_end":196273,"line_start":52,"line_end":52,"column_start":1,"column_end":21}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196274,"byte_end":196277,"line_start":53,"line_end":53,"column_start":1,"column_end":4}},{"value":"/ Although unlikely, reseeding the wrapped PRNG can fail. `ReseedingRng` will","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196278,"byte_end":196357,"line_start":54,"line_end":54,"column_start":1,"column_end":80}},{"value":"/ never panic but try to handle the error intelligently through some","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196358,"byte_end":196428,"line_start":55,"line_end":55,"column_start":1,"column_end":71}},{"value":"/ combination of retrying and delaying reseeding until later.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196429,"byte_end":196492,"line_start":56,"line_end":56,"column_start":1,"column_end":64}},{"value":"/ If handling the source error fails `ReseedingRng` will continue generating","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196493,"byte_end":196571,"line_start":57,"line_end":57,"column_start":1,"column_end":79}},{"value":"/ data from the wrapped PRNG without reseeding.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196572,"byte_end":196621,"line_start":58,"line_end":58,"column_start":1,"column_end":50}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196622,"byte_end":196625,"line_start":59,"line_end":59,"column_start":1,"column_end":4}},{"value":"/ Manually calling [`reseed()`] will not have this retry or delay logic, but","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196626,"byte_end":196704,"line_start":60,"line_end":60,"column_start":1,"column_end":79}},{"value":"/ reports the error.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196705,"byte_end":196727,"line_start":61,"line_end":61,"column_start":1,"column_end":23}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196728,"byte_end":196731,"line_start":62,"line_end":62,"column_start":1,"column_end":4}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196732,"byte_end":196745,"line_start":63,"line_end":63,"column_start":1,"column_end":14}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196746,"byte_end":196749,"line_start":64,"line_end":64,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196750,"byte_end":196757,"line_start":65,"line_end":65,"column_start":1,"column_end":8}},{"value":"/ use rand::prelude::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196758,"byte_end":196783,"line_start":66,"line_end":66,"column_start":1,"column_end":26}},{"value":"/ use rand_chacha::ChaCha20Core; // Internal part of ChaChaRng that","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196784,"byte_end":196853,"line_start":67,"line_end":67,"column_start":1,"column_end":70}},{"value":"/ // implements BlockRngCore","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196854,"byte_end":196913,"line_start":68,"line_end":68,"column_start":1,"column_end":60}},{"value":"/ use rand::rngs::OsRng;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196914,"byte_end":196940,"line_start":69,"line_end":69,"column_start":1,"column_end":27}},{"value":"/ use rand::rngs::adapter::ReseedingRng;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196941,"byte_end":196983,"line_start":70,"line_end":70,"column_start":1,"column_end":43}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196984,"byte_end":196987,"line_start":71,"line_end":71,"column_start":1,"column_end":4}},{"value":"/ let prng = ChaCha20Core::from_entropy();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":196988,"byte_end":197032,"line_start":72,"line_end":72,"column_start":1,"column_end":45}},{"value":"/ let mut reseeding_rng = ReseedingRng::new(prng, 0, OsRng);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":197033,"byte_end":197095,"line_start":73,"line_end":73,"column_start":1,"column_end":63}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":197096,"byte_end":197099,"line_start":74,"line_end":74,"column_start":1,"column_end":4}},{"value":"/ println!(\"{}\", reseeding_rng.gen::());","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":197100,"byte_end":197147,"line_start":75,"line_end":75,"column_start":1,"column_end":48}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":197148,"byte_end":197151,"line_start":76,"line_end":76,"column_start":1,"column_end":4}},{"value":"/ let mut cloned_rng = reseeding_rng.clone();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":197152,"byte_end":197199,"line_start":77,"line_end":77,"column_start":1,"column_end":48}},{"value":"/ assert!(reseeding_rng.gen::() != cloned_rng.gen::());","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":197200,"byte_end":197267,"line_start":78,"line_end":78,"column_start":1,"column_end":68}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":197268,"byte_end":197275,"line_start":79,"line_end":79,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":197276,"byte_end":197279,"line_start":80,"line_end":80,"column_start":1,"column_end":4}},{"value":"/ [`BlockRngCore`]: rand_core::block::BlockRngCore","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":197280,"byte_end":197332,"line_start":81,"line_end":81,"column_start":1,"column_end":53}},{"value":"/ [`ReseedingRng::new`]: ReseedingRng::new","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":197333,"byte_end":197377,"line_start":82,"line_end":82,"column_start":1,"column_end":45}},{"value":"/ [`reseed()`]: ReseedingRng::reseed","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":197378,"byte_end":197416,"line_start":83,"line_end":83,"column_start":1,"column_end":39}}]},{"kind":"Method","id":{"krate":0,"index":694},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":197961,"byte_end":197964,"line_start":101,"line_end":101,"column_start":12,"column_end":15},"name":"new","qualname":">::new","value":"pub fn new(R, u64, Rsdr) -> Self","parent":null,"children":[],"decl_id":null,"docs":" Create a new `ReseedingRng` from an existing PRNG, combined with a RNG\n to use as reseeder.","sig":null,"attributes":[{"value":"/ Create a new `ReseedingRng` from an existing PRNG, combined with a RNG","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":197664,"byte_end":197738,"line_start":95,"line_end":95,"column_start":5,"column_end":79}},{"value":"/ to use as reseeder.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":197743,"byte_end":197766,"line_start":96,"line_end":96,"column_start":5,"column_end":28}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":197771,"byte_end":197774,"line_start":97,"line_end":97,"column_start":5,"column_end":8}},{"value":"/ `threshold` sets the number of generated bytes after which to reseed the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":197779,"byte_end":197855,"line_start":98,"line_end":98,"column_start":5,"column_end":81}},{"value":"/ PRNG. Set it to zero to never reseed based on the number of generated","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":197860,"byte_end":197933,"line_start":99,"line_end":99,"column_start":5,"column_end":78}},{"value":"/ values.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":197938,"byte_end":197949,"line_start":100,"line_end":100,"column_start":5,"column_end":16}}]},{"kind":"Method","id":{"krate":0,"index":695},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":198149,"byte_end":198155,"line_start":106,"line_end":106,"column_start":12,"column_end":18},"name":"reseed","qualname":">::reseed","value":"pub fn reseed(&mut Self) -> Result<(), Error>","parent":null,"children":[],"decl_id":null,"docs":" Reseed the internal PRNG.\n","sig":null,"attributes":[{"value":"/ Reseed the internal PRNG.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":198108,"byte_end":198137,"line_start":105,"line_end":105,"column_start":5,"column_end":34}}]},{"kind":"Mod","id":{"krate":0,"index":761},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"name":"mock","qualname":"::rngs::mock","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","parent":null,"children":[{"krate":0,"index":762},{"krate":0,"index":763},{"krate":0,"index":766},{"krate":0,"index":769},{"krate":0,"index":2377},{"krate":0,"index":2380},{"krate":0,"index":2382},{"krate":0,"index":2384},{"krate":0,"index":2385},{"krate":0,"index":2388},{"krate":0,"index":2389},{"krate":0,"index":772},{"krate":0,"index":774}],"decl_id":null,"docs":" Mock random number generator\n","sig":null,"attributes":[{"value":"/ Mock random number generator","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":207034,"byte_end":207066,"line_start":9,"line_end":9,"column_start":1,"column_end":33}}]},{"kind":"Struct","id":{"krate":0,"index":2377},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":207736,"byte_end":207743,"line_start":32,"line_end":32,"column_start":12,"column_end":19},"name":"StepRng","qualname":"::rngs::mock::StepRng","value":"StepRng { }","parent":null,"children":[{"krate":0,"index":2378},{"krate":0,"index":2379}],"decl_id":null,"docs":" A simple implementation of `RngCore` for testing purposes.","sig":null,"attributes":[{"value":"/ A simple implementation of `RngCore` for testing purposes.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":207174,"byte_end":207236,"line_start":16,"line_end":16,"column_start":1,"column_end":63}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":207237,"byte_end":207240,"line_start":17,"line_end":17,"column_start":1,"column_end":4}},{"value":"/ This generates an arithmetic sequence (i.e. adds a constant each step)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":207241,"byte_end":207315,"line_start":18,"line_end":18,"column_start":1,"column_end":75}},{"value":"/ over a `u64` number, using wrapping arithmetic. If the increment is 0","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":207316,"byte_end":207389,"line_start":19,"line_end":19,"column_start":1,"column_end":74}},{"value":"/ the generator yields a constant.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":207390,"byte_end":207426,"line_start":20,"line_end":20,"column_start":1,"column_end":37}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":207427,"byte_end":207430,"line_start":21,"line_end":21,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":207431,"byte_end":207438,"line_start":22,"line_end":22,"column_start":1,"column_end":8}},{"value":"/ use rand::Rng;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":207439,"byte_end":207457,"line_start":23,"line_end":23,"column_start":1,"column_end":19}},{"value":"/ use rand::rngs::mock::StepRng;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":207458,"byte_end":207492,"line_start":24,"line_end":24,"column_start":1,"column_end":35}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":207493,"byte_end":207496,"line_start":25,"line_end":25,"column_start":1,"column_end":4}},{"value":"/ let mut my_rng = StepRng::new(2, 1);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":207497,"byte_end":207537,"line_start":26,"line_end":26,"column_start":1,"column_end":41}},{"value":"/ let sample: [u64; 3] = my_rng.gen();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":207538,"byte_end":207578,"line_start":27,"line_end":27,"column_start":1,"column_end":41}},{"value":"/ assert_eq!(sample, [2, 3, 4]);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":207579,"byte_end":207613,"line_start":28,"line_end":28,"column_start":1,"column_end":35}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":207614,"byte_end":207621,"line_start":29,"line_end":29,"column_start":1,"column_end":8}}]},{"kind":"Method","id":{"krate":0,"index":773},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":207933,"byte_end":207936,"line_start":40,"line_end":40,"column_start":12,"column_end":15},"name":"new","qualname":"::new","value":"pub fn new(u64, u64) -> Self","parent":null,"children":[],"decl_id":null,"docs":" Create a `StepRng`, yielding an arithmetic sequence starting with\n `initial` and incremented by `increment` each time.\n","sig":null,"attributes":[{"value":"/ Create a `StepRng`, yielding an arithmetic sequence starting with","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":207792,"byte_end":207861,"line_start":38,"line_end":38,"column_start":5,"column_end":74}},{"value":"/ `initial` and incremented by `increment` each time.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":207866,"byte_end":207921,"line_start":39,"line_end":39,"column_start":5,"column_end":60}}]},{"kind":"Struct","id":{"krate":0,"index":2391},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","byte_start":210439,"byte_end":210445,"line_start":34,"line_end":34,"column_start":12,"column_end":18},"name":"StdRng","qualname":"::rngs::std::StdRng","value":"","parent":null,"children":[],"decl_id":null,"docs":" The standard RNG. The PRNG algorithm in `StdRng` is chosen to be efficient\n on the current platform, to be statistically strong and unpredictable\n (meaning a cryptographically secure PRNG).","sig":null,"attributes":[{"value":"/ The standard RNG. The PRNG algorithm in `StdRng` is chosen to be efficient","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","byte_start":209509,"byte_end":209587,"line_start":17,"line_end":17,"column_start":1,"column_end":79}},{"value":"/ on the current platform, to be statistically strong and unpredictable","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","byte_start":209588,"byte_end":209661,"line_start":18,"line_end":18,"column_start":1,"column_end":74}},{"value":"/ (meaning a cryptographically secure PRNG).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","byte_start":209662,"byte_end":209708,"line_start":19,"line_end":19,"column_start":1,"column_end":47}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","byte_start":209709,"byte_end":209712,"line_start":20,"line_end":20,"column_start":1,"column_end":4}},{"value":"/ The current algorithm used is the ChaCha block cipher with 12 rounds. Please","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","byte_start":209713,"byte_end":209793,"line_start":21,"line_end":21,"column_start":1,"column_end":81}},{"value":"/ see this relevant [rand issue] for the discussion. This may change as new ","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","byte_start":209794,"byte_end":209872,"line_start":22,"line_end":22,"column_start":1,"column_end":79}},{"value":"/ evidence of cipher security and performance becomes available.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","byte_start":209873,"byte_end":209939,"line_start":23,"line_end":23,"column_start":1,"column_end":67}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","byte_start":209940,"byte_end":209943,"line_start":24,"line_end":24,"column_start":1,"column_end":4}},{"value":"/ The algorithm is deterministic but should not be considered reproducible","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","byte_start":209944,"byte_end":210020,"line_start":25,"line_end":25,"column_start":1,"column_end":77}},{"value":"/ due to dependence on configuration and possible replacement in future","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","byte_start":210021,"byte_end":210094,"line_start":26,"line_end":26,"column_start":1,"column_end":74}},{"value":"/ library versions. For a secure reproducible generator, we recommend use of","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","byte_start":210095,"byte_end":210173,"line_start":27,"line_end":27,"column_start":1,"column_end":79}},{"value":"/ the [rand_chacha] crate directly.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","byte_start":210174,"byte_end":210211,"line_start":28,"line_end":28,"column_start":1,"column_end":38}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","byte_start":210212,"byte_end":210215,"line_start":29,"line_end":29,"column_start":1,"column_end":4}},{"value":"/ [rand_chacha]: https://crates.io/crates/rand_chacha","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","byte_start":210216,"byte_end":210271,"line_start":30,"line_end":30,"column_start":1,"column_end":56}},{"value":"/ [rand issue]: https://github.com/rust-random/rand/issues/932","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","byte_start":210272,"byte_end":210336,"line_start":31,"line_end":31,"column_start":1,"column_end":65}}]},{"kind":"Struct","id":{"krate":0,"index":2405},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":214779,"byte_end":214788,"line_start":62,"line_end":62,"column_start":12,"column_end":21},"name":"ThreadRng","qualname":"::rngs::thread::ThreadRng","value":"ThreadRng { }","parent":null,"children":[{"krate":0,"index":2406}],"decl_id":null,"docs":" A reference to the thread-local generator","sig":null,"attributes":[{"value":"/ A reference to the thread-local generator","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":213625,"byte_end":213670,"line_start":40,"line_end":40,"column_start":1,"column_end":46}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":213671,"byte_end":213674,"line_start":41,"line_end":41,"column_start":1,"column_end":4}},{"value":"/ An instance can be obtained via [`thread_rng`] or via `ThreadRng::default()`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":213675,"byte_end":213756,"line_start":42,"line_end":42,"column_start":1,"column_end":82}},{"value":"/ This handle is safe to use everywhere (including thread-local destructors),","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":213757,"byte_end":213836,"line_start":43,"line_end":43,"column_start":1,"column_end":80}},{"value":"/ though it is recommended not to use inside a fork handler.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":213837,"byte_end":213899,"line_start":44,"line_end":44,"column_start":1,"column_end":63}},{"value":"/ The handle cannot be passed between threads (is not `Send` or `Sync`).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":213900,"byte_end":213974,"line_start":45,"line_end":45,"column_start":1,"column_end":75}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":213975,"byte_end":213978,"line_start":46,"line_end":46,"column_start":1,"column_end":4}},{"value":"/ `ThreadRng` uses the same PRNG as [`StdRng`] for security and performance","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":213979,"byte_end":214056,"line_start":47,"line_end":47,"column_start":1,"column_end":78}},{"value":"/ and is automatically seeded from [`OsRng`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":214057,"byte_end":214104,"line_start":48,"line_end":48,"column_start":1,"column_end":48}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":214105,"byte_end":214108,"line_start":49,"line_end":49,"column_start":1,"column_end":4}},{"value":"/ Unlike `StdRng`, `ThreadRng` uses the [`ReseedingRng`] wrapper to reseed","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":214109,"byte_end":214186,"line_start":50,"line_end":50,"column_start":1,"column_end":78}},{"value":"/ the PRNG from fresh entropy every 64 kiB of random data as well as after a","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":214187,"byte_end":214265,"line_start":51,"line_end":51,"column_start":1,"column_end":79}},{"value":"/ fork on Unix (though not quite immediately; see documentation of","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":214266,"byte_end":214334,"line_start":52,"line_end":52,"column_start":1,"column_end":69}},{"value":"/ [`ReseedingRng`]).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":214335,"byte_end":214357,"line_start":53,"line_end":53,"column_start":1,"column_end":23}},{"value":"/ Note that the reseeding is done as an extra precaution against side-channel","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":214358,"byte_end":214437,"line_start":54,"line_end":54,"column_start":1,"column_end":80}},{"value":"/ attacks and mis-use (e.g. if somehow weak entropy were supplied initially).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":214438,"byte_end":214517,"line_start":55,"line_end":55,"column_start":1,"column_end":80}},{"value":"/ The PRNG algorithms used are assumed to be secure.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":214518,"byte_end":214572,"line_start":56,"line_end":56,"column_start":1,"column_end":55}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":214573,"byte_end":214576,"line_start":57,"line_end":57,"column_start":1,"column_end":4}},{"value":"/ [`ReseedingRng`]: crate::rngs::adapter::ReseedingRng","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":214577,"byte_end":214633,"line_start":58,"line_end":58,"column_start":1,"column_end":57}},{"value":"/ [`StdRng`]: crate::rngs::StdRng","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":214634,"byte_end":214669,"line_start":59,"line_end":59,"column_start":1,"column_end":36}}]},{"kind":"Function","id":{"krate":0,"index":843},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":215875,"byte_end":215885,"line_start":88,"line_end":88,"column_start":8,"column_end":18},"name":"thread_rng","qualname":"::rngs::thread::thread_rng","value":"pub fn thread_rng() -> ThreadRng","parent":null,"children":[],"decl_id":null,"docs":" Retrieve the lazily-initialized thread-local random number generator,\n seeded by the system. Intended to be used in method chaining style,\n e.g. `thread_rng().gen::()`, or cached locally, e.g.\n `let mut rng = thread_rng();`. Invoked by the `Default` trait, making\n `ThreadRng::default()` equivalent.","sig":null,"attributes":[{"value":"/ Retrieve the lazily-initialized thread-local random number generator,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":215424,"byte_end":215497,"line_start":80,"line_end":80,"column_start":1,"column_end":74}},{"value":"/ seeded by the system. Intended to be used in method chaining style,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":215498,"byte_end":215569,"line_start":81,"line_end":81,"column_start":1,"column_end":72}},{"value":"/ e.g. `thread_rng().gen::()`, or cached locally, e.g.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":215570,"byte_end":215631,"line_start":82,"line_end":82,"column_start":1,"column_end":62}},{"value":"/ `let mut rng = thread_rng();`. Invoked by the `Default` trait, making","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":215632,"byte_end":215706,"line_start":83,"line_end":83,"column_start":1,"column_end":75}},{"value":"/ `ThreadRng::default()` equivalent.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":215707,"byte_end":215745,"line_start":84,"line_end":84,"column_start":1,"column_end":39}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":215746,"byte_end":215749,"line_start":85,"line_end":85,"column_start":1,"column_end":4}},{"value":"/ For more information see [`ThreadRng`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":215750,"byte_end":215793,"line_start":86,"line_end":86,"column_start":1,"column_end":44}}]},{"kind":"Mod","id":{"krate":0,"index":862},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"name":"seq","qualname":"::seq","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","parent":null,"children":[{"krate":0,"index":863},{"krate":0,"index":985},{"krate":0,"index":988},{"krate":0,"index":991},{"krate":0,"index":992},{"krate":0,"index":995},{"krate":0,"index":998},{"krate":0,"index":1001},{"krate":0,"index":1004},{"krate":0,"index":1032},{"krate":0,"index":1042},{"krate":0,"index":1086},{"krate":0,"index":2449},{"krate":0,"index":2456},{"krate":0,"index":1088},{"krate":0,"index":1096},{"krate":0,"index":1101}],"decl_id":null,"docs":" Sequence-related functionality","sig":null,"attributes":[{"value":"/ Sequence-related functionality","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":217770,"byte_end":217804,"line_start":9,"line_end":9,"column_start":1,"column_end":35}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":217805,"byte_end":217808,"line_start":10,"line_end":10,"column_start":1,"column_end":4}},{"value":"/ This module provides:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":217809,"byte_end":217834,"line_start":11,"line_end":11,"column_start":1,"column_end":26}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":217835,"byte_end":217838,"line_start":12,"line_end":12,"column_start":1,"column_end":4}},{"value":"/ * [`SliceRandom`] slice sampling and mutation","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":217839,"byte_end":217890,"line_start":13,"line_end":13,"column_start":1,"column_end":52}},{"value":"/ * [`IteratorRandom`] iterator sampling","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":217891,"byte_end":217935,"line_start":14,"line_end":14,"column_start":1,"column_end":45}},{"value":"/ * [`index::sample`] low-level API to choose multiple indices from","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":217936,"byte_end":218007,"line_start":15,"line_end":15,"column_start":1,"column_end":72}},{"value":"/ `0..length`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":218008,"byte_end":218027,"line_start":16,"line_end":16,"column_start":1,"column_end":20}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":218028,"byte_end":218031,"line_start":17,"line_end":17,"column_start":1,"column_end":4}},{"value":"/ Also see:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":218032,"byte_end":218045,"line_start":18,"line_end":18,"column_start":1,"column_end":14}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":218046,"byte_end":218049,"line_start":19,"line_end":19,"column_start":1,"column_end":4}},{"value":"/ * [`crate::distributions::WeightedIndex`] distribution which provides","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":218050,"byte_end":218125,"line_start":20,"line_end":20,"column_start":1,"column_end":76}},{"value":"/ weighted index sampling.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":218126,"byte_end":218158,"line_start":21,"line_end":21,"column_start":1,"column_end":33}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":218159,"byte_end":218162,"line_start":22,"line_end":22,"column_start":1,"column_end":4}},{"value":"/ In order to make results reproducible across 32-64 bit architectures, all","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":218163,"byte_end":218240,"line_start":23,"line_end":23,"column_start":1,"column_end":78}},{"value":"/ `usize` indices are sampled as a `u32` where possible (also providing a","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":218241,"byte_end":218316,"line_start":24,"line_end":24,"column_start":1,"column_end":76}},{"value":"/ small performance boost in some cases).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":218317,"byte_end":218360,"line_start":25,"line_end":25,"column_start":1,"column_end":44}}]},{"kind":"Mod","id":{"krate":0,"index":863},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"name":"index","qualname":"::seq::index","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","parent":null,"children":[{"krate":0,"index":864},{"krate":0,"index":867},{"krate":0,"index":868},{"krate":0,"index":871},{"krate":0,"index":874},{"krate":0,"index":877},{"krate":0,"index":880},{"krate":0,"index":881},{"krate":0,"index":884},{"krate":0,"index":885},{"krate":0,"index":888},{"krate":0,"index":891},{"krate":0,"index":2416},{"krate":0,"index":2423},{"krate":0,"index":2425},{"krate":0,"index":894},{"krate":0,"index":901},{"krate":0,"index":905},{"krate":0,"index":910},{"krate":0,"index":912},{"krate":0,"index":2427},{"krate":0,"index":2435},{"krate":0,"index":914},{"krate":0,"index":921},{"krate":0,"index":2438},{"krate":0,"index":2445},{"krate":0,"index":2447},{"krate":0,"index":923},{"krate":0,"index":930},{"krate":0,"index":931},{"krate":0,"index":938},{"krate":0,"index":942},{"krate":0,"index":965},{"krate":0,"index":968},{"krate":0,"index":970},{"krate":0,"index":974},{"krate":0,"index":978},{"krate":0,"index":982}],"decl_id":null,"docs":" Low-level API for sampling indices\n","sig":null,"attributes":[{"value":"cfg(feature = \"alloc\")","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":218363,"byte_end":218388,"line_start":28,"line_end":28,"column_start":1,"column_end":26}},{"value":"/ Low-level API for sampling indices","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":264071,"byte_end":264109,"line_start":9,"line_end":9,"column_start":1,"column_end":39}}]},{"kind":"TupleVariant","id":{"krate":0,"index":2417},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":264867,"byte_end":264870,"line_start":35,"line_end":35,"column_start":5,"column_end":8},"name":"U32","qualname":"::seq::index::IndexVec::U32","value":"IndexVec::U32(Vec)","parent":{"krate":0,"index":2416},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":2420},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":264905,"byte_end":264910,"line_start":37,"line_end":37,"column_start":5,"column_end":10},"name":"USize","qualname":"::seq::index::IndexVec::USize","value":"IndexVec::USize(Vec)","parent":{"krate":0,"index":2416},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Enum","id":{"krate":0,"index":2416},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":264833,"byte_end":264841,"line_start":33,"line_end":33,"column_start":10,"column_end":18},"name":"IndexVec","qualname":"::seq::index::IndexVec","value":"pub enum IndexVec { U32(Vec), USize(Vec), }","parent":null,"children":[{"krate":0,"index":2417},{"krate":0,"index":2420}],"decl_id":null,"docs":" A vector of indices.","sig":null,"attributes":[{"value":"/ A vector of indices.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":264655,"byte_end":264679,"line_start":28,"line_end":28,"column_start":1,"column_end":25}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":264680,"byte_end":264683,"line_start":29,"line_end":29,"column_start":1,"column_end":4}},{"value":"/ Multiple internal representations are possible.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":264684,"byte_end":264735,"line_start":30,"line_end":30,"column_start":1,"column_end":52}}]},{"kind":"Method","id":{"krate":0,"index":895},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":265006,"byte_end":265009,"line_start":43,"line_end":43,"column_start":12,"column_end":15},"name":"len","qualname":"::len","value":"pub fn len(&Self) -> usize","parent":null,"children":[],"decl_id":null,"docs":" Returns the number of indices\n","sig":null,"attributes":[{"value":"/ Returns the number of indices","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":264947,"byte_end":264980,"line_start":41,"line_end":41,"column_start":5,"column_end":38}},{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":264985,"byte_end":264994,"line_start":42,"line_end":42,"column_start":5,"column_end":14}}]},{"kind":"Method","id":{"krate":0,"index":896},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":265227,"byte_end":265235,"line_start":52,"line_end":52,"column_start":12,"column_end":20},"name":"is_empty","qualname":"::is_empty","value":"pub fn is_empty(&Self) -> bool","parent":null,"children":[],"decl_id":null,"docs":" Returns `true` if the length is 0.\n","sig":null,"attributes":[{"value":"/ Returns `true` if the length is 0.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":265163,"byte_end":265201,"line_start":50,"line_end":50,"column_start":5,"column_end":43}},{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":265206,"byte_end":265215,"line_start":51,"line_end":51,"column_start":5,"column_end":14}}]},{"kind":"Method","id":{"krate":0,"index":897},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":265572,"byte_end":265577,"line_start":64,"line_end":64,"column_start":12,"column_end":17},"name":"index","qualname":"::index","value":"pub fn index(&Self, usize) -> usize","parent":null,"children":[],"decl_id":null,"docs":" Return the value at the given `index`.","sig":null,"attributes":[{"value":"/ Return the value at the given `index`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":265398,"byte_end":265440,"line_start":59,"line_end":59,"column_start":5,"column_end":47}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":265445,"byte_end":265448,"line_start":60,"line_end":60,"column_start":5,"column_end":8}},{"value":"/ (Note: we cannot implement [`std::ops::Index`] because of lifetime","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":265453,"byte_end":265523,"line_start":61,"line_end":61,"column_start":5,"column_end":75}},{"value":"/ restrictions.)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":265528,"byte_end":265546,"line_start":62,"line_end":62,"column_start":5,"column_end":23}},{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":265551,"byte_end":265560,"line_start":63,"line_end":63,"column_start":5,"column_end":14}}]},{"kind":"Method","id":{"krate":0,"index":898},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":265856,"byte_end":265864,"line_start":73,"line_end":73,"column_start":12,"column_end":20},"name":"into_vec","qualname":"::into_vec","value":"pub fn into_vec(Self) -> Vec","parent":null,"children":[],"decl_id":null,"docs":" Return result as a `Vec`. Conversion may or may not be trivial.\n","sig":null,"attributes":[{"value":"/ Return result as a `Vec`. Conversion may or may not be trivial.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":265756,"byte_end":265830,"line_start":71,"line_end":71,"column_start":5,"column_end":79}},{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":265835,"byte_end":265844,"line_start":72,"line_end":72,"column_start":5,"column_end":14}}]},{"kind":"Method","id":{"krate":0,"index":900},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":266129,"byte_end":266133,"line_start":82,"line_end":82,"column_start":12,"column_end":16},"name":"iter","qualname":"::iter","value":"pub fn iter(&Self) -> IndexVecIter","parent":null,"children":[],"decl_id":null,"docs":" Iterate over the indices as a sequence of `usize` values\n","sig":null,"attributes":[{"value":"/ Iterate over the indices as a sequence of `usize` values","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":266043,"byte_end":266103,"line_start":80,"line_end":80,"column_start":5,"column_end":65}},{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":266108,"byte_end":266117,"line_start":81,"line_end":81,"column_start":5,"column_end":14}}]},{"kind":"TupleVariant","id":{"krate":0,"index":2429},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":267698,"byte_end":267701,"line_start":138,"line_end":138,"column_start":5,"column_end":8},"name":"U32","qualname":"::seq::index::IndexVecIter::U32","value":"IndexVecIter::U32(slice::Iter)","parent":{"krate":0,"index":2427},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":2432},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":267748,"byte_end":267753,"line_start":140,"line_end":140,"column_start":5,"column_end":10},"name":"USize","qualname":"::seq::index::IndexVecIter::USize","value":"IndexVecIter::USize(slice::Iter)","parent":{"krate":0,"index":2427},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Enum","id":{"krate":0,"index":2427},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":267656,"byte_end":267668,"line_start":136,"line_end":136,"column_start":10,"column_end":22},"name":"IndexVecIter","qualname":"::seq::index::IndexVecIter","value":"pub enum IndexVecIter<'a> { U32(slice::Iter), USize(slice::Iter), }","parent":null,"children":[{"krate":0,"index":2429},{"krate":0,"index":2432}],"decl_id":null,"docs":" Return type of `IndexVec::iter`.\n","sig":null,"attributes":[{"value":"/ Return type of `IndexVec::iter`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":267593,"byte_end":267629,"line_start":134,"line_end":134,"column_start":1,"column_end":37}}]},{"kind":"TupleVariant","id":{"krate":0,"index":2439},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":268489,"byte_end":268492,"line_start":170,"line_end":170,"column_start":5,"column_end":8},"name":"U32","qualname":"::seq::index::IndexVecIntoIter::U32","value":"IndexVecIntoIter::U32(vec::IntoIter)","parent":{"krate":0,"index":2438},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":2442},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":268537,"byte_end":268542,"line_start":172,"line_end":172,"column_start":5,"column_end":10},"name":"USize","qualname":"::seq::index::IndexVecIntoIter::USize","value":"IndexVecIntoIter::USize(vec::IntoIter)","parent":{"krate":0,"index":2438},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Enum","id":{"krate":0,"index":2438},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":268447,"byte_end":268463,"line_start":168,"line_end":168,"column_start":10,"column_end":26},"name":"IndexVecIntoIter","qualname":"::seq::index::IndexVecIntoIter","value":"pub enum IndexVecIntoIter {\n U32(vec::IntoIter),\n USize(vec::IntoIter),\n}","parent":null,"children":[{"krate":0,"index":2439},{"krate":0,"index":2442}],"decl_id":null,"docs":" Return type of `IndexVec::into_iter`.\n","sig":null,"attributes":[{"value":"/ Return type of `IndexVec::into_iter`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":268372,"byte_end":268413,"line_start":166,"line_end":166,"column_start":1,"column_end":42}}]},{"kind":"Function","id":{"krate":0,"index":931},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":270218,"byte_end":270224,"line_start":222,"line_end":222,"column_start":8,"column_end":14},"name":"sample","qualname":"::seq::index::sample","value":"pub fn sample(&mut R, usize, usize) -> IndexVec where R: Rng + ?Sized","parent":null,"children":[],"decl_id":null,"docs":" Randomly sample exactly `amount` distinct indices from `0..length`, and\n return them in random order (fully shuffled).","sig":null,"attributes":[{"value":"/ Randomly sample exactly `amount` distinct indices from `0..length`, and","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":269150,"byte_end":269225,"line_start":200,"line_end":200,"column_start":1,"column_end":76}},{"value":"/ return them in random order (fully shuffled).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":269226,"byte_end":269275,"line_start":201,"line_end":201,"column_start":1,"column_end":50}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":269276,"byte_end":269279,"line_start":202,"line_end":202,"column_start":1,"column_end":4}},{"value":"/ This method is used internally by the slice sampling methods, but it can","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":269280,"byte_end":269356,"line_start":203,"line_end":203,"column_start":1,"column_end":77}},{"value":"/ sometimes be useful to have the indices themselves so this is provided as","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":269357,"byte_end":269434,"line_start":204,"line_end":204,"column_start":1,"column_end":78}},{"value":"/ an alternative.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":269435,"byte_end":269454,"line_start":205,"line_end":205,"column_start":1,"column_end":20}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":269455,"byte_end":269458,"line_start":206,"line_end":206,"column_start":1,"column_end":4}},{"value":"/ The implementation used is not specified; we automatically select the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":269459,"byte_end":269532,"line_start":207,"line_end":207,"column_start":1,"column_end":74}},{"value":"/ fastest available algorithm for the `length` and `amount` parameters","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":269533,"byte_end":269605,"line_start":208,"line_end":208,"column_start":1,"column_end":73}},{"value":"/ (based on detailed profiling on an Intel Haswell CPU). Roughly speaking,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":269606,"byte_end":269682,"line_start":209,"line_end":209,"column_start":1,"column_end":77}},{"value":"/ complexity is `O(amount)`, except that when `amount` is small, performance","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":269683,"byte_end":269761,"line_start":210,"line_end":210,"column_start":1,"column_end":79}},{"value":"/ is closer to `O(amount^2)`, and when `length` is close to `amount` then","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":269762,"byte_end":269837,"line_start":211,"line_end":211,"column_start":1,"column_end":76}},{"value":"/ `O(length)`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":269838,"byte_end":269854,"line_start":212,"line_end":212,"column_start":1,"column_end":17}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":269855,"byte_end":269858,"line_start":213,"line_end":213,"column_start":1,"column_end":4}},{"value":"/ Note that performance is significantly better over `u32` indices than over","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":269859,"byte_end":269937,"line_start":214,"line_end":214,"column_start":1,"column_end":79}},{"value":"/ `u64` indices. Because of this we hide the underlying type behind an","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":269938,"byte_end":270010,"line_start":215,"line_end":215,"column_start":1,"column_end":73}},{"value":"/ abstraction, `IndexVec`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":270011,"byte_end":270039,"line_start":216,"line_end":216,"column_start":1,"column_end":29}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":270040,"byte_end":270043,"line_start":217,"line_end":217,"column_start":1,"column_end":4}},{"value":"/ If an allocation-free `no_std` function is required, it is suggested","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":270044,"byte_end":270116,"line_start":218,"line_end":218,"column_start":1,"column_end":73}},{"value":"/ to adapt the internal `sample_floyd` implementation.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":270117,"byte_end":270173,"line_start":219,"line_end":219,"column_start":1,"column_end":57}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":270174,"byte_end":270177,"line_start":220,"line_end":220,"column_start":1,"column_end":4}},{"value":"/ Panics if `amount > length`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":270178,"byte_end":270210,"line_start":221,"line_end":221,"column_start":1,"column_end":33}}]},{"kind":"Function","id":{"krate":0,"index":938},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":272473,"byte_end":272488,"line_start":277,"line_end":277,"column_start":8,"column_end":23},"name":"sample_weighted","qualname":"::seq::index::sample_weighted","value":"pub fn sample_weighted(&mut R, usize, F, usize)\n-> Result where R: Rng + ?Sized, F: Fn(usize) -> X,\nX: Into","parent":null,"children":[],"decl_id":null,"docs":" Randomly sample exactly `amount` distinct indices from `0..length`, and\n return them in an arbitrary order (there is no guarantee of shuffling or\n ordering). The weights are to be provided by the input function `weights`,\n which will be called once for each index.","sig":null,"attributes":[{"value":"/ Randomly sample exactly `amount` distinct indices from `0..length`, and","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":271699,"byte_end":271774,"line_start":261,"line_end":261,"column_start":1,"column_end":76}},{"value":"/ return them in an arbitrary order (there is no guarantee of shuffling or","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":271775,"byte_end":271851,"line_start":262,"line_end":262,"column_start":1,"column_end":77}},{"value":"/ ordering). The weights are to be provided by the input function `weights`,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":271852,"byte_end":271930,"line_start":263,"line_end":263,"column_start":1,"column_end":79}},{"value":"/ which will be called once for each index.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":271931,"byte_end":271976,"line_start":264,"line_end":264,"column_start":1,"column_end":46}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":271977,"byte_end":271980,"line_start":265,"line_end":265,"column_start":1,"column_end":4}},{"value":"/ This method is used internally by the slice sampling methods, but it can","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":271981,"byte_end":272057,"line_start":266,"line_end":266,"column_start":1,"column_end":77}},{"value":"/ sometimes be useful to have the indices themselves so this is provided as","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":272058,"byte_end":272135,"line_start":267,"line_end":267,"column_start":1,"column_end":78}},{"value":"/ an alternative.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":272136,"byte_end":272155,"line_start":268,"line_end":268,"column_start":1,"column_end":20}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":272156,"byte_end":272159,"line_start":269,"line_end":269,"column_start":1,"column_end":4}},{"value":"/ This implementation uses `O(length + amount)` space and `O(length)` time","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":272160,"byte_end":272236,"line_start":270,"line_end":270,"column_start":1,"column_end":77}},{"value":"/ if the \"nightly\" feature is enabled, or `O(length)` space and","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":272237,"byte_end":272302,"line_start":271,"line_end":271,"column_start":1,"column_end":66}},{"value":"/ `O(length + amount * log length)` time otherwise.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":272303,"byte_end":272356,"line_start":272,"line_end":272,"column_start":1,"column_end":54}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":272357,"byte_end":272360,"line_start":273,"line_end":273,"column_start":1,"column_end":4}},{"value":"/ Panics if `amount > length`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":272361,"byte_end":272393,"line_start":274,"line_end":274,"column_start":1,"column_end":33}},{"value":"cfg(feature = \"std\")","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":272394,"byte_end":272417,"line_start":275,"line_end":275,"column_start":1,"column_end":24}}]},{"kind":"Trait","id":{"krate":0,"index":1004},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219310,"byte_end":219321,"line_start":59,"line_end":59,"column_start":11,"column_end":22},"name":"SliceRandom","qualname":"::seq::SliceRandom","value":"SliceRandom","parent":null,"children":[{"krate":0,"index":1005},{"krate":0,"index":1006},{"krate":0,"index":1008},{"krate":0,"index":1010},{"krate":0,"index":1012},{"krate":0,"index":1018},{"krate":0,"index":1024},{"krate":0,"index":1028},{"krate":0,"index":1030}],"decl_id":null,"docs":" Extension trait on slices, providing random mutation and sampling methods.","sig":null,"attributes":[{"value":"/ Extension trait on slices, providing random mutation and sampling methods.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":218728,"byte_end":218806,"line_start":41,"line_end":41,"column_start":1,"column_end":79}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":218807,"byte_end":218810,"line_start":42,"line_end":42,"column_start":1,"column_end":4}},{"value":"/ This trait is implemented on all `[T]` slice types, providing several","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":218811,"byte_end":218884,"line_start":43,"line_end":43,"column_start":1,"column_end":74}},{"value":"/ methods for choosing and shuffling elements. You must `use` this trait:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":218885,"byte_end":218960,"line_start":44,"line_end":44,"column_start":1,"column_end":76}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":218961,"byte_end":218964,"line_start":45,"line_end":45,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":218965,"byte_end":218972,"line_start":46,"line_end":46,"column_start":1,"column_end":8}},{"value":"/ use rand::seq::SliceRandom;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":218973,"byte_end":219004,"line_start":47,"line_end":47,"column_start":1,"column_end":32}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219005,"byte_end":219008,"line_start":48,"line_end":48,"column_start":1,"column_end":4}},{"value":"/ let mut rng = rand::thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219009,"byte_end":219046,"line_start":49,"line_end":49,"column_start":1,"column_end":38}},{"value":"/ let mut bytes = \"Hello, random!\".to_string().into_bytes();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219047,"byte_end":219109,"line_start":50,"line_end":50,"column_start":1,"column_end":63}},{"value":"/ bytes.shuffle(&mut rng);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219110,"byte_end":219138,"line_start":51,"line_end":51,"column_start":1,"column_end":29}},{"value":"/ let str = String::from_utf8(bytes).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219139,"byte_end":219187,"line_start":52,"line_end":52,"column_start":1,"column_end":49}},{"value":"/ println!(\"{}\", str);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219188,"byte_end":219212,"line_start":53,"line_end":53,"column_start":1,"column_end":25}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219213,"byte_end":219220,"line_start":54,"line_end":54,"column_start":1,"column_end":8}},{"value":"/ Example output (non-deterministic):","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219221,"byte_end":219260,"line_start":55,"line_end":55,"column_start":1,"column_end":40}},{"value":"/ ```none","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219261,"byte_end":219272,"line_start":56,"line_end":56,"column_start":1,"column_end":12}},{"value":"/ l,nmroHado !le","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219273,"byte_end":219291,"line_start":57,"line_end":57,"column_start":1,"column_end":19}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219292,"byte_end":219299,"line_start":58,"line_end":58,"column_start":1,"column_end":8}}]},{"kind":"Type","id":{"krate":0,"index":1005},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219359,"byte_end":219363,"line_start":61,"line_end":61,"column_start":10,"column_end":14},"name":"Item","qualname":"::seq::SliceRandom::Item","value":"type Item;","parent":{"krate":0,"index":1004},"children":[],"decl_id":null,"docs":" The element type.\n","sig":null,"attributes":[{"value":"/ The element type.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219328,"byte_end":219349,"line_start":60,"line_end":60,"column_start":5,"column_end":26}}]},{"kind":"Method","id":{"krate":0,"index":1006},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219849,"byte_end":219855,"line_start":79,"line_end":79,"column_start":8,"column_end":14},"name":"choose","qualname":"::seq::SliceRandom::choose","value":"pub fn choose(&Self, &mut R) -> Option<&Self::Item> where R: Rng + ?Sized","parent":{"krate":0,"index":1004},"children":[],"decl_id":null,"docs":" Returns a reference to one random element of the slice, or `None` if the\n slice is empty.","sig":null,"attributes":[{"value":"/ Returns a reference to one random element of the slice, or `None` if the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219370,"byte_end":219446,"line_start":63,"line_end":63,"column_start":5,"column_end":81}},{"value":"/ slice is empty.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219451,"byte_end":219470,"line_start":64,"line_end":64,"column_start":5,"column_end":24}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219475,"byte_end":219478,"line_start":65,"line_end":65,"column_start":5,"column_end":8}},{"value":"/ For slices, complexity is `O(1)`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219483,"byte_end":219520,"line_start":66,"line_end":66,"column_start":5,"column_end":42}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219525,"byte_end":219528,"line_start":67,"line_end":67,"column_start":5,"column_end":8}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219533,"byte_end":219546,"line_start":68,"line_end":68,"column_start":5,"column_end":18}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219551,"byte_end":219554,"line_start":69,"line_end":69,"column_start":5,"column_end":8}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219559,"byte_end":219566,"line_start":70,"line_end":70,"column_start":5,"column_end":12}},{"value":"/ use rand::thread_rng;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219571,"byte_end":219596,"line_start":71,"line_end":71,"column_start":5,"column_end":30}},{"value":"/ use rand::seq::SliceRandom;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219601,"byte_end":219632,"line_start":72,"line_end":72,"column_start":5,"column_end":36}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219637,"byte_end":219640,"line_start":73,"line_end":73,"column_start":5,"column_end":8}},{"value":"/ let choices = [1, 2, 4, 8, 16, 32];","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219645,"byte_end":219684,"line_start":74,"line_end":74,"column_start":5,"column_end":44}},{"value":"/ let mut rng = thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219689,"byte_end":219720,"line_start":75,"line_end":75,"column_start":5,"column_end":36}},{"value":"/ println!(\"{:?}\", choices.choose(&mut rng));","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219725,"byte_end":219772,"line_start":76,"line_end":76,"column_start":5,"column_end":52}},{"value":"/ assert_eq!(choices[..0].choose(&mut rng), None);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219777,"byte_end":219829,"line_start":77,"line_end":77,"column_start":5,"column_end":57}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219834,"byte_end":219841,"line_start":78,"line_end":78,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":1008},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220100,"byte_end":220110,"line_start":86,"line_end":86,"column_start":8,"column_end":18},"name":"choose_mut","qualname":"::seq::SliceRandom::choose_mut","value":"pub fn choose_mut(&mut Self, &mut R) -> Option<&mut Self::Item> where\nR: Rng + ?Sized","parent":{"krate":0,"index":1004},"children":[],"decl_id":null,"docs":" Returns a mutable reference to one random element of the slice, or\n `None` if the slice is empty.","sig":null,"attributes":[{"value":"/ Returns a mutable reference to one random element of the slice, or","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":219934,"byte_end":220004,"line_start":82,"line_end":82,"column_start":5,"column_end":75}},{"value":"/ `None` if the slice is empty.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220009,"byte_end":220042,"line_start":83,"line_end":83,"column_start":5,"column_end":38}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220047,"byte_end":220050,"line_start":84,"line_end":84,"column_start":5,"column_end":8}},{"value":"/ For slices, complexity is `O(1)`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220055,"byte_end":220092,"line_start":85,"line_end":85,"column_start":5,"column_end":42}}]},{"kind":"Method","id":{"krate":0,"index":1010},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":221199,"byte_end":221214,"line_start":115,"line_end":115,"column_start":8,"column_end":23},"name":"choose_multiple","qualname":"::seq::SliceRandom::choose_multiple","value":"pub fn choose_multiple(&Self, &mut R, usize)\n-> SliceChooseIter<, Self, Self::Item> where R: Rng + ?Sized","parent":{"krate":0,"index":1004},"children":[],"decl_id":null,"docs":" Chooses `amount` elements from the slice at random, without repetition,\n and in random order. The returned iterator is appropriate both for\n collection into a `Vec` and filling an existing buffer (see example).","sig":null,"attributes":[{"value":"/ Chooses `amount` elements from the slice at random, without repetition,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220197,"byte_end":220272,"line_start":89,"line_end":89,"column_start":5,"column_end":80}},{"value":"/ and in random order. The returned iterator is appropriate both for","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220277,"byte_end":220347,"line_start":90,"line_end":90,"column_start":5,"column_end":75}},{"value":"/ collection into a `Vec` and filling an existing buffer (see example).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220352,"byte_end":220425,"line_start":91,"line_end":91,"column_start":5,"column_end":78}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220430,"byte_end":220433,"line_start":92,"line_end":92,"column_start":5,"column_end":8}},{"value":"/ In case this API is not sufficiently flexible, use [`index::sample`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220438,"byte_end":220511,"line_start":93,"line_end":93,"column_start":5,"column_end":78}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220516,"byte_end":220519,"line_start":94,"line_end":94,"column_start":5,"column_end":8}},{"value":"/ For slices, complexity is the same as [`index::sample`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220524,"byte_end":220584,"line_start":95,"line_end":95,"column_start":5,"column_end":65}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220589,"byte_end":220592,"line_start":96,"line_end":96,"column_start":5,"column_end":8}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220597,"byte_end":220610,"line_start":97,"line_end":97,"column_start":5,"column_end":18}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220615,"byte_end":220622,"line_start":98,"line_end":98,"column_start":5,"column_end":12}},{"value":"/ use rand::seq::SliceRandom;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220627,"byte_end":220658,"line_start":99,"line_end":99,"column_start":5,"column_end":36}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220663,"byte_end":220666,"line_start":100,"line_end":100,"column_start":5,"column_end":8}},{"value":"/ let mut rng = &mut rand::thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220671,"byte_end":220713,"line_start":101,"line_end":101,"column_start":5,"column_end":47}},{"value":"/ let sample = \"Hello, audience!\".as_bytes();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220718,"byte_end":220765,"line_start":102,"line_end":102,"column_start":5,"column_end":52}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220770,"byte_end":220773,"line_start":103,"line_end":103,"column_start":5,"column_end":8}},{"value":"/ // collect the results into a vector:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220778,"byte_end":220819,"line_start":104,"line_end":104,"column_start":5,"column_end":46}},{"value":"/ let v: Vec = sample.choose_multiple(&mut rng, 3).cloned().collect();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220824,"byte_end":220900,"line_start":105,"line_end":105,"column_start":5,"column_end":81}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220905,"byte_end":220908,"line_start":106,"line_end":106,"column_start":5,"column_end":8}},{"value":"/ // store in a buffer:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220913,"byte_end":220938,"line_start":107,"line_end":107,"column_start":5,"column_end":30}},{"value":"/ let mut buf = [0u8; 5];","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220943,"byte_end":220970,"line_start":108,"line_end":108,"column_start":5,"column_end":32}},{"value":"/ for (b, slot) in sample.choose_multiple(&mut rng, buf.len()).zip(buf.iter_mut()) {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":220975,"byte_end":221061,"line_start":109,"line_end":109,"column_start":5,"column_end":91}},{"value":"/ *slot = *b;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":221066,"byte_end":221085,"line_start":110,"line_end":110,"column_start":5,"column_end":24}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":221090,"byte_end":221095,"line_start":111,"line_end":111,"column_start":5,"column_end":10}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":221100,"byte_end":221107,"line_start":112,"line_end":112,"column_start":5,"column_end":12}},{"value":"cfg(feature = \"alloc\")","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":221112,"byte_end":221137,"line_start":113,"line_end":113,"column_start":5,"column_end":30}}]},{"kind":"Method","id":{"krate":0,"index":1012},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":222410,"byte_end":222425,"line_start":143,"line_end":143,"column_start":8,"column_end":23},"name":"choose_weighted","qualname":"::seq::SliceRandom::choose_weighted","value":"pub fn choose_weighted(&Self, &mut R, F)\n-> Result<&Self::Item, WeightedError> where R: Rng + ?Sized,\nF: Fn(&Self::Item) -> B, B: SampleBorrow, X: SampleUniform +\nfor<'a> ::core::ops::AddAssign<&'a X> + ::core::cmp::PartialOrd + Clone +\nDefault","parent":{"krate":0,"index":1004},"children":[],"decl_id":null,"docs":" Similar to [`choose`], but where the likelihood of each outcome may be\n specified.","sig":null,"attributes":[{"value":"/ Similar to [`choose`], but where the likelihood of each outcome may be","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":221322,"byte_end":221396,"line_start":118,"line_end":118,"column_start":5,"column_end":79}},{"value":"/ specified.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":221401,"byte_end":221415,"line_start":119,"line_end":119,"column_start":5,"column_end":19}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":221420,"byte_end":221423,"line_start":120,"line_end":120,"column_start":5,"column_end":8}},{"value":"/ The specified function `weight` maps each item `x` to a relative","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":221428,"byte_end":221496,"line_start":121,"line_end":121,"column_start":5,"column_end":73}},{"value":"/ likelihood `weight(x)`. The probability of each item being selected is","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":221501,"byte_end":221575,"line_start":122,"line_end":122,"column_start":5,"column_end":79}},{"value":"/ therefore `weight(x) / s`, where `s` is the sum of all `weight(x)`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":221580,"byte_end":221651,"line_start":123,"line_end":123,"column_start":5,"column_end":76}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":221656,"byte_end":221659,"line_start":124,"line_end":124,"column_start":5,"column_end":8}},{"value":"/ For slices of length `n`, complexity is `O(n)`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":221664,"byte_end":221715,"line_start":125,"line_end":125,"column_start":5,"column_end":56}},{"value":"/ See also [`choose_weighted_mut`], [`distributions::weighted`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":221720,"byte_end":221786,"line_start":126,"line_end":126,"column_start":5,"column_end":71}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":221791,"byte_end":221794,"line_start":127,"line_end":127,"column_start":5,"column_end":8}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":221799,"byte_end":221812,"line_start":128,"line_end":128,"column_start":5,"column_end":18}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":221817,"byte_end":221820,"line_start":129,"line_end":129,"column_start":5,"column_end":8}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":221825,"byte_end":221832,"line_start":130,"line_end":130,"column_start":5,"column_end":12}},{"value":"/ use rand::prelude::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":221837,"byte_end":221862,"line_start":131,"line_end":131,"column_start":5,"column_end":30}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":221867,"byte_end":221870,"line_start":132,"line_end":132,"column_start":5,"column_end":8}},{"value":"/ let choices = [('a', 2), ('b', 1), ('c', 1)];","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":221875,"byte_end":221924,"line_start":133,"line_end":133,"column_start":5,"column_end":54}},{"value":"/ let mut rng = thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":221929,"byte_end":221960,"line_start":134,"line_end":134,"column_start":5,"column_end":36}},{"value":"/ // 50% chance to print 'a', 25% chance to print 'b', 25% chance to print 'c'","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":221965,"byte_end":222045,"line_start":135,"line_end":135,"column_start":5,"column_end":85}},{"value":"/ println!(\"{:?}\", choices.choose_weighted(&mut rng, |item| item.1).unwrap().0);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":222050,"byte_end":222132,"line_start":136,"line_end":136,"column_start":5,"column_end":87}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":222137,"byte_end":222144,"line_start":137,"line_end":137,"column_start":5,"column_end":12}},{"value":"/ [`choose`]: SliceRandom::choose","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":222149,"byte_end":222184,"line_start":138,"line_end":138,"column_start":5,"column_end":40}},{"value":"/ [`choose_weighted_mut`]: SliceRandom::choose_weighted_mut","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":222189,"byte_end":222250,"line_start":139,"line_end":139,"column_start":5,"column_end":66}},{"value":"/ [`distributions::weighted`]: crate::distributions::weighted","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":222255,"byte_end":222318,"line_start":140,"line_end":140,"column_start":5,"column_end":68}},{"value":"cfg(feature = \"alloc\")","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":222323,"byte_end":222348,"line_start":141,"line_end":141,"column_start":5,"column_end":30}}]},{"kind":"Method","id":{"krate":0,"index":1018},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":223522,"byte_end":223541,"line_start":171,"line_end":171,"column_start":8,"column_end":27},"name":"choose_weighted_mut","qualname":"::seq::SliceRandom::choose_weighted_mut","value":"pub fn choose_weighted_mut(&mut Self, &mut R, F)\n-> Result<&mut Self::Item, WeightedError> where R: Rng + ?Sized,\nF: Fn(&Self::Item) -> B, B: SampleBorrow, X: SampleUniform +\nfor<'a> ::core::ops::AddAssign<&'a X> + ::core::cmp::PartialOrd + Clone +\nDefault","parent":{"krate":0,"index":1004},"children":[],"decl_id":null,"docs":" Similar to [`choose_mut`], but where the likelihood of each outcome may\n be specified.","sig":null,"attributes":[{"value":"/ Similar to [`choose_mut`], but where the likelihood of each outcome may","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":222784,"byte_end":222859,"line_start":156,"line_end":156,"column_start":5,"column_end":80}},{"value":"/ be specified.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":222864,"byte_end":222881,"line_start":157,"line_end":157,"column_start":5,"column_end":22}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":222886,"byte_end":222889,"line_start":158,"line_end":158,"column_start":5,"column_end":8}},{"value":"/ The specified function `weight` maps each item `x` to a relative","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":222894,"byte_end":222962,"line_start":159,"line_end":159,"column_start":5,"column_end":73}},{"value":"/ likelihood `weight(x)`. The probability of each item being selected is","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":222967,"byte_end":223041,"line_start":160,"line_end":160,"column_start":5,"column_end":79}},{"value":"/ therefore `weight(x) / s`, where `s` is the sum of all `weight(x)`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":223046,"byte_end":223117,"line_start":161,"line_end":161,"column_start":5,"column_end":76}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":223122,"byte_end":223125,"line_start":162,"line_end":162,"column_start":5,"column_end":8}},{"value":"/ For slices of length `n`, complexity is `O(n)`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":223130,"byte_end":223181,"line_start":163,"line_end":163,"column_start":5,"column_end":56}},{"value":"/ See also [`choose_weighted`], [`distributions::weighted`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":223186,"byte_end":223248,"line_start":164,"line_end":164,"column_start":5,"column_end":67}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":223253,"byte_end":223256,"line_start":165,"line_end":165,"column_start":5,"column_end":8}},{"value":"/ [`choose_mut`]: SliceRandom::choose_mut","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":223261,"byte_end":223304,"line_start":166,"line_end":166,"column_start":5,"column_end":48}},{"value":"/ [`choose_weighted`]: SliceRandom::choose_weighted","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":223309,"byte_end":223362,"line_start":167,"line_end":167,"column_start":5,"column_end":58}},{"value":"/ [`distributions::weighted`]: crate::distributions::weighted","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":223367,"byte_end":223430,"line_start":168,"line_end":168,"column_start":5,"column_end":68}},{"value":"cfg(feature = \"alloc\")","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":223435,"byte_end":223460,"line_start":169,"line_end":169,"column_start":5,"column_end":30}}]},{"kind":"Method","id":{"krate":0,"index":1024},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":225758,"byte_end":225782,"line_start":220,"line_end":220,"column_start":8,"column_end":32},"name":"choose_multiple_weighted","qualname":"::seq::SliceRandom::choose_multiple_weighted","value":"pub fn choose_multiple_weighted(&Self, &mut R, usize, F)\n-> Result, WeightedError> where R: Rng +\n?Sized, F: Fn(&Self::Item) -> X, X: Into","parent":{"krate":0,"index":1004},"children":[],"decl_id":null,"docs":" Similar to [`choose_multiple`], but where the likelihood of each element's\n inclusion in the output may be specified. The elements are returned in an\n arbitrary, unspecified order.","sig":null,"attributes":[{"value":"/ Similar to [`choose_multiple`], but where the likelihood of each element's","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":223908,"byte_end":223986,"line_start":184,"line_end":184,"column_start":5,"column_end":83}},{"value":"/ inclusion in the output may be specified. The elements are returned in an","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":223991,"byte_end":224068,"line_start":185,"line_end":185,"column_start":5,"column_end":82}},{"value":"/ arbitrary, unspecified order.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":224073,"byte_end":224106,"line_start":186,"line_end":186,"column_start":5,"column_end":38}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":224111,"byte_end":224114,"line_start":187,"line_end":187,"column_start":5,"column_end":8}},{"value":"/ The specified function `weight` maps each item `x` to a relative","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":224119,"byte_end":224187,"line_start":188,"line_end":188,"column_start":5,"column_end":73}},{"value":"/ likelihood `weight(x)`. The probability of each item being selected is","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":224192,"byte_end":224266,"line_start":189,"line_end":189,"column_start":5,"column_end":79}},{"value":"/ therefore `weight(x) / s`, where `s` is the sum of all `weight(x)`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":224271,"byte_end":224342,"line_start":190,"line_end":190,"column_start":5,"column_end":76}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":224347,"byte_end":224350,"line_start":191,"line_end":191,"column_start":5,"column_end":8}},{"value":"/ If all of the weights are equal, even if they are all zero, each element has","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":224355,"byte_end":224435,"line_start":192,"line_end":192,"column_start":5,"column_end":85}},{"value":"/ an equal likelihood of being selected.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":224440,"byte_end":224482,"line_start":193,"line_end":193,"column_start":5,"column_end":47}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":224487,"byte_end":224490,"line_start":194,"line_end":194,"column_start":5,"column_end":8}},{"value":"/ The complexity of this method depends on the feature `partition_at_index`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":224495,"byte_end":224573,"line_start":195,"line_end":195,"column_start":5,"column_end":83}},{"value":"/ If the feature is enabled, then for slices of length `n`, the complexity","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":224578,"byte_end":224654,"line_start":196,"line_end":196,"column_start":5,"column_end":81}},{"value":"/ is `O(n)` space and `O(n)` time. Otherwise, the complexity is `O(n)` space and","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":224659,"byte_end":224741,"line_start":197,"line_end":197,"column_start":5,"column_end":87}},{"value":"/ `O(n * log amount)` time.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":224746,"byte_end":224775,"line_start":198,"line_end":198,"column_start":5,"column_end":34}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":224780,"byte_end":224783,"line_start":199,"line_end":199,"column_start":5,"column_end":8}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":224788,"byte_end":224801,"line_start":200,"line_end":200,"column_start":5,"column_end":18}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":224806,"byte_end":224809,"line_start":201,"line_end":201,"column_start":5,"column_end":8}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":224814,"byte_end":224821,"line_start":202,"line_end":202,"column_start":5,"column_end":12}},{"value":"/ use rand::prelude::*;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":224826,"byte_end":224851,"line_start":203,"line_end":203,"column_start":5,"column_end":30}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":224856,"byte_end":224859,"line_start":204,"line_end":204,"column_start":5,"column_end":8}},{"value":"/ let choices = [('a', 2), ('b', 1), ('c', 1)];","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":224864,"byte_end":224913,"line_start":205,"line_end":205,"column_start":5,"column_end":54}},{"value":"/ let mut rng = thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":224918,"byte_end":224949,"line_start":206,"line_end":206,"column_start":5,"column_end":36}},{"value":"/ // First Draw * Second Draw = total odds","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":224954,"byte_end":224998,"line_start":207,"line_end":207,"column_start":5,"column_end":49}},{"value":"/ // -----------------------","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":225003,"byte_end":225033,"line_start":208,"line_end":208,"column_start":5,"column_end":35}},{"value":"/ // (50% * 50%) + (25% * 67%) = 41.7% chance that the output is `['a', 'b']` in some order.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":225038,"byte_end":225132,"line_start":209,"line_end":209,"column_start":5,"column_end":99}},{"value":"/ // (50% * 50%) + (25% * 67%) = 41.7% chance that the output is `['a', 'c']` in some order.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":225137,"byte_end":225231,"line_start":210,"line_end":210,"column_start":5,"column_end":99}},{"value":"/ // (25% * 33%) + (25% * 33%) = 16.6% chance that the output is `['b', 'c']` in some order.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":225236,"byte_end":225330,"line_start":211,"line_end":211,"column_start":5,"column_end":99}},{"value":"/ println!(\"{:?}\", choices.choose_multiple_weighted(&mut rng, 2, |item| item.1).unwrap().collect::>());","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":225335,"byte_end":225447,"line_start":212,"line_end":212,"column_start":5,"column_end":117}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":225452,"byte_end":225459,"line_start":213,"line_end":213,"column_start":5,"column_end":12}},{"value":"/ [`choose_multiple`]: SliceRandom::choose_multiple","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":225464,"byte_end":225517,"line_start":214,"line_end":214,"column_start":5,"column_end":58}},{"value":"cfg(feature = \"std\")","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":225675,"byte_end":225698,"line_start":218,"line_end":218,"column_start":5,"column_end":28}}]},{"kind":"Method","id":{"krate":0,"index":1028},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226433,"byte_end":226440,"line_start":244,"line_end":244,"column_start":8,"column_end":15},"name":"shuffle","qualname":"::seq::SliceRandom::shuffle","value":"pub fn shuffle(&mut Self, &mut R) where R: Rng + ?Sized","parent":{"krate":0,"index":1004},"children":[],"decl_id":null,"docs":" Shuffle a mutable slice in place.","sig":null,"attributes":[{"value":"/ Shuffle a mutable slice in place.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226008,"byte_end":226045,"line_start":228,"line_end":228,"column_start":5,"column_end":42}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226050,"byte_end":226053,"line_start":229,"line_end":229,"column_start":5,"column_end":8}},{"value":"/ For slices of length `n`, complexity is `O(n)`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226058,"byte_end":226109,"line_start":230,"line_end":230,"column_start":5,"column_end":56}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226114,"byte_end":226117,"line_start":231,"line_end":231,"column_start":5,"column_end":8}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226122,"byte_end":226135,"line_start":232,"line_end":232,"column_start":5,"column_end":18}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226140,"byte_end":226143,"line_start":233,"line_end":233,"column_start":5,"column_end":8}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226148,"byte_end":226155,"line_start":234,"line_end":234,"column_start":5,"column_end":12}},{"value":"/ use rand::seq::SliceRandom;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226160,"byte_end":226191,"line_start":235,"line_end":235,"column_start":5,"column_end":36}},{"value":"/ use rand::thread_rng;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226196,"byte_end":226221,"line_start":236,"line_end":236,"column_start":5,"column_end":30}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226226,"byte_end":226229,"line_start":237,"line_end":237,"column_start":5,"column_end":8}},{"value":"/ let mut rng = thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226234,"byte_end":226265,"line_start":238,"line_end":238,"column_start":5,"column_end":36}},{"value":"/ let mut y = [1, 2, 3, 4, 5];","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226270,"byte_end":226302,"line_start":239,"line_end":239,"column_start":5,"column_end":37}},{"value":"/ println!(\"Unshuffled: {:?}\", y);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226307,"byte_end":226343,"line_start":240,"line_end":240,"column_start":5,"column_end":41}},{"value":"/ y.shuffle(&mut rng);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226348,"byte_end":226372,"line_start":241,"line_end":241,"column_start":5,"column_end":29}},{"value":"/ println!(\"Shuffled: {:?}\", y);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226377,"byte_end":226413,"line_start":242,"line_end":242,"column_start":5,"column_end":41}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226418,"byte_end":226425,"line_start":243,"line_end":243,"column_start":5,"column_end":12}}]},{"kind":"Method","id":{"krate":0,"index":1030},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227305,"byte_end":227320,"line_start":264,"line_end":264,"column_start":8,"column_end":23},"name":"partial_shuffle","qualname":"::seq::SliceRandom::partial_shuffle","value":"pub fn partial_shuffle(&mut Self, &mut R, usize)\n-> (&mut [Self::Item], &mut [Self::Item]) where R: Rng + ?Sized","parent":{"krate":0,"index":1004},"children":[],"decl_id":null,"docs":" Shuffle a slice in place, but exit early.","sig":null,"attributes":[{"value":"/ Shuffle a slice in place, but exit early.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226500,"byte_end":226545,"line_start":247,"line_end":247,"column_start":5,"column_end":50}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226550,"byte_end":226553,"line_start":248,"line_end":248,"column_start":5,"column_end":8}},{"value":"/ Returns two mutable slices from the source slice. The first contains","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226558,"byte_end":226630,"line_start":249,"line_end":249,"column_start":5,"column_end":77}},{"value":"/ `amount` elements randomly permuted. The second has the remaining","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226635,"byte_end":226704,"line_start":250,"line_end":250,"column_start":5,"column_end":74}},{"value":"/ elements that are not fully shuffled.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226709,"byte_end":226750,"line_start":251,"line_end":251,"column_start":5,"column_end":46}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226755,"byte_end":226758,"line_start":252,"line_end":252,"column_start":5,"column_end":8}},{"value":"/ This is an efficient method to select `amount` elements at random from","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226763,"byte_end":226837,"line_start":253,"line_end":253,"column_start":5,"column_end":79}},{"value":"/ the slice, provided the slice may be mutated.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226842,"byte_end":226891,"line_start":254,"line_end":254,"column_start":5,"column_end":54}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226896,"byte_end":226899,"line_start":255,"line_end":255,"column_start":5,"column_end":8}},{"value":"/ If you only need to choose elements randomly and `amount > self.len()/2`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226904,"byte_end":226980,"line_start":256,"line_end":256,"column_start":5,"column_end":81}},{"value":"/ then you may improve performance by taking","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":226985,"byte_end":227031,"line_start":257,"line_end":257,"column_start":5,"column_end":51}},{"value":"/ `amount = values.len() - amount` and using only the second slice.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227036,"byte_end":227105,"line_start":258,"line_end":258,"column_start":5,"column_end":74}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227110,"byte_end":227113,"line_start":259,"line_end":259,"column_start":5,"column_end":8}},{"value":"/ If `amount` is greater than the number of elements in the slice, this","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227118,"byte_end":227191,"line_start":260,"line_end":260,"column_start":5,"column_end":78}},{"value":"/ will perform a full shuffle.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227196,"byte_end":227228,"line_start":261,"line_end":261,"column_start":5,"column_end":37}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227233,"byte_end":227236,"line_start":262,"line_end":262,"column_start":5,"column_end":8}},{"value":"/ For slices, complexity is `O(m)` where `m = amount`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227241,"byte_end":227297,"line_start":263,"line_end":263,"column_start":5,"column_end":61}}]},{"kind":"Trait","id":{"krate":0,"index":1032},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227990,"byte_end":228004,"line_start":288,"line_end":288,"column_start":11,"column_end":25},"name":"IteratorRandom","qualname":"::seq::IteratorRandom","value":"IteratorRandom: Iterator + Sized","parent":null,"children":[{"krate":0,"index":1033},{"krate":0,"index":1035},{"krate":0,"index":1038},{"krate":0,"index":1040}],"decl_id":null,"docs":" Extension trait on iterators, providing random sampling methods.","sig":null,"attributes":[{"value":"/ Extension trait on iterators, providing random sampling methods.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227450,"byte_end":227518,"line_start":270,"line_end":270,"column_start":1,"column_end":69}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227519,"byte_end":227522,"line_start":271,"line_end":271,"column_start":1,"column_end":4}},{"value":"/ This trait is implemented on all iterators `I` where `I: Iterator + Sized`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227523,"byte_end":227601,"line_start":272,"line_end":272,"column_start":1,"column_end":79}},{"value":"/ and provides methods for","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227602,"byte_end":227630,"line_start":273,"line_end":273,"column_start":1,"column_end":29}},{"value":"/ choosing one or more elements. You must `use` this trait:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227631,"byte_end":227692,"line_start":274,"line_end":274,"column_start":1,"column_end":62}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227693,"byte_end":227696,"line_start":275,"line_end":275,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227697,"byte_end":227704,"line_start":276,"line_end":276,"column_start":1,"column_end":8}},{"value":"/ use rand::seq::IteratorRandom;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227705,"byte_end":227739,"line_start":277,"line_end":277,"column_start":1,"column_end":35}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227740,"byte_end":227743,"line_start":278,"line_end":278,"column_start":1,"column_end":4}},{"value":"/ let mut rng = rand::thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227744,"byte_end":227781,"line_start":279,"line_end":279,"column_start":1,"column_end":38}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227782,"byte_end":227785,"line_start":280,"line_end":280,"column_start":1,"column_end":4}},{"value":"/ let faces = \"😀😎😐😕😠😢\";","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227786,"byte_end":227829,"line_start":281,"line_end":281,"column_start":1,"column_end":26}},{"value":"/ println!(\"I am {}!\", faces.chars().choose(&mut rng).unwrap());","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227830,"byte_end":227896,"line_start":282,"line_end":282,"column_start":1,"column_end":67}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227897,"byte_end":227904,"line_start":283,"line_end":283,"column_start":1,"column_end":8}},{"value":"/ Example output (non-deterministic):","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227905,"byte_end":227944,"line_start":284,"line_end":284,"column_start":1,"column_end":40}},{"value":"/ ```none","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227945,"byte_end":227956,"line_start":285,"line_end":285,"column_start":1,"column_end":12}},{"value":"/ I am 😀!","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227957,"byte_end":227971,"line_start":286,"line_end":286,"column_start":1,"column_end":12}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":227972,"byte_end":227979,"line_start":287,"line_end":287,"column_start":1,"column_end":8}}]},{"kind":"Method","id":{"krate":0,"index":1033},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":228916,"byte_end":228922,"line_start":304,"line_end":304,"column_start":8,"column_end":14},"name":"choose","qualname":"::seq::IteratorRandom::choose","value":"pub fn choose(Self, &mut R) -> Option where R: Rng + ?Sized","parent":{"krate":0,"index":1032},"children":[],"decl_id":null,"docs":" Choose one element at random from the iterator.","sig":null,"attributes":[{"value":"/ Choose one element at random from the iterator.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":228029,"byte_end":228080,"line_start":289,"line_end":289,"column_start":5,"column_end":56}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":228085,"byte_end":228088,"line_start":290,"line_end":290,"column_start":5,"column_end":8}},{"value":"/ Returns `None` if and only if the iterator is empty.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":228093,"byte_end":228149,"line_start":291,"line_end":291,"column_start":5,"column_end":61}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":228154,"byte_end":228157,"line_start":292,"line_end":292,"column_start":5,"column_end":8}},{"value":"/ This method uses [`Iterator::size_hint`] for optimisation. With an","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":228162,"byte_end":228232,"line_start":293,"line_end":293,"column_start":5,"column_end":75}},{"value":"/ accurate hint and where [`Iterator::nth`] is a constant-time operation","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":228237,"byte_end":228311,"line_start":294,"line_end":294,"column_start":5,"column_end":79}},{"value":"/ this method can offer `O(1)` performance. Where no size hint is","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":228316,"byte_end":228383,"line_start":295,"line_end":295,"column_start":5,"column_end":72}},{"value":"/ available, complexity is `O(n)` where `n` is the iterator length.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":228388,"byte_end":228457,"line_start":296,"line_end":296,"column_start":5,"column_end":74}},{"value":"/ Partial hints (where `lower > 0`) also improve performance.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":228462,"byte_end":228525,"line_start":297,"line_end":297,"column_start":5,"column_end":68}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":228530,"byte_end":228533,"line_start":298,"line_end":298,"column_start":5,"column_end":8}},{"value":"/ Note that the output values and the number of RNG samples used","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":228538,"byte_end":228604,"line_start":299,"line_end":299,"column_start":5,"column_end":71}},{"value":"/ depends on size hints. In particular, `Iterator` combinators that don't","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":228609,"byte_end":228684,"line_start":300,"line_end":300,"column_start":5,"column_end":80}},{"value":"/ change the values yielded but change the size hints may result in","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":228689,"byte_end":228758,"line_start":301,"line_end":301,"column_start":5,"column_end":74}},{"value":"/ `choose` returning different elements. If you want consistent results","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":228763,"byte_end":228836,"line_start":302,"line_end":302,"column_start":5,"column_end":78}},{"value":"/ and RNG usage consider using [`IteratorRandom::choose_stable`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":228841,"byte_end":228908,"line_start":303,"line_end":303,"column_start":5,"column_end":72}}]},{"kind":"Method","id":{"krate":0,"index":1035},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":231551,"byte_end":231564,"line_start":373,"line_end":373,"column_start":8,"column_end":21},"name":"choose_stable","qualname":"::seq::IteratorRandom::choose_stable","value":"pub fn choose_stable(Self, &mut R) -> Option where R: Rng +\n?Sized","parent":{"krate":0,"index":1032},"children":[],"decl_id":null,"docs":" Choose one element at random from the iterator.","sig":null,"attributes":[{"value":"/ Choose one element at random from the iterator.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":230518,"byte_end":230569,"line_start":355,"line_end":355,"column_start":5,"column_end":56}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":230574,"byte_end":230577,"line_start":356,"line_end":356,"column_start":5,"column_end":8}},{"value":"/ Returns `None` if and only if the iterator is empty.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":230582,"byte_end":230638,"line_start":357,"line_end":357,"column_start":5,"column_end":61}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":230643,"byte_end":230646,"line_start":358,"line_end":358,"column_start":5,"column_end":8}},{"value":"/ This method is very similar to [`choose`] except that the result","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":230651,"byte_end":230719,"line_start":359,"line_end":359,"column_start":5,"column_end":73}},{"value":"/ only depends on the length of the iterator and the values produced by","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":230724,"byte_end":230797,"line_start":360,"line_end":360,"column_start":5,"column_end":78}},{"value":"/ `rng`. Notably for any iterator of a given length this will make the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":230802,"byte_end":230874,"line_start":361,"line_end":361,"column_start":5,"column_end":77}},{"value":"/ same requests to `rng` and if the same sequence of values are produced","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":230879,"byte_end":230953,"line_start":362,"line_end":362,"column_start":5,"column_end":79}},{"value":"/ the same index will be selected from `self`. This may be useful if you","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":230958,"byte_end":231032,"line_start":363,"line_end":363,"column_start":5,"column_end":79}},{"value":"/ need consistent results no matter what type of iterator you are working","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":231037,"byte_end":231112,"line_start":364,"line_end":364,"column_start":5,"column_end":80}},{"value":"/ with. If you do not need this stability prefer [`choose`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":231117,"byte_end":231179,"line_start":365,"line_end":365,"column_start":5,"column_end":67}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":231184,"byte_end":231187,"line_start":366,"line_end":366,"column_start":5,"column_end":8}},{"value":"/ Note that this method still uses [`Iterator::size_hint`] to skip","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":231192,"byte_end":231260,"line_start":367,"line_end":367,"column_start":5,"column_end":73}},{"value":"/ constructing elements where possible, however the selection and `rng`","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":231265,"byte_end":231338,"line_start":368,"line_end":368,"column_start":5,"column_end":78}},{"value":"/ calls are the same in the face of this optimization. If you want to","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":231343,"byte_end":231414,"line_start":369,"line_end":369,"column_start":5,"column_end":76}},{"value":"/ force every element to be created regardless call `.inspect(|e| ())`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":231419,"byte_end":231492,"line_start":370,"line_end":370,"column_start":5,"column_end":78}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":231497,"byte_end":231500,"line_start":371,"line_end":371,"column_start":5,"column_end":8}},{"value":"/ [`choose`]: IteratorRandom::choose","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":231505,"byte_end":231543,"line_start":372,"line_end":372,"column_start":5,"column_end":43}}]},{"kind":"Method","id":{"krate":0,"index":1038},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":233513,"byte_end":233533,"line_start":426,"line_end":426,"column_start":8,"column_end":28},"name":"choose_multiple_fill","qualname":"::seq::IteratorRandom::choose_multiple_fill","value":"pub fn choose_multiple_fill(Self, &mut R, &mut [Self::Item]) -> usize where\nR: Rng + ?Sized","parent":{"krate":0,"index":1032},"children":[],"decl_id":null,"docs":" Collects values at random from the iterator into a supplied buffer\n until that buffer is filled.","sig":null,"attributes":[{"value":"/ Collects values at random from the iterator into a supplied buffer","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":232826,"byte_end":232896,"line_start":413,"line_end":413,"column_start":5,"column_end":75}},{"value":"/ until that buffer is filled.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":232901,"byte_end":232933,"line_start":414,"line_end":414,"column_start":5,"column_end":37}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":232938,"byte_end":232941,"line_start":415,"line_end":415,"column_start":5,"column_end":8}},{"value":"/ Although the elements are selected randomly, the order of elements in","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":232946,"byte_end":233019,"line_start":416,"line_end":416,"column_start":5,"column_end":78}},{"value":"/ the buffer is neither stable nor fully random. If random ordering is","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":233024,"byte_end":233096,"line_start":417,"line_end":417,"column_start":5,"column_end":77}},{"value":"/ desired, shuffle the result.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":233101,"byte_end":233133,"line_start":418,"line_end":418,"column_start":5,"column_end":37}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":233138,"byte_end":233141,"line_start":419,"line_end":419,"column_start":5,"column_end":8}},{"value":"/ Returns the number of elements added to the buffer. This equals the length","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":233146,"byte_end":233224,"line_start":420,"line_end":420,"column_start":5,"column_end":83}},{"value":"/ of the buffer unless the iterator contains insufficient elements, in which","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":233229,"byte_end":233307,"line_start":421,"line_end":421,"column_start":5,"column_end":83}},{"value":"/ case this equals the number of elements available.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":233312,"byte_end":233366,"line_start":422,"line_end":422,"column_start":5,"column_end":59}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":233371,"byte_end":233374,"line_start":423,"line_end":423,"column_start":5,"column_end":8}},{"value":"/ Complexity is `O(n)` where `n` is the length of the iterator.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":233379,"byte_end":233444,"line_start":424,"line_end":424,"column_start":5,"column_end":70}},{"value":"/ For slices, prefer [`SliceRandom::choose_multiple`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":233449,"byte_end":233505,"line_start":425,"line_end":425,"column_start":5,"column_end":61}}]},{"kind":"Method","id":{"krate":0,"index":1040},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":234999,"byte_end":235014,"line_start":466,"line_end":466,"column_start":8,"column_end":23},"name":"choose_multiple","qualname":"::seq::IteratorRandom::choose_multiple","value":"pub fn choose_multiple(Self, &mut R, usize) -> Vec where\nR: Rng + ?Sized","parent":{"krate":0,"index":1032},"children":[],"decl_id":null,"docs":" Collects `amount` values at random from the iterator into a vector.","sig":null,"attributes":[{"value":"/ Collects `amount` values at random from the iterator into a vector.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":234216,"byte_end":234287,"line_start":450,"line_end":450,"column_start":5,"column_end":76}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":234292,"byte_end":234295,"line_start":451,"line_end":451,"column_start":5,"column_end":8}},{"value":"/ This is equivalent to `choose_multiple_fill` except for the result type.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":234300,"byte_end":234376,"line_start":452,"line_end":452,"column_start":5,"column_end":81}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":234381,"byte_end":234384,"line_start":453,"line_end":453,"column_start":5,"column_end":8}},{"value":"/ Although the elements are selected randomly, the order of elements in","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":234389,"byte_end":234462,"line_start":454,"line_end":454,"column_start":5,"column_end":78}},{"value":"/ the buffer is neither stable nor fully random. If random ordering is","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":234467,"byte_end":234539,"line_start":455,"line_end":455,"column_start":5,"column_end":77}},{"value":"/ desired, shuffle the result.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":234544,"byte_end":234576,"line_start":456,"line_end":456,"column_start":5,"column_end":37}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":234581,"byte_end":234584,"line_start":457,"line_end":457,"column_start":5,"column_end":8}},{"value":"/ The length of the returned vector equals `amount` unless the iterator","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":234589,"byte_end":234662,"line_start":458,"line_end":458,"column_start":5,"column_end":78}},{"value":"/ contains insufficient elements, in which case it equals the number of","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":234667,"byte_end":234740,"line_start":459,"line_end":459,"column_start":5,"column_end":78}},{"value":"/ elements available.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":234745,"byte_end":234768,"line_start":460,"line_end":460,"column_start":5,"column_end":28}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":234773,"byte_end":234776,"line_start":461,"line_end":461,"column_start":5,"column_end":8}},{"value":"/ Complexity is `O(n)` where `n` is the length of the iterator.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":234781,"byte_end":234846,"line_start":462,"line_end":462,"column_start":5,"column_end":70}},{"value":"/ For slices, prefer [`SliceRandom::choose_multiple`].","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":234851,"byte_end":234907,"line_start":463,"line_end":463,"column_start":5,"column_end":61}},{"value":"cfg(feature = \"alloc\")","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":234912,"byte_end":234937,"line_start":464,"line_end":464,"column_start":5,"column_end":30}}]},{"kind":"Struct","id":{"krate":0,"index":2449},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":240038,"byte_end":240053,"line_start":625,"line_end":625,"column_start":12,"column_end":27},"name":"SliceChooseIter","qualname":"::seq::SliceChooseIter","value":"SliceChooseIter { }","parent":null,"children":[{"krate":0,"index":2453},{"krate":0,"index":2454},{"krate":0,"index":2455}],"decl_id":null,"docs":" An iterator over multiple slice elements.","sig":null,"attributes":[{"value":"/ An iterator over multiple slice elements.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":239767,"byte_end":239812,"line_start":618,"line_end":618,"column_start":1,"column_end":46}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":239813,"byte_end":239816,"line_start":619,"line_end":619,"column_start":1,"column_end":4}},{"value":"/ This struct is created by","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":239817,"byte_end":239846,"line_start":620,"line_end":620,"column_start":1,"column_end":30}},{"value":"/ [`SliceRandom::choose_multiple`](trait.SliceRandom.html#tymethod.choose_multiple).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":239847,"byte_end":239933,"line_start":621,"line_end":621,"column_start":1,"column_end":87}},{"value":"cfg(feature = \"alloc\")","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":239934,"byte_end":239959,"line_start":622,"line_end":622,"column_start":1,"column_end":26}}]},{"kind":"Function","id":{"krate":0,"index":1120},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5726,"byte_end":5732,"line_start":183,"line_end":183,"column_start":8,"column_end":14},"name":"random","qualname":"::random","value":"pub fn random() -> T where Standard: Distribution","parent":null,"children":[],"decl_id":null,"docs":" Generates a random value using the thread-local random number generator.","sig":null,"attributes":[{"value":"/ Generates a random value using the thread-local random number generator.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":3167,"byte_end":3243,"line_start":111,"line_end":111,"column_start":1,"column_end":77}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":3244,"byte_end":3247,"line_start":112,"line_end":112,"column_start":1,"column_end":4}},{"value":"/ This is simply a shortcut for `thread_rng().gen()`. See [`thread_rng`] for","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":3248,"byte_end":3326,"line_start":113,"line_end":113,"column_start":1,"column_end":79}},{"value":"/ documentation of the entropy source and [`Standard`] for documentation of","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":3327,"byte_end":3404,"line_start":114,"line_end":114,"column_start":1,"column_end":78}},{"value":"/ distributions and type-specific generation.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":3405,"byte_end":3452,"line_start":115,"line_end":115,"column_start":1,"column_end":48}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":3453,"byte_end":3456,"line_start":116,"line_end":116,"column_start":1,"column_end":4}},{"value":"/ # Provided implementations","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":3457,"byte_end":3487,"line_start":117,"line_end":117,"column_start":1,"column_end":31}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":3488,"byte_end":3491,"line_start":118,"line_end":118,"column_start":1,"column_end":4}},{"value":"/ The following types have provided implementations that","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":3492,"byte_end":3550,"line_start":119,"line_end":119,"column_start":1,"column_end":59}},{"value":"/ generate values with the following ranges and distributions:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":3551,"byte_end":3615,"line_start":120,"line_end":120,"column_start":1,"column_end":65}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":3616,"byte_end":3619,"line_start":121,"line_end":121,"column_start":1,"column_end":4}},{"value":"/ * Integers (`i32`, `u32`, `isize`, `usize`, etc.): Uniformly distributed","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":3620,"byte_end":3696,"line_start":122,"line_end":122,"column_start":1,"column_end":77}},{"value":"/ over all values of the type.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":3697,"byte_end":3731,"line_start":123,"line_end":123,"column_start":1,"column_end":35}},{"value":"/ * `char`: Uniformly distributed over all Unicode scalar values, i.e. all","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":3732,"byte_end":3808,"line_start":124,"line_end":124,"column_start":1,"column_end":77}},{"value":"/ code points in the range `0...0x10_FFFF`, except for the range","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":3809,"byte_end":3877,"line_start":125,"line_end":125,"column_start":1,"column_end":69}},{"value":"/ `0xD800...0xDFFF` (the surrogate code points). This includes","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":3878,"byte_end":3944,"line_start":126,"line_end":126,"column_start":1,"column_end":67}},{"value":"/ unassigned/reserved code points.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":3945,"byte_end":3983,"line_start":127,"line_end":127,"column_start":1,"column_end":39}},{"value":"/ * `bool`: Generates `false` or `true`, each with probability 0.5.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":3984,"byte_end":4053,"line_start":128,"line_end":128,"column_start":1,"column_end":70}},{"value":"/ * Floating point types (`f32` and `f64`): Uniformly distributed in the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":4054,"byte_end":4128,"line_start":129,"line_end":129,"column_start":1,"column_end":75}},{"value":"/ half-open range `[0, 1)`. See notes below.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":4129,"byte_end":4177,"line_start":130,"line_end":130,"column_start":1,"column_end":49}},{"value":"/ * Wrapping integers (`Wrapping`), besides the type identical to their","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":4178,"byte_end":4254,"line_start":131,"line_end":131,"column_start":1,"column_end":77}},{"value":"/ normal integer variants.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":4255,"byte_end":4285,"line_start":132,"line_end":132,"column_start":1,"column_end":31}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":4286,"byte_end":4289,"line_start":133,"line_end":133,"column_start":1,"column_end":4}},{"value":"/ Also supported is the generation of the following","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":4290,"byte_end":4343,"line_start":134,"line_end":134,"column_start":1,"column_end":54}},{"value":"/ compound types where all component types are supported:","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":4344,"byte_end":4403,"line_start":135,"line_end":135,"column_start":1,"column_end":60}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":4404,"byte_end":4407,"line_start":136,"line_end":136,"column_start":1,"column_end":4}},{"value":"/ * Tuples (up to 12 elements): each element is generated sequentially.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":4408,"byte_end":4483,"line_start":137,"line_end":137,"column_start":1,"column_end":76}},{"value":"/ * Arrays (up to 32 elements): each element is generated sequentially;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":4484,"byte_end":4559,"line_start":138,"line_end":138,"column_start":1,"column_end":76}},{"value":"/ see also [`Rng::fill`] which supports arbitrary array length for integer","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":4560,"byte_end":4640,"line_start":139,"line_end":139,"column_start":1,"column_end":81}},{"value":"/ types and tends to be faster for `u32` and smaller types.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":4641,"byte_end":4706,"line_start":140,"line_end":140,"column_start":1,"column_end":66}},{"value":"/ * `Option` first generates a `bool`, and if true generates and returns","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":4707,"byte_end":4786,"line_start":141,"line_end":141,"column_start":1,"column_end":80}},{"value":"/ `Some(value)` where `value: T`, otherwise returning `None`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":4787,"byte_end":4854,"line_start":142,"line_end":142,"column_start":1,"column_end":68}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":4855,"byte_end":4858,"line_start":143,"line_end":143,"column_start":1,"column_end":4}},{"value":"/ # Examples","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":4859,"byte_end":4873,"line_start":144,"line_end":144,"column_start":1,"column_end":15}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":4874,"byte_end":4877,"line_start":145,"line_end":145,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":4878,"byte_end":4885,"line_start":146,"line_end":146,"column_start":1,"column_end":8}},{"value":"/ let x = rand::random::();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":4886,"byte_end":4919,"line_start":147,"line_end":147,"column_start":1,"column_end":34}},{"value":"/ println!(\"{}\", x);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":4920,"byte_end":4942,"line_start":148,"line_end":148,"column_start":1,"column_end":23}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":4943,"byte_end":4946,"line_start":149,"line_end":149,"column_start":1,"column_end":4}},{"value":"/ let y = rand::random::();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":4947,"byte_end":4981,"line_start":150,"line_end":150,"column_start":1,"column_end":35}},{"value":"/ println!(\"{}\", y);","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":4982,"byte_end":5004,"line_start":151,"line_end":151,"column_start":1,"column_end":23}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5005,"byte_end":5008,"line_start":152,"line_end":152,"column_start":1,"column_end":4}},{"value":"/ if rand::random() { // generates a boolean","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5009,"byte_end":5055,"line_start":153,"line_end":153,"column_start":1,"column_end":47}},{"value":"/ println!(\"Better lucky than good!\");","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5056,"byte_end":5100,"line_start":154,"line_end":154,"column_start":1,"column_end":45}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5101,"byte_end":5106,"line_start":155,"line_end":155,"column_start":1,"column_end":6}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5107,"byte_end":5114,"line_start":156,"line_end":156,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5115,"byte_end":5118,"line_start":157,"line_end":157,"column_start":1,"column_end":4}},{"value":"/ If you're calling `random()` in a loop, caching the generator as in the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5119,"byte_end":5194,"line_start":158,"line_end":158,"column_start":1,"column_end":76}},{"value":"/ following example can increase performance.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5195,"byte_end":5242,"line_start":159,"line_end":159,"column_start":1,"column_end":48}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5243,"byte_end":5246,"line_start":160,"line_end":160,"column_start":1,"column_end":4}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5247,"byte_end":5254,"line_start":161,"line_end":161,"column_start":1,"column_end":8}},{"value":"/ use rand::Rng;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5255,"byte_end":5273,"line_start":162,"line_end":162,"column_start":1,"column_end":19}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5274,"byte_end":5277,"line_start":163,"line_end":163,"column_start":1,"column_end":4}},{"value":"/ let mut v = vec![1, 2, 3];","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5278,"byte_end":5308,"line_start":164,"line_end":164,"column_start":1,"column_end":31}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5309,"byte_end":5312,"line_start":165,"line_end":165,"column_start":1,"column_end":4}},{"value":"/ for x in v.iter_mut() {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5313,"byte_end":5340,"line_start":166,"line_end":166,"column_start":1,"column_end":28}},{"value":"/ *x = rand::random()","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5341,"byte_end":5368,"line_start":167,"line_end":167,"column_start":1,"column_end":28}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5369,"byte_end":5374,"line_start":168,"line_end":168,"column_start":1,"column_end":6}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5375,"byte_end":5378,"line_start":169,"line_end":169,"column_start":1,"column_end":4}},{"value":"/ // can be made faster by caching thread_rng","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5379,"byte_end":5426,"line_start":170,"line_end":170,"column_start":1,"column_end":48}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5427,"byte_end":5430,"line_start":171,"line_end":171,"column_start":1,"column_end":4}},{"value":"/ let mut rng = rand::thread_rng();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5431,"byte_end":5468,"line_start":172,"line_end":172,"column_start":1,"column_end":38}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5469,"byte_end":5472,"line_start":173,"line_end":173,"column_start":1,"column_end":4}},{"value":"/ for x in v.iter_mut() {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5473,"byte_end":5500,"line_start":174,"line_end":174,"column_start":1,"column_end":28}},{"value":"/ *x = rng.gen();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5501,"byte_end":5524,"line_start":175,"line_end":175,"column_start":1,"column_end":24}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5525,"byte_end":5530,"line_start":176,"line_end":176,"column_start":1,"column_end":6}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5531,"byte_end":5538,"line_start":177,"line_end":177,"column_start":1,"column_end":8}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5539,"byte_end":5542,"line_start":178,"line_end":178,"column_start":1,"column_end":4}},{"value":"/ [`Standard`]: distributions::Standard","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5543,"byte_end":5584,"line_start":179,"line_end":179,"column_start":1,"column_end":42}},{"value":"cfg(all(feature = \"std\", feature = \"std_rng\"))","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5585,"byte_end":5634,"line_start":180,"line_end":180,"column_start":1,"column_end":50}},{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":5709,"byte_end":5718,"line_start":182,"line_end":182,"column_start":1,"column_end":10}}]}],"impls":[{"id":0,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":18417,"byte_end":18431,"line_start":75,"line_end":75,"column_start":23,"column_end":37},"value":"","parent":null,"children":[{"krate":0,"index":42}],"docs":"","sig":null,"attributes":[]},{"id":1,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":18702,"byte_end":18716,"line_start":84,"line_end":84,"column_start":30,"column_end":44},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":2,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":18726,"byte_end":18735,"line_start":86,"line_end":86,"column_start":6,"column_end":15},"value":"","parent":null,"children":[{"krate":0,"index":45},{"krate":0,"index":46}],"docs":"","sig":null,"attributes":[]},{"id":3,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":20618,"byte_end":20627,"line_start":131,"line_end":131,"column_start":29,"column_end":38},"value":"","parent":null,"children":[{"krate":0,"index":48}],"docs":"","sig":null,"attributes":[]},{"id":4,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":27827,"byte_end":27835,"line_start":135,"line_end":135,"column_start":28,"column_end":36},"value":"","parent":null,"children":[{"krate":0,"index":79},{"krate":0,"index":80},{"krate":0,"index":81}],"docs":"","sig":null,"attributes":[]},{"id":5,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":28403,"byte_end":28411,"line_start":155,"line_end":155,"column_start":39,"column_end":47},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":6,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":29012,"byte_end":29019,"line_start":182,"line_end":182,"column_start":38,"column_end":45},"value":"","parent":null,"children":[{"krate":0,"index":91}],"docs":"","sig":null,"attributes":[]},{"id":7,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/integer.rs","byte_start":45127,"byte_end":45135,"line_start":21,"line_end":21,"column_start":27,"column_end":35},"value":"","parent":null,"children":[{"krate":0,"index":150}],"docs":"","sig":null,"attributes":[]},{"id":8,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/integer.rs","byte_start":45276,"byte_end":45284,"line_start":28,"line_end":28,"column_start":28,"column_end":36},"value":"","parent":null,"children":[{"krate":0,"index":153}],"docs":"","sig":null,"attributes":[]},{"id":9,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/integer.rs","byte_start":45427,"byte_end":45435,"line_start":35,"line_end":35,"column_start":28,"column_end":36},"value":"","parent":null,"children":[{"krate":0,"index":156}],"docs":"","sig":null,"attributes":[]},{"id":10,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/integer.rs","byte_start":45571,"byte_end":45579,"line_start":42,"line_end":42,"column_start":28,"column_end":36},"value":"","parent":null,"children":[{"krate":0,"index":159}],"docs":"","sig":null,"attributes":[]},{"id":11,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/integer.rs","byte_start":45716,"byte_end":45724,"line_start":49,"line_end":49,"column_start":29,"column_end":37},"value":"","parent":null,"children":[{"krate":0,"index":162}],"docs":"","sig":null,"attributes":[]},{"id":12,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/integer.rs","byte_start":46019,"byte_end":46027,"line_start":59,"line_end":59,"column_start":30,"column_end":38},"value":"","parent":null,"children":[{"krate":0,"index":165}],"docs":"","sig":null,"attributes":[]},{"id":13,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":55674,"byte_end":55682,"line_start":74,"line_end":74,"column_start":29,"column_end":37},"value":"","parent":null,"children":[{"krate":0,"index":196}],"docs":"","sig":null,"attributes":[]},{"id":14,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":56584,"byte_end":56592,"line_start":98,"line_end":98,"column_start":21,"column_end":29},"value":"","parent":null,"children":[{"krate":0,"index":200}],"docs":"","sig":null,"attributes":[]},{"id":15,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":57057,"byte_end":57069,"line_start":108,"line_end":108,"column_start":27,"column_end":39},"value":"","parent":null,"children":[{"krate":0,"index":203}],"docs":"","sig":null,"attributes":[]},{"id":16,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":57856,"byte_end":57868,"line_start":128,"line_end":128,"column_start":21,"column_end":33},"value":"","parent":null,"children":[{"krate":0,"index":208}],"docs":"","sig":null,"attributes":[]},{"id":17,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":58124,"byte_end":58132,"line_start":137,"line_end":137,"column_start":29,"column_end":37},"value":"","parent":null,"children":[{"krate":0,"index":211}],"docs":"","sig":null,"attributes":[]},{"id":18,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":59313,"byte_end":59321,"line_start":172,"line_end":172,"column_start":27,"column_end":35},"value":"","parent":null,"children":[{"krate":0,"index":215}],"docs":"","sig":null,"attributes":[]},{"id":19,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":61204,"byte_end":61212,"line_start":233,"line_end":233,"column_start":37,"column_end":45},"value":"","parent":null,"children":[{"krate":0,"index":220}],"docs":"","sig":null,"attributes":[]},{"id":20,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":61556,"byte_end":61564,"line_start":247,"line_end":247,"column_start":39,"column_end":47},"value":"","parent":null,"children":[{"krate":0,"index":224}],"docs":"","sig":null,"attributes":[]},{"id":21,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":67343,"byte_end":67348,"line_start":70,"line_end":70,"column_start":13,"column_end":18},"value":"","parent":null,"children":[{"krate":0,"index":237}],"docs":"","sig":null,"attributes":[]},{"id":22,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":67772,"byte_end":67777,"line_start":84,"line_end":84,"column_start":37,"column_end":42},"value":"","parent":null,"children":[{"krate":0,"index":241}],"docs":"","sig":null,"attributes":[]},{"id":23,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":68495,"byte_end":68505,"line_start":107,"line_end":107,"column_start":29,"column_end":39},"value":"","parent":null,"children":[{"krate":0,"index":244}],"docs":"","sig":null,"attributes":[]},{"id":24,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":68759,"byte_end":68769,"line_start":117,"line_end":117,"column_start":28,"column_end":38},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":31,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":85908,"byte_end":85921,"line_start":87,"line_end":87,"column_start":37,"column_end":50},"value":"","parent":null,"children":[{"krate":0,"index":311},{"krate":0,"index":314}],"docs":"","sig":null,"attributes":[]},{"id":32,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":90815,"byte_end":90828,"line_start":223,"line_end":223,"column_start":33,"column_end":46},"value":"","parent":null,"children":[{"krate":0,"index":319}],"docs":"","sig":null,"attributes":[]},{"id":33,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":98152,"byte_end":98165,"line_start":447,"line_end":447,"column_start":28,"column_end":41},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":34,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":98192,"byte_end":98205,"line_start":449,"line_end":449,"column_start":23,"column_end":36},"value":"","parent":null,"children":[{"krate":0,"index":327}],"docs":"","sig":null,"attributes":[]},{"id":35,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105881,"byte_end":105888,"line_start":181,"line_end":181,"column_start":24,"column_end":31},"value":"","parent":null,"children":[{"krate":0,"index":371},{"krate":0,"index":374}],"docs":"","sig":null,"attributes":[]},{"id":36,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":106654,"byte_end":106661,"line_start":203,"line_end":203,"column_start":44,"column_end":51},"value":"","parent":null,"children":[{"krate":0,"index":379}],"docs":"","sig":null,"attributes":[]},{"id":37,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":110562,"byte_end":110569,"line_start":304,"line_end":304,"column_start":43,"column_end":50},"value":"","parent":null,"children":[{"krate":0,"index":403}],"docs":"","sig":null,"attributes":[]},{"id":38,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":110726,"byte_end":110733,"line_start":310,"line_end":310,"column_start":52,"column_end":59},"value":"","parent":null,"children":[{"krate":0,"index":406}],"docs":"","sig":null,"attributes":[]},{"id":39,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":111307,"byte_end":111315,"line_start":328,"line_end":328,"column_start":43,"column_end":51},"value":"","parent":null,"children":[{"krate":0,"index":412}],"docs":"","sig":null,"attributes":[]},{"id":40,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":112046,"byte_end":112051,"line_start":357,"line_end":357,"column_start":56,"column_end":61},"value":"","parent":null,"children":[{"krate":0,"index":424},{"krate":0,"index":426}],"docs":"","sig":null,"attributes":[]},{"id":41,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":112351,"byte_end":112365,"line_start":369,"line_end":369,"column_start":56,"column_end":70},"value":"","parent":null,"children":[{"krate":0,"index":429},{"krate":0,"index":431}],"docs":"","sig":null,"attributes":[]},{"id":55,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":127390,"byte_end":127401,"line_start":749,"line_end":749,"column_start":25,"column_end":36},"value":"","parent":null,"children":[{"krate":0,"index":439},{"krate":0,"index":440},{"krate":0,"index":443},{"krate":0,"index":446}],"docs":"","sig":null,"attributes":[]},{"id":58,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":139301,"byte_end":139309,"line_start":1046,"line_end":1046,"column_start":24,"column_end":32},"value":"","parent":null,"children":[{"krate":0,"index":450}],"docs":"","sig":null,"attributes":[]},{"id":59,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":139375,"byte_end":139390,"line_start":1050,"line_end":1050,"column_start":25,"column_end":40},"value":"","parent":null,"children":[{"krate":0,"index":452},{"krate":0,"index":453},{"krate":0,"index":456},{"krate":0,"index":460}],"docs":"","sig":null,"attributes":[]},{"id":60,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs","byte_start":162637,"byte_end":162650,"line_start":29,"line_end":29,"column_start":21,"column_end":34},"value":"","parent":null,"children":[{"krate":0,"index":482}],"docs":"","sig":null,"attributes":[]},{"id":61,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":174430,"byte_end":174431,"line_start":305,"line_end":305,"column_start":35,"column_end":36},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":62,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":191254,"byte_end":191261,"line_start":43,"line_end":43,"column_start":15,"column_end":22},"value":"","parent":null,"children":[{"krate":0,"index":654}],"docs":"","sig":null,"attributes":[]},{"id":63,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":191415,"byte_end":191422,"line_start":50,"line_end":50,"column_start":27,"column_end":34},"value":"","parent":null,"children":[{"krate":0,"index":657},{"krate":0,"index":658},{"krate":0,"index":659},{"krate":0,"index":661}],"docs":"","sig":null,"attributes":[]},{"id":64,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":192315,"byte_end":192324,"line_start":84,"line_end":84,"column_start":23,"column_end":32},"value":"","parent":null,"children":[{"krate":0,"index":664}],"docs":"","sig":null,"attributes":[]},{"id":65,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":192465,"byte_end":192474,"line_start":90,"line_end":90,"column_start":28,"column_end":37},"value":"","parent":null,"children":[{"krate":0,"index":666}],"docs":"","sig":null,"attributes":[]},{"id":66,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":197576,"byte_end":197588,"line_start":90,"line_end":90,"column_start":15,"column_end":27},"value":"","parent":null,"children":[{"krate":0,"index":694},{"krate":0,"index":695}],"docs":"","sig":null,"attributes":[]},{"id":67,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":198415,"byte_end":198427,"line_start":113,"line_end":113,"column_start":36,"column_end":48},"value":"","parent":null,"children":[{"krate":0,"index":699},{"krate":0,"index":700},{"krate":0,"index":701},{"krate":0,"index":702}],"docs":"","sig":null,"attributes":[]},{"id":68,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":198966,"byte_end":198978,"line_start":137,"line_end":137,"column_start":25,"column_end":37},"value":"","parent":null,"children":[{"krate":0,"index":706}],"docs":"","sig":null,"attributes":[]},{"id":69,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":199305,"byte_end":199317,"line_start":149,"line_end":149,"column_start":29,"column_end":41},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":70,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":199607,"byte_end":199620,"line_start":165,"line_end":165,"column_start":32,"column_end":45},"value":"","parent":null,"children":[{"krate":0,"index":713},{"krate":0,"index":714},{"krate":0,"index":715}],"docs":"","sig":null,"attributes":[]},{"id":71,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":200463,"byte_end":200476,"line_start":187,"line_end":187,"column_start":15,"column_end":28},"value":"","parent":null,"children":[{"krate":0,"index":719},{"krate":0,"index":723},{"krate":0,"index":725},{"krate":0,"index":726}],"docs":"","sig":null,"attributes":[]},{"id":72,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":203052,"byte_end":203065,"line_start":264,"line_end":264,"column_start":25,"column_end":38},"value":"","parent":null,"children":[{"krate":0,"index":730}],"docs":"","sig":null,"attributes":[]},{"id":73,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":203504,"byte_end":203517,"line_start":280,"line_end":280,"column_start":29,"column_end":42},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":74,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":207778,"byte_end":207785,"line_start":37,"line_end":37,"column_start":6,"column_end":13},"value":"","parent":null,"children":[{"krate":0,"index":773}],"docs":"","sig":null,"attributes":[]},{"id":75,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":208081,"byte_end":208088,"line_start":48,"line_end":48,"column_start":18,"column_end":25},"value":"","parent":null,"children":[{"krate":0,"index":775},{"krate":0,"index":776},{"krate":0,"index":777},{"krate":0,"index":778}],"docs":"","sig":null,"attributes":[]},{"id":76,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","byte_start":210470,"byte_end":210476,"line_start":36,"line_end":36,"column_start":18,"column_end":24},"value":"","parent":null,"children":[{"krate":0,"index":800},{"krate":0,"index":801},{"krate":0,"index":802},{"krate":0,"index":803}],"docs":"","sig":null,"attributes":[]},{"id":77,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","byte_start":210932,"byte_end":210938,"line_start":58,"line_end":58,"column_start":22,"column_end":28},"value":"","parent":null,"children":[{"krate":0,"index":805},{"krate":0,"index":806},{"krate":0,"index":807}],"docs":"","sig":null,"attributes":[]},{"id":78,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","byte_start":211247,"byte_end":211253,"line_start":72,"line_end":72,"column_start":20,"column_end":26},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":79,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":215995,"byte_end":216004,"line_start":93,"line_end":93,"column_start":18,"column_end":27},"value":"","parent":null,"children":[{"krate":0,"index":846}],"docs":"","sig":null,"attributes":[]},{"id":80,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":216102,"byte_end":216111,"line_start":99,"line_end":99,"column_start":18,"column_end":27},"value":"","parent":null,"children":[{"krate":0,"index":848},{"krate":0,"index":849},{"krate":0,"index":850},{"krate":0,"index":851}],"docs":"","sig":null,"attributes":[]},{"id":81,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":217196,"byte_end":217205,"line_start":131,"line_end":131,"column_start":20,"column_end":29},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":82,"kind":"Inherent","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":264932,"byte_end":264940,"line_start":40,"line_end":40,"column_start":6,"column_end":14},"value":"","parent":null,"children":[{"krate":0,"index":895},{"krate":0,"index":896},{"krate":0,"index":897},{"krate":0,"index":898},{"krate":0,"index":900}],"docs":"","sig":null,"attributes":[]},{"id":83,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":266360,"byte_end":266368,"line_start":90,"line_end":90,"column_start":23,"column_end":31},"value":"","parent":null,"children":[{"krate":0,"index":902},{"krate":0,"index":903},{"krate":0,"index":904}],"docs":"","sig":null,"attributes":[]},{"id":84,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":266777,"byte_end":266785,"line_start":104,"line_end":104,"column_start":20,"column_end":28},"value":"","parent":null,"children":[{"krate":0,"index":906}],"docs":"","sig":null,"attributes":[]},{"id":85,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":267375,"byte_end":267383,"line_start":120,"line_end":120,"column_start":25,"column_end":33},"value":"","parent":null,"children":[{"krate":0,"index":911}],"docs":"","sig":null,"attributes":[]},{"id":86,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":267495,"byte_end":267503,"line_start":127,"line_end":127,"column_start":27,"column_end":35},"value":"","parent":null,"children":[{"krate":0,"index":913}],"docs":"","sig":null,"attributes":[]},{"id":87,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":267804,"byte_end":267816,"line_start":143,"line_end":143,"column_start":23,"column_end":35},"value":"","parent":null,"children":[{"krate":0,"index":916},{"krate":0,"index":917},{"krate":0,"index":920}],"docs":"","sig":null,"attributes":[]},{"id":88,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":268351,"byte_end":268363,"line_start":164,"line_end":164,"column_start":32,"column_end":44},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":89,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":268587,"byte_end":268603,"line_start":175,"line_end":175,"column_start":19,"column_end":35},"value":"","parent":null,"children":[{"krate":0,"index":924},{"krate":0,"index":925},{"krate":0,"index":928}],"docs":"","sig":null,"attributes":[]},{"id":90,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":269128,"byte_end":269144,"line_start":197,"line_end":197,"column_start":28,"column_end":44},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":91,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":274173,"byte_end":274180,"line_start":331,"line_end":331,"column_start":28,"column_end":35},"value":"","parent":null,"children":[{"krate":0,"index":953}],"docs":"","sig":null,"attributes":[]},{"id":92,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":274344,"byte_end":274351,"line_start":336,"line_end":336,"column_start":21,"column_end":28},"value":"","parent":null,"children":[{"krate":0,"index":956}],"docs":"","sig":null,"attributes":[]},{"id":93,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":274624,"byte_end":274631,"line_start":343,"line_end":343,"column_start":27,"column_end":34},"value":"","parent":null,"children":[{"krate":0,"index":959}],"docs":"","sig":null,"attributes":[]},{"id":94,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":274751,"byte_end":274758,"line_start":348,"line_end":348,"column_start":20,"column_end":27},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":97,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":239734,"byte_end":239735,"line_start":615,"line_end":615,"column_start":28,"column_end":29},"value":"","parent":null,"children":[],"docs":"","sig":null,"attributes":[]},{"id":98,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":240286,"byte_end":240301,"line_start":632,"line_end":632,"column_start":73,"column_end":88},"value":"","parent":null,"children":[{"krate":0,"index":1092},{"krate":0,"index":1093},{"krate":0,"index":1095}],"docs":"","sig":null,"attributes":[]},{"id":99,"kind":"Direct","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":240753,"byte_end":240768,"line_start":647,"line_end":647,"column_start":9,"column_end":24},"value":"","parent":null,"children":[{"krate":0,"index":1100}],"docs":"","sig":null,"attributes":[]}],"refs":[{"kind":"Mod","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":2859,"byte_end":2872,"line_start":97,"line_end":97,"column_start":9,"column_end":22},"ref_id":{"krate":0,"index":24}},{"kind":"Mod","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":11280,"byte_end":11287,"line_start":110,"line_end":110,"column_start":9,"column_end":16},"ref_id":{"krate":0,"index":332}},{"kind":"Mod","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/mod.rs","byte_start":11488,"byte_end":11496,"line_start":117,"line_end":117,"column_start":9,"column_end":17},"ref_id":{"krate":0,"index":462}},{"kind":"Mod","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":2882,"byte_end":2889,"line_start":98,"line_end":98,"column_start":9,"column_end":16},"ref_id":{"krate":0,"index":531}},{"kind":"Mod","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":2908,"byte_end":2912,"line_start":100,"line_end":100,"column_start":9,"column_end":13},"ref_id":{"krate":0,"index":633}},{"kind":"Mod","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":188550,"byte_end":188557,"line_start":100,"line_end":100,"column_start":33,"column_end":40},"ref_id":{"krate":0,"index":634}},{"kind":"Mod","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mod.rs","byte_start":188568,"byte_end":188572,"line_start":102,"line_end":102,"column_start":9,"column_end":13},"ref_id":{"krate":0,"index":761}},{"kind":"Mod","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/lib.rs","byte_start":2922,"byte_end":2925,"line_start":101,"line_end":101,"column_start":9,"column_end":12},"ref_id":{"krate":0,"index":862}},{"kind":"Mod","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":218447,"byte_end":218452,"line_start":30,"line_end":30,"column_start":9,"column_end":14},"ref_id":{"krate":0,"index":863}}],"macro_refs":[],"relations":[{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":18417,"byte_end":18431,"line_start":75,"line_end":75,"column_start":23,"column_end":37},"kind":{"Impl":{"id":0}},"from":{"krate":0,"index":1133},"to":{"krate":1,"index":9560}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":18702,"byte_end":18716,"line_start":84,"line_end":84,"column_start":30,"column_end":44},"kind":{"Impl":{"id":1}},"from":{"krate":0,"index":1133},"to":{"krate":4,"index":2338}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":18726,"byte_end":18735,"line_start":86,"line_end":86,"column_start":6,"column_end":15},"kind":{"Impl":{"id":2}},"from":{"krate":0,"index":1122},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/bernoulli.rs","byte_start":20618,"byte_end":20627,"line_start":131,"line_end":131,"column_start":29,"column_end":38},"kind":{"Impl":{"id":3}},"from":{"krate":0,"index":1122},"to":{"krate":0,"index":60}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":27827,"byte_end":27835,"line_start":135,"line_end":135,"column_start":28,"column_end":36},"kind":{"Impl":{"id":4}},"from":{"krate":0,"index":1147},"to":{"krate":1,"index":7822}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":28403,"byte_end":28411,"line_start":155,"line_end":155,"column_start":39,"column_end":47},"kind":{"Impl":{"id":5}},"from":{"krate":0,"index":1147},"to":{"krate":1,"index":8092}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/distribution.rs","byte_start":29012,"byte_end":29019,"line_start":182,"line_end":182,"column_start":38,"column_end":45},"kind":{"Impl":{"id":6}},"from":{"krate":0,"index":1159},"to":{"krate":0,"index":60}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/integer.rs","byte_start":45127,"byte_end":45135,"line_start":21,"line_end":21,"column_start":27,"column_end":35},"kind":{"Impl":{"id":7}},"from":{"krate":0,"index":2060},"to":{"krate":0,"index":60}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/integer.rs","byte_start":45276,"byte_end":45284,"line_start":28,"line_end":28,"column_start":28,"column_end":36},"kind":{"Impl":{"id":8}},"from":{"krate":0,"index":2060},"to":{"krate":0,"index":60}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/integer.rs","byte_start":45427,"byte_end":45435,"line_start":35,"line_end":35,"column_start":28,"column_end":36},"kind":{"Impl":{"id":9}},"from":{"krate":0,"index":2060},"to":{"krate":0,"index":60}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/integer.rs","byte_start":45571,"byte_end":45579,"line_start":42,"line_end":42,"column_start":28,"column_end":36},"kind":{"Impl":{"id":10}},"from":{"krate":0,"index":2060},"to":{"krate":0,"index":60}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/integer.rs","byte_start":45716,"byte_end":45724,"line_start":49,"line_end":49,"column_start":29,"column_end":37},"kind":{"Impl":{"id":11}},"from":{"krate":0,"index":2060},"to":{"krate":0,"index":60}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/integer.rs","byte_start":46019,"byte_end":46027,"line_start":59,"line_end":59,"column_start":30,"column_end":38},"kind":{"Impl":{"id":12}},"from":{"krate":0,"index":2060},"to":{"krate":0,"index":60}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":55674,"byte_end":55682,"line_start":74,"line_end":74,"column_start":29,"column_end":37},"kind":{"Impl":{"id":13}},"from":{"krate":0,"index":2060},"to":{"krate":0,"index":60}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":56584,"byte_end":56592,"line_start":98,"line_end":98,"column_start":21,"column_end":29},"kind":{"Impl":{"id":14}},"from":{"krate":0,"index":2060},"to":{"krate":0,"index":93}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":57057,"byte_end":57069,"line_start":108,"line_end":108,"column_start":27,"column_end":39},"kind":{"Impl":{"id":15}},"from":{"krate":0,"index":1253},"to":{"krate":0,"index":60}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":57856,"byte_end":57868,"line_start":128,"line_end":128,"column_start":21,"column_end":33},"kind":{"Impl":{"id":16}},"from":{"krate":0,"index":1253},"to":{"krate":0,"index":93}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":58124,"byte_end":58132,"line_start":137,"line_end":137,"column_start":29,"column_end":37},"kind":{"Impl":{"id":17}},"from":{"krate":0,"index":2060},"to":{"krate":0,"index":60}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":59313,"byte_end":59321,"line_start":172,"line_end":172,"column_start":27,"column_end":35},"kind":{"Impl":{"id":18}},"from":{"krate":0,"index":2060},"to":{"krate":0,"index":60}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":61204,"byte_end":61212,"line_start":233,"line_end":233,"column_start":37,"column_end":45},"kind":{"Impl":{"id":19}},"from":{"krate":0,"index":2060},"to":{"krate":0,"index":60}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/other.rs","byte_start":61556,"byte_end":61564,"line_start":247,"line_end":247,"column_start":39,"column_end":47},"kind":{"Impl":{"id":20}},"from":{"krate":0,"index":2060},"to":{"krate":0,"index":60}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":67343,"byte_end":67348,"line_start":70,"line_end":70,"column_start":13,"column_end":18},"kind":{"Impl":{"id":21}},"from":{"krate":0,"index":1572},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":67772,"byte_end":67777,"line_start":84,"line_end":84,"column_start":37,"column_end":42},"kind":{"Impl":{"id":22}},"from":{"krate":0,"index":1572},"to":{"krate":0,"index":60}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":68495,"byte_end":68505,"line_start":107,"line_end":107,"column_start":29,"column_end":39},"kind":{"Impl":{"id":23}},"from":{"krate":0,"index":1588},"to":{"krate":1,"index":9560}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/slice.rs","byte_start":68759,"byte_end":68769,"line_start":117,"line_end":117,"column_start":28,"column_end":38},"kind":{"Impl":{"id":24}},"from":{"krate":0,"index":1588},"to":{"krate":4,"index":2338}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/utils.rs","byte_start":76975,"byte_end":76980,"line_start":238,"line_end":238,"column_start":25,"column_end":30},"kind":"SuperTrait","from":{"krate":1,"index":3024},"to":{"krate":0,"index":265}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/utils.rs","byte_start":77186,"byte_end":77191,"line_start":245,"line_end":245,"column_start":31,"column_end":36},"kind":"SuperTrait","from":{"krate":1,"index":3024},"to":{"krate":0,"index":269}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/utils.rs","byte_start":77636,"byte_end":77641,"line_start":266,"line_end":266,"column_start":30,"column_end":35},"kind":"SuperTrait","from":{"krate":1,"index":3024},"to":{"krate":0,"index":274}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":85908,"byte_end":85921,"line_start":87,"line_end":87,"column_start":37,"column_end":50},"kind":{"Impl":{"id":31}},"from":{"krate":0,"index":1646},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":90815,"byte_end":90828,"line_start":223,"line_end":223,"column_start":33,"column_end":46},"kind":{"Impl":{"id":32}},"from":{"krate":0,"index":1646},"to":{"krate":0,"index":60}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":98152,"byte_end":98165,"line_start":447,"line_end":447,"column_start":28,"column_end":41},"kind":{"Impl":{"id":33}},"from":{"krate":0,"index":1663},"to":{"krate":4,"index":2338}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted_index.rs","byte_start":98192,"byte_end":98205,"line_start":449,"line_end":449,"column_start":23,"column_end":36},"kind":{"Impl":{"id":34}},"from":{"krate":0,"index":1663},"to":{"krate":1,"index":9560}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":105881,"byte_end":105888,"line_start":181,"line_end":181,"column_start":24,"column_end":31},"kind":{"Impl":{"id":35}},"from":{"krate":0,"index":1683},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":106654,"byte_end":106661,"line_start":203,"line_end":203,"column_start":44,"column_end":51},"kind":{"Impl":{"id":36}},"from":{"krate":0,"index":1683},"to":{"krate":0,"index":60}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107077,"byte_end":107082,"line_start":216,"line_end":216,"column_start":26,"column_end":31},"kind":"SuperTrait","from":{"krate":1,"index":3024},"to":{"krate":0,"index":381}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":107657,"byte_end":107662,"line_start":231,"line_end":231,"column_start":27,"column_end":32},"kind":"SuperTrait","from":{"krate":1,"index":3024},"to":{"krate":0,"index":383}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":110562,"byte_end":110569,"line_start":304,"line_end":304,"column_start":43,"column_end":50},"kind":{"Impl":{"id":37}},"from":{"krate":0,"index":1683},"to":{"krate":1,"index":2925}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":110726,"byte_end":110733,"line_start":310,"line_end":310,"column_start":52,"column_end":59},"kind":{"Impl":{"id":38}},"from":{"krate":0,"index":1683},"to":{"krate":1,"index":2925}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":111307,"byte_end":111315,"line_start":328,"line_end":328,"column_start":43,"column_end":51},"kind":{"Impl":{"id":39}},"from":{"krate":0,"index":411},"to":{"krate":0,"index":407}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":112046,"byte_end":112051,"line_start":357,"line_end":357,"column_start":56,"column_end":61},"kind":{"Impl":{"id":40}},"from":{"krate":1,"index":43602},"to":{"krate":0,"index":417}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":112351,"byte_end":112365,"line_start":369,"line_end":369,"column_start":56,"column_end":70},"kind":{"Impl":{"id":41}},"from":{"krate":1,"index":43671},"to":{"krate":0,"index":417}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":127390,"byte_end":127401,"line_start":749,"line_end":749,"column_start":25,"column_end":36},"kind":{"Impl":{"id":55}},"from":{"krate":0,"index":1960},"to":{"krate":0,"index":383}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":139301,"byte_end":139309,"line_start":1046,"line_end":1046,"column_start":24,"column_end":32},"kind":{"Impl":{"id":58}},"from":{"krate":1,"index":47686},"to":{"krate":0,"index":381}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/uniform.rs","byte_start":139375,"byte_end":139390,"line_start":1050,"line_end":1050,"column_start":25,"column_end":40},"kind":{"Impl":{"id":59}},"from":{"krate":0,"index":2017},"to":{"krate":0,"index":383}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/distributions/weighted.rs","byte_start":162637,"byte_end":162650,"line_start":29,"line_end":29,"column_start":21,"column_end":34},"kind":{"Impl":{"id":60}},"from":{"krate":0,"index":2040},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":166593,"byte_end":166600,"line_start":55,"line_end":55,"column_start":16,"column_end":23},"kind":"SuperTrait","from":{"krate":20,"index":188},"to":{"krate":0,"index":603}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rng.rs","byte_start":174430,"byte_end":174431,"line_start":305,"line_end":305,"column_start":35,"column_end":36},"kind":{"Impl":{"id":61}},"from":{"krate":0,"index":623},"to":{"krate":0,"index":603}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":191254,"byte_end":191261,"line_start":43,"line_end":43,"column_start":15,"column_end":22},"kind":{"Impl":{"id":62}},"from":{"krate":0,"index":2345},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":191415,"byte_end":191422,"line_start":50,"line_end":50,"column_start":27,"column_end":34},"kind":{"Impl":{"id":63}},"from":{"krate":0,"index":2345},"to":{"krate":20,"index":188}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":192315,"byte_end":192324,"line_start":84,"line_end":84,"column_start":23,"column_end":32},"kind":{"Impl":{"id":64}},"from":{"krate":0,"index":2351},"to":{"krate":1,"index":9560}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/read.rs","byte_start":192465,"byte_end":192474,"line_start":90,"line_end":90,"column_start":28,"column_end":37},"kind":{"Impl":{"id":65}},"from":{"krate":0,"index":2351},"to":{"krate":4,"index":2338}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":197576,"byte_end":197588,"line_start":90,"line_end":90,"column_start":15,"column_end":27},"kind":{"Impl":{"id":66}},"from":{"krate":0,"index":2356},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":198415,"byte_end":198427,"line_start":113,"line_end":113,"column_start":36,"column_end":48},"kind":{"Impl":{"id":67}},"from":{"krate":0,"index":2356},"to":{"krate":20,"index":188}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":198966,"byte_end":198978,"line_start":137,"line_end":137,"column_start":25,"column_end":37},"kind":{"Impl":{"id":68}},"from":{"krate":0,"index":2356},"to":{"krate":1,"index":2640}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":199305,"byte_end":199317,"line_start":149,"line_end":149,"column_start":29,"column_end":41},"kind":{"Impl":{"id":69}},"from":{"krate":0,"index":2356},"to":{"krate":20,"index":193}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":199607,"byte_end":199620,"line_start":165,"line_end":165,"column_start":32,"column_end":45},"kind":{"Impl":{"id":70}},"from":{"krate":0,"index":2365},"to":{"krate":20,"index":48}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":200463,"byte_end":200476,"line_start":187,"line_end":187,"column_start":15,"column_end":28},"kind":{"Impl":{"id":71}},"from":{"krate":0,"index":2365},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":203052,"byte_end":203065,"line_start":264,"line_end":264,"column_start":25,"column_end":38},"kind":{"Impl":{"id":72}},"from":{"krate":0,"index":2365},"to":{"krate":1,"index":2640}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/adapter/reseeding.rs","byte_start":203504,"byte_end":203517,"line_start":280,"line_end":280,"column_start":29,"column_end":42},"kind":{"Impl":{"id":73}},"from":{"krate":0,"index":2365},"to":{"krate":20,"index":193}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":207778,"byte_end":207785,"line_start":37,"line_end":37,"column_start":6,"column_end":13},"kind":{"Impl":{"id":74}},"from":{"krate":0,"index":2377},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/mock.rs","byte_start":208081,"byte_end":208088,"line_start":48,"line_end":48,"column_start":18,"column_end":25},"kind":{"Impl":{"id":75}},"from":{"krate":0,"index":2377},"to":{"krate":20,"index":188}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","byte_start":210470,"byte_end":210476,"line_start":36,"line_end":36,"column_start":18,"column_end":24},"kind":{"Impl":{"id":76}},"from":{"krate":0,"index":2391},"to":{"krate":20,"index":188}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","byte_start":210932,"byte_end":210938,"line_start":58,"line_end":58,"column_start":22,"column_end":28},"kind":{"Impl":{"id":77}},"from":{"krate":0,"index":2391},"to":{"krate":20,"index":194}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/std.rs","byte_start":211247,"byte_end":211253,"line_start":72,"line_end":72,"column_start":20,"column_end":26},"kind":{"Impl":{"id":78}},"from":{"krate":0,"index":2391},"to":{"krate":20,"index":193}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":215995,"byte_end":216004,"line_start":93,"line_end":93,"column_start":18,"column_end":27},"kind":{"Impl":{"id":79}},"from":{"krate":0,"index":2405},"to":{"krate":1,"index":2997}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":216102,"byte_end":216111,"line_start":99,"line_end":99,"column_start":18,"column_end":27},"kind":{"Impl":{"id":80}},"from":{"krate":0,"index":2405},"to":{"krate":20,"index":188}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/rngs/thread.rs","byte_start":217196,"byte_end":217205,"line_start":131,"line_end":131,"column_start":20,"column_end":29},"kind":{"Impl":{"id":81}},"from":{"krate":0,"index":2405},"to":{"krate":20,"index":193}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":264932,"byte_end":264940,"line_start":40,"line_end":40,"column_start":6,"column_end":14},"kind":{"Impl":{"id":82}},"from":{"krate":0,"index":2416},"to":{"krate":4294967295,"index":4294967295}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":266360,"byte_end":266368,"line_start":90,"line_end":90,"column_start":23,"column_end":31},"kind":{"Impl":{"id":83}},"from":{"krate":0,"index":2416},"to":{"krate":1,"index":7633}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":266777,"byte_end":266785,"line_start":104,"line_end":104,"column_start":20,"column_end":28},"kind":{"Impl":{"id":84}},"from":{"krate":0,"index":2416},"to":{"krate":1,"index":2670}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":267375,"byte_end":267383,"line_start":120,"line_end":120,"column_start":25,"column_end":33},"kind":{"Impl":{"id":85}},"from":{"krate":0,"index":2416},"to":{"krate":1,"index":2925}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":267495,"byte_end":267503,"line_start":127,"line_end":127,"column_start":27,"column_end":35},"kind":{"Impl":{"id":86}},"from":{"krate":0,"index":2416},"to":{"krate":1,"index":2925}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":267804,"byte_end":267816,"line_start":143,"line_end":143,"column_start":23,"column_end":35},"kind":{"Impl":{"id":87}},"from":{"krate":0,"index":2427},"to":{"krate":1,"index":7822}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":268351,"byte_end":268363,"line_start":164,"line_end":164,"column_start":32,"column_end":44},"kind":{"Impl":{"id":88}},"from":{"krate":0,"index":2427},"to":{"krate":1,"index":7702}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":268587,"byte_end":268603,"line_start":175,"line_end":175,"column_start":19,"column_end":35},"kind":{"Impl":{"id":89}},"from":{"krate":0,"index":2438},"to":{"krate":1,"index":7822}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":269128,"byte_end":269144,"line_start":197,"line_end":197,"column_start":28,"column_end":44},"kind":{"Impl":{"id":90}},"from":{"krate":0,"index":2438},"to":{"krate":1,"index":7702}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":274173,"byte_end":274180,"line_start":331,"line_end":331,"column_start":28,"column_end":35},"kind":{"Impl":{"id":91}},"from":{"krate":0,"index":947},"to":{"krate":1,"index":2717}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":274344,"byte_end":274351,"line_start":336,"line_end":336,"column_start":21,"column_end":28},"kind":{"Impl":{"id":92}},"from":{"krate":0,"index":947},"to":{"krate":1,"index":2706}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":274624,"byte_end":274631,"line_start":343,"line_end":343,"column_start":27,"column_end":34},"kind":{"Impl":{"id":93}},"from":{"krate":0,"index":947},"to":{"krate":1,"index":2670}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":274751,"byte_end":274758,"line_start":348,"line_end":348,"column_start":20,"column_end":27},"kind":{"Impl":{"id":94}},"from":{"krate":0,"index":947},"to":{"krate":1,"index":2675}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":279359,"byte_end":279363,"line_start":473,"line_end":473,"column_start":13,"column_end":17},"kind":"SuperTrait","from":{"krate":1,"index":3029},"to":{"krate":0,"index":970}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":279366,"byte_end":279376,"line_start":473,"line_end":473,"column_start":20,"column_end":30},"kind":"SuperTrait","from":{"krate":1,"index":2717},"to":{"krate":0,"index":970}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":279379,"byte_end":279382,"line_start":473,"line_end":473,"column_start":33,"column_end":36},"kind":"SuperTrait","from":{"krate":1,"index":2706},"to":{"krate":0,"index":970}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":279385,"byte_end":279394,"line_start":473,"line_end":473,"column_start":39,"column_end":48},"kind":"SuperTrait","from":{"krate":1,"index":2670},"to":{"krate":0,"index":970}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":279397,"byte_end":279399,"line_start":473,"line_end":473,"column_start":51,"column_end":53},"kind":"SuperTrait","from":{"krate":1,"index":2675},"to":{"krate":0,"index":970}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":279402,"byte_end":279415,"line_start":473,"line_end":473,"column_start":56,"column_end":69},"kind":"SuperTrait","from":{"krate":0,"index":381},"to":{"krate":0,"index":970}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":279434,"byte_end":279438,"line_start":474,"line_end":474,"column_start":19,"column_end":23},"kind":"SuperTrait","from":{"krate":1,"index":9760},"to":{"krate":0,"index":970}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/index.rs","byte_start":279452,"byte_end":279461,"line_start":474,"line_end":474,"column_start":37,"column_end":46},"kind":"SuperTrait","from":{"krate":1,"index":3117},"to":{"krate":0,"index":970}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":228006,"byte_end":228014,"line_start":288,"line_end":288,"column_start":27,"column_end":35},"kind":"SuperTrait","from":{"krate":1,"index":7822},"to":{"krate":0,"index":1032}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":228017,"byte_end":228022,"line_start":288,"line_end":288,"column_start":38,"column_end":43},"kind":"SuperTrait","from":{"krate":1,"index":3024},"to":{"krate":0,"index":1032}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":239734,"byte_end":239735,"line_start":615,"line_end":615,"column_start":28,"column_end":29},"kind":{"Impl":{"id":97}},"from":{"krate":0,"index":1087},"to":{"krate":0,"index":1032}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":240286,"byte_end":240301,"line_start":632,"line_end":632,"column_start":73,"column_end":88},"kind":{"Impl":{"id":98}},"from":{"krate":0,"index":2449},"to":{"krate":1,"index":7822}},{"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.8.5/src/seq/mod.rs","byte_start":240753,"byte_end":240768,"line_start":647,"line_end":647,"column_start":9,"column_end":24},"kind":{"Impl":{"id":99}},"from":{"krate":0,"index":2449},"to":{"krate":1,"index":7702}}]} \ No newline at end of file diff --git a/target/rls/debug/deps/save-analysis/libsdl2-aaedac323d9034b3.json b/target/rls/debug/deps/save-analysis/libsdl2-aaedac323d9034b3.json new file mode 100644 index 0000000..0fcad42 --- /dev/null +++ b/target/rls/debug/deps/save-analysis/libsdl2-aaedac323d9034b3.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.1","compilation":{"directory":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2","program":"/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rls","arguments":["--crate-name","sdl2","/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","--json=diagnostic-rendered-ansi,future-incompat","--crate-type","lib","--emit=dep-info,metadata","-C","embed-bitcode=no","-C","debuginfo=2","--cfg","feature=\"default\"","--cfg","feature=\"image\"","--cfg","feature=\"ttf\"","-C","metadata=aaedac323d9034b3","-C","extra-filename=-aaedac323d9034b3","--out-dir","/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps","-L","dependency=/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps","--extern","bitflags=/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/libbitflags-bebecc21b0a7c1f6.rmeta","--extern","lazy_static=/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/liblazy_static-ae46812994b3b675.rmeta","--extern","libc=/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/liblibc-85a1d1b767afc43e.rmeta","--extern","sdl2_sys=/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/libsdl2_sys-df02e3f4982c060d.rmeta","--cap-lints","allow","--error-format=json","--sysroot","/home/gallant/.rustup/toolchains/stable-x86_64-unknown-linux-gnu"],"output":"/home/gallant/Documents/RustProjects/game_test/target/rls/debug/deps/libsdl2-aaedac323d9034b3.rmeta"},"prelude":{"crate_id":{"name":"sdl2","disambiguator":[5868353648469071053,0]},"crate_root":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2","external_crates":[{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","num":1,"id":{"name":"std","disambiguator":[14026078687029744792,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","num":2,"id":{"name":"core","disambiguator":[5443730852259234579,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","num":3,"id":{"name":"compiler_builtins","disambiguator":[4162025702538114948,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","num":4,"id":{"name":"rustc_std_workspace_core","disambiguator":[17612152343462746361,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","num":5,"id":{"name":"alloc","disambiguator":[5560808256873132085,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","num":6,"id":{"name":"libc","disambiguator":[135160560163186024,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","num":7,"id":{"name":"unwind","disambiguator":[5800521777261530329,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","num":8,"id":{"name":"cfg_if","disambiguator":[7095478770525139037,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","num":9,"id":{"name":"hashbrown","disambiguator":[17225897750877482818,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","num":10,"id":{"name":"rustc_std_workspace_alloc","disambiguator":[15613653607383163471,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","num":11,"id":{"name":"rustc_demangle","disambiguator":[12428323400248712701,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","num":12,"id":{"name":"std_detect","disambiguator":[11893279639181573711,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","num":13,"id":{"name":"addr2line","disambiguator":[13583305032161054644,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","num":14,"id":{"name":"gimli","disambiguator":[16609837797022023111,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","num":15,"id":{"name":"object","disambiguator":[18098459435141129808,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","num":16,"id":{"name":"memchr","disambiguator":[15244551393771456017,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","num":17,"id":{"name":"miniz_oxide","disambiguator":[6576340271055396708,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","num":18,"id":{"name":"adler","disambiguator":[15284510821186066958,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","num":19,"id":{"name":"panic_unwind","disambiguator":[12982807908830018159,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","num":20,"id":{"name":"libc","disambiguator":[14926449781656206643,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","num":21,"id":{"name":"lazy_static","disambiguator":[9708727071027780738,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","num":22,"id":{"name":"bitflags","disambiguator":[15917436305182542096,0]}},{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","num":23,"id":{"name":"sdl2_sys","disambiguator":[7341326241932298073,0]}}],"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":0,"byte_end":2506,"line_start":1,"line_end":110,"column_start":1,"column_end":27}},"imports":[{"kind":"GlobUse","ref_id":null,"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":1708,"byte_end":1709,"line_start":64,"line_end":64,"column_start":21,"column_end":22},"alias_span":null,"name":"*","value":"Sdl, SdlDrop, set_error, GameControllerSubsystem, clear_error, get_error, AudioSubsystem, HapticSubsystem, EventPump, JoystickSubsystem, TimerSubsystem, VideoSubsystem, EventSubsystem","parent":{"krate":0,"index":0}},{"kind":"Use","ref_id":{"krate":0,"index":3840},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/keyboard/mod.rs","byte_start":194365,"byte_end":194372,"line_start":12,"line_end":12,"column_start":24,"column_end":31},"alias_span":null,"name":"Keycode","value":"","parent":{"krate":0,"index":866}},{"kind":"Use","ref_id":{"krate":0,"index":4560},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/keyboard/mod.rs","byte_start":194398,"byte_end":194406,"line_start":13,"line_end":13,"column_start":25,"column_end":33},"alias_span":null,"name":"Scancode","value":"","parent":{"krate":0,"index":866}},{"kind":"Use","ref_id":{"krate":0,"index":5747},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/mouse/mod.rs","byte_start":268702,"byte_end":268720,"line_start":11,"line_end":11,"column_start":25,"column_end":43},"alias_span":null,"name":"RelativeMouseState","value":"","parent":{"krate":0,"index":1097}},{"kind":"Use","ref_id":{"krate":23,"index":3900},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/video.rs","byte_start":480053,"byte_end":480063,"line_start":21,"line_end":21,"column_start":22,"column_end":32},"alias_span":null,"name":"VkInstance","value":"","parent":{"krate":0,"index":2254}},{"kind":"Use","ref_id":{"krate":23,"index":3901},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/video.rs","byte_start":480065,"byte_end":480077,"line_start":21,"line_end":21,"column_start":34,"column_end":46},"alias_span":null,"name":"VkSurfaceKHR","value":"","parent":{"krate":0,"index":2254}},{"kind":"Use","ref_id":{"krate":0,"index":2796},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/mod.rs","byte_start":552960,"byte_end":552978,"line_start":27,"line_end":27,"column_start":5,"column_end":23},"alias_span":null,"name":"get_linked_version","value":"","parent":{"krate":0,"index":2733}},{"kind":"Use","ref_id":{"krate":0,"index":2803},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/mod.rs","byte_start":552980,"byte_end":553000,"line_start":27,"line_end":27,"column_start":25,"column_end":45},"alias_span":null,"name":"has_been_initialized","value":"","parent":{"krate":0,"index":2733}},{"kind":"Use","ref_id":{"krate":0,"index":2802},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/mod.rs","byte_start":553002,"byte_end":553006,"line_start":27,"line_end":27,"column_start":47,"column_end":51},"alias_span":null,"name":"init","value":"","parent":{"krate":0,"index":2733}},{"kind":"Use","ref_id":{"krate":0,"index":6728},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/mod.rs","byte_start":553008,"byte_end":553017,"line_start":27,"line_end":27,"column_start":53,"column_end":62},"alias_span":null,"name":"InitError","value":"","parent":{"krate":0,"index":2733}},{"kind":"Use","ref_id":{"krate":0,"index":2779},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/mod.rs","byte_start":553019,"byte_end":553033,"line_start":27,"line_end":27,"column_start":64,"column_end":78},"alias_span":null,"name":"Sdl2TtfContext","value":"","parent":{"krate":0,"index":2733}},{"kind":"Use","ref_id":{"krate":0,"index":2780},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/mod.rs","byte_start":553019,"byte_end":553033,"line_start":27,"line_end":27,"column_start":64,"column_end":78},"alias_span":null,"name":"Sdl2TtfContext","value":"","parent":{"krate":0,"index":2733}},{"kind":"Use","ref_id":{"krate":0,"index":2901},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/mod.rs","byte_start":553064,"byte_end":553068,"line_start":30,"line_end":30,"column_start":5,"column_end":9},"alias_span":null,"name":"Font","value":"","parent":{"krate":0,"index":2733}},{"kind":"Use","ref_id":{"krate":0,"index":6877},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/mod.rs","byte_start":553070,"byte_end":553079,"line_start":30,"line_end":30,"column_start":11,"column_end":20},"alias_span":null,"name":"FontError","value":"","parent":{"krate":0,"index":2733}},{"kind":"Use","ref_id":{"krate":0,"index":2858},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/mod.rs","byte_start":553081,"byte_end":553091,"line_start":30,"line_end":30,"column_start":22,"column_end":32},"alias_span":null,"name":"FontResult","value":"","parent":{"krate":0,"index":2733}},{"kind":"Use","ref_id":{"krate":0,"index":6736},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/mod.rs","byte_start":553093,"byte_end":553102,"line_start":30,"line_end":30,"column_start":34,"column_end":43},"alias_span":null,"name":"FontStyle","value":"","parent":{"krate":0,"index":2733}},{"kind":"Use","ref_id":{"krate":0,"index":6863},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/mod.rs","byte_start":553104,"byte_end":553116,"line_start":30,"line_end":30,"column_start":45,"column_end":57},"alias_span":null,"name":"GlyphMetrics","value":"","parent":{"krate":0,"index":2733}},{"kind":"Use","ref_id":{"krate":0,"index":6843},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/mod.rs","byte_start":553118,"byte_end":553125,"line_start":30,"line_end":30,"column_start":59,"column_end":66},"alias_span":null,"name":"Hinting","value":"","parent":{"krate":0,"index":2733}},{"kind":"Use","ref_id":{"krate":0,"index":2879},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/ttf/mod.rs","byte_start":553127,"byte_end":553143,"line_start":30,"line_end":30,"column_start":68,"column_end":84},"alias_span":null,"name":"PartialRendering","value":"","parent":{"krate":0,"index":2733}},{"kind":"Use","ref_id":{"krate":0,"index":6888},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":2422,"byte_end":2439,"line_start":107,"line_end":107,"column_start":24,"column_end":41},"alias_span":null,"name":"IntegerOrSdlError","value":"","parent":{"krate":0,"index":0}}],"defs":[{"kind":"Mod","id":{"krate":0,"index":0},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":0,"byte_end":2506,"line_start":1,"line_end":110,"column_start":1,"column_end":27},"name":"","qualname":"::","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/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":6},{"krate":0,"index":7},{"krate":0,"index":8},{"krate":0,"index":36},{"krate":0,"index":59},{"krate":0,"index":62},{"krate":0,"index":319},{"krate":0,"index":424},{"krate":0,"index":667},{"krate":0,"index":705},{"krate":0,"index":734},{"krate":0,"index":765},{"krate":0,"index":866},{"krate":0,"index":1005},{"krate":0,"index":1029},{"krate":0,"index":1097},{"krate":0,"index":1211},{"krate":0,"index":1292},{"krate":0,"index":1495},{"krate":0,"index":1846},{"krate":0,"index":1911},{"krate":0,"index":1986},{"krate":0,"index":2158},{"krate":0,"index":2199},{"krate":0,"index":2209},{"krate":0,"index":2237},{"krate":0,"index":2254},{"krate":0,"index":2592},{"krate":0,"index":2733},{"krate":0,"index":2992},{"krate":0,"index":3007}],"decl_id":null,"docs":" # Getting started","sig":null,"attributes":[{"value":"/ # Getting started","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":0,"byte_end":21,"line_start":1,"line_end":1,"column_start":1,"column_end":22}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":22,"byte_end":25,"line_start":2,"line_end":2,"column_start":1,"column_end":4}},{"value":"/ ```rust,no_run","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":26,"byte_end":44,"line_start":3,"line_end":3,"column_start":1,"column_end":19}},{"value":"/ extern crate sdl2;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":45,"byte_end":67,"line_start":4,"line_end":4,"column_start":1,"column_end":23}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":68,"byte_end":71,"line_start":5,"line_end":5,"column_start":1,"column_end":4}},{"value":"/ use sdl2::pixels::Color;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":72,"byte_end":100,"line_start":6,"line_end":6,"column_start":1,"column_end":29}},{"value":"/ use sdl2::event::Event;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":101,"byte_end":128,"line_start":7,"line_end":7,"column_start":1,"column_end":28}},{"value":"/ use sdl2::keyboard::Keycode;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":129,"byte_end":161,"line_start":8,"line_end":8,"column_start":1,"column_end":33}},{"value":"/ use std::time::Duration;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":162,"byte_end":190,"line_start":9,"line_end":9,"column_start":1,"column_end":29}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":191,"byte_end":194,"line_start":10,"line_end":10,"column_start":1,"column_end":4}},{"value":"/ pub fn main() {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":195,"byte_end":214,"line_start":11,"line_end":11,"column_start":1,"column_end":20}},{"value":"/ let sdl_context = sdl2::init().unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":215,"byte_end":263,"line_start":12,"line_end":12,"column_start":1,"column_end":49}},{"value":"/ let video_subsystem = sdl_context.video().unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":264,"byte_end":323,"line_start":13,"line_end":13,"column_start":1,"column_end":60}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":324,"byte_end":327,"line_start":14,"line_end":14,"column_start":1,"column_end":4}},{"value":"/ let window = video_subsystem.window(\"rust-sdl2 demo\", 800, 600)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":328,"byte_end":399,"line_start":15,"line_end":15,"column_start":1,"column_end":72}},{"value":"/ .position_centered()","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":400,"byte_end":432,"line_start":16,"line_end":16,"column_start":1,"column_end":33}},{"value":"/ .build()","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":433,"byte_end":453,"line_start":17,"line_end":17,"column_start":1,"column_end":21}},{"value":"/ .unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":454,"byte_end":476,"line_start":18,"line_end":18,"column_start":1,"column_end":23}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":477,"byte_end":480,"line_start":19,"line_end":19,"column_start":1,"column_end":4}},{"value":"/ let mut canvas = window.into_canvas().build().unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":481,"byte_end":544,"line_start":20,"line_end":20,"column_start":1,"column_end":64}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":545,"byte_end":548,"line_start":21,"line_end":21,"column_start":1,"column_end":4}},{"value":"/ canvas.set_draw_color(Color::RGB(0, 255, 255));","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":549,"byte_end":604,"line_start":22,"line_end":22,"column_start":1,"column_end":56}},{"value":"/ canvas.clear();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":605,"byte_end":628,"line_start":23,"line_end":23,"column_start":1,"column_end":24}},{"value":"/ canvas.present();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":629,"byte_end":654,"line_start":24,"line_end":24,"column_start":1,"column_end":26}},{"value":"/ let mut event_pump = sdl_context.event_pump().unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":655,"byte_end":718,"line_start":25,"line_end":25,"column_start":1,"column_end":64}},{"value":"/ let mut i = 0;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":719,"byte_end":741,"line_start":26,"line_end":26,"column_start":1,"column_end":23}},{"value":"/ 'running: loop {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":742,"byte_end":766,"line_start":27,"line_end":27,"column_start":1,"column_end":25}},{"value":"/ i = (i + 1) % 255;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":767,"byte_end":797,"line_start":28,"line_end":28,"column_start":1,"column_end":31}},{"value":"/ canvas.set_draw_color(Color::RGB(i, 64, 255 - i));","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":798,"byte_end":860,"line_start":29,"line_end":29,"column_start":1,"column_end":63}},{"value":"/ canvas.clear();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":861,"byte_end":888,"line_start":30,"line_end":30,"column_start":1,"column_end":28}},{"value":"/ for event in event_pump.poll_iter() {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":889,"byte_end":938,"line_start":31,"line_end":31,"column_start":1,"column_end":50}},{"value":"/ match event {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":939,"byte_end":968,"line_start":32,"line_end":32,"column_start":1,"column_end":30}},{"value":"/ Event::Quit {..} |","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":969,"byte_end":1007,"line_start":33,"line_end":33,"column_start":1,"column_end":39}},{"value":"/ Event::KeyDown { keycode: Some(Keycode::Escape), .. } => {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":1008,"byte_end":1086,"line_start":34,"line_end":34,"column_start":1,"column_end":79}},{"value":"/ break 'running","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":1087,"byte_end":1125,"line_start":35,"line_end":35,"column_start":1,"column_end":39}},{"value":"/ },","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":1126,"byte_end":1148,"line_start":36,"line_end":36,"column_start":1,"column_end":23}},{"value":"/ _ => {}","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":1149,"byte_end":1176,"line_start":37,"line_end":37,"column_start":1,"column_end":28}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":1177,"byte_end":1194,"line_start":38,"line_end":38,"column_start":1,"column_end":18}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":1195,"byte_end":1208,"line_start":39,"line_end":39,"column_start":1,"column_end":14}},{"value":"/ // The rest of the game loop goes here...","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":1209,"byte_end":1262,"line_start":40,"line_end":40,"column_start":1,"column_end":54}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":1263,"byte_end":1266,"line_start":41,"line_end":41,"column_start":1,"column_end":4}},{"value":"/ canvas.present();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":1267,"byte_end":1296,"line_start":42,"line_end":42,"column_start":1,"column_end":30}},{"value":"/ ::std::thread::sleep(Duration::new(0, 1_000_000_000u32 / 60));","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":1297,"byte_end":1371,"line_start":43,"line_end":43,"column_start":1,"column_end":75}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":1372,"byte_end":1381,"line_start":44,"line_end":44,"column_start":1,"column_end":10}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":1382,"byte_end":1387,"line_start":45,"line_end":45,"column_start":1,"column_end":6}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":1388,"byte_end":1395,"line_start":46,"line_end":46,"column_start":1,"column_end":8}},{"value":"crate_name = \"sdl2\"","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":1397,"byte_end":1420,"line_start":48,"line_end":48,"column_start":1,"column_end":24}},{"value":"crate_type = \"lib\"","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":1421,"byte_end":1443,"line_start":49,"line_end":49,"column_start":1,"column_end":23}},{"value":"allow(clippy :: cast_lossless, clippy :: transmute_ptr_to_ref)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/lib.rs","byte_start":1444,"byte_end":1506,"line_start":50,"line_end":50,"column_start":1,"column_end":63}}]},{"kind":"Mod","id":{"krate":0,"index":8},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/clipboard.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"name":"clipboard","qualname":"::clipboard","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/clipboard.rs","parent":null,"children":[{"krate":0,"index":9},{"krate":0,"index":12},{"krate":0,"index":15},{"krate":0,"index":18},{"krate":0,"index":19},{"krate":0,"index":22},{"krate":0,"index":25},{"krate":0,"index":28},{"krate":0,"index":30},{"krate":0,"index":32}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Struct","id":{"krate":0,"index":28},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/clipboard.rs","byte_start":2981,"byte_end":2994,"line_start":18,"line_end":18,"column_start":12,"column_end":25},"name":"ClipboardUtil","qualname":"::clipboard::ClipboardUtil","value":"ClipboardUtil { }","parent":null,"children":[{"krate":0,"index":29}],"decl_id":null,"docs":" Clipboard utility functions. Access with `VideoSubsystem::clipboard()`.","sig":null,"attributes":[{"value":"/ Clipboard utility functions. Access with `VideoSubsystem::clipboard()`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/clipboard.rs","byte_start":2615,"byte_end":2690,"line_start":8,"line_end":8,"column_start":1,"column_end":76}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/clipboard.rs","byte_start":2691,"byte_end":2694,"line_start":9,"line_end":9,"column_start":1,"column_end":4}},{"value":"/ These functions require the video subsystem to be initialized.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/clipboard.rs","byte_start":2695,"byte_end":2761,"line_start":10,"line_end":10,"column_start":1,"column_end":67}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/clipboard.rs","byte_start":2762,"byte_end":2765,"line_start":11,"line_end":11,"column_start":1,"column_end":4}},{"value":"/ ```no_run","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/clipboard.rs","byte_start":2766,"byte_end":2779,"line_start":12,"line_end":12,"column_start":1,"column_end":14}},{"value":"/ let sdl_context = sdl2::init().unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/clipboard.rs","byte_start":2780,"byte_end":2824,"line_start":13,"line_end":13,"column_start":1,"column_end":45}},{"value":"/ let video_subsystem = sdl_context.video().unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/clipboard.rs","byte_start":2825,"byte_end":2880,"line_start":14,"line_end":14,"column_start":1,"column_end":56}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/clipboard.rs","byte_start":2881,"byte_end":2884,"line_start":15,"line_end":15,"column_start":1,"column_end":4}},{"value":"/ video_subsystem.clipboard().set_clipboard_text(\"Hello World!\").unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/clipboard.rs","byte_start":2885,"byte_end":2961,"line_start":16,"line_end":16,"column_start":1,"column_end":77}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/clipboard.rs","byte_start":2962,"byte_end":2969,"line_start":17,"line_end":17,"column_start":1,"column_end":8}}]},{"kind":"Method","id":{"krate":0,"index":31},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/clipboard.rs","byte_start":3093,"byte_end":3102,"line_start":24,"line_end":24,"column_start":12,"column_end":21},"name":"clipboard","qualname":"::clipboard","value":"pub fn clipboard(&Self) -> ClipboardUtil","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/clipboard.rs","byte_start":3072,"byte_end":3081,"line_start":23,"line_end":23,"column_start":5,"column_end":14}}]},{"kind":"Method","id":{"krate":0,"index":33},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/clipboard.rs","byte_start":3285,"byte_end":3303,"line_start":33,"line_end":33,"column_start":12,"column_end":30},"name":"set_clipboard_text","qualname":"::set_clipboard_text","value":"pub fn set_clipboard_text(&Self, &str) -> Result<(), String>","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":34},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/clipboard.rs","byte_start":3692,"byte_end":3706,"line_start":47,"line_end":47,"column_start":12,"column_end":26},"name":"clipboard_text","qualname":"::clipboard_text","value":"pub fn clipboard_text(&Self) -> Result","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":35},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/clipboard.rs","byte_start":4140,"byte_end":4158,"line_start":62,"line_end":62,"column_start":12,"column_end":30},"name":"has_clipboard_text","qualname":"::has_clipboard_text","value":"pub fn has_clipboard_text(&Self) -> bool","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Mod","id":{"krate":0,"index":36},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/cpuinfo.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"name":"cpuinfo","qualname":"::cpuinfo","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/cpuinfo.rs","parent":null,"children":[{"krate":0,"index":37},{"krate":0,"index":40},{"krate":0,"index":43},{"krate":0,"index":44},{"krate":0,"index":45},{"krate":0,"index":46},{"krate":0,"index":47},{"krate":0,"index":48},{"krate":0,"index":49},{"krate":0,"index":50},{"krate":0,"index":51},{"krate":0,"index":52},{"krate":0,"index":53},{"krate":0,"index":54},{"krate":0,"index":55},{"krate":0,"index":56},{"krate":0,"index":57},{"krate":0,"index":58}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Const","id":{"krate":0,"index":43},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/cpuinfo.rs","byte_start":4312,"byte_end":4325,"line_start":4,"line_end":4,"column_start":11,"column_end":24},"name":"CACHELINESIZE","qualname":"::cpuinfo::CACHELINESIZE","value":"u8","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":44},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/cpuinfo.rs","byte_start":4379,"byte_end":4388,"line_start":7,"line_end":7,"column_start":8,"column_end":17},"name":"cpu_count","qualname":"::cpuinfo::cpu_count","value":"pub fn cpu_count() -> i32","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":45},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/cpuinfo.rs","byte_start":4490,"byte_end":4509,"line_start":12,"line_end":12,"column_start":8,"column_end":27},"name":"cpu_cache_line_size","qualname":"::cpuinfo::cpu_cache_line_size","value":"pub fn cpu_cache_line_size() -> i32","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":46},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/cpuinfo.rs","byte_start":4608,"byte_end":4617,"line_start":17,"line_end":17,"column_start":8,"column_end":17},"name":"has_rdtsc","qualname":"::cpuinfo::has_rdtsc","value":"pub fn has_rdtsc() -> bool","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":47},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/cpuinfo.rs","byte_start":4730,"byte_end":4742,"line_start":22,"line_end":22,"column_start":8,"column_end":20},"name":"has_alti_vec","qualname":"::cpuinfo::has_alti_vec","value":"pub fn has_alti_vec() -> bool","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":48},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/cpuinfo.rs","byte_start":4853,"byte_end":4860,"line_start":27,"line_end":27,"column_start":8,"column_end":15},"name":"has_mmx","qualname":"::cpuinfo::has_mmx","value":"pub fn has_mmx() -> bool","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":49},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/cpuinfo.rs","byte_start":4969,"byte_end":4979,"line_start":32,"line_end":32,"column_start":8,"column_end":18},"name":"has_3d_now","qualname":"::cpuinfo::has_3d_now","value":"pub fn has_3d_now() -> bool","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":50},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/cpuinfo.rs","byte_start":5088,"byte_end":5095,"line_start":37,"line_end":37,"column_start":8,"column_end":15},"name":"has_sse","qualname":"::cpuinfo::has_sse","value":"pub fn has_sse() -> bool","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":51},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/cpuinfo.rs","byte_start":5203,"byte_end":5211,"line_start":42,"line_end":42,"column_start":8,"column_end":16},"name":"has_sse2","qualname":"::cpuinfo::has_sse2","value":"pub fn has_sse2() -> bool","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":52},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/cpuinfo.rs","byte_start":5320,"byte_end":5328,"line_start":47,"line_end":47,"column_start":8,"column_end":16},"name":"has_sse3","qualname":"::cpuinfo::has_sse3","value":"pub fn has_sse3() -> bool","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":53},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/cpuinfo.rs","byte_start":5438,"byte_end":5447,"line_start":52,"line_end":52,"column_start":8,"column_end":17},"name":"has_sse41","qualname":"::cpuinfo::has_sse41","value":"pub fn has_sse41() -> bool","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":54},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/cpuinfo.rs","byte_start":5558,"byte_end":5567,"line_start":57,"line_end":57,"column_start":8,"column_end":17},"name":"has_sse42","qualname":"::cpuinfo::has_sse42","value":"pub fn has_sse42() -> bool","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":55},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/cpuinfo.rs","byte_start":5676,"byte_end":5683,"line_start":62,"line_end":62,"column_start":8,"column_end":15},"name":"has_avx","qualname":"::cpuinfo::has_avx","value":"pub fn has_avx() -> bool","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":56},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/cpuinfo.rs","byte_start":5791,"byte_end":5799,"line_start":67,"line_end":67,"column_start":8,"column_end":16},"name":"has_avx2","qualname":"::cpuinfo::has_avx2","value":"pub fn has_avx2() -> bool","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":57},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/cpuinfo.rs","byte_start":5911,"byte_end":5922,"line_start":72,"line_end":72,"column_start":8,"column_end":19},"name":"has_avx512f","qualname":"::cpuinfo::has_avx512f","value":"pub fn has_avx512f() -> bool","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":58},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/cpuinfo.rs","byte_start":6039,"byte_end":6049,"line_start":77,"line_end":77,"column_start":8,"column_end":18},"name":"system_ram","qualname":"::cpuinfo::system_ram","value":"pub fn system_ram() -> i32","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Mod","id":{"krate":0,"index":62},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"name":"audio","qualname":"::audio","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","parent":null,"children":[{"krate":0,"index":63},{"krate":0,"index":64},{"krate":0,"index":67},{"krate":0,"index":70},{"krate":0,"index":73},{"krate":0,"index":76},{"krate":0,"index":77},{"krate":0,"index":80},{"krate":0,"index":83},{"krate":0,"index":84},{"krate":0,"index":86},{"krate":0,"index":89},{"krate":0,"index":90},{"krate":0,"index":93},{"krate":0,"index":96},{"krate":0,"index":99},{"krate":0,"index":102},{"krate":0,"index":105},{"krate":0,"index":108},{"krate":0,"index":111},{"krate":0,"index":114},{"krate":0,"index":117},{"krate":0,"index":3010},{"krate":0,"index":3041},{"krate":0,"index":3042},{"krate":0,"index":3044},{"krate":0,"index":3045},{"krate":0,"index":3047},{"krate":0,"index":3048},{"krate":0,"index":3050},{"krate":0,"index":3052},{"krate":0,"index":137},{"krate":0,"index":141},{"krate":0,"index":3055},{"krate":0,"index":3065},{"krate":0,"index":3066},{"krate":0,"index":3068},{"krate":0,"index":3069},{"krate":0,"index":3071},{"krate":0,"index":3072},{"krate":0,"index":3074},{"krate":0,"index":3077},{"krate":0,"index":146},{"krate":0,"index":3079},{"krate":0,"index":3082},{"krate":0,"index":3083},{"krate":0,"index":151},{"krate":0,"index":155},{"krate":0,"index":156},{"krate":0,"index":157},{"krate":0,"index":163},{"krate":0,"index":177},{"krate":0,"index":179},{"krate":0,"index":182},{"krate":0,"index":185},{"krate":0,"index":188},{"krate":0,"index":191},{"krate":0,"index":194},{"krate":0,"index":197},{"krate":0,"index":200},{"krate":0,"index":203},{"krate":0,"index":3085},{"krate":0,"index":3089},{"krate":0,"index":211},{"krate":0,"index":3091},{"krate":0,"index":3098},{"krate":0,"index":3099},{"krate":0,"index":3101},{"krate":0,"index":3102},{"krate":0,"index":3104},{"krate":0,"index":3105},{"krate":0,"index":3108},{"krate":0,"index":3111},{"krate":0,"index":222},{"krate":0,"index":224},{"krate":0,"index":228},{"krate":0,"index":230},{"krate":0,"index":232},{"krate":0,"index":238},{"krate":0,"index":256},{"krate":0,"index":262},{"krate":0,"index":287},{"krate":0,"index":292},{"krate":0,"index":297},{"krate":0,"index":301},{"krate":0,"index":3113},{"krate":0,"index":3115},{"krate":0,"index":3116},{"krate":0,"index":305}],"decl_id":null,"docs":" Audio Functions","sig":null,"attributes":[{"value":"/ Audio Functions","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":6783,"byte_end":6802,"line_start":1,"line_end":1,"column_start":1,"column_end":20}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":6803,"byte_end":6806,"line_start":2,"line_end":2,"column_start":1,"column_end":4}},{"value":"/ # Example","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":6807,"byte_end":6820,"line_start":3,"line_end":3,"column_start":1,"column_end":14}},{"value":"/ ```no_run","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":6821,"byte_end":6834,"line_start":4,"line_end":4,"column_start":1,"column_end":14}},{"value":"/ use sdl2::audio::{AudioCallback, AudioSpecDesired};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":6835,"byte_end":6890,"line_start":5,"line_end":5,"column_start":1,"column_end":56}},{"value":"/ use std::time::Duration;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":6891,"byte_end":6919,"line_start":6,"line_end":6,"column_start":1,"column_end":29}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":6920,"byte_end":6923,"line_start":7,"line_end":7,"column_start":1,"column_end":4}},{"value":"/ struct SquareWave {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":6924,"byte_end":6947,"line_start":8,"line_end":8,"column_start":1,"column_end":24}},{"value":"/ phase_inc: f32,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":6948,"byte_end":6971,"line_start":9,"line_end":9,"column_start":1,"column_end":24}},{"value":"/ phase: f32,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":6972,"byte_end":6991,"line_start":10,"line_end":10,"column_start":1,"column_end":20}},{"value":"/ volume: f32","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":6992,"byte_end":7011,"line_start":11,"line_end":11,"column_start":1,"column_end":20}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7012,"byte_end":7017,"line_start":12,"line_end":12,"column_start":1,"column_end":6}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7018,"byte_end":7021,"line_start":13,"line_end":13,"column_start":1,"column_end":4}},{"value":"/ impl AudioCallback for SquareWave {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7022,"byte_end":7061,"line_start":14,"line_end":14,"column_start":1,"column_end":40}},{"value":"/ type Channel = f32;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7062,"byte_end":7089,"line_start":15,"line_end":15,"column_start":1,"column_end":28}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7090,"byte_end":7093,"line_start":16,"line_end":16,"column_start":1,"column_end":4}},{"value":"/ fn callback(&mut self, out: &mut [f32]) {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7094,"byte_end":7143,"line_start":17,"line_end":17,"column_start":1,"column_end":50}},{"value":"/ // Generate a square wave","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7144,"byte_end":7181,"line_start":18,"line_end":18,"column_start":1,"column_end":38}},{"value":"/ for x in out.iter_mut() {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7182,"byte_end":7219,"line_start":19,"line_end":19,"column_start":1,"column_end":38}},{"value":"/ *x = if self.phase <= 0.5 {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7220,"byte_end":7263,"line_start":20,"line_end":20,"column_start":1,"column_end":44}},{"value":"/ self.volume","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7264,"byte_end":7295,"line_start":21,"line_end":21,"column_start":1,"column_end":32}},{"value":"/ } else {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7296,"byte_end":7320,"line_start":22,"line_end":22,"column_start":1,"column_end":25}},{"value":"/ -self.volume","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7321,"byte_end":7353,"line_start":23,"line_end":23,"column_start":1,"column_end":33}},{"value":"/ };","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7354,"byte_end":7372,"line_start":24,"line_end":24,"column_start":1,"column_end":19}},{"value":"/ self.phase = (self.phase + self.phase_inc) % 1.0;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7373,"byte_end":7438,"line_start":25,"line_end":25,"column_start":1,"column_end":66}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7439,"byte_end":7452,"line_start":26,"line_end":26,"column_start":1,"column_end":14}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7453,"byte_end":7462,"line_start":27,"line_end":27,"column_start":1,"column_end":10}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7463,"byte_end":7468,"line_start":28,"line_end":28,"column_start":1,"column_end":6}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7469,"byte_end":7472,"line_start":29,"line_end":29,"column_start":1,"column_end":4}},{"value":"/ let sdl_context = sdl2::init().unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7473,"byte_end":7517,"line_start":30,"line_end":30,"column_start":1,"column_end":45}},{"value":"/ let audio_subsystem = sdl_context.audio().unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7518,"byte_end":7573,"line_start":31,"line_end":31,"column_start":1,"column_end":56}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7574,"byte_end":7577,"line_start":32,"line_end":32,"column_start":1,"column_end":4}},{"value":"/ let desired_spec = AudioSpecDesired {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7578,"byte_end":7619,"line_start":33,"line_end":33,"column_start":1,"column_end":42}},{"value":"/ freq: Some(44100),","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7620,"byte_end":7646,"line_start":34,"line_end":34,"column_start":1,"column_end":27}},{"value":"/ channels: Some(1), // mono","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7647,"byte_end":7682,"line_start":35,"line_end":35,"column_start":1,"column_end":36}},{"value":"/ samples: None // default sample size","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7683,"byte_end":7733,"line_start":36,"line_end":36,"column_start":1,"column_end":51}},{"value":"/ };","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7734,"byte_end":7740,"line_start":37,"line_end":37,"column_start":1,"column_end":7}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7741,"byte_end":7744,"line_start":38,"line_end":38,"column_start":1,"column_end":4}},{"value":"/ let device = audio_subsystem.open_playback(None, &desired_spec, |spec| {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7745,"byte_end":7821,"line_start":39,"line_end":39,"column_start":1,"column_end":77}},{"value":"/ // initialize the audio callback","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7822,"byte_end":7862,"line_start":40,"line_end":40,"column_start":1,"column_end":41}},{"value":"/ SquareWave {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7863,"byte_end":7883,"line_start":41,"line_end":41,"column_start":1,"column_end":21}},{"value":"/ phase_inc: 440.0 / spec.freq as f32,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7884,"byte_end":7932,"line_start":42,"line_end":42,"column_start":1,"column_end":49}},{"value":"/ phase: 0.0,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7933,"byte_end":7956,"line_start":43,"line_end":43,"column_start":1,"column_end":24}},{"value":"/ volume: 0.25","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7957,"byte_end":7981,"line_start":44,"line_end":44,"column_start":1,"column_end":25}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7982,"byte_end":7991,"line_start":45,"line_end":45,"column_start":1,"column_end":10}},{"value":"/ }).unwrap();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":7992,"byte_end":8008,"line_start":46,"line_end":46,"column_start":1,"column_end":17}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":8009,"byte_end":8012,"line_start":47,"line_end":47,"column_start":1,"column_end":4}},{"value":"/ // Start playback","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":8013,"byte_end":8034,"line_start":48,"line_end":48,"column_start":1,"column_end":22}},{"value":"/ device.resume();","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":8035,"byte_end":8055,"line_start":49,"line_end":49,"column_start":1,"column_end":21}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":8056,"byte_end":8059,"line_start":50,"line_end":50,"column_start":1,"column_end":4}},{"value":"/ // Play for 2 seconds","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":8060,"byte_end":8085,"line_start":51,"line_end":51,"column_start":1,"column_end":26}},{"value":"/ std::thread::sleep(Duration::from_millis(2000));","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":8086,"byte_end":8138,"line_start":52,"line_end":52,"column_start":1,"column_end":53}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":8139,"byte_end":8146,"line_start":53,"line_end":53,"column_start":1,"column_end":8}}]},{"kind":"Method","id":{"krate":0,"index":118},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":8845,"byte_end":8858,"line_start":78,"line_end":78,"column_start":12,"column_end":25},"name":"open_playback","qualname":"::open_playback","value":"pub fn open_playback<'a, CB, F, D>(&Self, D, &AudioSpecDesired, F)\n-> Result, String> where CB: AudioCallback,\nF: FnOnce(AudioSpec) -> CB, D: Into>","parent":null,"children":[],"decl_id":null,"docs":" Opens a new audio device given the desired parameters and callback.","sig":null,"attributes":[{"value":"/ Opens a new audio device given the desired parameters and callback.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":8505,"byte_end":8576,"line_start":72,"line_end":72,"column_start":5,"column_end":76}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":8581,"byte_end":8584,"line_start":73,"line_end":73,"column_start":5,"column_end":8}},{"value":"/ If you want to modify the callback-owned data at a later point (for example to update","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":8589,"byte_end":8678,"line_start":74,"line_end":74,"column_start":5,"column_end":94}},{"value":"/ its data buffer) you're likely to be interested in the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":8683,"byte_end":8741,"line_start":75,"line_end":75,"column_start":5,"column_end":63}},{"value":"/ [AudioDevice.lock method](audio/struct.AudioDevice.html#method.lock).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":8746,"byte_end":8819,"line_start":76,"line_end":76,"column_start":5,"column_end":78}},{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":8824,"byte_end":8833,"line_start":77,"line_end":77,"column_start":5,"column_end":14}}]},{"kind":"Method","id":{"krate":0,"index":123},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":9574,"byte_end":9586,"line_start":98,"line_end":98,"column_start":12,"column_end":24},"name":"open_capture","qualname":"::open_capture","value":"pub fn open_capture<'a, CB, F, D>(&Self, D, &AudioSpecDesired, F)\n-> Result, String> where CB: AudioCallback,\nF: FnOnce(AudioSpec) -> CB, D: Into>","parent":null,"children":[],"decl_id":null,"docs":" Opens a new audio device for capture (given the desired parameters and callback).\n Supported since SDL 2.0.5","sig":null,"attributes":[{"value":"/ Opens a new audio device for capture (given the desired parameters and callback).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":9200,"byte_end":9285,"line_start":92,"line_end":92,"column_start":5,"column_end":90}},{"value":"/ Supported since SDL 2.0.5","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":9290,"byte_end":9319,"line_start":93,"line_end":93,"column_start":5,"column_end":34}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":9324,"byte_end":9327,"line_start":94,"line_end":94,"column_start":5,"column_end":8}},{"value":"/ If you want to modify the callback-owned data at a later point (for example to update","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":9332,"byte_end":9421,"line_start":95,"line_end":95,"column_start":5,"column_end":94}},{"value":"/ its data buffer) you're likely to be interested in the","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":9426,"byte_end":9484,"line_start":96,"line_end":96,"column_start":5,"column_end":63}},{"value":"/ [AudioDevice.lock method](audio/struct.AudioDevice.html#method.lock).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":9489,"byte_end":9562,"line_start":97,"line_end":97,"column_start":5,"column_end":78}}]},{"kind":"Method","id":{"krate":0,"index":128},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":10036,"byte_end":10046,"line_start":114,"line_end":114,"column_start":12,"column_end":22},"name":"open_queue","qualname":"::open_queue","value":"pub fn open_queue<'a, Channel, D>(&Self, D, &AudioSpecDesired)\n-> Result, String> where Channel: AudioFormatNum,\nD: Into>","parent":null,"children":[],"decl_id":null,"docs":" Opens a new audio device which uses queueing rather than older callback method.\n","sig":null,"attributes":[{"value":"/ Opens a new audio device which uses queueing rather than older callback method.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":9927,"byte_end":10010,"line_start":112,"line_end":112,"column_start":5,"column_end":88}},{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":10015,"byte_end":10024,"line_start":113,"line_end":113,"column_start":5,"column_end":14}}]},{"kind":"Method","id":{"krate":0,"index":132},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":10376,"byte_end":10396,"line_start":127,"line_end":127,"column_start":12,"column_end":32},"name":"current_audio_driver","qualname":"::current_audio_driver","value":"pub fn current_audio_driver(&Self) -> &'static str","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":133},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":10668,"byte_end":10694,"line_start":137,"line_end":137,"column_start":12,"column_end":38},"name":"num_audio_playback_devices","qualname":"::num_audio_playback_devices","value":"pub fn num_audio_playback_devices(&Self) -> Option","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":134},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":11060,"byte_end":11085,"line_start":148,"line_end":148,"column_start":12,"column_end":37},"name":"num_audio_capture_devices","qualname":"::num_audio_capture_devices","value":"pub fn num_audio_capture_devices(&Self) -> Option","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":135},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":11451,"byte_end":11477,"line_start":159,"line_end":159,"column_start":12,"column_end":38},"name":"audio_playback_device_name","qualname":"::audio_playback_device_name","value":"pub fn audio_playback_device_name(&Self, u32) -> Result","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":136},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":11913,"byte_end":11938,"line_start":172,"line_end":172,"column_start":12,"column_end":37},"name":"audio_capture_device_name","qualname":"::audio_capture_device_name","value":"pub fn audio_capture_device_name(&Self, u32) -> Result","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3011},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":12442,"byte_end":12444,"line_start":189,"line_end":189,"column_start":5,"column_end":7},"name":"U8","qualname":"::audio::AudioFormat::U8","value":"AudioFormat::U8","parent":{"krate":0,"index":3010},"children":[],"decl_id":null,"docs":" Unsigned 8-bit samples\n","sig":null,"attributes":[{"value":"/ Unsigned 8-bit samples","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":12411,"byte_end":12437,"line_start":188,"line_end":188,"column_start":5,"column_end":31}}]},{"kind":"TupleVariant","id":{"krate":0,"index":3014},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":12502,"byte_end":12504,"line_start":191,"line_end":191,"column_start":5,"column_end":7},"name":"S8","qualname":"::audio::AudioFormat::S8","value":"AudioFormat::S8","parent":{"krate":0,"index":3010},"children":[],"decl_id":null,"docs":" Signed 8-bit samples\n","sig":null,"attributes":[{"value":"/ Signed 8-bit samples","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":12473,"byte_end":12497,"line_start":190,"line_end":190,"column_start":5,"column_end":29}}]},{"kind":"TupleVariant","id":{"krate":0,"index":3017},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":12580,"byte_end":12586,"line_start":193,"line_end":193,"column_start":5,"column_end":11},"name":"U16LSB","qualname":"::audio::AudioFormat::U16LSB","value":"AudioFormat::U16LSB","parent":{"krate":0,"index":3010},"children":[],"decl_id":null,"docs":" Unsigned 16-bit samples, little-endian\n","sig":null,"attributes":[{"value":"/ Unsigned 16-bit samples, little-endian","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":12533,"byte_end":12575,"line_start":192,"line_end":192,"column_start":5,"column_end":47}}]},{"kind":"TupleVariant","id":{"krate":0,"index":3020},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":12663,"byte_end":12669,"line_start":195,"line_end":195,"column_start":5,"column_end":11},"name":"U16MSB","qualname":"::audio::AudioFormat::U16MSB","value":"AudioFormat::U16MSB","parent":{"krate":0,"index":3010},"children":[],"decl_id":null,"docs":" Unsigned 16-bit samples, big-endian\n","sig":null,"attributes":[{"value":"/ Unsigned 16-bit samples, big-endian","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":12619,"byte_end":12658,"line_start":194,"line_end":194,"column_start":5,"column_end":44}}]},{"kind":"TupleVariant","id":{"krate":0,"index":3023},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":12747,"byte_end":12753,"line_start":197,"line_end":197,"column_start":5,"column_end":11},"name":"S16LSB","qualname":"::audio::AudioFormat::S16LSB","value":"AudioFormat::S16LSB","parent":{"krate":0,"index":3010},"children":[],"decl_id":null,"docs":" Signed 16-bit samples, little-endian\n","sig":null,"attributes":[{"value":"/ Signed 16-bit samples, little-endian","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":12702,"byte_end":12742,"line_start":196,"line_end":196,"column_start":5,"column_end":45}}]},{"kind":"TupleVariant","id":{"krate":0,"index":3026},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":12828,"byte_end":12834,"line_start":199,"line_end":199,"column_start":5,"column_end":11},"name":"S16MSB","qualname":"::audio::AudioFormat::S16MSB","value":"AudioFormat::S16MSB","parent":{"krate":0,"index":3010},"children":[],"decl_id":null,"docs":" Signed 16-bit samples, big-endian\n","sig":null,"attributes":[{"value":"/ Signed 16-bit samples, big-endian","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":12786,"byte_end":12823,"line_start":198,"line_end":198,"column_start":5,"column_end":42}}]},{"kind":"TupleVariant","id":{"krate":0,"index":3029},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":12912,"byte_end":12918,"line_start":201,"line_end":201,"column_start":5,"column_end":11},"name":"S32LSB","qualname":"::audio::AudioFormat::S32LSB","value":"AudioFormat::S32LSB","parent":{"krate":0,"index":3010},"children":[],"decl_id":null,"docs":" Signed 32-bit samples, little-endian\n","sig":null,"attributes":[{"value":"/ Signed 32-bit samples, little-endian","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":12867,"byte_end":12907,"line_start":200,"line_end":200,"column_start":5,"column_end":45}}]},{"kind":"TupleVariant","id":{"krate":0,"index":3032},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":12993,"byte_end":12999,"line_start":203,"line_end":203,"column_start":5,"column_end":11},"name":"S32MSB","qualname":"::audio::AudioFormat::S32MSB","value":"AudioFormat::S32MSB","parent":{"krate":0,"index":3010},"children":[],"decl_id":null,"docs":" Signed 32-bit samples, big-endian\n","sig":null,"attributes":[{"value":"/ Signed 32-bit samples, big-endian","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":12951,"byte_end":12988,"line_start":202,"line_end":202,"column_start":5,"column_end":42}}]},{"kind":"TupleVariant","id":{"krate":0,"index":3035},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":13085,"byte_end":13091,"line_start":205,"line_end":205,"column_start":5,"column_end":11},"name":"F32LSB","qualname":"::audio::AudioFormat::F32LSB","value":"AudioFormat::F32LSB","parent":{"krate":0,"index":3010},"children":[],"decl_id":null,"docs":" 32-bit floating point samples, little-endian\n","sig":null,"attributes":[{"value":"/ 32-bit floating point samples, little-endian","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":13032,"byte_end":13080,"line_start":204,"line_end":204,"column_start":5,"column_end":53}}]},{"kind":"TupleVariant","id":{"krate":0,"index":3038},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":13174,"byte_end":13180,"line_start":207,"line_end":207,"column_start":5,"column_end":11},"name":"F32MSB","qualname":"::audio::AudioFormat::F32MSB","value":"AudioFormat::F32MSB","parent":{"krate":0,"index":3010},"children":[],"decl_id":null,"docs":" 32-bit floating point samples, big-endian\n","sig":null,"attributes":[{"value":"/ 32-bit floating point samples, big-endian","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":13124,"byte_end":13169,"line_start":206,"line_end":206,"column_start":5,"column_end":50}}]},{"kind":"Enum","id":{"krate":0,"index":3010},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":12393,"byte_end":12404,"line_start":187,"line_end":187,"column_start":10,"column_end":21},"name":"AudioFormat","qualname":"::audio::AudioFormat","value":"pub enum AudioFormat {\n U8 = ,\n S8 = ,\n U16LSB = ,\n U16MSB = ,\n S16LSB = ,\n S16MSB = ,\n S32LSB = ,\n S32MSB = ,\n F32LSB = ,\n F32MSB = ,\n}","parent":null,"children":[{"krate":0,"index":3011},{"krate":0,"index":3014},{"krate":0,"index":3017},{"krate":0,"index":3020},{"krate":0,"index":3023},{"krate":0,"index":3026},{"krate":0,"index":3029},{"krate":0,"index":3032},{"krate":0,"index":3035},{"krate":0,"index":3038}],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"repr(i32)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":12320,"byte_end":12332,"line_start":185,"line_end":185,"column_start":1,"column_end":13}}]},{"kind":"Method","id":{"krate":0,"index":142},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":14112,"byte_end":14119,"line_start":238,"line_end":238,"column_start":18,"column_end":25},"name":"u16_sys","qualname":"::u16_sys","value":"pub const fn u16_sys() -> AudioFormat","parent":null,"children":[],"decl_id":null,"docs":" Unsigned 16-bit samples, native endian\n","sig":null,"attributes":[{"value":"/ Unsigned 16-bit samples, native endian","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":14038,"byte_end":14080,"line_start":236,"line_end":236,"column_start":5,"column_end":47}},{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":14085,"byte_end":14094,"line_start":237,"line_end":237,"column_start":5,"column_end":14}}]},{"kind":"Method","id":{"krate":0,"index":143},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":14249,"byte_end":14256,"line_start":243,"line_end":243,"column_start":18,"column_end":25},"name":"s16_sys","qualname":"::s16_sys","value":"pub const fn s16_sys() -> AudioFormat","parent":null,"children":[],"decl_id":null,"docs":" Signed 16-bit samples, native endian\n","sig":null,"attributes":[{"value":"/ Signed 16-bit samples, native endian","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":14177,"byte_end":14217,"line_start":241,"line_end":241,"column_start":5,"column_end":45}},{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":14222,"byte_end":14231,"line_start":242,"line_end":242,"column_start":5,"column_end":14}}]},{"kind":"Method","id":{"krate":0,"index":144},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":14386,"byte_end":14393,"line_start":248,"line_end":248,"column_start":18,"column_end":25},"name":"s32_sys","qualname":"::s32_sys","value":"pub const fn s32_sys() -> AudioFormat","parent":null,"children":[],"decl_id":null,"docs":" Signed 32-bit samples, native endian\n","sig":null,"attributes":[{"value":"/ Signed 32-bit samples, native endian","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":14314,"byte_end":14354,"line_start":246,"line_end":246,"column_start":5,"column_end":45}},{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":14359,"byte_end":14368,"line_start":247,"line_end":247,"column_start":5,"column_end":14}}]},{"kind":"Method","id":{"krate":0,"index":145},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":14531,"byte_end":14538,"line_start":253,"line_end":253,"column_start":18,"column_end":25},"name":"f32_sys","qualname":"::f32_sys","value":"pub const fn f32_sys() -> AudioFormat","parent":null,"children":[],"decl_id":null,"docs":" 32-bit floating point samples, native endian\n","sig":null,"attributes":[{"value":"/ 32-bit floating point samples, native endian","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":14451,"byte_end":14499,"line_start":251,"line_end":251,"column_start":5,"column_end":53}},{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":14504,"byte_end":14513,"line_start":252,"line_end":252,"column_start":5,"column_end":14}}]},{"kind":"TupleVariant","id":{"krate":0,"index":3056},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":15296,"byte_end":15303,"line_start":285,"line_end":285,"column_start":5,"column_end":12},"name":"Stopped","qualname":"::audio::AudioStatus::Stopped","value":"AudioStatus::Stopped","parent":{"krate":0,"index":3055},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3059},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":15353,"byte_end":15360,"line_start":286,"line_end":286,"column_start":5,"column_end":12},"name":"Playing","qualname":"::audio::AudioStatus::Playing","value":"AudioStatus::Playing","parent":{"krate":0,"index":3055},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3062},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":15410,"byte_end":15416,"line_start":287,"line_end":287,"column_start":5,"column_end":11},"name":"Paused","qualname":"::audio::AudioStatus::Paused","value":"AudioStatus::Paused","parent":{"krate":0,"index":3055},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Enum","id":{"krate":0,"index":3055},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":15278,"byte_end":15289,"line_start":284,"line_end":284,"column_start":10,"column_end":21},"name":"AudioStatus","qualname":"::audio::AudioStatus","value":"pub enum AudioStatus { Stopped = , Playing = , Paused = , }","parent":null,"children":[{"krate":0,"index":3056},{"krate":0,"index":3059},{"krate":0,"index":3062}],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"repr(i32)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":15205,"byte_end":15217,"line_start":282,"line_end":282,"column_start":1,"column_end":13}}]},{"kind":"Struct","id":{"krate":0,"index":3079},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":15919,"byte_end":15933,"line_start":307,"line_end":307,"column_start":12,"column_end":26},"name":"DriverIterator","qualname":"::audio::DriverIterator","value":"DriverIterator { }","parent":null,"children":[{"krate":0,"index":3080},{"krate":0,"index":3081}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":156},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":16744,"byte_end":16751,"line_start":342,"line_end":342,"column_start":8,"column_end":15},"name":"drivers","qualname":"::audio::drivers","value":"pub fn drivers() -> DriverIterator","parent":null,"children":[],"decl_id":null,"docs":" Gets an iterator of all audio drivers compiled into the SDL2 library.\n","sig":null,"attributes":[{"value":"/ Gets an iterator of all audio drivers compiled into the SDL2 library.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":16616,"byte_end":16689,"line_start":339,"line_end":339,"column_start":1,"column_end":74}},{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":16727,"byte_end":16736,"line_start":341,"line_end":341,"column_start":1,"column_end":10}}]},{"kind":"Struct","id":{"krate":0,"index":157},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":17149,"byte_end":17161,"line_start":353,"line_end":353,"column_start":12,"column_end":24},"name":"AudioSpecWAV","qualname":"::audio::AudioSpecWAV","value":"AudioSpecWAV { freq, format, channels }","parent":null,"children":[{"krate":0,"index":158},{"krate":0,"index":159},{"krate":0,"index":160},{"krate":0,"index":161},{"krate":0,"index":162}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Field","id":{"krate":0,"index":158},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":17172,"byte_end":17176,"line_start":354,"line_end":354,"column_start":9,"column_end":13},"name":"freq","qualname":"::audio::AudioSpecWAV::freq","value":"i32","parent":{"krate":0,"index":157},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Field","id":{"krate":0,"index":159},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":17191,"byte_end":17197,"line_start":355,"line_end":355,"column_start":9,"column_end":15},"name":"format","qualname":"::audio::AudioSpecWAV::format","value":"audio::AudioFormat","parent":{"krate":0,"index":157},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Field","id":{"krate":0,"index":160},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":17220,"byte_end":17228,"line_start":356,"line_end":356,"column_start":9,"column_end":17},"name":"channels","qualname":"::audio::AudioSpecWAV::channels","value":"u8","parent":{"krate":0,"index":157},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":164},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":17353,"byte_end":17361,"line_start":363,"line_end":363,"column_start":12,"column_end":20},"name":"load_wav","qualname":"::load_wav","value":"pub fn load_wav>(P) -> Result","parent":null,"children":[],"decl_id":null,"docs":" Loads a WAVE from the file path.\n","sig":null,"attributes":[{"value":"/ Loads a WAVE from the file path.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":17305,"byte_end":17341,"line_start":362,"line_end":362,"column_start":5,"column_end":41}}]},{"kind":"Method","id":{"krate":0,"index":166},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":17618,"byte_end":17629,"line_start":370,"line_end":370,"column_start":12,"column_end":23},"name":"load_wav_rw","qualname":"::load_wav_rw","value":"pub fn load_wav_rw(&mut RWops) -> Result","parent":null,"children":[],"decl_id":null,"docs":" Loads a WAVE from the data source.\n","sig":null,"attributes":[{"value":"/ Loads a WAVE from the data source.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":17531,"byte_end":17569,"line_start":368,"line_end":368,"column_start":5,"column_end":43}}]},{"kind":"Method","id":{"krate":0,"index":173},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":18564,"byte_end":18570,"line_start":400,"line_end":400,"column_start":12,"column_end":18},"name":"buffer","qualname":"::buffer","value":"pub fn buffer(&Self) -> &[u8]","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":179},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":18980,"byte_end":18993,"line_start":419,"line_end":419,"column_start":11,"column_end":24},"name":"AudioCallback","qualname":"::audio::AudioCallback","value":"AudioCallback: Send","parent":null,"children":[{"krate":0,"index":180},{"krate":0,"index":181}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Type","id":{"krate":0,"index":180},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19062,"byte_end":19069,"line_start":423,"line_end":423,"column_start":10,"column_end":17},"name":"Channel","qualname":"::audio::AudioCallback::Channel","value":"type Channel;","parent":{"krate":0,"index":179},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":181},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19079,"byte_end":19087,"line_start":425,"line_end":425,"column_start":8,"column_end":16},"name":"callback","qualname":"::audio::AudioCallback::callback","value":"pub fn callback(&mut Self, &mut [Self::Channel])","parent":{"krate":0,"index":179},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Trait","id":{"krate":0,"index":182},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19271,"byte_end":19285,"line_start":430,"line_end":430,"column_start":11,"column_end":25},"name":"AudioFormatNum","qualname":"::audio::AudioFormatNum","value":"AudioFormatNum","parent":null,"children":[{"krate":0,"index":183},{"krate":0,"index":184}],"decl_id":null,"docs":" A phantom type for retrieving the `SDL_AudioFormat` of a given generic type.\n All format types are returned as native-endian.\n","sig":null,"attributes":[{"value":"/ A phantom type for retrieving the `SDL_AudioFormat` of a given generic type.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19128,"byte_end":19208,"line_start":428,"line_end":428,"column_start":1,"column_end":81}},{"value":"/ All format types are returned as native-endian.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19209,"byte_end":19260,"line_start":429,"line_end":429,"column_start":1,"column_end":52}}]},{"kind":"Method","id":{"krate":0,"index":183},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19295,"byte_end":19307,"line_start":431,"line_end":431,"column_start":8,"column_end":20},"name":"audio_format","qualname":"::audio::AudioFormatNum::audio_format","value":"pub fn audio_format() -> AudioFormat","parent":{"krate":0,"index":182},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Const","id":{"krate":0,"index":184},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19933,"byte_end":19940,"line_start":453,"line_end":453,"column_start":11,"column_end":18},"name":"SILENCE","qualname":"::audio::AudioFormatNum::SILENCE","value":"Self","parent":{"krate":0,"index":182},"children":[],"decl_id":null,"docs":" The appropriately typed silence value for the audio format used.","sig":null,"attributes":[{"value":"/ The appropriately typed silence value for the audio format used.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19331,"byte_end":19399,"line_start":433,"line_end":433,"column_start":5,"column_end":73}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19404,"byte_end":19407,"line_start":434,"line_end":434,"column_start":5,"column_end":8}},{"value":"/ # Examples","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19412,"byte_end":19426,"line_start":435,"line_end":435,"column_start":5,"column_end":19}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19431,"byte_end":19434,"line_start":436,"line_end":436,"column_start":5,"column_end":8}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19439,"byte_end":19446,"line_start":437,"line_end":437,"column_start":5,"column_end":12}},{"value":"/ // The AudioFormatNum trait has to be imported for the Channel::SILENCE part to work.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19451,"byte_end":19540,"line_start":438,"line_end":438,"column_start":5,"column_end":94}},{"value":"/ use sdl2::audio::{AudioCallback, AudioFormatNum};","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19545,"byte_end":19598,"line_start":439,"line_end":439,"column_start":5,"column_end":58}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19603,"byte_end":19606,"line_start":440,"line_end":440,"column_start":5,"column_end":8}},{"value":"/ struct Silence;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19611,"byte_end":19630,"line_start":441,"line_end":441,"column_start":5,"column_end":24}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19635,"byte_end":19638,"line_start":442,"line_end":442,"column_start":5,"column_end":8}},{"value":"/ impl AudioCallback for Silence {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19643,"byte_end":19679,"line_start":443,"line_end":443,"column_start":5,"column_end":41}},{"value":"/ type Channel = u16;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19684,"byte_end":19711,"line_start":444,"line_end":444,"column_start":5,"column_end":32}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19716,"byte_end":19719,"line_start":445,"line_end":445,"column_start":5,"column_end":8}},{"value":"/ fn callback(&mut self, out: &mut [u16]) {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19724,"byte_end":19773,"line_start":446,"line_end":446,"column_start":5,"column_end":54}},{"value":"/ for dst in out.iter_mut() {","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19778,"byte_end":19817,"line_start":447,"line_end":447,"column_start":5,"column_end":44}},{"value":"/ *dst = Self::Channel::SILENCE;","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19822,"byte_end":19868,"line_start":448,"line_end":448,"column_start":5,"column_end":51}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19873,"byte_end":19886,"line_start":449,"line_end":449,"column_start":5,"column_end":18}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19891,"byte_end":19900,"line_start":450,"line_end":450,"column_start":5,"column_end":14}},{"value":"/ }","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19905,"byte_end":19910,"line_start":451,"line_end":451,"column_start":5,"column_end":10}},{"value":"/ ```","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":19915,"byte_end":19922,"line_start":452,"line_end":452,"column_start":5,"column_end":12}}]},{"kind":"Struct","id":{"krate":0,"index":3085},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":21411,"byte_end":21427,"line_start":520,"line_end":520,"column_start":12,"column_end":28},"name":"AudioSpecDesired","qualname":"::audio::AudioSpecDesired","value":"AudioSpecDesired { freq, channels, samples }","parent":null,"children":[{"krate":0,"index":3086},{"krate":0,"index":3087},{"krate":0,"index":3088}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Field","id":{"krate":0,"index":3086},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":21531,"byte_end":21535,"line_start":522,"line_end":522,"column_start":9,"column_end":13},"name":"freq","qualname":"::audio::AudioSpecDesired::freq","value":"std::option::Option","parent":{"krate":0,"index":3085},"children":[],"decl_id":null,"docs":" DSP frequency (samples per second). Set to None for the device's fallback frequency.\n","sig":null,"attributes":[{"value":"/ DSP frequency (samples per second). Set to None for the device's fallback frequency.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":21434,"byte_end":21522,"line_start":521,"line_end":521,"column_start":5,"column_end":93}}]},{"kind":"Field","id":{"krate":0,"index":3087},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":21659,"byte_end":21667,"line_start":524,"line_end":524,"column_start":9,"column_end":17},"name":"channels","qualname":"::audio::AudioSpecDesired::channels","value":"std::option::Option","parent":{"krate":0,"index":3085},"children":[],"decl_id":null,"docs":" Number of separate audio channels. Set to None for the device's fallback number of channels.\n","sig":null,"attributes":[{"value":"/ Number of separate audio channels. Set to None for the device's fallback number of channels.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":21554,"byte_end":21650,"line_start":523,"line_end":523,"column_start":5,"column_end":101}}]},{"kind":"Field","id":{"krate":0,"index":3088},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":21791,"byte_end":21798,"line_start":526,"line_end":526,"column_start":9,"column_end":16},"name":"samples","qualname":"::audio::AudioSpecDesired::samples","value":"std::option::Option","parent":{"krate":0,"index":3085},"children":[],"decl_id":null,"docs":" Audio buffer size in samples (power of 2). Set to None for the device's fallback sample size.\n","sig":null,"attributes":[{"value":"/ Audio buffer size in samples (power of 2). Set to None for the device's fallback sample size.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":21685,"byte_end":21782,"line_start":525,"line_end":525,"column_start":5,"column_end":102}}]},{"kind":"Struct","id":{"krate":0,"index":3091},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":24217,"byte_end":24226,"line_start":613,"line_end":613,"column_start":12,"column_end":21},"name":"AudioSpec","qualname":"::audio::AudioSpec","value":"AudioSpec { freq, format, channels, silence, samples, size }","parent":null,"children":[{"krate":0,"index":3092},{"krate":0,"index":3093},{"krate":0,"index":3094},{"krate":0,"index":3095},{"krate":0,"index":3096},{"krate":0,"index":3097}],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"allow(missing_copy_implementations)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":24116,"byte_end":24154,"line_start":611,"line_end":611,"column_start":1,"column_end":39}}]},{"kind":"Field","id":{"krate":0,"index":3092},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":24237,"byte_end":24241,"line_start":614,"line_end":614,"column_start":9,"column_end":13},"name":"freq","qualname":"::audio::AudioSpec::freq","value":"i32","parent":{"krate":0,"index":3091},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Field","id":{"krate":0,"index":3093},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":24256,"byte_end":24262,"line_start":615,"line_end":615,"column_start":9,"column_end":15},"name":"format","qualname":"::audio::AudioSpec::format","value":"audio::AudioFormat","parent":{"krate":0,"index":3091},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Field","id":{"krate":0,"index":3094},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":24285,"byte_end":24293,"line_start":616,"line_end":616,"column_start":9,"column_end":17},"name":"channels","qualname":"::audio::AudioSpec::channels","value":"u8","parent":{"krate":0,"index":3091},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Field","id":{"krate":0,"index":3095},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":24666,"byte_end":24673,"line_start":621,"line_end":621,"column_start":9,"column_end":16},"name":"silence","qualname":"::audio::AudioSpec::silence","value":"u8","parent":{"krate":0,"index":3091},"children":[],"decl_id":null,"docs":" The silence value calculated by SDL2. Note that it's inconvenient to use if your channel\n type is not u8 and [incorrect in case of u16](https://bugzilla.libsdl.org/show_bug.cgi?id=4805).\n You're likely to find [the `AudioFormatNum.SILENCE` associated constant](\n trait.AudioFormatNum.html#associatedconstant.SILENCE) more useful.\n","sig":null,"attributes":[{"value":"/ The silence value calculated by SDL2. Note that it's inconvenient to use if your channel","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":24303,"byte_end":24395,"line_start":617,"line_end":617,"column_start":5,"column_end":97}},{"value":"/ type is not u8 and [incorrect in case of u16](https://bugzilla.libsdl.org/show_bug.cgi?id=4805).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":24400,"byte_end":24500,"line_start":618,"line_end":618,"column_start":5,"column_end":105}},{"value":"/ You're likely to find [the `AudioFormatNum.SILENCE` associated constant](","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":24505,"byte_end":24582,"line_start":619,"line_end":619,"column_start":5,"column_end":82}},{"value":"/ trait.AudioFormatNum.html#associatedconstant.SILENCE) more useful.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":24587,"byte_end":24657,"line_start":620,"line_end":620,"column_start":5,"column_end":75}}]},{"kind":"Field","id":{"krate":0,"index":3096},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":24687,"byte_end":24694,"line_start":622,"line_end":622,"column_start":9,"column_end":16},"name":"samples","qualname":"::audio::AudioSpec::samples","value":"u16","parent":{"krate":0,"index":3091},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Field","id":{"krate":0,"index":3097},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":24709,"byte_end":24713,"line_start":623,"line_end":623,"column_start":9,"column_end":13},"name":"size","qualname":"::audio::AudioSpec::size","value":"u32","parent":{"krate":0,"index":3091},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Struct","id":{"krate":0,"index":232},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":25624,"byte_end":25634,"line_start":660,"line_end":660,"column_start":12,"column_end":22},"name":"AudioQueue","qualname":"::audio::AudioQueue","value":"AudioQueue { }","parent":null,"children":[{"krate":0,"index":234},{"krate":0,"index":235},{"krate":0,"index":236},{"krate":0,"index":237}],"decl_id":null,"docs":" Wraps `SDL_AudioDeviceID` and owns the callback data used by the audio device.\n","sig":null,"attributes":[{"value":"/ Wraps `SDL_AudioDeviceID` and owns the callback data used by the audio device.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":25530,"byte_end":25612,"line_start":659,"line_end":659,"column_start":1,"column_end":83}}]},{"kind":"Method","id":{"krate":0,"index":241},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":25967,"byte_end":25977,"line_start":670,"line_end":670,"column_start":12,"column_end":22},"name":"open_queue","qualname":">::open_queue","value":"pub fn open_queue>>(&AudioSubsystem, D,\n &AudioSpecDesired)\n-> Result, String>","parent":null,"children":[],"decl_id":null,"docs":" Opens a new audio device given the desired parameters and callback.\n","sig":null,"attributes":[{"value":"/ Opens a new audio device given the desired parameters and callback.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":25842,"byte_end":25913,"line_start":668,"line_end":668,"column_start":5,"column_end":76}}]},{"kind":"Method","id":{"krate":0,"index":247},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":27843,"byte_end":27852,"line_start":723,"line_end":723,"column_start":12,"column_end":21},"name":"subsystem","qualname":">::subsystem","value":"pub fn subsystem(&Self) -> &AudioSubsystem","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":27775,"byte_end":27784,"line_start":721,"line_end":721,"column_start":5,"column_end":14}}]},{"kind":"Method","id":{"krate":0,"index":248},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":27937,"byte_end":27941,"line_start":728,"line_end":728,"column_start":12,"column_end":16},"name":"spec","qualname":">::spec","value":"pub fn spec(&Self) -> &AudioSpec","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":27916,"byte_end":27925,"line_start":727,"line_end":727,"column_start":5,"column_end":14}}]},{"kind":"Method","id":{"krate":0,"index":249},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":28002,"byte_end":28008,"line_start":732,"line_end":732,"column_start":12,"column_end":18},"name":"status","qualname":">::status","value":"pub fn status(&Self) -> AudioStatus","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":250},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":28301,"byte_end":28306,"line_start":741,"line_end":741,"column_start":12,"column_end":17},"name":"pause","qualname":">::pause","value":"pub fn pause(&Self)","parent":null,"children":[],"decl_id":null,"docs":" Pauses playback of the audio device.\n","sig":null,"attributes":[{"value":"/ Pauses playback of the audio device.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":28206,"byte_end":28246,"line_start":739,"line_end":739,"column_start":5,"column_end":45}}]},{"kind":"Method","id":{"krate":0,"index":251},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":28491,"byte_end":28497,"line_start":747,"line_end":747,"column_start":12,"column_end":18},"name":"resume","qualname":">::resume","value":"pub fn resume(&Self)","parent":null,"children":[],"decl_id":null,"docs":" Starts playback of the audio device.\n","sig":null,"attributes":[{"value":"/ Starts playback of the audio device.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":28396,"byte_end":28436,"line_start":745,"line_end":745,"column_start":5,"column_end":45}}]},{"kind":"Method","id":{"krate":0,"index":252},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":28786,"byte_end":28791,"line_start":757,"line_end":757,"column_start":12,"column_end":17},"name":"queue","qualname":">::queue","value":"pub fn queue(&Self, &[Channel]) -> bool","parent":null,"children":[],"decl_id":null,"docs":" Adds data to the audio queue.\n","sig":null,"attributes":[{"value":"/ Adds data to the audio queue.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":28587,"byte_end":28620,"line_start":751,"line_end":751,"column_start":5,"column_end":38}},{"value":"deprecated(since = \"0.35.2\", note =\n \"Users should instead use AudioQueue::queue_audio\")","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":28662,"byte_end":28774,"line_start":753,"line_end":756,"column_start":5,"column_end":7}}]},{"kind":"Method","id":{"krate":0,"index":253},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":29178,"byte_end":29189,"line_start":770,"line_end":770,"column_start":12,"column_end":23},"name":"queue_audio","qualname":">::queue_audio","value":"pub fn queue_audio(&Self, &[Channel]) -> Result<(), String>","parent":null,"children":[],"decl_id":null,"docs":" Adds data to the audio queue.\n","sig":null,"attributes":[{"value":"/ Adds data to the audio queue.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":29096,"byte_end":29129,"line_start":768,"line_end":768,"column_start":5,"column_end":38}}]},{"kind":"Method","id":{"krate":0,"index":254},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":29640,"byte_end":29644,"line_start":786,"line_end":786,"column_start":12,"column_end":16},"name":"size","qualname":">::size","value":"pub fn size(&Self) -> u32","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":255},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":29844,"byte_end":29849,"line_start":792,"line_end":792,"column_start":12,"column_end":17},"name":"clear","qualname":">::clear","value":"pub fn clear(&Self)","parent":null,"children":[],"decl_id":null,"docs":" Clears all data from the current audio queue.\n","sig":null,"attributes":[{"value":"/ Clears all data from the current audio queue.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":29740,"byte_end":29789,"line_start":790,"line_end":790,"column_start":5,"column_end":54}}]},{"kind":"Struct","id":{"krate":0,"index":256},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":30049,"byte_end":30060,"line_start":800,"line_end":800,"column_start":12,"column_end":23},"name":"AudioDevice","qualname":"::audio::AudioDevice","value":"AudioDevice { }","parent":null,"children":[{"krate":0,"index":258},{"krate":0,"index":259},{"krate":0,"index":260},{"krate":0,"index":261}],"decl_id":null,"docs":" Wraps `SDL_AudioDeviceID` and owns the callback data used by the audio device.\n","sig":null,"attributes":[{"value":"/ Wraps `SDL_AudioDeviceID` and owns the callback data used by the audio device.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":29955,"byte_end":30037,"line_start":799,"line_end":799,"column_start":1,"column_end":83}}]},{"kind":"Method","id":{"krate":0,"index":272},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":32720,"byte_end":32733,"line_start":871,"line_end":871,"column_start":12,"column_end":25},"name":"open_playback","qualname":">::open_playback","value":"pub fn open_playback<'a, F, D>(&AudioSubsystem, D, &AudioSpecDesired, F)\n-> Result, String> where F: FnOnce(AudioSpec) -> CB,\nD: Into>","parent":null,"children":[],"decl_id":null,"docs":" Opens a new audio device for playback (given the desired parameters and callback).","sig":null,"attributes":[{"value":"/ Opens a new audio device for playback (given the desired parameters and callback).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":32428,"byte_end":32514,"line_start":867,"line_end":867,"column_start":5,"column_end":91}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":32519,"byte_end":32522,"line_start":868,"line_end":868,"column_start":5,"column_end":8}},{"value":"/ If you want to modify the callback-owned data at a later point (for example to update","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":32527,"byte_end":32616,"line_start":869,"line_end":869,"column_start":5,"column_end":94}},{"value":"/ its data buffer) you're likely to be interested in the [lock method](#method.lock).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":32621,"byte_end":32708,"line_start":870,"line_end":870,"column_start":5,"column_end":92}}]},{"kind":"Method","id":{"krate":0,"index":276},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":33377,"byte_end":33389,"line_start":889,"line_end":889,"column_start":12,"column_end":24},"name":"open_capture","qualname":">::open_capture","value":"pub fn open_capture<'a, F, D>(&AudioSubsystem, D, &AudioSpecDesired, F)\n-> Result, String> where F: FnOnce(AudioSpec) -> CB,\nD: Into>","parent":null,"children":[],"decl_id":null,"docs":" Opens a new audio device for capture (given the desired parameters and callback).\n Supported since SDL 2.0.5","sig":null,"attributes":[{"value":"/ Opens a new audio device for capture (given the desired parameters and callback).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":33052,"byte_end":33137,"line_start":884,"line_end":884,"column_start":5,"column_end":90}},{"value":"/ Supported since SDL 2.0.5","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":33142,"byte_end":33171,"line_start":885,"line_end":885,"column_start":5,"column_end":34}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":33176,"byte_end":33179,"line_start":886,"line_end":886,"column_start":5,"column_end":8}},{"value":"/ If you want to modify the callback-owned data at a later point (for example to update","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":33184,"byte_end":33273,"line_start":887,"line_end":887,"column_start":5,"column_end":94}},{"value":"/ its data buffer) you're likely to be interested in the [lock method](#method.lock).","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":33278,"byte_end":33365,"line_start":888,"line_end":888,"column_start":5,"column_end":92}}]},{"kind":"Method","id":{"krate":0,"index":280},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":33775,"byte_end":33784,"line_start":904,"line_end":904,"column_start":12,"column_end":21},"name":"subsystem","qualname":">::subsystem","value":"pub fn subsystem(&Self) -> &AudioSubsystem","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":33707,"byte_end":33716,"line_start":902,"line_end":902,"column_start":5,"column_end":14}}]},{"kind":"Method","id":{"krate":0,"index":281},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":33869,"byte_end":33873,"line_start":909,"line_end":909,"column_start":12,"column_end":16},"name":"spec","qualname":">::spec","value":"pub fn spec(&Self) -> &AudioSpec","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":33848,"byte_end":33857,"line_start":908,"line_end":908,"column_start":5,"column_end":14}}]},{"kind":"Method","id":{"krate":0,"index":282},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":33934,"byte_end":33940,"line_start":913,"line_end":913,"column_start":12,"column_end":18},"name":"status","qualname":">::status","value":"pub fn status(&Self) -> AudioStatus","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":283},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":34233,"byte_end":34238,"line_start":922,"line_end":922,"column_start":12,"column_end":17},"name":"pause","qualname":">::pause","value":"pub fn pause(&Self)","parent":null,"children":[],"decl_id":null,"docs":" Pauses playback of the audio device.\n","sig":null,"attributes":[{"value":"/ Pauses playback of the audio device.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":34138,"byte_end":34178,"line_start":920,"line_end":920,"column_start":5,"column_end":45}}]},{"kind":"Method","id":{"krate":0,"index":284},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":34423,"byte_end":34429,"line_start":928,"line_end":928,"column_start":12,"column_end":18},"name":"resume","qualname":">::resume","value":"pub fn resume(&Self)","parent":null,"children":[],"decl_id":null,"docs":" Starts playback of the audio device.\n","sig":null,"attributes":[{"value":"/ Starts playback of the audio device.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":34328,"byte_end":34368,"line_start":926,"line_end":926,"column_start":5,"column_end":45}}]},{"kind":"Method","id":{"krate":0,"index":285},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":34786,"byte_end":34790,"line_start":938,"line_end":938,"column_start":12,"column_end":16},"name":"lock","qualname":">::lock","value":"pub fn lock(&mut Self) -> AudioDeviceLockGuard<, CB>","parent":null,"children":[],"decl_id":null,"docs":" Locks the audio device using `SDL_LockAudioDevice`.","sig":null,"attributes":[{"value":"/ Locks the audio device using `SDL_LockAudioDevice`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":34519,"byte_end":34574,"line_start":932,"line_end":932,"column_start":5,"column_end":60}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":34579,"byte_end":34582,"line_start":933,"line_end":933,"column_start":5,"column_end":8}},{"value":"/ When the returned lock guard is dropped, `SDL_UnlockAudioDevice` is","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":34587,"byte_end":34658,"line_start":934,"line_end":934,"column_start":5,"column_end":76}},{"value":"/ called.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":34663,"byte_end":34674,"line_start":935,"line_end":935,"column_start":5,"column_end":16}},{"value":"/ Use this method to read and mutate callback data.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":34679,"byte_end":34732,"line_start":936,"line_end":936,"column_start":5,"column_end":58}}]},{"kind":"Method","id":{"krate":0,"index":286},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":35229,"byte_end":35251,"line_start":950,"line_end":950,"column_start":12,"column_end":34},"name":"close_and_get_callback","qualname":">::close_and_get_callback","value":"pub fn close_and_get_callback(Self) -> CB","parent":null,"children":[],"decl_id":null,"docs":" Closes the audio device and saves the callback data from being dropped.","sig":null,"attributes":[{"value":"/ Closes the audio device and saves the callback data from being dropped.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":35010,"byte_end":35085,"line_start":946,"line_end":946,"column_start":5,"column_end":80}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":35090,"byte_end":35093,"line_start":947,"line_end":947,"column_start":5,"column_end":8}},{"value":"/ Note that simply dropping `AudioDevice` will close the audio device,","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":35098,"byte_end":35170,"line_start":948,"line_end":948,"column_start":5,"column_end":77}},{"value":"/ but the callback data will be dropped.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":35175,"byte_end":35217,"line_start":949,"line_end":949,"column_start":5,"column_end":47}}]},{"kind":"Struct","id":{"krate":0,"index":287},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":35445,"byte_end":35465,"line_start":957,"line_end":957,"column_start":12,"column_end":32},"name":"AudioDeviceLockGuard","qualname":"::audio::AudioDeviceLockGuard","value":"AudioDeviceLockGuard { }","parent":null,"children":[{"krate":0,"index":290},{"krate":0,"index":291}],"decl_id":null,"docs":" Similar to `std::sync::MutexGuard`, but for use with `AudioDevice::lock()`.\n","sig":null,"attributes":[{"value":"/ Similar to `std::sync::MutexGuard`, but for use with `AudioDevice::lock()`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":35354,"byte_end":35433,"line_start":956,"line_end":956,"column_start":1,"column_end":80}}]},{"kind":"Struct","id":{"krate":0,"index":3113},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":36233,"byte_end":36241,"line_start":987,"line_end":987,"column_start":12,"column_end":20},"name":"AudioCVT","qualname":"::audio::AudioCVT","value":"AudioCVT { }","parent":null,"children":[{"krate":0,"index":3114}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":306},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":36342,"byte_end":36345,"line_start":993,"line_end":993,"column_start":12,"column_end":15},"name":"new","qualname":"::new","value":"pub fn new(AudioFormat, u8, i32, AudioFormat, u8, i32)\n-> Result","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":310},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":37235,"byte_end":37242,"line_start":1025,"line_end":1025,"column_start":12,"column_end":19},"name":"convert","qualname":"::convert","value":"pub fn convert(&Self, Vec) -> Vec","parent":null,"children":[],"decl_id":null,"docs":" Convert audio data to a desired audio format.","sig":null,"attributes":[{"value":"/ Convert audio data to a desired audio format.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":37289,"byte_end":37338,"line_start":1026,"line_end":1026,"column_start":9,"column_end":58}},{"value":"/","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":37347,"byte_end":37350,"line_start":1027,"line_end":1027,"column_start":9,"column_end":12}},{"value":"/ Passes raw audio data from src to the SDL library for conversion, returning the result","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":37359,"byte_end":37449,"line_start":1028,"line_end":1028,"column_start":9,"column_end":99}},{"value":"/ of the conversion.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":37458,"byte_end":37480,"line_start":1029,"line_end":1029,"column_start":9,"column_end":31}}]},{"kind":"Method","id":{"krate":0,"index":317},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":39461,"byte_end":39481,"line_start":1075,"line_end":1075,"column_start":12,"column_end":32},"name":"is_conversion_needed","qualname":"::is_conversion_needed","value":"pub fn is_conversion_needed(&Self) -> bool","parent":null,"children":[],"decl_id":null,"docs":" Checks if any conversion is needed. i.e. if the buffer that goes\n into `convert()` is unchanged from the result.\n","sig":null,"attributes":[{"value":"/ Checks if any conversion is needed. i.e. if the buffer that goes","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":39326,"byte_end":39394,"line_start":1073,"line_end":1073,"column_start":5,"column_end":73}},{"value":"/ into `convert()` is unchanged from the result.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":39399,"byte_end":39449,"line_start":1074,"line_end":1074,"column_start":5,"column_end":55}}]},{"kind":"Method","id":{"krate":0,"index":318},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":39642,"byte_end":39650,"line_start":1081,"line_end":1081,"column_start":12,"column_end":20},"name":"capacity","qualname":"::capacity","value":"pub fn capacity(&Self, usize) -> usize","parent":null,"children":[],"decl_id":null,"docs":" Gets the buffer capacity that can contain both the original and\n converted data.\n","sig":null,"attributes":[{"value":"/ Gets the buffer capacity that can contain both the original and","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":39539,"byte_end":39606,"line_start":1079,"line_end":1079,"column_start":5,"column_end":72}},{"value":"/ converted data.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/audio.rs","byte_start":39611,"byte_end":39630,"line_start":1080,"line_end":1080,"column_start":5,"column_end":24}}]},{"kind":"Mod","id":{"krate":0,"index":319},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"name":"controller","qualname":"::controller","value":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","parent":null,"children":[{"krate":0,"index":320},{"krate":0,"index":323},{"krate":0,"index":326},{"krate":0,"index":329},{"krate":0,"index":330},{"krate":0,"index":333},{"krate":0,"index":336},{"krate":0,"index":339},{"krate":0,"index":342},{"krate":0,"index":345},{"krate":0,"index":348},{"krate":0,"index":349},{"krate":0,"index":352},{"krate":0,"index":355},{"krate":0,"index":358},{"krate":0,"index":361},{"krate":0,"index":364},{"krate":0,"index":367},{"krate":0,"index":3118},{"krate":0,"index":3131},{"krate":0,"index":3133},{"krate":0,"index":370},{"krate":0,"index":373},{"krate":0,"index":376},{"krate":0,"index":3135},{"krate":0,"index":3154},{"krate":0,"index":3155},{"krate":0,"index":3157},{"krate":0,"index":3158},{"krate":0,"index":3160},{"krate":0,"index":3161},{"krate":0,"index":3163},{"krate":0,"index":3166},{"krate":0,"index":398},{"krate":0,"index":3168},{"krate":0,"index":3232},{"krate":0,"index":3233},{"krate":0,"index":3235},{"krate":0,"index":3236},{"krate":0,"index":3238},{"krate":0,"index":3239},{"krate":0,"index":3241},{"krate":0,"index":3244},{"krate":0,"index":403},{"krate":0,"index":3246},{"krate":0,"index":3253},{"krate":0,"index":3254},{"krate":0,"index":3256},{"krate":0,"index":3257},{"krate":0,"index":3259},{"krate":0,"index":3260},{"krate":0,"index":3262},{"krate":0,"index":3265},{"krate":0,"index":408},{"krate":0,"index":411},{"krate":0,"index":420},{"krate":0,"index":422},{"krate":0,"index":423}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3119},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":41512,"byte_end":41526,"line_start":24,"line_end":24,"column_start":5,"column_end":19},"name":"InvalidMapping","qualname":"::controller::AddMappingError::InvalidMapping","value":"AddMappingError::InvalidMapping(NulError)","parent":{"krate":0,"index":3118},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3122},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":41542,"byte_end":41557,"line_start":25,"line_end":25,"column_start":5,"column_end":20},"name":"InvalidFilePath","qualname":"::controller::AddMappingError::InvalidFilePath","value":"AddMappingError::InvalidFilePath(String)","parent":{"krate":0,"index":3118},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3125},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":41571,"byte_end":41580,"line_start":26,"line_end":26,"column_start":5,"column_end":14},"name":"ReadError","qualname":"::controller::AddMappingError::ReadError","value":"AddMappingError::ReadError(String)","parent":{"krate":0,"index":3118},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3128},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":41594,"byte_end":41602,"line_start":27,"line_end":27,"column_start":5,"column_end":13},"name":"SdlError","qualname":"::controller::AddMappingError::SdlError","value":"AddMappingError::SdlError(String)","parent":{"krate":0,"index":3118},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Enum","id":{"krate":0,"index":3118},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":41490,"byte_end":41505,"line_start":23,"line_end":23,"column_start":10,"column_end":25},"name":"AddMappingError","qualname":"::controller::AddMappingError","value":"pub enum AddMappingError {\n InvalidMapping(NulError),\n InvalidFilePath(String),\n ReadError(String),\n SdlError(String),\n}","parent":null,"children":[{"krate":0,"index":3119},{"krate":0,"index":3122},{"krate":0,"index":3125},{"krate":0,"index":3128}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":377},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":42588,"byte_end":42601,"line_start":59,"line_end":59,"column_start":12,"column_end":25},"name":"num_joysticks","qualname":"::num_joysticks","value":"pub fn num_joysticks(&Self) -> Result","parent":null,"children":[],"decl_id":null,"docs":" Retrieve the total number of attached joysticks *and* controllers identified by SDL.\n","sig":null,"attributes":[{"value":"/ Retrieve the total number of attached joysticks *and* controllers identified by SDL.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":42449,"byte_end":42537,"line_start":57,"line_end":57,"column_start":5,"column_end":93}}]},{"kind":"Method","id":{"krate":0,"index":378},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":42962,"byte_end":42980,"line_start":72,"line_end":72,"column_start":12,"column_end":30},"name":"is_game_controller","qualname":"::is_game_controller","value":"pub fn is_game_controller(&Self, u32) -> bool","parent":null,"children":[],"decl_id":null,"docs":" Return true if the joystick at index `joystick_index` is a game controller.\n","sig":null,"attributes":[{"value":"/ Return true if the joystick at index `joystick_index` is a game controller.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":42814,"byte_end":42893,"line_start":69,"line_end":69,"column_start":5,"column_end":84}},{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":42898,"byte_end":42907,"line_start":70,"line_end":70,"column_start":5,"column_end":14}}]},{"kind":"Method","id":{"krate":0,"index":379},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":43547,"byte_end":43551,"line_start":85,"line_end":85,"column_start":12,"column_end":16},"name":"open","qualname":"::open","value":"pub fn open(&Self, u32) -> Result","parent":null,"children":[],"decl_id":null,"docs":" Attempt to open the controller at index `joystick_index` and return it.\n Controller IDs are the same as joystick IDs and the maximum number can\n be retrieved using the `SDL_NumJoysticks` function.\n","sig":null,"attributes":[{"value":"/ Attempt to open the controller at index `joystick_index` and return it.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":43276,"byte_end":43351,"line_start":81,"line_end":81,"column_start":5,"column_end":80}},{"value":"/ Controller IDs are the same as joystick IDs and the maximum number can","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":43356,"byte_end":43430,"line_start":82,"line_end":82,"column_start":5,"column_end":79}},{"value":"/ be retrieved using the `SDL_NumJoysticks` function.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":43435,"byte_end":43490,"line_start":83,"line_end":83,"column_start":5,"column_end":60}}]},{"kind":"Method","id":{"krate":0,"index":381},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":44197,"byte_end":44211,"line_start":102,"line_end":102,"column_start":12,"column_end":26},"name":"name_for_index","qualname":"::name_for_index","value":"pub fn name_for_index(&Self, u32) -> Result","parent":null,"children":[],"decl_id":null,"docs":" Return the name of the controller at index `joystick_index`.\n","sig":null,"attributes":[{"value":"/ Return the name of the controller at index `joystick_index`.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":44068,"byte_end":44132,"line_start":100,"line_end":100,"column_start":5,"column_end":69}}]},{"kind":"Method","id":{"krate":0,"index":383},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":44931,"byte_end":44946,"line_start":122,"line_end":122,"column_start":12,"column_end":27},"name":"set_event_state","qualname":"::set_event_state","value":"pub fn set_event_state(&Self, bool)","parent":null,"children":[],"decl_id":null,"docs":" If state is `true` controller events are processed, otherwise\n they're ignored.\n","sig":null,"attributes":[{"value":"/ If state is `true` controller events are processed, otherwise","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":44778,"byte_end":44843,"line_start":119,"line_end":119,"column_start":5,"column_end":70}},{"value":"/ they're ignored.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":44848,"byte_end":44868,"line_start":120,"line_end":120,"column_start":5,"column_end":25}}]},{"kind":"Method","id":{"krate":0,"index":384},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":45164,"byte_end":45175,"line_start":128,"line_end":128,"column_start":12,"column_end":23},"name":"event_state","qualname":"::event_state","value":"pub fn event_state(&Self) -> bool","parent":null,"children":[],"decl_id":null,"docs":" Return `true` if controller events are processed.\n","sig":null,"attributes":[{"value":"/ Return `true` if controller events are processed.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":45048,"byte_end":45101,"line_start":126,"line_end":126,"column_start":5,"column_end":58}}]},{"kind":"Method","id":{"krate":0,"index":385},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":45450,"byte_end":45461,"line_start":136,"line_end":136,"column_start":12,"column_end":23},"name":"add_mapping","qualname":"::add_mapping","value":"pub fn add_mapping(&Self, &str) -> Result","parent":null,"children":[],"decl_id":null,"docs":" Add a new controller input mapping from a mapping string.\n","sig":null,"attributes":[{"value":"/ Add a new controller input mapping from a mapping string.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":45326,"byte_end":45387,"line_start":134,"line_end":134,"column_start":5,"column_end":66}}]},{"kind":"Method","id":{"krate":0,"index":387},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":46062,"byte_end":46075,"line_start":154,"line_end":154,"column_start":12,"column_end":25},"name":"load_mappings","qualname":"::load_mappings","value":"pub fn load_mappings>(&Self, P) -> Result","parent":null,"children":[],"decl_id":null,"docs":" Load controller input mappings from a file.\n","sig":null,"attributes":[{"value":"/ Load controller input mappings from a file.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":46003,"byte_end":46050,"line_start":153,"line_end":153,"column_start":5,"column_end":52}}]},{"kind":"Method","id":{"krate":0,"index":390},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":46388,"byte_end":46411,"line_start":162,"line_end":162,"column_start":12,"column_end":35},"name":"load_mappings_from_read","qualname":"::load_mappings_from_read","value":"pub fn load_mappings_from_read(&Self, &mut R)\n-> Result","parent":null,"children":[],"decl_id":null,"docs":" Load controller input mappings from a [`Read`](std::io::Read) object.\n","sig":null,"attributes":[{"value":"/ Load controller input mappings from a [`Read`](std::io::Read) object.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":46303,"byte_end":46376,"line_start":161,"line_end":161,"column_start":5,"column_end":78}}]},{"kind":"Method","id":{"krate":0,"index":393},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":46851,"byte_end":46872,"line_start":175,"line_end":175,"column_start":12,"column_end":33},"name":"load_mappings_from_rw","qualname":"::load_mappings_from_rw","value":"pub fn load_mappings_from_rw<'a>(&Self, RWops) -> Result","parent":null,"children":[],"decl_id":null,"docs":" Load controller input mappings from an SDL [`RWops`] object.\n","sig":null,"attributes":[{"value":"/ Load controller input mappings from an SDL [`RWops`] object.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":46717,"byte_end":46781,"line_start":173,"line_end":173,"column_start":5,"column_end":69}}]},{"kind":"Method","id":{"krate":0,"index":396},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":47240,"byte_end":47256,"line_start":186,"line_end":186,"column_start":12,"column_end":28},"name":"mapping_for_guid","qualname":"::mapping_for_guid","value":"pub fn mapping_for_guid(&Self, joystick::Guid) -> Result","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":397},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":47576,"byte_end":47582,"line_start":195,"line_end":195,"column_start":12,"column_end":18},"name":"update","qualname":"::update","value":"pub fn update(&Self)","parent":null,"children":[],"decl_id":null,"docs":" Force controller update when not using the event loop\n","sig":null,"attributes":[{"value":"inline","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":47446,"byte_end":47455,"line_start":192,"line_end":192,"column_start":5,"column_end":14}},{"value":"/ Force controller update when not using the event loop","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":47460,"byte_end":47517,"line_start":193,"line_end":193,"column_start":5,"column_end":62}}]},{"kind":"TupleVariant","id":{"krate":0,"index":3136},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":47737,"byte_end":47742,"line_start":203,"line_end":203,"column_start":5,"column_end":10},"name":"LeftX","qualname":"::controller::Axis::LeftX","value":"Axis::LeftX","parent":{"krate":0,"index":3135},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3139},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":47812,"byte_end":47817,"line_start":204,"line_end":204,"column_start":5,"column_end":10},"name":"LeftY","qualname":"::controller::Axis::LeftY","value":"Axis::LeftY","parent":{"krate":0,"index":3135},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3142},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":47887,"byte_end":47893,"line_start":205,"line_end":205,"column_start":5,"column_end":11},"name":"RightX","qualname":"::controller::Axis::RightX","value":"Axis::RightX","parent":{"krate":0,"index":3135},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3145},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":47964,"byte_end":47970,"line_start":206,"line_end":206,"column_start":5,"column_end":11},"name":"RightY","qualname":"::controller::Axis::RightY","value":"Axis::RightY","parent":{"krate":0,"index":3135},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3148},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":48041,"byte_end":48052,"line_start":207,"line_end":207,"column_start":5,"column_end":16},"name":"TriggerLeft","qualname":"::controller::Axis::TriggerLeft","value":"Axis::TriggerLeft","parent":{"krate":0,"index":3135},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3151},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":48128,"byte_end":48140,"line_start":208,"line_end":208,"column_start":5,"column_end":17},"name":"TriggerRight","qualname":"::controller::Axis::TriggerRight","value":"Axis::TriggerRight","parent":{"krate":0,"index":3135},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Enum","id":{"krate":0,"index":3135},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":47726,"byte_end":47730,"line_start":202,"line_end":202,"column_start":10,"column_end":14},"name":"Axis","qualname":"::controller::Axis","value":"pub enum Axis {\n LeftX = ,\n LeftY = ,\n RightX = ,\n RightY = ,\n TriggerLeft = ,\n TriggerRight = ,\n}","parent":null,"children":[{"krate":0,"index":3136},{"krate":0,"index":3139},{"krate":0,"index":3142},{"krate":0,"index":3145},{"krate":0,"index":3148},{"krate":0,"index":3151}],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"repr(i32)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":47704,"byte_end":47716,"line_start":201,"line_end":201,"column_start":1,"column_end":13}}]},{"kind":"Method","id":{"krate":0,"index":399},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":48419,"byte_end":48430,"line_start":215,"line_end":215,"column_start":12,"column_end":23},"name":"from_string","qualname":"::from_string","value":"pub fn from_string(&str) -> Option","parent":null,"children":[],"decl_id":null,"docs":" Return the Axis from a string description in the same format\n used by the game controller mapping strings.\n","sig":null,"attributes":[{"value":"/ Return the Axis from a string description in the same format","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":48232,"byte_end":48296,"line_start":212,"line_end":212,"column_start":5,"column_end":69}},{"value":"/ used by the game controller mapping strings.","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":48301,"byte_end":48349,"line_start":213,"line_end":213,"column_start":5,"column_end":53}}]},{"kind":"Method","id":{"krate":0,"index":400},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":49017,"byte_end":49023,"line_start":230,"line_end":230,"column_start":12,"column_end":18},"name":"string","qualname":"::string","value":"pub fn string(Self) -> String","parent":null,"children":[],"decl_id":null,"docs":" Return a string for a given axis in the same format using by\n the game controller mapping strings\n","sig":null,"attributes":[{"value":"/ Return a string for a given axis in the same format using by","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":48840,"byte_end":48904,"line_start":227,"line_end":227,"column_start":5,"column_end":69}},{"value":"/ the game controller mapping strings","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":48909,"byte_end":48948,"line_start":228,"line_end":228,"column_start":5,"column_end":44}}]},{"kind":"Method","id":{"krate":0,"index":401},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":49283,"byte_end":49290,"line_start":241,"line_end":241,"column_start":12,"column_end":19},"name":"from_ll","qualname":"::from_ll","value":"pub fn from_ll(sys::SDL_GameControllerAxis) -> Option","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Method","id":{"krate":0,"index":402},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":50050,"byte_end":50055,"line_start":254,"line_end":254,"column_start":12,"column_end":17},"name":"to_ll","qualname":"::to_ll","value":"pub fn to_ll(Self) -> sys::SDL_GameControllerAxis","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3169},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":50749,"byte_end":50750,"line_start":269,"line_end":269,"column_start":5,"column_end":6},"name":"A","qualname":"::controller::Button::A","value":"Button::A","parent":{"krate":0,"index":3168},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3172},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":50820,"byte_end":50821,"line_start":270,"line_end":270,"column_start":5,"column_end":6},"name":"B","qualname":"::controller::Button::B","value":"Button::B","parent":{"krate":0,"index":3168},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3175},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":50891,"byte_end":50892,"line_start":271,"line_end":271,"column_start":5,"column_end":6},"name":"X","qualname":"::controller::Button::X","value":"Button::X","parent":{"krate":0,"index":3168},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3178},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":50962,"byte_end":50963,"line_start":272,"line_end":272,"column_start":5,"column_end":6},"name":"Y","qualname":"::controller::Button::Y","value":"Button::Y","parent":{"krate":0,"index":3168},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3181},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":51033,"byte_end":51037,"line_start":273,"line_end":273,"column_start":5,"column_end":9},"name":"Back","qualname":"::controller::Button::Back","value":"Button::Back","parent":{"krate":0,"index":3168},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3184},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":51110,"byte_end":51115,"line_start":274,"line_end":274,"column_start":5,"column_end":10},"name":"Guide","qualname":"::controller::Button::Guide","value":"Button::Guide","parent":{"krate":0,"index":3168},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3187},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":51189,"byte_end":51194,"line_start":275,"line_end":275,"column_start":5,"column_end":10},"name":"Start","qualname":"::controller::Button::Start","value":"Button::Start","parent":{"krate":0,"index":3168},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3190},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":51268,"byte_end":51277,"line_start":276,"line_end":276,"column_start":5,"column_end":14},"name":"LeftStick","qualname":"::controller::Button::LeftStick","value":"Button::LeftStick","parent":{"krate":0,"index":3168},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3193},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":51355,"byte_end":51365,"line_start":277,"line_end":277,"column_start":5,"column_end":15},"name":"RightStick","qualname":"::controller::Button::RightStick","value":"Button::RightStick","parent":{"krate":0,"index":3168},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3196},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":51444,"byte_end":51456,"line_start":278,"line_end":278,"column_start":5,"column_end":17},"name":"LeftShoulder","qualname":"::controller::Button::LeftShoulder","value":"Button::LeftShoulder","parent":{"krate":0,"index":3168},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3199},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":51537,"byte_end":51550,"line_start":279,"line_end":279,"column_start":5,"column_end":18},"name":"RightShoulder","qualname":"::controller::Button::RightShoulder","value":"Button::RightShoulder","parent":{"krate":0,"index":3168},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3202},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":51632,"byte_end":51638,"line_start":280,"line_end":280,"column_start":5,"column_end":11},"name":"DPadUp","qualname":"::controller::Button::DPadUp","value":"Button::DPadUp","parent":{"krate":0,"index":3168},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3205},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":51714,"byte_end":51722,"line_start":281,"line_end":281,"column_start":5,"column_end":13},"name":"DPadDown","qualname":"::controller::Button::DPadDown","value":"Button::DPadDown","parent":{"krate":0,"index":3168},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3208},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":51800,"byte_end":51808,"line_start":282,"line_end":282,"column_start":5,"column_end":13},"name":"DPadLeft","qualname":"::controller::Button::DPadLeft","value":"Button::DPadLeft","parent":{"krate":0,"index":3168},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3211},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":51886,"byte_end":51895,"line_start":283,"line_end":283,"column_start":5,"column_end":14},"name":"DPadRight","qualname":"::controller::Button::DPadRight","value":"Button::DPadRight","parent":{"krate":0,"index":3168},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3214},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":51974,"byte_end":51979,"line_start":284,"line_end":284,"column_start":5,"column_end":10},"name":"Misc1","qualname":"::controller::Button::Misc1","value":"Button::Misc1","parent":{"krate":0,"index":3168},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3217},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":52053,"byte_end":52060,"line_start":285,"line_end":285,"column_start":5,"column_end":12},"name":"Paddle1","qualname":"::controller::Button::Paddle1","value":"Button::Paddle1","parent":{"krate":0,"index":3168},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3220},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":52136,"byte_end":52143,"line_start":286,"line_end":286,"column_start":5,"column_end":12},"name":"Paddle2","qualname":"::controller::Button::Paddle2","value":"Button::Paddle2","parent":{"krate":0,"index":3168},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3223},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":52219,"byte_end":52226,"line_start":287,"line_end":287,"column_start":5,"column_end":12},"name":"Paddle3","qualname":"::controller::Button::Paddle3","value":"Button::Paddle3","parent":{"krate":0,"index":3168},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3226},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":52302,"byte_end":52309,"line_start":288,"line_end":288,"column_start":5,"column_end":12},"name":"Paddle4","qualname":"::controller::Button::Paddle4","value":"Button::Paddle4","parent":{"krate":0,"index":3168},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"TupleVariant","id":{"krate":0,"index":3229},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":52385,"byte_end":52393,"line_start":289,"line_end":289,"column_start":5,"column_end":13},"name":"Touchpad","qualname":"::controller::Button::Touchpad","value":"Button::Touchpad","parent":{"krate":0,"index":3168},"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Enum","id":{"krate":0,"index":3168},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":50736,"byte_end":50742,"line_start":268,"line_end":268,"column_start":10,"column_end":16},"name":"Button","qualname":"::controller::Button","value":"pub enum Button {\n A = ,\n B = ,\n X = ,\n Y = ,\n Back = ,\n Guide = ,\n Start = ,\n LeftStick = ,\n RightStick = ,\n LeftShoulder = ,\n RightShoulder = ,\n DPadUp = ,\n DPadDown = ,\n DPadLeft = ,\n DPadRight = ,\n Misc1 = ,\n Paddle1 = ,\n Paddle2 = ,\n Paddle3 = ,\n Paddle4 = ,\n Touchpad = ,\n}","parent":null,"children":[{"krate":0,"index":3169},{"krate":0,"index":3172},{"krate":0,"index":3175},{"krate":0,"index":3178},{"krate":0,"index":3181},{"krate":0,"index":3184},{"krate":0,"index":3187},{"krate":0,"index":3190},{"krate":0,"index":3193},{"krate":0,"index":3196},{"krate":0,"index":3199},{"krate":0,"index":3202},{"krate":0,"index":3205},{"krate":0,"index":3208},{"krate":0,"index":3211},{"krate":0,"index":3214},{"krate":0,"index":3217},{"krate":0,"index":3220},{"krate":0,"index":3223},{"krate":0,"index":3226},{"krate":0,"index":3229}],"decl_id":null,"docs":"","sig":null,"attributes":[{"value":"repr(i32)","span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":50714,"byte_end":50726,"line_start":267,"line_end":267,"column_start":1,"column_end":13}}]},{"kind":"Method","id":{"krate":0,"index":404},"span":{"file_name":"/home/gallant/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.35.2/src/sdl2/controller.rs","byte_start":52678,"byte_end":52689,"line_start":296,"line_end":296,"column_start":12,"column_end":23},"name":"from_string","qualname":"