diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index d330888..ca5bb83 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -19,7 +19,7 @@ jobs: format: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 - name: Install latest uses: actions-rs/toolchain@v1 with: @@ -31,7 +31,7 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 - name: Install latest uses: actions-rs/toolchain@v1 with: @@ -45,7 +45,7 @@ jobs: clippy: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 - name: Install latest uses: actions-rs/toolchain@v1 with: @@ -62,7 +62,7 @@ jobs: runs-on: ubuntu-latest if: github.ref != 'refs/heads/main' steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 with: ref: refs/heads/${{ github.head_ref }} persist-credentials: false @@ -98,7 +98,7 @@ jobs: - test - clippy steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 - uses: actions-rs/toolchain@v1 with: toolchain: stable @@ -124,7 +124,7 @@ jobs: - test - clippy steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 - uses: actions-rs/toolchain@v1 with: toolchain: stable diff --git a/docs/.rustc_info.json b/docs/.rustc_info.json index 2421181..ad24725 100644 --- a/docs/.rustc_info.json +++ b/docs/.rustc_info.json @@ -1 +1 @@ -{"rustc_fingerprint":13690027882614928059,"outputs":{"17598535894874457435":{"success":true,"status":"","code":0,"stdout":"rustc 1.60.0 (7737e0b5c 2022-04-04)\nbinary: rustc\ncommit-hash: 7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c\ncommit-date: 2022-04-04\nhost: x86_64-unknown-linux-gnu\nrelease: 1.60.0\nLLVM version: 14.0.0\n","stderr":""},"2797684049618456168":{"success":false,"status":"exit status: 1","code":1,"stdout":"","stderr":"error: `-Csplit-debuginfo` is unstable on this platform\n\n"},"5309432699494263626":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n","stderr":""},"931469667778813386":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu\ndebug_assertions\npanic=\"unwind\"\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_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n","stderr":""}},"successes":{}} \ No newline at end of file +{"rustc_fingerprint":3159382573098090533,"outputs":{"4614504638168534921":{"success":true,"status":"","code":0,"stdout":"rustc 1.72.0 (5680fa18f 2023-08-23)\nbinary: rustc\ncommit-hash: 5680fa18feaa87f3ff04063800aec256c3d4b4be\ncommit-date: 2023-08-23\nhost: x86_64-unknown-linux-gnu\nrelease: 1.72.0\nLLVM version: 16.0.5\n","stderr":""},"15729799797837862367":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu\noff\npacked\nunpacked\n___\ndebug_assertions\npanic=\"unwind\"\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_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n","stderr":""}},"successes":{}} \ No newline at end of file diff --git a/docs/.rustdoc_fingerprint.json b/docs/.rustdoc_fingerprint.json index 39f4ce4..8dfcda3 100644 --- a/docs/.rustdoc_fingerprint.json +++ b/docs/.rustdoc_fingerprint.json @@ -1 +1 @@ -{"rustc_vv":"rustc 1.60.0 (7737e0b5c 2022-04-04)\nbinary: rustc\ncommit-hash: 7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c\ncommit-date: 2022-04-04\nhost: x86_64-unknown-linux-gnu\nrelease: 1.60.0\nLLVM version: 14.0.0\n"} \ No newline at end of file +{"rustc_vv":"rustc 1.72.0 (5680fa18f 2023-08-23)\nbinary: rustc\ncommit-hash: 5680fa18feaa87f3ff04063800aec256c3d4b4be\ncommit-date: 2023-08-23\nhost: x86_64-unknown-linux-gnu\nrelease: 1.72.0\nLLVM version: 16.0.5\n"} \ No newline at end of file diff --git a/docs/debug/.fingerprint/doc-comment-1b06897278944c90/run-build-script-build-script-build b/docs/debug/.fingerprint/doc-comment-1b06897278944c90/run-build-script-build-script-build deleted file mode 100644 index 4322295..0000000 --- a/docs/debug/.fingerprint/doc-comment-1b06897278944c90/run-build-script-build-script-build +++ /dev/null @@ -1 +0,0 @@ -4d6870b2301f6e96 \ No newline at end of file diff --git a/docs/debug/.fingerprint/doc-comment-1b06897278944c90/run-build-script-build-script-build.json b/docs/debug/.fingerprint/doc-comment-1b06897278944c90/run-build-script-build-script-build.json deleted file mode 100644 index db005a1..0000000 --- a/docs/debug/.fingerprint/doc-comment-1b06897278944c90/run-build-script-build-script-build.json +++ /dev/null @@ -1 +0,0 @@ -{"rustc":6064785002308032717,"features":"","target":0,"profile":0,"path":0,"deps":[[3604316984868239912,"build_script_build",false,11046353864905882589]],"local":[{"Precalculated":"0.3.3"}],"rustflags":[],"metadata":0,"config":0,"compile_kind":0} \ No newline at end of file diff --git a/docs/debug/.fingerprint/doc-comment-bda2383960759dfa/dep-lib-doc_comment b/docs/debug/.fingerprint/doc-comment-49320492121cae83/dep-lib-doc_comment similarity index 100% rename from docs/debug/.fingerprint/doc-comment-bda2383960759dfa/dep-lib-doc_comment rename to docs/debug/.fingerprint/doc-comment-49320492121cae83/dep-lib-doc_comment diff --git a/docs/debug/.fingerprint/doc-comment-ab83651059ca7977/invoked.timestamp b/docs/debug/.fingerprint/doc-comment-49320492121cae83/invoked.timestamp similarity index 100% rename from docs/debug/.fingerprint/doc-comment-ab83651059ca7977/invoked.timestamp rename to docs/debug/.fingerprint/doc-comment-49320492121cae83/invoked.timestamp diff --git a/docs/debug/.fingerprint/doc-comment-49320492121cae83/lib-doc_comment b/docs/debug/.fingerprint/doc-comment-49320492121cae83/lib-doc_comment new file mode 100644 index 0000000..e81e24b --- /dev/null +++ b/docs/debug/.fingerprint/doc-comment-49320492121cae83/lib-doc_comment @@ -0,0 +1 @@ +3ebd604780b6e01f \ No newline at end of file diff --git a/docs/debug/.fingerprint/doc-comment-49320492121cae83/lib-doc_comment.json b/docs/debug/.fingerprint/doc-comment-49320492121cae83/lib-doc_comment.json new file mode 100644 index 0000000..ccb6d78 --- /dev/null +++ b/docs/debug/.fingerprint/doc-comment-49320492121cae83/lib-doc_comment.json @@ -0,0 +1 @@ +{"rustc":17954901377634971088,"features":"[]","target":13977519194929735499,"profile":14473208297124147686,"path":12194825529008265702,"deps":[[3604316984868239912,"build_script_build",false,14440805965209185697]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/doc-comment-49320492121cae83/dep-lib-doc_comment"}}],"rustflags":[],"metadata":2009847191618272438,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/docs/debug/.fingerprint/doc-comment-ab83651059ca7977/build-script-build-script-build b/docs/debug/.fingerprint/doc-comment-ab83651059ca7977/build-script-build-script-build deleted file mode 100644 index 1d7c0b0..0000000 --- a/docs/debug/.fingerprint/doc-comment-ab83651059ca7977/build-script-build-script-build +++ /dev/null @@ -1 +0,0 @@ -dd7bfa6450884c99 \ No newline at end of file diff --git a/docs/debug/.fingerprint/doc-comment-ab83651059ca7977/build-script-build-script-build.json b/docs/debug/.fingerprint/doc-comment-ab83651059ca7977/build-script-build-script-build.json deleted file mode 100644 index 88c66cc..0000000 --- a/docs/debug/.fingerprint/doc-comment-ab83651059ca7977/build-script-build-script-build.json +++ /dev/null @@ -1 +0,0 @@ -{"rustc":6064785002308032717,"features":"[]","target":2709041430195671023,"profile":12637318739757120569,"path":6418153070291560974,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/doc-comment-ab83651059ca7977/dep-build-script-build-script-build"}}],"rustflags":[],"metadata":2009847191618272438,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/docs/debug/.fingerprint/doc-comment-bda2383960759dfa/lib-doc_comment b/docs/debug/.fingerprint/doc-comment-bda2383960759dfa/lib-doc_comment deleted file mode 100644 index 7df5a2d..0000000 --- a/docs/debug/.fingerprint/doc-comment-bda2383960759dfa/lib-doc_comment +++ /dev/null @@ -1 +0,0 @@ -29b51fa956307754 \ No newline at end of file diff --git a/docs/debug/.fingerprint/doc-comment-bda2383960759dfa/lib-doc_comment.json b/docs/debug/.fingerprint/doc-comment-bda2383960759dfa/lib-doc_comment.json deleted file mode 100644 index b8e3148..0000000 --- a/docs/debug/.fingerprint/doc-comment-bda2383960759dfa/lib-doc_comment.json +++ /dev/null @@ -1 +0,0 @@ -{"rustc":6064785002308032717,"features":"[]","target":3927201586341892043,"profile":3735503092003429423,"path":9436458717181895228,"deps":[[3604316984868239912,"build_script_build",false,10839635647139965005]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/doc-comment-bda2383960759dfa/dep-lib-doc_comment"}}],"rustflags":[],"metadata":2009847191618272438,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/docs/debug/.fingerprint/doc-comment-f21abc208f163460/run-build-script-build-script-build b/docs/debug/.fingerprint/doc-comment-f21abc208f163460/run-build-script-build-script-build new file mode 100644 index 0000000..49c0a6a --- /dev/null +++ b/docs/debug/.fingerprint/doc-comment-f21abc208f163460/run-build-script-build-script-build @@ -0,0 +1 @@ +a1ada2c2830c68c8 \ No newline at end of file diff --git a/docs/debug/.fingerprint/doc-comment-f21abc208f163460/run-build-script-build-script-build.json b/docs/debug/.fingerprint/doc-comment-f21abc208f163460/run-build-script-build-script-build.json new file mode 100644 index 0000000..955c23e --- /dev/null +++ b/docs/debug/.fingerprint/doc-comment-f21abc208f163460/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":17954901377634971088,"features":"","target":0,"profile":0,"path":0,"deps":[[3604316984868239912,"build_script_build",false,2200569816358746873]],"local":[{"Precalculated":"0.3.3"}],"rustflags":[],"metadata":0,"config":0,"compile_kind":0} \ No newline at end of file diff --git a/docs/debug/.fingerprint/doc-comment-ffd15a95ae96471a/build-script-build-script-build b/docs/debug/.fingerprint/doc-comment-ffd15a95ae96471a/build-script-build-script-build new file mode 100644 index 0000000..ab0b5da --- /dev/null +++ b/docs/debug/.fingerprint/doc-comment-ffd15a95ae96471a/build-script-build-script-build @@ -0,0 +1 @@ +f97a82bf96fe891e \ No newline at end of file diff --git a/docs/debug/.fingerprint/doc-comment-ffd15a95ae96471a/build-script-build-script-build.json b/docs/debug/.fingerprint/doc-comment-ffd15a95ae96471a/build-script-build-script-build.json new file mode 100644 index 0000000..52077f4 --- /dev/null +++ b/docs/debug/.fingerprint/doc-comment-ffd15a95ae96471a/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":17954901377634971088,"features":"[]","target":8188216131759486267,"profile":13178609178403335023,"path":17252156501066694336,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/doc-comment-ffd15a95ae96471a/dep-build-script-build-script-build"}}],"rustflags":[],"metadata":2009847191618272438,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/docs/debug/.fingerprint/doc-comment-ab83651059ca7977/dep-build-script-build-script-build b/docs/debug/.fingerprint/doc-comment-ffd15a95ae96471a/dep-build-script-build-script-build similarity index 100% rename from docs/debug/.fingerprint/doc-comment-ab83651059ca7977/dep-build-script-build-script-build rename to docs/debug/.fingerprint/doc-comment-ffd15a95ae96471a/dep-build-script-build-script-build diff --git a/docs/debug/.fingerprint/doc-comment-bda2383960759dfa/invoked.timestamp b/docs/debug/.fingerprint/doc-comment-ffd15a95ae96471a/invoked.timestamp similarity index 100% rename from docs/debug/.fingerprint/doc-comment-bda2383960759dfa/invoked.timestamp rename to docs/debug/.fingerprint/doc-comment-ffd15a95ae96471a/invoked.timestamp diff --git a/docs/debug/.fingerprint/paste-03000d454419338b/run-build-script-build-script-build b/docs/debug/.fingerprint/paste-03000d454419338b/run-build-script-build-script-build new file mode 100644 index 0000000..abf6d2f --- /dev/null +++ b/docs/debug/.fingerprint/paste-03000d454419338b/run-build-script-build-script-build @@ -0,0 +1 @@ +afeaa3d5b221f169 \ No newline at end of file diff --git a/docs/debug/.fingerprint/paste-03000d454419338b/run-build-script-build-script-build.json b/docs/debug/.fingerprint/paste-03000d454419338b/run-build-script-build-script-build.json new file mode 100644 index 0000000..4bc7121 --- /dev/null +++ b/docs/debug/.fingerprint/paste-03000d454419338b/run-build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":17954901377634971088,"features":"","target":0,"profile":0,"path":0,"deps":[[15340987198089805406,"build_script_build",false,4012564592001164875]],"local":[{"RerunIfChanged":{"output":"debug/build/paste-03000d454419338b/output","paths":["build.rs"]}}],"rustflags":[],"metadata":0,"config":0,"compile_kind":0} \ No newline at end of file diff --git a/docs/debug/.fingerprint/paste-20ebc6fd9e2b3438/lib-paste b/docs/debug/.fingerprint/paste-20ebc6fd9e2b3438/lib-paste deleted file mode 100644 index a8289e9..0000000 --- a/docs/debug/.fingerprint/paste-20ebc6fd9e2b3438/lib-paste +++ /dev/null @@ -1 +0,0 @@ -5190ddf878d108e5 \ No newline at end of file diff --git a/docs/debug/.fingerprint/paste-20ebc6fd9e2b3438/lib-paste.json b/docs/debug/.fingerprint/paste-20ebc6fd9e2b3438/lib-paste.json deleted file mode 100644 index 8e08d12..0000000 --- a/docs/debug/.fingerprint/paste-20ebc6fd9e2b3438/lib-paste.json +++ /dev/null @@ -1 +0,0 @@ -{"rustc":6064785002308032717,"features":"[]","target":11680813067107455742,"profile":12637318739757120569,"path":6270110714609130184,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/paste-20ebc6fd9e2b3438/dep-lib-paste"}}],"rustflags":[],"metadata":13015013502493569352,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/docs/debug/.fingerprint/paste-20ebc6fd9e2b3438/dep-lib-paste b/docs/debug/.fingerprint/paste-3438d5d70193e9e2/dep-lib-paste similarity index 100% rename from docs/debug/.fingerprint/paste-20ebc6fd9e2b3438/dep-lib-paste rename to docs/debug/.fingerprint/paste-3438d5d70193e9e2/dep-lib-paste diff --git a/docs/debug/.fingerprint/paste-20ebc6fd9e2b3438/invoked.timestamp b/docs/debug/.fingerprint/paste-3438d5d70193e9e2/invoked.timestamp similarity index 100% rename from docs/debug/.fingerprint/paste-20ebc6fd9e2b3438/invoked.timestamp rename to docs/debug/.fingerprint/paste-3438d5d70193e9e2/invoked.timestamp diff --git a/docs/debug/.fingerprint/paste-3438d5d70193e9e2/lib-paste b/docs/debug/.fingerprint/paste-3438d5d70193e9e2/lib-paste new file mode 100644 index 0000000..3fe8f00 --- /dev/null +++ b/docs/debug/.fingerprint/paste-3438d5d70193e9e2/lib-paste @@ -0,0 +1 @@ +0c713dc59e607477 \ No newline at end of file diff --git a/docs/debug/.fingerprint/paste-3438d5d70193e9e2/lib-paste.json b/docs/debug/.fingerprint/paste-3438d5d70193e9e2/lib-paste.json new file mode 100644 index 0000000..3e04c6c --- /dev/null +++ b/docs/debug/.fingerprint/paste-3438d5d70193e9e2/lib-paste.json @@ -0,0 +1 @@ +{"rustc":17954901377634971088,"features":"[]","target":16353436600926080501,"profile":13178609178403335023,"path":14358474520932413063,"deps":[[15340987198089805406,"build_script_build",false,7633919895341886127]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/paste-3438d5d70193e9e2/dep-lib-paste"}}],"rustflags":[],"metadata":13015013502493569352,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/docs/debug/.fingerprint/paste-933be25a5ccab2fd/build-script-build-script-build b/docs/debug/.fingerprint/paste-933be25a5ccab2fd/build-script-build-script-build new file mode 100644 index 0000000..69ecc51 --- /dev/null +++ b/docs/debug/.fingerprint/paste-933be25a5ccab2fd/build-script-build-script-build @@ -0,0 +1 @@ +4b268aa83c7eaf37 \ No newline at end of file diff --git a/docs/debug/.fingerprint/paste-933be25a5ccab2fd/build-script-build-script-build.json b/docs/debug/.fingerprint/paste-933be25a5ccab2fd/build-script-build-script-build.json new file mode 100644 index 0000000..60c9da2 --- /dev/null +++ b/docs/debug/.fingerprint/paste-933be25a5ccab2fd/build-script-build-script-build.json @@ -0,0 +1 @@ +{"rustc":17954901377634971088,"features":"[]","target":2297296889237502566,"profile":13178609178403335023,"path":13953737244675886376,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/paste-933be25a5ccab2fd/dep-build-script-build-script-build"}}],"rustflags":[],"metadata":13015013502493569352,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/docs/debug/.fingerprint/safe-transmute-08de2e97acce0a0b/dep-lib-safe-transmute b/docs/debug/.fingerprint/paste-933be25a5ccab2fd/dep-build-script-build-script-build similarity index 100% rename from docs/debug/.fingerprint/safe-transmute-08de2e97acce0a0b/dep-lib-safe-transmute rename to docs/debug/.fingerprint/paste-933be25a5ccab2fd/dep-build-script-build-script-build diff --git a/docs/debug/.fingerprint/safe-transmute-08de2e97acce0a0b/invoked.timestamp b/docs/debug/.fingerprint/paste-933be25a5ccab2fd/invoked.timestamp similarity index 100% rename from docs/debug/.fingerprint/safe-transmute-08de2e97acce0a0b/invoked.timestamp rename to docs/debug/.fingerprint/paste-933be25a5ccab2fd/invoked.timestamp diff --git a/docs/debug/.fingerprint/safe-transmute-08de2e97acce0a0b/lib-safe-transmute b/docs/debug/.fingerprint/safe-transmute-08de2e97acce0a0b/lib-safe-transmute deleted file mode 100644 index 4ae79fd..0000000 --- a/docs/debug/.fingerprint/safe-transmute-08de2e97acce0a0b/lib-safe-transmute +++ /dev/null @@ -1 +0,0 @@ -20d79b6bd636334e \ No newline at end of file diff --git a/docs/debug/.fingerprint/safe-transmute-08de2e97acce0a0b/lib-safe-transmute.json b/docs/debug/.fingerprint/safe-transmute-08de2e97acce0a0b/lib-safe-transmute.json deleted file mode 100644 index 79adf8a..0000000 --- a/docs/debug/.fingerprint/safe-transmute-08de2e97acce0a0b/lib-safe-transmute.json +++ /dev/null @@ -1 +0,0 @@ -{"rustc":6064785002308032717,"features":"[\"alloc\", \"default\", \"std\"]","target":53543228631905795,"profile":3735503092003429423,"path":3574858853815873827,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/safe-transmute-08de2e97acce0a0b/dep-lib-safe-transmute"}}],"rustflags":[],"metadata":1405137643048346262,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/docs/debug/.fingerprint/safe-transmute-95c3998b024316fe/dep-lib-safe-transmute b/docs/debug/.fingerprint/safe-transmute-95c3998b024316fe/dep-lib-safe-transmute new file mode 100644 index 0000000..1b1cb4d Binary files /dev/null and b/docs/debug/.fingerprint/safe-transmute-95c3998b024316fe/dep-lib-safe-transmute differ diff --git a/docs/debug/build/doc-comment-1b06897278944c90/invoked.timestamp b/docs/debug/.fingerprint/safe-transmute-95c3998b024316fe/invoked.timestamp similarity index 100% rename from docs/debug/build/doc-comment-1b06897278944c90/invoked.timestamp rename to docs/debug/.fingerprint/safe-transmute-95c3998b024316fe/invoked.timestamp diff --git a/docs/debug/.fingerprint/safe-transmute-95c3998b024316fe/lib-safe-transmute b/docs/debug/.fingerprint/safe-transmute-95c3998b024316fe/lib-safe-transmute new file mode 100644 index 0000000..e8a247e --- /dev/null +++ b/docs/debug/.fingerprint/safe-transmute-95c3998b024316fe/lib-safe-transmute @@ -0,0 +1 @@ +60a5601e659f5a3d \ No newline at end of file diff --git a/docs/debug/.fingerprint/safe-transmute-95c3998b024316fe/lib-safe-transmute.json b/docs/debug/.fingerprint/safe-transmute-95c3998b024316fe/lib-safe-transmute.json new file mode 100644 index 0000000..a12168d --- /dev/null +++ b/docs/debug/.fingerprint/safe-transmute-95c3998b024316fe/lib-safe-transmute.json @@ -0,0 +1 @@ +{"rustc":17954901377634971088,"features":"[\"alloc\", \"default\", \"std\"]","target":3916664945231048275,"profile":14473208297124147686,"path":8197205610629558026,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/safe-transmute-95c3998b024316fe/dep-lib-safe-transmute"}}],"rustflags":[],"metadata":1405137643048346262,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/docs/debug/.fingerprint/ubits-5a1a070a8a6eaa8e/doc-lib-ubits b/docs/debug/.fingerprint/ubits-5a1a070a8a6eaa8e/doc-lib-ubits new file mode 100644 index 0000000..00929d0 --- /dev/null +++ b/docs/debug/.fingerprint/ubits-5a1a070a8a6eaa8e/doc-lib-ubits @@ -0,0 +1 @@ +3aac76167c17c6c7 \ No newline at end of file diff --git a/docs/debug/.fingerprint/ubits-5a1a070a8a6eaa8e/doc-lib-ubits.json b/docs/debug/.fingerprint/ubits-5a1a070a8a6eaa8e/doc-lib-ubits.json new file mode 100644 index 0000000..3594a28 --- /dev/null +++ b/docs/debug/.fingerprint/ubits-5a1a070a8a6eaa8e/doc-lib-ubits.json @@ -0,0 +1 @@ +{"rustc":17954901377634971088,"features":"[]","target":8165669218380602157,"profile":1722418203641614240,"path":17523903030608720598,"deps":[[3604316984868239912,"doc_comment",false,2297036472028544318],[15340987198089805406,"paste",false,8607611022842097932],[17122623820282837837,"safe_transmute",false,4421021240867726688]],"local":[{"Precalculated":"1693832771.188925062s (docs/.rustc_info.json)"}],"rustflags":[],"metadata":3531897852417656932,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/docs/debug/.fingerprint/ubits-5cb737df32df7532/doc-lib-ubits b/docs/debug/.fingerprint/ubits-5cb737df32df7532/doc-lib-ubits deleted file mode 100644 index c71b050..0000000 --- a/docs/debug/.fingerprint/ubits-5cb737df32df7532/doc-lib-ubits +++ /dev/null @@ -1 +0,0 @@ -0557fa1f5a0f2882 \ No newline at end of file diff --git a/docs/debug/.fingerprint/ubits-5cb737df32df7532/doc-lib-ubits.json b/docs/debug/.fingerprint/ubits-5cb737df32df7532/doc-lib-ubits.json deleted file mode 100644 index cf264ed..0000000 --- a/docs/debug/.fingerprint/ubits-5cb737df32df7532/doc-lib-ubits.json +++ /dev/null @@ -1 +0,0 @@ -{"rustc":6064785002308032717,"features":"[]","target":2709273923335524737,"profile":13883289224548942237,"path":17523903030608720598,"deps":[[3604316984868239912,"doc_comment",false,6086386570177262889],[17122623820282837837,"safe_transmute",false,5634907853326898976],[17738545360000146463,"paste",false,16503671152000733265]],"local":[{"Precalculated":"1651601534.138340045s (docs/.rustc_info.json)"}],"rustflags":[],"metadata":3531897852417656932,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/docs/debug/build/doc-comment-1b06897278944c90/root-output b/docs/debug/build/doc-comment-1b06897278944c90/root-output deleted file mode 100644 index be44112..0000000 --- a/docs/debug/build/doc-comment-1b06897278944c90/root-output +++ /dev/null @@ -1 +0,0 @@ -/home/runner/work/ubits/ubits/docs/debug/build/doc-comment-1b06897278944c90/out \ No newline at end of file diff --git a/docs/debug/build/doc-comment-ab83651059ca7977/build-script-build b/docs/debug/build/doc-comment-ab83651059ca7977/build-script-build deleted file mode 100755 index ff6382a..0000000 Binary files a/docs/debug/build/doc-comment-ab83651059ca7977/build-script-build and /dev/null differ diff --git a/docs/debug/build/doc-comment-ab83651059ca7977/build_script_build-ab83651059ca7977 b/docs/debug/build/doc-comment-ab83651059ca7977/build_script_build-ab83651059ca7977 deleted file mode 100755 index ff6382a..0000000 Binary files a/docs/debug/build/doc-comment-ab83651059ca7977/build_script_build-ab83651059ca7977 and /dev/null differ diff --git a/docs/debug/build/doc-comment-ab83651059ca7977/build_script_build-ab83651059ca7977.d b/docs/debug/build/doc-comment-ab83651059ca7977/build_script_build-ab83651059ca7977.d deleted file mode 100644 index db88898..0000000 --- a/docs/debug/build/doc-comment-ab83651059ca7977/build_script_build-ab83651059ca7977.d +++ /dev/null @@ -1,5 +0,0 @@ -/home/runner/work/ubits/ubits/docs/debug/build/doc-comment-ab83651059ca7977/build_script_build-ab83651059ca7977: /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/doc-comment-0.3.3/build.rs - -/home/runner/work/ubits/ubits/docs/debug/build/doc-comment-ab83651059ca7977/build_script_build-ab83651059ca7977.d: /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/doc-comment-0.3.3/build.rs - -/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/doc-comment-0.3.3/build.rs: diff --git a/docs/debug/build/doc-comment-f21abc208f163460/invoked.timestamp b/docs/debug/build/doc-comment-f21abc208f163460/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/docs/debug/build/doc-comment-f21abc208f163460/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/docs/debug/build/doc-comment-1b06897278944c90/output b/docs/debug/build/doc-comment-f21abc208f163460/output similarity index 100% rename from docs/debug/build/doc-comment-1b06897278944c90/output rename to docs/debug/build/doc-comment-f21abc208f163460/output diff --git a/docs/debug/build/doc-comment-f21abc208f163460/root-output b/docs/debug/build/doc-comment-f21abc208f163460/root-output new file mode 100644 index 0000000..e7fc1d4 --- /dev/null +++ b/docs/debug/build/doc-comment-f21abc208f163460/root-output @@ -0,0 +1 @@ +/home/runner/work/ubits/ubits/docs/debug/build/doc-comment-f21abc208f163460/out \ No newline at end of file diff --git a/docs/debug/build/doc-comment-1b06897278944c90/stderr b/docs/debug/build/doc-comment-f21abc208f163460/stderr similarity index 100% rename from docs/debug/build/doc-comment-1b06897278944c90/stderr rename to docs/debug/build/doc-comment-f21abc208f163460/stderr diff --git a/docs/debug/build/doc-comment-ffd15a95ae96471a/build-script-build b/docs/debug/build/doc-comment-ffd15a95ae96471a/build-script-build new file mode 100755 index 0000000..7dc852a Binary files /dev/null and b/docs/debug/build/doc-comment-ffd15a95ae96471a/build-script-build differ diff --git a/docs/debug/build/doc-comment-ffd15a95ae96471a/build_script_build-ffd15a95ae96471a b/docs/debug/build/doc-comment-ffd15a95ae96471a/build_script_build-ffd15a95ae96471a new file mode 100755 index 0000000..7dc852a Binary files /dev/null and b/docs/debug/build/doc-comment-ffd15a95ae96471a/build_script_build-ffd15a95ae96471a differ diff --git a/docs/debug/build/doc-comment-ffd15a95ae96471a/build_script_build-ffd15a95ae96471a.d b/docs/debug/build/doc-comment-ffd15a95ae96471a/build_script_build-ffd15a95ae96471a.d new file mode 100644 index 0000000..734c8b0 --- /dev/null +++ b/docs/debug/build/doc-comment-ffd15a95ae96471a/build_script_build-ffd15a95ae96471a.d @@ -0,0 +1,5 @@ +/home/runner/work/ubits/ubits/docs/debug/build/doc-comment-ffd15a95ae96471a/build_script_build-ffd15a95ae96471a: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/doc-comment-0.3.3/build.rs + +/home/runner/work/ubits/ubits/docs/debug/build/doc-comment-ffd15a95ae96471a/build_script_build-ffd15a95ae96471a.d: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/doc-comment-0.3.3/build.rs + +/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/doc-comment-0.3.3/build.rs: diff --git a/docs/debug/build/paste-03000d454419338b/invoked.timestamp b/docs/debug/build/paste-03000d454419338b/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/docs/debug/build/paste-03000d454419338b/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/docs/debug/build/paste-03000d454419338b/output b/docs/debug/build/paste-03000d454419338b/output new file mode 100644 index 0000000..d15ba9a --- /dev/null +++ b/docs/debug/build/paste-03000d454419338b/output @@ -0,0 +1 @@ +cargo:rerun-if-changed=build.rs diff --git a/docs/debug/build/paste-03000d454419338b/root-output b/docs/debug/build/paste-03000d454419338b/root-output new file mode 100644 index 0000000..d1463e8 --- /dev/null +++ b/docs/debug/build/paste-03000d454419338b/root-output @@ -0,0 +1 @@ +/home/runner/work/ubits/ubits/docs/debug/build/paste-03000d454419338b/out \ No newline at end of file diff --git a/docs/debug/build/paste-03000d454419338b/stderr b/docs/debug/build/paste-03000d454419338b/stderr new file mode 100644 index 0000000..e69de29 diff --git a/docs/debug/build/paste-933be25a5ccab2fd/build-script-build b/docs/debug/build/paste-933be25a5ccab2fd/build-script-build new file mode 100755 index 0000000..6be88b2 Binary files /dev/null and b/docs/debug/build/paste-933be25a5ccab2fd/build-script-build differ diff --git a/docs/debug/build/paste-933be25a5ccab2fd/build_script_build-933be25a5ccab2fd b/docs/debug/build/paste-933be25a5ccab2fd/build_script_build-933be25a5ccab2fd new file mode 100755 index 0000000..6be88b2 Binary files /dev/null and b/docs/debug/build/paste-933be25a5ccab2fd/build_script_build-933be25a5ccab2fd differ diff --git a/docs/debug/build/paste-933be25a5ccab2fd/build_script_build-933be25a5ccab2fd.d b/docs/debug/build/paste-933be25a5ccab2fd/build_script_build-933be25a5ccab2fd.d new file mode 100644 index 0000000..21beeb0 --- /dev/null +++ b/docs/debug/build/paste-933be25a5ccab2fd/build_script_build-933be25a5ccab2fd.d @@ -0,0 +1,5 @@ +/home/runner/work/ubits/ubits/docs/debug/build/paste-933be25a5ccab2fd/build_script_build-933be25a5ccab2fd: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/paste-1.0.14/build.rs + +/home/runner/work/ubits/ubits/docs/debug/build/paste-933be25a5ccab2fd/build_script_build-933be25a5ccab2fd.d: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/paste-1.0.14/build.rs + +/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/paste-1.0.14/build.rs: diff --git a/docs/debug/deps/doc_comment-49320492121cae83.d b/docs/debug/deps/doc_comment-49320492121cae83.d new file mode 100644 index 0000000..1a358b5 --- /dev/null +++ b/docs/debug/deps/doc_comment-49320492121cae83.d @@ -0,0 +1,5 @@ +/home/runner/work/ubits/ubits/docs/debug/deps/doc_comment-49320492121cae83.rmeta: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/doc-comment-0.3.3/src/lib.rs + +/home/runner/work/ubits/ubits/docs/debug/deps/doc_comment-49320492121cae83.d: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/doc-comment-0.3.3/src/lib.rs + +/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/doc-comment-0.3.3/src/lib.rs: diff --git a/docs/debug/deps/doc_comment-bda2383960759dfa.d b/docs/debug/deps/doc_comment-bda2383960759dfa.d deleted file mode 100644 index 18aff55..0000000 --- a/docs/debug/deps/doc_comment-bda2383960759dfa.d +++ /dev/null @@ -1,5 +0,0 @@ -/home/runner/work/ubits/ubits/docs/debug/deps/doc_comment-bda2383960759dfa.rmeta: /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/doc-comment-0.3.3/src/lib.rs - -/home/runner/work/ubits/ubits/docs/debug/deps/doc_comment-bda2383960759dfa.d: /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/doc-comment-0.3.3/src/lib.rs - -/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/doc-comment-0.3.3/src/lib.rs: diff --git a/docs/debug/deps/libdoc_comment-49320492121cae83.rmeta b/docs/debug/deps/libdoc_comment-49320492121cae83.rmeta new file mode 100644 index 0000000..3c7eed8 Binary files /dev/null and b/docs/debug/deps/libdoc_comment-49320492121cae83.rmeta differ diff --git a/docs/debug/deps/libdoc_comment-bda2383960759dfa.rmeta b/docs/debug/deps/libdoc_comment-bda2383960759dfa.rmeta deleted file mode 100644 index 8db8898..0000000 Binary files a/docs/debug/deps/libdoc_comment-bda2383960759dfa.rmeta and /dev/null differ diff --git a/docs/debug/deps/libpaste-20ebc6fd9e2b3438.so b/docs/debug/deps/libpaste-20ebc6fd9e2b3438.so deleted file mode 100755 index 9174acb..0000000 Binary files a/docs/debug/deps/libpaste-20ebc6fd9e2b3438.so and /dev/null differ diff --git a/docs/debug/deps/libpaste-3438d5d70193e9e2.so b/docs/debug/deps/libpaste-3438d5d70193e9e2.so new file mode 100755 index 0000000..0b1b197 Binary files /dev/null and b/docs/debug/deps/libpaste-3438d5d70193e9e2.so differ diff --git a/docs/debug/deps/libsafe_transmute-08de2e97acce0a0b.rmeta b/docs/debug/deps/libsafe_transmute-08de2e97acce0a0b.rmeta deleted file mode 100644 index 7d977c9..0000000 Binary files a/docs/debug/deps/libsafe_transmute-08de2e97acce0a0b.rmeta and /dev/null differ diff --git a/docs/debug/deps/libsafe_transmute-95c3998b024316fe.rmeta b/docs/debug/deps/libsafe_transmute-95c3998b024316fe.rmeta new file mode 100644 index 0000000..e317ce1 Binary files /dev/null and b/docs/debug/deps/libsafe_transmute-95c3998b024316fe.rmeta differ diff --git a/docs/debug/deps/paste-20ebc6fd9e2b3438.d b/docs/debug/deps/paste-20ebc6fd9e2b3438.d deleted file mode 100644 index a09ff59..0000000 --- a/docs/debug/deps/paste-20ebc6fd9e2b3438.d +++ /dev/null @@ -1,8 +0,0 @@ -/home/runner/work/ubits/ubits/docs/debug/deps/libpaste-20ebc6fd9e2b3438.so: /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/paste-1.0.7/src/lib.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/paste-1.0.7/src/attr.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/paste-1.0.7/src/error.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/paste-1.0.7/src/segment.rs - -/home/runner/work/ubits/ubits/docs/debug/deps/paste-20ebc6fd9e2b3438.d: /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/paste-1.0.7/src/lib.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/paste-1.0.7/src/attr.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/paste-1.0.7/src/error.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/paste-1.0.7/src/segment.rs - -/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/paste-1.0.7/src/lib.rs: -/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/paste-1.0.7/src/attr.rs: -/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/paste-1.0.7/src/error.rs: -/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/paste-1.0.7/src/segment.rs: diff --git a/docs/debug/deps/paste-3438d5d70193e9e2.d b/docs/debug/deps/paste-3438d5d70193e9e2.d new file mode 100644 index 0000000..59aa12a --- /dev/null +++ b/docs/debug/deps/paste-3438d5d70193e9e2.d @@ -0,0 +1,8 @@ +/home/runner/work/ubits/ubits/docs/debug/deps/libpaste-3438d5d70193e9e2.so: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/paste-1.0.14/src/lib.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/paste-1.0.14/src/attr.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/paste-1.0.14/src/error.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/paste-1.0.14/src/segment.rs + +/home/runner/work/ubits/ubits/docs/debug/deps/paste-3438d5d70193e9e2.d: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/paste-1.0.14/src/lib.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/paste-1.0.14/src/attr.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/paste-1.0.14/src/error.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/paste-1.0.14/src/segment.rs + +/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/paste-1.0.14/src/lib.rs: +/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/paste-1.0.14/src/attr.rs: +/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/paste-1.0.14/src/error.rs: +/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/paste-1.0.14/src/segment.rs: diff --git a/docs/debug/deps/safe_transmute-08de2e97acce0a0b.d b/docs/debug/deps/safe_transmute-08de2e97acce0a0b.d deleted file mode 100644 index 5850e3c..0000000 --- a/docs/debug/deps/safe_transmute-08de2e97acce0a0b.d +++ /dev/null @@ -1,16 +0,0 @@ -/home/runner/work/ubits/ubits/docs/debug/deps/safe_transmute-08de2e97acce0a0b.rmeta: /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/lib.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/full.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/base.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/bool.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/util.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/align.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/error.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/guard.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/trivial.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/to_bytes.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/migration/mod.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/migration/v0_11.rs - -/home/runner/work/ubits/ubits/docs/debug/deps/safe_transmute-08de2e97acce0a0b.d: /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/lib.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/full.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/base.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/bool.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/util.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/align.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/error.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/guard.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/trivial.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/to_bytes.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/migration/mod.rs /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/migration/v0_11.rs - -/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/lib.rs: -/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/full.rs: -/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/base.rs: -/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/bool.rs: -/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/util.rs: -/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/align.rs: -/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/error.rs: -/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/guard.rs: -/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/trivial.rs: -/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/to_bytes.rs: -/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/migration/mod.rs: -/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/safe-transmute-0.11.2/src/migration/v0_11.rs: diff --git a/docs/debug/deps/safe_transmute-95c3998b024316fe.d b/docs/debug/deps/safe_transmute-95c3998b024316fe.d new file mode 100644 index 0000000..266e92c --- /dev/null +++ b/docs/debug/deps/safe_transmute-95c3998b024316fe.d @@ -0,0 +1,16 @@ +/home/runner/work/ubits/ubits/docs/debug/deps/safe_transmute-95c3998b024316fe.rmeta: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/lib.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/full.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/base.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/bool.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/util.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/align.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/error.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/guard.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/trivial.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/to_bytes.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/migration/mod.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/migration/v0_11.rs + +/home/runner/work/ubits/ubits/docs/debug/deps/safe_transmute-95c3998b024316fe.d: /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/lib.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/full.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/base.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/bool.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/util.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/align.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/error.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/guard.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/trivial.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/to_bytes.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/migration/mod.rs /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/migration/v0_11.rs + +/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/lib.rs: +/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/full.rs: +/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/base.rs: +/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/bool.rs: +/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/util.rs: +/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/align.rs: +/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/error.rs: +/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/guard.rs: +/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/trivial.rs: +/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/to_bytes.rs: +/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/migration/mod.rs: +/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/safe-transmute-0.11.2/src/migration/v0_11.rs: diff --git a/docs/doc/.lock b/docs/doc/.lock old mode 100755 new mode 100644 diff --git a/docs/doc/FiraSans-Medium.woff b/docs/doc/FiraSans-Medium.woff deleted file mode 100644 index 7d742c5..0000000 Binary files a/docs/doc/FiraSans-Medium.woff and /dev/null differ diff --git a/docs/doc/FiraSans-Regular.woff b/docs/doc/FiraSans-Regular.woff deleted file mode 100644 index d8e0363..0000000 Binary files a/docs/doc/FiraSans-Regular.woff and /dev/null differ diff --git a/docs/doc/NanumBarunGothic.ttf.woff b/docs/doc/NanumBarunGothic.ttf.woff deleted file mode 100644 index fb063e8..0000000 Binary files a/docs/doc/NanumBarunGothic.ttf.woff and /dev/null differ diff --git a/docs/doc/SourceCodePro-It.ttf.woff b/docs/doc/SourceCodePro-It.ttf.woff deleted file mode 100644 index 8d68f2f..0000000 Binary files a/docs/doc/SourceCodePro-It.ttf.woff and /dev/null differ diff --git a/docs/doc/SourceCodePro-Regular.ttf.woff b/docs/doc/SourceCodePro-Regular.ttf.woff deleted file mode 100644 index 7be076e..0000000 Binary files a/docs/doc/SourceCodePro-Regular.ttf.woff and /dev/null differ diff --git a/docs/doc/SourceCodePro-Semibold.ttf.woff b/docs/doc/SourceCodePro-Semibold.ttf.woff deleted file mode 100644 index 61bc67b..0000000 Binary files a/docs/doc/SourceCodePro-Semibold.ttf.woff and /dev/null differ diff --git a/docs/doc/SourceSerif4-Bold.ttf.woff b/docs/doc/SourceSerif4-Bold.ttf.woff deleted file mode 100644 index 8ad4188..0000000 Binary files a/docs/doc/SourceSerif4-Bold.ttf.woff and /dev/null differ diff --git a/docs/doc/SourceSerif4-Bold.ttf.woff2 b/docs/doc/SourceSerif4-Bold.ttf.woff2 deleted file mode 100644 index db57d21..0000000 Binary files a/docs/doc/SourceSerif4-Bold.ttf.woff2 and /dev/null differ diff --git a/docs/doc/SourceSerif4-It.ttf.woff b/docs/doc/SourceSerif4-It.ttf.woff deleted file mode 100644 index 2a34b5c..0000000 Binary files a/docs/doc/SourceSerif4-It.ttf.woff and /dev/null differ diff --git a/docs/doc/SourceSerif4-It.ttf.woff2 b/docs/doc/SourceSerif4-It.ttf.woff2 deleted file mode 100644 index 1cbc021..0000000 Binary files a/docs/doc/SourceSerif4-It.ttf.woff2 and /dev/null differ diff --git a/docs/doc/SourceSerif4-Regular.ttf.woff b/docs/doc/SourceSerif4-Regular.ttf.woff deleted file mode 100644 index 45a5521..0000000 Binary files a/docs/doc/SourceSerif4-Regular.ttf.woff and /dev/null differ diff --git a/docs/doc/SourceSerif4-Regular.ttf.woff2 b/docs/doc/SourceSerif4-Regular.ttf.woff2 deleted file mode 100644 index 2db73fe..0000000 Binary files a/docs/doc/SourceSerif4-Regular.ttf.woff2 and /dev/null differ diff --git a/docs/doc/ayu.css b/docs/doc/ayu.css deleted file mode 100644 index 50d893e..0000000 --- a/docs/doc/ayu.css +++ /dev/null @@ -1 +0,0 @@ - body{background-color:#0f1419;color:#c5c5c5;}h1,h2,h3,h4{color:white;}h1.fqn{border-bottom-color:#5c6773;}h1.fqn a{color:#fff;}h2,h3,h4{border-bottom-color:#5c6773;}h4{border:none;}.in-band{background-color:#0f1419;}.invisible{background:rgba(0,0,0,0);}.docblock code{color:#ffb454;}.code-header{color:#e6e1cf;}.docblock pre>code,pre>code{color:#e6e1cf;}span code{color:#e6e1cf;}.docblock a>code{color:#39AFD7 !important;}.docblock code,.docblock-short code{background-color:#191f26;}pre,.rustdoc.source .example-wrap{color:#e6e1cf;background-color:#191f26;}.sidebar,.mobile-topbar,.sidebar-menu-toggle{background-color:#14191f;}.rust-logo{filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);}*{scrollbar-color:#5c6773 #24292f;}.sidebar{scrollbar-color:#5c6773 #24292f;}::-webkit-scrollbar-track{background-color:transparent;}::-webkit-scrollbar-thumb{background-color:#5c6773;}.sidebar::-webkit-scrollbar-track{background-color:transparent;}.sidebar::-webkit-scrollbar-thumb{background-color:#5c6773;}.sidebar .current,.sidebar a:hover{background-color:transparent;color:#ffb44c;}.source .sidebar{background-color:#14191f;}.sidebar-elems .location{color:#ff7733;}.line-numbers span{color:#5c6773;}.line-numbers .line-highlighted{color:#708090;background-color:rgba(255,236,164,0.06);padding-right:4px;border-right:1px solid #ffb44c;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5,.docblock h6{border-bottom-color:#5c6773;}.docblock table td,.docblock table th{border-color:#5c6773;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#c5c5c5;}.search-results a:hover{background-color:#777;}.search-results a:focus{color:#000 !important;background-color:#c6afb3;}.search-results a{color:#0096cf;}.search-results a div.desc{color:#c5c5c5;}.content .item-info::before{color:#ccc;}.content span.foreigntype,.content a.foreigntype{color:#ffa0a5;}.content span.union,.content a.union{color:#ffa0a5;}.content span.constant,.content a.constant,.content span.static,.content a.static{color:#39AFD7;}.content span.primitive,.content a.primitive{color:#ffa0a5;}.content span.traitalias,.content a.traitalias{color:#39AFD7;}.content span.keyword,.content a.keyword{color:#39AFD7;}.content span.externcrate,.content span.mod,.content a.mod{color:#39AFD7;}.content span.struct,.content a.struct{color:#ffa0a5;}.content span.enum,.content a.enum{color:#ffa0a5;}.content span.trait,.content a.trait{color:#39AFD7;}.content span.type,.content a.type{color:#39AFD7;}.content span.type,.content a.type,.block a.current.type{color:#39AFD7;}.content span.associatedtype,.content a.associatedtype,.block a.current.associatedtype{color:#39AFD7;}.content span.fn,.content a.fn,.content span.method,.content a.method,.content span.tymethod,.content a.tymethod,.content .fnname{color:#fdd687;}.content span.attr,.content a.attr,.content span.derive,.content a.derive,.content span.macro,.content a.macro{color:#a37acc;}.sidebar a{color:#53b1db;}.sidebar a.current.type{color:#53b1db;}.sidebar a.current.associatedtype{color:#53b1db;}pre.rust .comment{color:#788797;}pre.rust .doccomment{color:#a1ac88;}nav.main .current{border-top-color:#5c6773;border-bottom-color:#5c6773;}nav.main .separator{border:1px solid #5c6773;}a{color:#39AFD7;}a#toggle-all-docs,a.anchor,.small-section-header a,#source-sidebar a,pre.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,.in-band a{color:#c5c5c5;}.sidebar h2 a,.sidebar h3 a{color:white;}.search-results a{color:#0096cf;}body.source .example-wrap pre.rust a{background:#333;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before,details.undocumented>summary::before{color:#999;}details.rustdoc-toggle>summary::before,details.undocumented>summary::before{filter:invert(100%);}#crate-search,.search-input{background-color:#141920;border-color:#424c57;color:#c5c5c5;}.search-input{color:#ffffff;}.module-item .stab,.import-item .stab{color:#000;}.stab.unstable,.stab.deprecated,.stab.portability{color:#c5c5c5;background:#314559 !important;border-style:none !important;border-radius:4px;padding:3px 6px 3px 6px;}.stab.portability>code{color:#e6e1cf;background:none;}#help>div{background:#14191f;box-shadow:0px 6px 20px 0px black;border:none;border-radius:4px;}#help span.bottom,#help span.top{border-color:#5c6773;}.rightside,.out-of-band{color:grey;}.result-name .primitive>i,.result-name .keyword>i{color:#788797;}.line-numbers :target{background-color:transparent;}pre.rust .number,pre.rust .string{color:#b8cc52;}pre.rust .kw,pre.rust .kw-2,pre.rust .prelude-ty,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .op,pre.rust .lifetime{color:#ff7733;}pre.rust .macro,pre.rust .macro-nonterminal{color:#a37acc;}pre.rust .question-mark{color:#ff9011;}pre.rust .self{color:#36a3d9;font-style:italic;}pre.rust .attribute{color:#e6e1cf;}pre.rust .attribute .ident,pre.rust .attribute .op{color:#e6e1cf;}.example-wrap>pre.line-number{color:#5c67736e;border:none;}a.test-arrow{font-size:100%;color:#788797;border-radius:4px;background-color:rgba(57,175,215,0.09);}a.test-arrow:hover{background-color:rgba(57,175,215,0.368);color:#c5c5c5;}.toggle-label,.code-attribute{color:#999;}:target{background:rgba(255,236,164,0.06);border-right:3px solid rgba(255,180,76,0.85);}pre.compile_fail{border-left:2px solid rgba(255,0,0,.4);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.4);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.5);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.5);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#39AFD7;}.tooltip::after{background-color:#314559;color:#c5c5c5;border:1px solid #5c6773;}.tooltip::before{border-color:transparent #314559 transparent transparent;}.notable-traits-tooltiptext{background-color:#314559;border-color:#5c6773;}.notable-traits-tooltiptext .notable{border-bottom-color:#5c6773;}#titles>button.selected{background-color:#141920 !important;border-bottom:1px solid #ffb44c !important;border-top:none;}#titles>button:not(.selected){background-color:transparent !important;border:none;}#titles>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}#titles>button>div.count{color:#888;}.search-input:focus{}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{}.content span.struct,.content a.struct,.block a.current.struct{}#titles>button:hover,#titles>button.selected{}.content span.typedef,.content a.typedef,.block a.current.typedef{}.content span.union,.content a.union,.block a.current.union{}pre.rust .lifetime{}.stab.unstable{}h2,h3:not(.impl):not(.method):not(.type):not(.tymethod),h4:not(.method):not(.type):not(.tymethod){}.content span.enum,.content a.enum,.block a.current.enum{}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{}.content span.keyword,.content a.keyword,.block a.current.keyword{}pre.rust .comment{}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{}pre.rust .kw{}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{}pre.rust .doccomment{}.stab.deprecated{}.content a.attr,.content a.derive,.content a.macro{}.stab.portability{}.content span.primitive,.content a.primitive,.block a.current.primitive{}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{}pre.rust .kw-2,pre.rust .prelude-ty{}.content span.trait,.content a.trait,.block a.current.trait{}.search-results a:focus span{}a.result-trait:focus{}a.result-traitalias:focus{}a.result-mod:focus,a.result-externcrate:focus{}a.result-mod:focus{}a.result-externcrate:focus{}a.result-enum:focus{}a.result-struct:focus{}a.result-union:focus{}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{}a.result-type:focus{}a.result-associatedtype:focus{}a.result-foreigntype:focus{}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{}a.result-constant:focus,a.result-static:focus{}a.result-primitive:focus{}a.result-keyword:focus{}.sidebar a.current.enum{}.sidebar a.current.struct{}.sidebar a.current.foreigntype{}.sidebar a.current.attr,.sidebar a.current.derive,.sidebar a.current.macro{}.sidebar a.current.union{}.sidebar a.current.constant .sidebar a.current.static{}.sidebar a.current.primitive{}.sidebar a.current.externcrate .sidebar a.current.mod{}.sidebar a.current.trait{}.sidebar a.current.traitalias{}.sidebar a.current.fn,.sidebar a.current.method,.sidebar a.current.tymethod{}.sidebar a.current.keyword{}@media (max-width:700px){.sidebar-menu{background-color:#14191f;border-bottom-color:#5c6773;border-right-color:#5c6773;}.sidebar-elems{background-color:#14191f;border-right-color:#5c6773;}#sidebar-filler{background-color:#14191f;border-bottom-color:#5c6773;}}kbd{color:#c5c5c5;background-color:#314559;border-color:#5c6773;border-bottom-color:#5c6773;box-shadow:inset 0 -1px 0 #5c6773;}#theme-picker,#settings-menu,#help-button{border-color:#5c6773;background-color:#0f1419;color:#fff;}#theme-picker>img,#settings-menu>img{filter:invert(100);}#copy-path{color:#fff;}#copy-path>img{filter:invert(70%);}#copy-path:hover>img{filter:invert(100%);}#theme-picker:hover,#theme-picker:focus,#settings-menu:hover,#settings-menu:focus,#help-button:hover,#help-button:focus{border-color:#e0e0e0;}#theme-choices{border-color:#5c6773;background-color:#0f1419;}#theme-choices>button:not(:first-child){border-top-color:#5c6773;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:rgba(110,110,110,0.33);}@media (max-width:700px){#theme-picker{background:#0f1419;}}.search-results .result-name span.alias{color:#c5c5c5;}.search-results .result-name span.grey{color:#999;}#sidebar-toggle{background-color:#14191f;}#sidebar-toggle:hover{background-color:rgba(70,70,70,0.33);}#source-sidebar{background-color:#14191f;}#source-sidebar>.title{color:#fff;border-bottom-color:#5c6773;}div.files>a:hover,div.name:hover{background-color:#14191f;color:#ffb44c;}div.files>.selected{background-color:#14191f;color:#ffb44c;}.setting-line>.title{border-bottom-color:#5c6773;}input:checked+.slider{background-color:#ffb454 !important;}.scraped-example .example-wrap .rust span.highlight{background:rgb(91,59,1);}.scraped-example .example-wrap .rust span.highlight.focus{background:rgb(124,75,15);}.scraped-example:not(.expanded) .code-wrapper:before{background:linear-gradient(to bottom,rgba(15,20,25,1),rgba(15,20,25,0));}.scraped-example:not(.expanded) .code-wrapper:after{background:linear-gradient(to top,rgba(15,20,25,1),rgba(15,20,25,0));}.toggle-line-inner{background:#616161;}.toggle-line:hover .toggle-line-inner{background:#898989;} \ No newline at end of file diff --git a/docs/doc/brush.svg b/docs/doc/brush.svg deleted file mode 100644 index ea266e8..0000000 --- a/docs/doc/brush.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/doc/dark.css b/docs/doc/dark.css deleted file mode 100644 index a31f453..0000000 --- a/docs/doc/dark.css +++ /dev/null @@ -1 +0,0 @@ -body{background-color:#353535;color:#ddd;}h1,h2,h3,h4{color:#ddd;}h1.fqn{border-bottom-color:#d2d2d2;}h2,h3,h4{border-bottom-color:#d2d2d2;}.in-band{background-color:#353535;}.invisible{background:rgba(0,0,0,0);}.docblock code,.docblock-short code{background-color:#2A2A2A;}pre,.rustdoc.source .example-wrap{background-color:#2A2A2A;}.sidebar,.mobile-topbar,.sidebar-menu-toggle{background-color:#505050;}.rust-logo{filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff)}*{scrollbar-color:rgb(64,65,67) #717171;}.sidebar{scrollbar-color:rgba(32,34,37,.6) #5a5a5a;}::-webkit-scrollbar-track{background-color:#717171;}::-webkit-scrollbar-thumb{background-color:rgba(32,34,37,.6);}.sidebar::-webkit-scrollbar-track{background-color:#717171;}.sidebar::-webkit-scrollbar-thumb{background-color:rgba(32,34,37,.6);}.sidebar .current,.sidebar a:hover{background:#444;}.source .sidebar{background-color:#565656;}.line-numbers span{color:#3B91E2;}.line-numbers .line-highlighted{background-color:#0a042f !important;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5,.docblock h6{border-bottom-color:#DDD;}.docblock table td,.docblock table th{border-color:#ddd;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#ddd;}.search-results a:hover{background-color:#777;}.search-results a:focus{color:#eee !important;background-color:#616161;}.search-results a:focus span{color:#eee !important;}a.result-trait:focus{background-color:#013191;}a.result-traitalias:focus{background-color:#013191;}a.result-mod:focus,a.result-externcrate:focus{background-color:#884719;}a.result-enum:focus{background-color:#194e9f;}a.result-struct:focus{background-color:#194e9f;}a.result-union:focus{background-color:#194e9f;}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{background-color:#4950ed;}a.result-type:focus{background-color:#194e9f;}a.result-associatedtype:focus{background-color:#884719;}a.result-foreigntype:focus{background-color:#194e9f;}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{background-color:#217d1c;}a.result-constant:focus,a.result-static:focus{background-color:#884719;}a.result-primitive:focus{background-color:#194e9f;}a.result-keyword:focus{background-color:#884719;}.content .item-info::before{color:#ccc;}.content span.enum,.content a.enum,.block a.current.enum{color:#2dbfb8;}.content span.struct,.content a.struct,.block a.current.struct{color:#2dbfb8;}.content span.type,.content a.type,.block a.current.type{color:#2dbfb8;}.content span.associatedtype,.content a.associatedtype,.block a.current.associatedtype{color:#D2991D;}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{color:#2dbfb8;}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{color:#09bd00;}.content span.union,.content a.union,.block a.current.union{color:#2dbfb8;}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{color:#D2991D;}.content span.primitive,.content a.primitive,.block a.current.primitive{color:#2dbfb8;}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{color:#D2991D;}.content span.trait,.content a.trait,.block a.current.trait{color:#b78cf2;}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{color:#b78cf2;}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{color:#2BAB63;}.content span.keyword,.content a.keyword,.block a.current.keyword{color:#D2991D;}.sidebar a{color:#fdbf35;}.sidebar a.current.enum{color:#12ece2;}.sidebar a.current.struct{color:#12ece2;}.sidebar a.current.type{color:#12ece2;}.sidebar a.current.associatedtype{color:#fdbf35;}.sidebar a.current.foreigntype{color:#12ece2;}.sidebar a.current.attr,.sidebar a.current.derive,.sidebar a.current.macro{color:#0be900;}.sidebar a.current.union{color:#12ece2;}.sidebar a.current.constant .sidebar a.current.static{color:#fdbf35;}.sidebar a.current.primitive{color:#12ece2;}.sidebar a.current.externcrate .sidebar a.current.mod{color:#fdbf35;}.sidebar a.current.trait{color:#cca7ff;}.sidebar a.current.traitalias{color:#cca7ff;}.sidebar a.current.fn,.sidebar a.current.method,.sidebar a.current.tymethod{color:#32d479;}.sidebar a.current.keyword{color:#fdbf35;}pre.rust .comment{color:#8d8d8b;}pre.rust .doccomment{color:#8ca375;}nav.main .current{border-top-color:#eee;border-bottom-color:#eee;}nav.main .separator{border-color:#eee;}a{color:#D2991D;}a#toggle-all-docs,a.anchor,.small-section-header a,#source-sidebar a,pre.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,.in-band a{color:#ddd;}.search-results a{color:#ddd;}a.test-arrow{color:#dedede;}body.source .example-wrap pre.rust a{background:#333;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before,details.undocumented>summary::before{color:#999;}details.rustdoc-toggle>summary::before,details.undocumented>summary::before{filter:invert(100%);}#crate-search,.search-input{color:#111;background-color:#f0f0f0;border-color:#000;}.search-input{border-color:#e0e0e0;}.search-input:focus{border-color:#008dfd;}.module-item .stab,.import-item .stab{color:#ddd;}.stab.unstable{background:#FFF5D6;border-color:#FFC600;color:#2f2f2f;}.stab.deprecated{background:#ffc4c4;border-color:#db7b7b;color:#2f2f2f;}.stab.portability{background:#F3DFFF;border-color:#b07bdb;color:#2f2f2f;}.stab.portability>code{background:none;}#help>div{background:#4d4d4d;border-color:#bfbfbf;}#help span.bottom,#help span.top{border-color:#bfbfbf;}#help dt{border-color:#bfbfbf;background:rgba(0,0,0,0);}.rightside,.out-of-band{color:grey;}.result-name .primitive>i,.result-name .keyword>i{color:#ddd;}.line-numbers :target{background-color:transparent;}pre.rust .kw{color:#ab8ac1;}pre.rust .kw-2,pre.rust .prelude-ty{color:#769acb;}pre.rust .number,pre.rust .string{color:#83a300;}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{color:#ee6868;}pre.rust .macro,pre.rust .macro-nonterminal{color:#3E999F;}pre.rust .lifetime{color:#d97f26;}pre.rust .question-mark{color:#ff9011;}.example-wrap>pre.line-number{border-color:#4a4949;}a.test-arrow{background-color:rgba(78,139,202,0.2);}a.test-arrow:hover{background-color:#4e8bca;}.toggle-label,.code-attribute{color:#999;}:target{background-color:#494a3d;border-right:3px solid #bb7410;}pre.compile_fail{border-left:2px solid rgba(255,0,0,.8);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.8);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.8);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.8);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#0089ff;}.tooltip::after{background-color:#000;color:#fff;border-color:#000;}.tooltip::before{border-color:transparent black transparent transparent;}.notable-traits-tooltiptext{background-color:#111;border-color:#777;}.notable-traits-tooltiptext .notable{border-bottom-color:#d2d2d2;}#titles>button:not(.selected){background-color:#252525;border-top-color:#252525;}#titles>button:hover,#titles>button.selected{border-top-color:#0089ff;background-color:#353535;}#titles>button>div.count{color:#888;}@media (max-width:700px){.sidebar-menu{background-color:#505050;border-bottom-color:#e0e0e0;border-right-color:#e0e0e0;}.sidebar-elems{background-color:#505050;border-right-color:#000;}#sidebar-filler{background-color:#505050;border-bottom-color:#e0e0e0;}}kbd{color:#000;background-color:#fafbfc;border-color:#d1d5da;border-bottom-color:#c6cbd1;box-shadow:inset 0 -1px 0 #c6cbd1;}#theme-picker,#settings-menu,#help-button{border-color:#e0e0e0;background:#f0f0f0;color:#000;}#theme-picker:hover,#theme-picker:focus,#settings-menu:hover,#settings-menu:focus,#help-button:hover,#help-button:focus{border-color:#ffb900;}#copy-path{color:#999;}#copy-path>img{filter:invert(50%);}#copy-path:hover>img{filter:invert(65%);}#theme-choices{border-color:#e0e0e0;background-color:#353535;}#theme-choices>button:not(:first-child){border-top-color:#e0e0e0;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:#4e4e4e;}@media (max-width:700px){#theme-picker{background:#f0f0f0;}}.search-results .result-name span.alias{color:#fff;}.search-results .result-name span.grey{color:#ccc;}#sidebar-toggle{background-color:#565656;}#sidebar-toggle:hover{background-color:#676767;}#source-sidebar{background-color:#565656;}#source-sidebar>.title{border-bottom-color:#ccc;}div.files>a:hover,div.name:hover{background-color:#444;}div.files>.selected{background-color:#333;}.setting-line>.title{border-bottom-color:#ddd;}.scraped-example .example-wrap .rust span.highlight{background:rgb(91,59,1);}.scraped-example .example-wrap .rust span.highlight.focus{background:rgb(124,75,15);}.scraped-example:not(.expanded) .code-wrapper:before{background:linear-gradient(to bottom,rgba(53,53,53,1),rgba(53,53,53,0));}.scraped-example:not(.expanded) .code-wrapper:after{background:linear-gradient(to top,rgba(53,53,53,1),rgba(53,53,53,0));}.toggle-line-inner{background:#616161;}.toggle-line:hover .toggle-line-inner{background:#898989;} \ No newline at end of file diff --git a/docs/doc/down-arrow.svg b/docs/doc/down-arrow.svg deleted file mode 100644 index 35437e7..0000000 --- a/docs/doc/down-arrow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/doc/help.html b/docs/doc/help.html new file mode 100644 index 0000000..4753476 --- /dev/null +++ b/docs/doc/help.html @@ -0,0 +1 @@ +Rustdoc help

Rustdoc help

Back
\ No newline at end of file diff --git a/docs/doc/implementors/core/clone/trait.Clone.js b/docs/doc/implementors/core/clone/trait.Clone.js index c56b1a6..a7acfeb 100644 --- a/docs/doc/implementors/core/clone/trait.Clone.js +++ b/docs/doc/implementors/core/clone/trait.Clone.js @@ -1,3 +1,3 @@ -(function() {var implementors = {}; -implementors["ubits"] = [{"text":"impl Clone for ExampleFlags","synthetic":false,"types":["ubits::examples::full_example::ExampleFlags"]},{"text":"impl Clone for ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl Clone for ExampleField","synthetic":false,"types":["ubits::examples::flagless_example::ExampleField"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() {var implementors = { +"ubits":[["impl Clone for ExampleField"],["impl Clone for ExampleFlags"],["impl Clone for ExampleField"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/doc/implementors/core/cmp/trait.PartialEq.js b/docs/doc/implementors/core/cmp/trait.PartialEq.js index 1c14ce1..5c494f2 100644 --- a/docs/doc/implementors/core/cmp/trait.PartialEq.js +++ b/docs/doc/implementors/core/cmp/trait.PartialEq.js @@ -1,3 +1,3 @@ -(function() {var implementors = {}; -implementors["ubits"] = [{"text":"impl PartialEq<ExampleFlags> for ExampleFlags","synthetic":false,"types":["ubits::examples::full_example::ExampleFlags"]},{"text":"impl PartialEq<ExampleField> for ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl PartialEq<ExampleField> for ExampleField","synthetic":false,"types":["ubits::examples::flagless_example::ExampleField"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() {var implementors = { +"ubits":[["impl PartialEq<ExampleField> for ExampleField"],["impl PartialEq<ExampleField> for ExampleField"],["impl PartialEq<ExampleFlags> for ExampleFlags"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/doc/implementors/core/cmp/trait.PartialOrd.js b/docs/doc/implementors/core/cmp/trait.PartialOrd.js index 1fd1678..e2c789e 100644 --- a/docs/doc/implementors/core/cmp/trait.PartialOrd.js +++ b/docs/doc/implementors/core/cmp/trait.PartialOrd.js @@ -1,3 +1,3 @@ -(function() {var implementors = {}; -implementors["ubits"] = [{"text":"impl PartialOrd<ExampleFlags> for ExampleFlags","synthetic":false,"types":["ubits::examples::full_example::ExampleFlags"]},{"text":"impl PartialOrd<ExampleField> for ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl PartialOrd<ExampleField> for ExampleField","synthetic":false,"types":["ubits::examples::flagless_example::ExampleField"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() {var implementors = { +"ubits":[["impl PartialOrd<ExampleField> for ExampleField"],["impl PartialOrd<ExampleFlags> for ExampleFlags"],["impl PartialOrd<ExampleField> for ExampleField"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/doc/implementors/core/convert/trait.From.js b/docs/doc/implementors/core/convert/trait.From.js index 443804e..252f687 100644 --- a/docs/doc/implementors/core/convert/trait.From.js +++ b/docs/doc/implementors/core/convert/trait.From.js @@ -1,3 +1,3 @@ -(function() {var implementors = {}; -implementors["ubits"] = [{"text":"impl From<u8> for ExampleFlags","synthetic":false,"types":["ubits::examples::full_example::ExampleFlags"]},{"text":"impl From<ExampleFlags> for u8","synthetic":false,"types":[]},{"text":"impl From<u8> for ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl From<ExampleFlags> for ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl From<u8> for ExampleField","synthetic":false,"types":["ubits::examples::flagless_example::ExampleField"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() {var implementors = { +"ubits":[["impl From<u8> for ExampleField"],["impl From<ExampleFlags> for u8"],["impl From<ExampleFlags> for ExampleField"],["impl From<u8> for ExampleField"],["impl From<u8> for ExampleFlags"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/doc/implementors/core/default/trait.Default.js b/docs/doc/implementors/core/default/trait.Default.js index df23594..dda3520 100644 --- a/docs/doc/implementors/core/default/trait.Default.js +++ b/docs/doc/implementors/core/default/trait.Default.js @@ -1,3 +1,3 @@ -(function() {var implementors = {}; -implementors["ubits"] = [{"text":"impl Default for ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl Default for ExampleField","synthetic":false,"types":["ubits::examples::flagless_example::ExampleField"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() {var implementors = { +"ubits":[["impl Default for ExampleField"],["impl Default for ExampleField"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/doc/implementors/core/fmt/trait.Binary.js b/docs/doc/implementors/core/fmt/trait.Binary.js index 32b2168..e2b6435 100644 --- a/docs/doc/implementors/core/fmt/trait.Binary.js +++ b/docs/doc/implementors/core/fmt/trait.Binary.js @@ -1,3 +1,3 @@ -(function() {var implementors = {}; -implementors["ubits"] = [{"text":"impl Binary for ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl Binary for ExampleField","synthetic":false,"types":["ubits::examples::flagless_example::ExampleField"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() {var implementors = { +"ubits":[["impl Binary for ExampleField"],["impl Binary for ExampleField"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/doc/implementors/core/fmt/trait.Debug.js b/docs/doc/implementors/core/fmt/trait.Debug.js index 7ecf619..a11bbbe 100644 --- a/docs/doc/implementors/core/fmt/trait.Debug.js +++ b/docs/doc/implementors/core/fmt/trait.Debug.js @@ -1,3 +1,3 @@ -(function() {var implementors = {}; -implementors["ubits"] = [{"text":"impl Debug for ExampleFlags","synthetic":false,"types":["ubits::examples::full_example::ExampleFlags"]},{"text":"impl Debug for ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl Debug for ExampleField","synthetic":false,"types":["ubits::examples::flagless_example::ExampleField"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() {var implementors = { +"ubits":[["impl Debug for ExampleField"],["impl Debug for ExampleField"],["impl Debug for ExampleFlags"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/doc/implementors/core/marker/trait.Copy.js b/docs/doc/implementors/core/marker/trait.Copy.js index 715af76..5468c93 100644 --- a/docs/doc/implementors/core/marker/trait.Copy.js +++ b/docs/doc/implementors/core/marker/trait.Copy.js @@ -1,3 +1,3 @@ -(function() {var implementors = {}; -implementors["ubits"] = [{"text":"impl Copy for ExampleFlags","synthetic":false,"types":["ubits::examples::full_example::ExampleFlags"]},{"text":"impl Copy for ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl Copy for ExampleField","synthetic":false,"types":["ubits::examples::flagless_example::ExampleField"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() {var implementors = { +"ubits":[["impl Copy for ExampleField"],["impl Copy for ExampleField"],["impl Copy for ExampleFlags"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/doc/implementors/core/marker/trait.Freeze.js b/docs/doc/implementors/core/marker/trait.Freeze.js index 886be32..0a3b6c2 100644 --- a/docs/doc/implementors/core/marker/trait.Freeze.js +++ b/docs/doc/implementors/core/marker/trait.Freeze.js @@ -1,3 +1,3 @@ -(function() {var implementors = {}; -implementors["ubits"] = [{"text":"impl Freeze for ExampleFlags","synthetic":true,"types":["ubits::examples::full_example::ExampleFlags"]},{"text":"impl Freeze for ExampleField","synthetic":true,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl Freeze for ExampleField","synthetic":true,"types":["ubits::examples::flagless_example::ExampleField"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() {var implementors = { +"ubits":[["impl Freeze for ExampleFlags",1,["ubits::examples::full_example::ExampleFlags"]],["impl Freeze for ExampleField",1,["ubits::examples::full_example::ExampleField"]],["impl Freeze for ExampleField",1,["ubits::examples::flagless_example::ExampleField"]]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/doc/implementors/core/marker/trait.Send.js b/docs/doc/implementors/core/marker/trait.Send.js index 91695d6..a0f9de0 100644 --- a/docs/doc/implementors/core/marker/trait.Send.js +++ b/docs/doc/implementors/core/marker/trait.Send.js @@ -1,3 +1,3 @@ -(function() {var implementors = {}; -implementors["ubits"] = [{"text":"impl Send for ExampleFlags","synthetic":true,"types":["ubits::examples::full_example::ExampleFlags"]},{"text":"impl Send for ExampleField","synthetic":true,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl Send for ExampleField","synthetic":true,"types":["ubits::examples::flagless_example::ExampleField"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() {var implementors = { +"ubits":[["impl Send for ExampleFlags",1,["ubits::examples::full_example::ExampleFlags"]],["impl Send for ExampleField",1,["ubits::examples::full_example::ExampleField"]],["impl Send for ExampleField",1,["ubits::examples::flagless_example::ExampleField"]]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/doc/implementors/core/marker/trait.StructuralPartialEq.js b/docs/doc/implementors/core/marker/trait.StructuralPartialEq.js index a61fb17..636e11d 100644 --- a/docs/doc/implementors/core/marker/trait.StructuralPartialEq.js +++ b/docs/doc/implementors/core/marker/trait.StructuralPartialEq.js @@ -1,3 +1,3 @@ -(function() {var implementors = {}; -implementors["ubits"] = [{"text":"impl StructuralPartialEq for ExampleFlags","synthetic":false,"types":["ubits::examples::full_example::ExampleFlags"]},{"text":"impl StructuralPartialEq for ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl StructuralPartialEq for ExampleField","synthetic":false,"types":["ubits::examples::flagless_example::ExampleField"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() {var implementors = { +"ubits":[["impl StructuralPartialEq for ExampleField"],["impl StructuralPartialEq for ExampleFlags"],["impl StructuralPartialEq for ExampleField"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/doc/implementors/core/marker/trait.Sync.js b/docs/doc/implementors/core/marker/trait.Sync.js index 01f6552..2848a7d 100644 --- a/docs/doc/implementors/core/marker/trait.Sync.js +++ b/docs/doc/implementors/core/marker/trait.Sync.js @@ -1,3 +1,3 @@ -(function() {var implementors = {}; -implementors["ubits"] = [{"text":"impl Sync for ExampleFlags","synthetic":true,"types":["ubits::examples::full_example::ExampleFlags"]},{"text":"impl Sync for ExampleField","synthetic":true,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl Sync for ExampleField","synthetic":true,"types":["ubits::examples::flagless_example::ExampleField"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() {var implementors = { +"ubits":[["impl Sync for ExampleFlags",1,["ubits::examples::full_example::ExampleFlags"]],["impl Sync for ExampleField",1,["ubits::examples::full_example::ExampleField"]],["impl Sync for ExampleField",1,["ubits::examples::flagless_example::ExampleField"]]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/doc/implementors/core/marker/trait.Unpin.js b/docs/doc/implementors/core/marker/trait.Unpin.js index a9f3542..d2b6204 100644 --- a/docs/doc/implementors/core/marker/trait.Unpin.js +++ b/docs/doc/implementors/core/marker/trait.Unpin.js @@ -1,3 +1,3 @@ -(function() {var implementors = {}; -implementors["ubits"] = [{"text":"impl Unpin for ExampleFlags","synthetic":true,"types":["ubits::examples::full_example::ExampleFlags"]},{"text":"impl Unpin for ExampleField","synthetic":true,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl Unpin for ExampleField","synthetic":true,"types":["ubits::examples::flagless_example::ExampleField"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() {var implementors = { +"ubits":[["impl Unpin for ExampleFlags",1,["ubits::examples::full_example::ExampleFlags"]],["impl Unpin for ExampleField",1,["ubits::examples::full_example::ExampleField"]],["impl Unpin for ExampleField",1,["ubits::examples::flagless_example::ExampleField"]]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/doc/implementors/core/ops/bit/trait.BitAnd.js b/docs/doc/implementors/core/ops/bit/trait.BitAnd.js index 2d5b2dd..01abf4e 100644 --- a/docs/doc/implementors/core/ops/bit/trait.BitAnd.js +++ b/docs/doc/implementors/core/ops/bit/trait.BitAnd.js @@ -1,3 +1,3 @@ -(function() {var implementors = {}; -implementors["ubits"] = [{"text":"impl BitAnd<ExampleFlags> for ExampleFlags","synthetic":false,"types":["ubits::examples::full_example::ExampleFlags"]},{"text":"impl BitAnd<ExampleField> for ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl BitAnd<ExampleFlags> for ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl BitAnd<ExampleFlags> for &ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl BitAnd<ExampleFlags> for &mut ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl BitAnd<ExampleField> for ExampleField","synthetic":false,"types":["ubits::examples::flagless_example::ExampleField"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() {var implementors = { +"ubits":[["impl BitAnd<ExampleFlags> for &mut ExampleField"],["impl BitAnd<ExampleField> for ExampleField"],["impl BitAnd<ExampleField> for ExampleField"],["impl BitAnd<ExampleFlags> for ExampleFlags"],["impl BitAnd<ExampleFlags> for &ExampleField"],["impl BitAnd<ExampleFlags> for ExampleField"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/doc/implementors/core/ops/bit/trait.BitAndAssign.js b/docs/doc/implementors/core/ops/bit/trait.BitAndAssign.js index 5b0502f..0209038 100644 --- a/docs/doc/implementors/core/ops/bit/trait.BitAndAssign.js +++ b/docs/doc/implementors/core/ops/bit/trait.BitAndAssign.js @@ -1,3 +1,3 @@ -(function() {var implementors = {}; -implementors["ubits"] = [{"text":"impl BitAndAssign<ExampleField> for ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl BitAndAssign<ExampleFlags> for ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl BitAndAssign<ExampleField> for ExampleField","synthetic":false,"types":["ubits::examples::flagless_example::ExampleField"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() {var implementors = { +"ubits":[["impl BitAndAssign<ExampleField> for ExampleField"],["impl BitAndAssign<ExampleField> for ExampleField"],["impl BitAndAssign<ExampleFlags> for ExampleField"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/doc/implementors/core/ops/bit/trait.BitOr.js b/docs/doc/implementors/core/ops/bit/trait.BitOr.js index 2b50dd0..3e29081 100644 --- a/docs/doc/implementors/core/ops/bit/trait.BitOr.js +++ b/docs/doc/implementors/core/ops/bit/trait.BitOr.js @@ -1,3 +1,3 @@ -(function() {var implementors = {}; -implementors["ubits"] = [{"text":"impl BitOr<ExampleFlags> for ExampleFlags","synthetic":false,"types":["ubits::examples::full_example::ExampleFlags"]},{"text":"impl BitOr<ExampleField> for ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl BitOr<ExampleFlags> for ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl BitOr<ExampleFlags> for &ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl BitOr<ExampleFlags> for &mut ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl BitOr<ExampleField> for ExampleField","synthetic":false,"types":["ubits::examples::flagless_example::ExampleField"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() {var implementors = { +"ubits":[["impl BitOr<ExampleFlags> for &mut ExampleField"],["impl BitOr<ExampleFlags> for ExampleField"],["impl BitOr<ExampleField> for ExampleField"],["impl BitOr<ExampleField> for ExampleField"],["impl BitOr<ExampleFlags> for ExampleFlags"],["impl BitOr<ExampleFlags> for &ExampleField"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/doc/implementors/core/ops/bit/trait.BitOrAssign.js b/docs/doc/implementors/core/ops/bit/trait.BitOrAssign.js index ecf4773..0e9b24d 100644 --- a/docs/doc/implementors/core/ops/bit/trait.BitOrAssign.js +++ b/docs/doc/implementors/core/ops/bit/trait.BitOrAssign.js @@ -1,3 +1,3 @@ -(function() {var implementors = {}; -implementors["ubits"] = [{"text":"impl BitOrAssign<ExampleField> for ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl BitOrAssign<ExampleFlags> for ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl BitOrAssign<ExampleField> for ExampleField","synthetic":false,"types":["ubits::examples::flagless_example::ExampleField"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() {var implementors = { +"ubits":[["impl BitOrAssign<ExampleField> for ExampleField"],["impl BitOrAssign<ExampleFlags> for ExampleField"],["impl BitOrAssign<ExampleField> for ExampleField"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/doc/implementors/core/ops/bit/trait.BitXor.js b/docs/doc/implementors/core/ops/bit/trait.BitXor.js index 4507096..408a620 100644 --- a/docs/doc/implementors/core/ops/bit/trait.BitXor.js +++ b/docs/doc/implementors/core/ops/bit/trait.BitXor.js @@ -1,3 +1,3 @@ -(function() {var implementors = {}; -implementors["ubits"] = [{"text":"impl BitXor<ExampleFlags> for ExampleFlags","synthetic":false,"types":["ubits::examples::full_example::ExampleFlags"]},{"text":"impl BitXor<ExampleField> for ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl BitXor<ExampleFlags> for ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl BitXor<ExampleFlags> for &ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl BitXor<ExampleFlags> for &mut ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl BitXor<ExampleField> for ExampleField","synthetic":false,"types":["ubits::examples::flagless_example::ExampleField"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() {var implementors = { +"ubits":[["impl BitXor<ExampleFlags> for &mut ExampleField"],["impl BitXor<ExampleFlags> for ExampleFlags"],["impl BitXor<ExampleField> for ExampleField"],["impl BitXor<ExampleField> for ExampleField"],["impl BitXor<ExampleFlags> for &ExampleField"],["impl BitXor<ExampleFlags> for ExampleField"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/doc/implementors/core/ops/bit/trait.BitXorAssign.js b/docs/doc/implementors/core/ops/bit/trait.BitXorAssign.js index 3872ad5..583bd34 100644 --- a/docs/doc/implementors/core/ops/bit/trait.BitXorAssign.js +++ b/docs/doc/implementors/core/ops/bit/trait.BitXorAssign.js @@ -1,3 +1,3 @@ -(function() {var implementors = {}; -implementors["ubits"] = [{"text":"impl BitXorAssign<ExampleField> for ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl BitXorAssign<ExampleFlags> for ExampleField","synthetic":false,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl BitXorAssign<ExampleField> for ExampleField","synthetic":false,"types":["ubits::examples::flagless_example::ExampleField"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() {var implementors = { +"ubits":[["impl BitXorAssign<ExampleField> for ExampleField"],["impl BitXorAssign<ExampleField> for ExampleField"],["impl BitXorAssign<ExampleFlags> for ExampleField"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/doc/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js b/docs/doc/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js index 85dac6e..c74187a 100644 --- a/docs/doc/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/docs/doc/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -1,3 +1,3 @@ -(function() {var implementors = {}; -implementors["ubits"] = [{"text":"impl RefUnwindSafe for ExampleFlags","synthetic":true,"types":["ubits::examples::full_example::ExampleFlags"]},{"text":"impl RefUnwindSafe for ExampleField","synthetic":true,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl RefUnwindSafe for ExampleField","synthetic":true,"types":["ubits::examples::flagless_example::ExampleField"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() {var implementors = { +"ubits":[["impl RefUnwindSafe for ExampleFlags",1,["ubits::examples::full_example::ExampleFlags"]],["impl RefUnwindSafe for ExampleField",1,["ubits::examples::full_example::ExampleField"]],["impl RefUnwindSafe for ExampleField",1,["ubits::examples::flagless_example::ExampleField"]]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/doc/implementors/core/panic/unwind_safe/trait.UnwindSafe.js b/docs/doc/implementors/core/panic/unwind_safe/trait.UnwindSafe.js index 429c852..f8455b1 100644 --- a/docs/doc/implementors/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/docs/doc/implementors/core/panic/unwind_safe/trait.UnwindSafe.js @@ -1,3 +1,3 @@ -(function() {var implementors = {}; -implementors["ubits"] = [{"text":"impl UnwindSafe for ExampleFlags","synthetic":true,"types":["ubits::examples::full_example::ExampleFlags"]},{"text":"impl UnwindSafe for ExampleField","synthetic":true,"types":["ubits::examples::full_example::ExampleField"]},{"text":"impl UnwindSafe for ExampleField","synthetic":true,"types":["ubits::examples::flagless_example::ExampleField"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() {var implementors = { +"ubits":[["impl UnwindSafe for ExampleFlags",1,["ubits::examples::full_example::ExampleFlags"]],["impl UnwindSafe for ExampleField",1,["ubits::examples::full_example::ExampleField"]],["impl UnwindSafe for ExampleField",1,["ubits::examples::flagless_example::ExampleField"]]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/doc/implementors/safe_transmute/trivial/trait.TriviallyTransmutable.js b/docs/doc/implementors/safe_transmute/trivial/trait.TriviallyTransmutable.js index d300402..1c1f0d9 100644 --- a/docs/doc/implementors/safe_transmute/trivial/trait.TriviallyTransmutable.js +++ b/docs/doc/implementors/safe_transmute/trivial/trait.TriviallyTransmutable.js @@ -1,3 +1,3 @@ -(function() {var implementors = {}; -implementors["ubits"] = [{"text":"impl TriviallyTransmutable for ExampleFlags","synthetic":false,"types":["ubits::examples::full_example::ExampleFlags"]}]; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file +(function() {var implementors = { +"ubits":[["impl TriviallyTransmutable for ExampleFlags"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/doc/light.css b/docs/doc/light.css deleted file mode 100644 index 289f10c..0000000 --- a/docs/doc/light.css +++ /dev/null @@ -1 +0,0 @@ - body{background-color:white;color:black;}h1,h2,h3,h4{color:black;}h1.fqn{border-bottom-color:#DDDDDD;}h2,h3,h4{border-bottom-color:#DDDDDD;}.in-band{background-color:white;}.invisible{background:rgba(0,0,0,0);}.docblock code,.docblock-short code{background-color:#F5F5F5;}pre,.rustdoc.source .example-wrap{background-color:#F5F5F5;}.sidebar,.mobile-topbar,.sidebar-menu-toggle{background-color:#F5F5F5;}*{scrollbar-color:rgba(36,37,39,0.6) #e6e6e6;}.sidebar{scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;}.rust-logo{}::-webkit-scrollbar-track{background-color:#ecebeb;}::-webkit-scrollbar-thumb{background-color:rgba(36,37,39,0.6);}.sidebar::-webkit-scrollbar-track{background-color:#dcdcdc;}.sidebar::-webkit-scrollbar-thumb{background-color:rgba(36,37,39,0.6);}.sidebar .current,.sidebar a:hover{background-color:#fff;}.source .sidebar{background-color:#f1f1f1;}.line-numbers span{color:#c67e2d;}.line-numbers .line-highlighted{background-color:#FDFFD3 !important;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5,.docblock h6{border-bottom-color:#ddd;}.docblock table td,.docblock table th{border-color:#ddd;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#4E4C4C;}.search-results a:hover{background-color:#ddd;}.search-results a:focus{color:#000 !important;background-color:#ccc;}.search-results a:focus span{color:#000 !important;}a.result-trait:focus{background-color:#c7b6ff;}a.result-traitalias:focus{background-color:#c7b6ff;}a.result-mod:focus,a.result-externcrate:focus{background-color:#afc6e4;}a.result-enum:focus{background-color:#e7b1a0;}a.result-struct:focus{background-color:#e7b1a0;}a.result-union:focus{background-color:#e7b1a0;}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{background-color:#c6afb3;}a.result-type:focus{background-color:#e7b1a0;}a.result-associatedtype:focus{background-color:#afc6e4;}a.result-foreigntype:focus{background-color:#e7b1a0;}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{background-color:#8ce488;}a.result-constant:focus,a.result-static:focus{background-color:#afc6e4;}a.result-primitive:focus{background-color:#e7b1a0;}a.result-keyword:focus{background-color:#afc6e4;}.content .item-info::before{color:#ccc;}.content span.enum,.content a.enum,.block a.current.enum{color:#AD378A;}.content span.struct,.content a.struct,.block a.current.struct{color:#AD378A;}.content span.type,.content a.type,.block a.current.type{color:#AD378A;}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{color:#3873AD;}.content span.associatedtype,.content a.associatedtype,.block a.current.associatedtype{color:#3873AD;}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{color:#068000;}.content span.union,.content a.union,.block a.current.union{color:#AD378A;}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{color:#3873AD;}.content span.primitive,.content a.primitive,.block a.current.primitive{color:#AD378A;}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{color:#3873AD;}.content span.trait,.content a.trait,.block a.current.trait{color:#6E4FC9;}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{color:#5137AD;}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{color:#AD7C37;}.content span.keyword,.content a.keyword,.block a.current.keyword{color:#3873AD;}.sidebar a{color:#356da4;}.sidebar a.current.enum{color:#a63283;}.sidebar a.current.struct{color:#a63283;}.sidebar a.current.type{color:#a63283;}.sidebar a.current.associatedtype{color:#356da4;}.sidebar a.current.foreigntype{color:#356da4;}.sidebar a.current.attr,.sidebar a.current.derive,.sidebar a.current.macro{color:#067901;}.sidebar a.current.union{color:#a63283;}.sidebar a.current.constant .sidebar a.current.static{color:#356da4;}.sidebar a.current.primitive{color:#a63283;}.sidebar a.current.externcrate .sidebar a.current.mod{color:#356da4;}.sidebar a.current.trait{color:#6849c3;}.sidebar a.current.traitalias{color:#4b349e;}.sidebar a.current.fn,.sidebar a.current.method,.sidebar a.current.tymethod{color:#a67736;}.sidebar a.current.keyword{color:#356da4;}nav.main .current{border-top-color:#000;border-bottom-color:#000;}nav.main .separator{border:1px solid #000;}a{color:#3873AD;}a#toggle-all-docs,a.anchor,.small-section-header a,#source-sidebar a,pre.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,.in-band a{color:#000;}.search-results a{color:initial;}a.test-arrow{color:#f5f5f5;}body.source .example-wrap pre.rust a{background:#eee;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before,details.undocumented>summary::before{color:#999;}#crate-search,.search-input{color:#555;background-color:white;border-color:#e0e0e0;}.search-input:focus{border-color:#66afe9;}.module-item .stab,.import-item .stab{color:#000;}.stab.unstable{background:#FFF5D6;border-color:#FFC600;}.stab.deprecated{background:#ffc4c4;border-color:#db7b7b;}.stab.portability{background:#F3DFFF;border-color:#b07bdb;}.stab.portability>code{background:none;}#help>div{background:#e9e9e9;border-color:#bfbfbf;}#help span.bottom,#help span.top{border-color:#bfbfbf;}.rightside,.out-of-band{color:grey;}.result-name .primitive>i,.result-name .keyword>i{color:black;}.line-numbers :target{background-color:transparent;}pre.rust .kw{color:#8959A8;}pre.rust .kw-2,pre.rust .prelude-ty{color:#4271AE;}pre.rust .number,pre.rust .string{color:#718C00;}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{color:#C82829;}pre.rust .comment{color:#8E908C;}pre.rust .doccomment{color:#4D4D4C;}pre.rust .macro,pre.rust .macro-nonterminal{color:#3E999F;}pre.rust .lifetime{color:#B76514;}pre.rust .question-mark{color:#ff9011;}.example-wrap>pre.line-number{border-color:#c7c7c7;}a.test-arrow{background-color:rgb(78,139,202,0.2);}a.test-arrow:hover{background-color:#4e8bca;}.toggle-label,.code-attribute{color:#999;}:target{background:#FDFFD3;border-right:3px solid #AD7C37;}pre.compile_fail{border-left:2px solid rgba(255,0,0,.5);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.5);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.5);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.5);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#3873AD;}.tooltip::after{background-color:#000;color:#fff;}.tooltip::before{border-color:transparent black transparent transparent;}.notable-traits-tooltiptext{background-color:#eee;border-color:#999;}.notable-traits-tooltiptext .notable{border-bottom-color:#DDDDDD;}#titles>button:not(.selected){background-color:#e6e6e6;border-top-color:#e6e6e6;}#titles>button:hover,#titles>button.selected{background-color:#ffffff;border-top-color:#0089ff;}#titles>button>div.count{color:#888;}@media (max-width:700px){.sidebar-menu{background-color:#F5F5F5;border-bottom-color:#e0e0e0;border-right-color:#e0e0e0;}.sidebar-elems{background-color:#F5F5F5;border-right-color:#000;}#sidebar-filler{background-color:#F5F5F5;border-bottom-color:#e0e0e0;}}kbd{color:#000;background-color:#fafbfc;border-color:#d1d5da;border-bottom-color:#c6cbd1;box-shadow:inset 0 -1px 0 #c6cbd1;}#theme-picker,#settings-menu,#help-button{border-color:#e0e0e0;background-color:#fff;}#theme-picker:hover,#theme-picker:focus,#settings-menu:hover,#settings-menu:focus,#help-button:hover,#help-button:focus{border-color:#717171;}#copy-path{color:#999;}#copy-path>img{filter:invert(50%);}#copy-path:hover>img{filter:invert(35%);}#theme-choices{border-color:#ccc;background-color:#fff;}#theme-choices>button:not(:first-child){border-top-color:#e0e0e0;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:#eee;}@media (max-width:700px){#theme-picker{background:#fff;}}.search-results .result-name span.alias{color:#000;}.search-results .result-name span.grey{color:#999;}#sidebar-toggle{background-color:#F5F5F5;}#sidebar-toggle:hover{background-color:#E0E0E0;}#source-sidebar{background-color:#F5F5F5;}#source-sidebar>.title{border-bottom-color:#ccc;}div.files>a:hover,div.name:hover{background-color:#E0E0E0;}div.files>.selected{background-color:#fff;}.setting-line>.title{border-bottom-color:#D5D5D5;} \ No newline at end of file diff --git a/docs/doc/main.js b/docs/doc/main.js deleted file mode 100644 index 44f37e5..0000000 --- a/docs/doc/main.js +++ /dev/null @@ -1,8 +0,0 @@ -if(!String.prototype.startsWith){String.prototype.startsWith=function(searchString,position){position=position||0;return this.indexOf(searchString,position)===position}}if(!String.prototype.endsWith){String.prototype.endsWith=function(suffix,length){var l=length||this.length;return this.indexOf(suffix,l-suffix.length)!==-1}}if(!DOMTokenList.prototype.add){DOMTokenList.prototype.add=function(className){if(className&&!hasClass(this,className)){if(this.className&&this.className.length>0){this.className+=" "+className}else{this.className=className}}}}if(!DOMTokenList.prototype.remove){DOMTokenList.prototype.remove=function(className){if(className&&this.className){this.className=(" "+this.className+" ").replace(" "+className+" "," ").trim()}}}function getVar(name){var el=document.getElementById("rustdoc-vars");if(el){return el.attributes["data-"+name].value}else{return null}}function resourcePath(basename,extension){return getVar("root-path")+basename+getVar("resource-suffix")+extension}(function(){window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate");window.searchJS=resourcePath("search",".js");window.searchIndexJS=resourcePath("search-index",".js");var sidebarVars=document.getElementById("sidebar-vars");if(sidebarVars){window.sidebarCurrent={name:sidebarVars.attributes["data-name"].value,ty:sidebarVars.attributes["data-ty"].value,relpath:sidebarVars.attributes["data-relpath"].value,};var mobileLocationTitle=document.querySelector(".mobile-topbar h2.location");var locationTitle=document.querySelector(".sidebar h2.location");if(mobileLocationTitle&&locationTitle){mobileLocationTitle.innerHTML=locationTitle.innerHTML}}}());function getVirtualKey(ev){if("key"in ev&&typeof ev.key!="undefined"){return ev.key}var c=ev.charCode||ev.keyCode;if(c==27){return"Escape"}return String.fromCharCode(c)}var THEME_PICKER_ELEMENT_ID="theme-picker";var THEMES_ELEMENT_ID="theme-choices";var MAIN_ID="main-content";function getThemesElement(){return document.getElementById(THEMES_ELEMENT_ID)}function getThemePickerElement(){return document.getElementById(THEME_PICKER_ELEMENT_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function showThemeButtonState(){var themePicker=getThemePickerElement();var themeChoices=getThemesElement();themeChoices.style.display="block";themePicker.style.borderBottomRightRadius="0";themePicker.style.borderBottomLeftRadius="0"}function hideThemeButtonState(){var themePicker=getThemePickerElement();var themeChoices=getThemesElement();themeChoices.style.display="none";themePicker.style.borderBottomRightRadius="3px";themePicker.style.borderBottomLeftRadius="3px"}(function(){if(!document.location.href.startsWith("file:///")){return}var themeChoices=getThemesElement();var themePicker=getThemePickerElement();var availableThemes=getVar("themes").split(",");removeClass(themeChoices.parentElement,"hidden");function switchThemeButtonState(){if(themeChoices.style.display==="block"){hideThemeButtonState()}else{showThemeButtonState()}}function handleThemeButtonsBlur(e){var active=document.activeElement;var related=e.relatedTarget;if(active.id!==THEME_PICKER_ELEMENT_ID&&(!active.parentNode||active.parentNode.id!==THEMES_ELEMENT_ID)&&(!related||(related.id!==THEME_PICKER_ELEMENT_ID&&(!related.parentNode||related.parentNode.id!==THEMES_ELEMENT_ID)))){hideThemeButtonState()}}themePicker.onclick=switchThemeButtonState;themePicker.onblur=handleThemeButtonsBlur;availableThemes.forEach(function(item){var but=document.createElement("button");but.textContent=item;but.onclick=function(){switchTheme(window.currentTheme,window.mainTheme,item,true);useSystemTheme(false)};but.onblur=handleThemeButtonsBlur;themeChoices.appendChild(but)})}());(function(){"use strict";window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:function(){return document.getElementById("search")},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:function(){if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},focus:function(){searchState.input.focus()},defocus:function(){searchState.input.blur()},showResults:function(search){if(search===null||typeof search==='undefined'){search=searchState.outputElement()}addClass(main,"hidden");removeClass(search,"hidden");searchState.mouseMovedAfterSearch=false;document.title=searchState.title},hideResults:function(search){if(search===null||typeof search==='undefined'){search=searchState.outputElement()}addClass(search,"hidden");removeClass(main,"hidden");document.title=searchState.titleBeforeSearch;if(searchState.browserSupportsHistoryApi()){history.replaceState(null,window.currentCrate+" - Rust",getNakedUrl()+window.location.hash)}},getQueryStringParams:function(){var params={};window.location.search.substring(1).split("&").map(function(s){var pair=s.split("=");params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},browserSupportsHistoryApi:function(){return window.history&&typeof window.history.pushState==="function"},setup:function(){var search_input=searchState.input;if(!searchState.input){return}function loadScript(url){var script=document.createElement('script');script.src=url;document.head.append(script)}var searchLoaded=false;function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(window.searchJS);loadScript(window.searchIndexJS)}}search_input.addEventListener("focus",function(){search_input.origPlaceholder=search_input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});if(search_input.value!=''){loadSearch()}var params=searchState.getQueryStringParams();if(params.search!==undefined){var search=searchState.outputElement();search.innerHTML="

"+searchState.loadingText+"

";searchState.showResults(search);loadSearch()}},};function getPageId(){if(window.location.hash){var tmp=window.location.hash.replace(/^#/,"");if(tmp.length>0){return tmp}}return null}var toggleAllDocsId="toggle-all-docs";var main=document.getElementById(MAIN_ID);var savedHash="";function handleHashes(ev){var elem;var search=searchState.outputElement();if(ev!==null&&search&&!hasClass(search,"hidden")&&ev.newURL){searchState.hideResults(search);var hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(searchState.browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.search+"#"+hash)}elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}if(savedHash!==window.location.hash){savedHash=window.location.hash;if(savedHash.length===0){return}expandSection(savedHash.slice(1))}}function onHashChange(ev){var sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown");handleHashes(ev)}function openParentDetails(elem){while(elem){if(elem.tagName==="DETAILS"){elem.open=true}elem=elem.parentNode}}function expandSection(id){openParentDetails(document.getElementById(id))}function getHelpElement(build){if(build){buildHelperPopup()}return document.getElementById("help")}function displayHelp(display,ev,help){if(display){help=help?help:getHelpElement(true);if(hasClass(help,"hidden")){ev.preventDefault();removeClass(help,"hidden");addClass(document.body,"blur")}}else{help=help?help:getHelpElement(false);if(help&&!hasClass(help,"hidden")){ev.preventDefault();addClass(help,"hidden");removeClass(document.body,"blur")}}}function handleEscape(ev){var help=getHelpElement(false);var search=searchState.outputElement();if(help&&!hasClass(help,"hidden")){displayHelp(false,ev,help)}else if(search&&!hasClass(search,"hidden")){searchState.clearInputTimeout();ev.preventDefault();searchState.hideResults(search)}searchState.defocus();hideThemeButtonState()}var disableShortcuts=getSettingValue("disable-shortcuts")==="true";function handleShortcut(ev){if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts){return}if(document.activeElement.tagName==="INPUT"){switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break}}else{switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;case"s":case"S":displayHelp(false,ev);ev.preventDefault();searchState.focus();break;case"+":case"-":ev.preventDefault();toggleAllDocs();break;case"?":displayHelp(true,ev);break;case"t":case"T":displayHelp(false,ev);ev.preventDefault();var themePicker=getThemePickerElement();themePicker.click();themePicker.focus();break;default:if(getThemePickerElement().parentNode.contains(ev.target)){handleThemeKeyDown(ev)}}}}function handleThemeKeyDown(ev){var active=document.activeElement;var themes=getThemesElement();switch(getVirtualKey(ev)){case"ArrowUp":ev.preventDefault();if(active.previousElementSibling&&ev.target.id!==THEME_PICKER_ELEMENT_ID){active.previousElementSibling.focus()}else{showThemeButtonState();themes.lastElementChild.focus()}break;case"ArrowDown":ev.preventDefault();if(active.nextElementSibling&&ev.target.id!==THEME_PICKER_ELEMENT_ID){active.nextElementSibling.focus()}else{showThemeButtonState();themes.firstElementChild.focus()}break;case"Enter":case"Return":case"Space":if(ev.target.id===THEME_PICKER_ELEMENT_ID&&themes.style.display==="none"){ev.preventDefault();showThemeButtonState();themes.firstElementChild.focus()}break;case"Home":ev.preventDefault();themes.firstElementChild.focus();break;case"End":ev.preventDefault();themes.lastElementChild.focus();break}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);(function(){var x=document.getElementsByClassName("version-selector");if(x.length>0){x[0].onchange=function(){var i,match,url=document.location.href,stripped="",len=window.rootPath.match(/\.\.\//g).length+1;for(i=0;i${longty}`;div.appendChild(h3);var ul=document.createElement("ul");for(var i=0,len=filtered.length;i .in-band > .trait").textContent;var baseIdName="impl-"+traitName+"-";var libs=Object.getOwnPropertyNames(imp);for(var i=0,llength=libs.length;i summary:not(.hideme)"),function(el){el.addEventListener("click",function(e){if(e.target.tagName!="SUMMARY"&&e.target.tagName!="A"){e.preventDefault()}})});onEachLazy(document.getElementsByClassName("notable-traits"),function(e){e.onclick=function(){this.getElementsByClassName('notable-traits-tooltiptext')[0].classList.toggle("force-tooltip")}});var sidebar_menu_toggle=document.getElementsByClassName("sidebar-menu-toggle")[0];if(sidebar_menu_toggle){sidebar_menu_toggle.addEventListener("click",function(){var sidebar=document.getElementsByClassName("sidebar")[0];if(!hasClass(sidebar,"shown")){addClass(sidebar,"shown")}else{removeClass(sidebar,"shown")}})}var buildHelperPopup=function(){var popup=document.createElement("aside");addClass(popup,"hidden");popup.id="help";popup.addEventListener("click",function(ev){if(ev.target===popup){displayHelp(false,ev)}});var book_info=document.createElement("span");book_info.className="top";book_info.innerHTML="You can find more information in \ - the rustdoc book.";var container=document.createElement("div");var shortcuts=[["?","Show this help dialog"],["S","Focus the search field"],["T","Focus the theme picker menu"],["↑","Move up in search results"],["↓","Move down in search results"],["← / →","Switch result tab (when results focused)"],["⏎","Go to active search result"],["+","Expand all sections"],["-","Collapse all sections"],].map(function(x){return"
"+x[0].split(" ").map(function(y,index){return(index&1)===0?""+y+"":" "+y+" "}).join("")+"
"+x[1]+"
"}).join("");var div_shortcuts=document.createElement("div");addClass(div_shortcuts,"shortcuts");div_shortcuts.innerHTML="

Keyboard Shortcuts

"+shortcuts+"
";var infos=["Prefix searches with a type followed by a colon (e.g., fn:) to \ - restrict the search to a given item kind.","Accepted kinds are: fn, mod, struct, \ - enum, trait, type, macro, \ - and const.","Search functions by type signature (e.g., vec -> usize or \ - * -> vec)","Search multiple things at once by splitting your query with comma (e.g., \ - str,u8 or String,struct:Vec,test)","You can look for items with an exact name by putting double quotes around \ - your request: \"string\"","Look for items inside another one by searching for a path: vec::Vec",].map(function(x){return"

"+x+"

"}).join("");var div_infos=document.createElement("div");addClass(div_infos,"infos");div_infos.innerHTML="

Search Tricks

"+infos;container.appendChild(book_info);container.appendChild(div_shortcuts);container.appendChild(div_infos);var rustdoc_version=document.createElement("span");rustdoc_version.className="bottom";var rustdoc_version_code=document.createElement("code");rustdoc_version_code.innerText="rustdoc "+getVar("rustdoc-version");rustdoc_version.appendChild(rustdoc_version_code);container.appendChild(rustdoc_version);popup.appendChild(container);insertAfter(popup,document.querySelector("main"));buildHelperPopup=function(){}};onHashChange(null);window.addEventListener("hashchange",onHashChange);searchState.setup()}());(function(){var reset_button_timeout=null;window.copy_path=function(but){var parent=but.parentElement;var path=[];onEach(parent.childNodes,function(child){if(child.tagName==='A'){path.push(child.textContent)}});var el=document.createElement('textarea');el.value=path.join('::');el.setAttribute('readonly','');el.style.position='absolute';el.style.left='-9999px';document.body.appendChild(el);el.select();document.execCommand('copy');document.body.removeChild(el);but.children[0].style.display='none';var tmp;if(but.childNodes.length<2){tmp=document.createTextNode('✓');but.appendChild(tmp)}else{onEachLazy(but.childNodes,function(e){if(e.nodeType===Node.TEXT_NODE){tmp=e;return true}});tmp.textContent='✓'}if(reset_button_timeout!==null){window.clearTimeout(reset_button_timeout)}function reset_button(){tmp.textContent='';reset_button_timeout=null;but.children[0].style.display=""}reset_button_timeout=window.setTimeout(reset_button,1000)}}()) \ No newline at end of file diff --git a/docs/doc/noscript.css b/docs/doc/noscript.css deleted file mode 100644 index 8ad8864..0000000 --- a/docs/doc/noscript.css +++ /dev/null @@ -1 +0,0 @@ - #main-content .attributes{margin-left:0 !important;}#copy-path{display:none;}.sub{display:none;}#theme-picker{display:none;} \ No newline at end of file diff --git a/docs/doc/rustdoc.css b/docs/doc/rustdoc.css deleted file mode 100644 index 07de4cb..0000000 --- a/docs/doc/rustdoc.css +++ /dev/null @@ -1 +0,0 @@ - @font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular.woff2") format("woff2"),url("FiraSans-Regular.woff") format('woff');font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium.woff2") format("woff2"),url("FiraSans-Medium.woff") format('woff');font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular.ttf.woff2") format("woff2"),url("SourceSerif4-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It.ttf.woff2") format("woff2"),url("SourceSerif4-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold.ttf.woff2") format("woff2"),url("SourceSerif4-Bold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular.ttf.woff2") format("woff2"),url("SourceCodePro-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It.ttf.woff2") format("woff2"),url("SourceCodePro-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold.ttf.woff2") format("woff2"),url("SourceCodePro-Semibold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic.ttf.woff2") format("woff2"),url("NanumBarunGothic.ttf.woff") format("woff");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}html{content:"";}@media (prefers-color-scheme:light){html{content:"light";}}@media (prefers-color-scheme:dark){html{content:"dark";}}body{font:1rem/1.5 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;-webkit-font-feature-settings:"kern","liga";-moz-font-feature-settings:"kern","liga";font-feature-settings:"kern","liga";}h1{font-size:1.5rem;}h2{font-size:1.375rem;}h3{font-size:1.25rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:20px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}h1.fqn{margin:0;padding:0;}.main-heading{display:flex;flex-wrap:wrap;justify-content:space-between;padding-bottom:6px;margin-bottom:15px;}.main-heading a:hover{text-decoration:underline;}#toggle-all-docs{text-decoration:none;}h2,.top-doc h3,.top-doc h4{border-bottom:1px solid;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;border-bottom-style:none;margin:0;padding:0;margin-top:0.6em;margin-bottom:0.4em;}.impl,.impl-items .method,.methods .method,.impl-items .type,.methods .type,.impl-items .associatedconstant,.methods .associatedconstant,.impl-items .associatedtype,.methods .associatedtype{flex-basis:100%;font-weight:600;position:relative;}div.impl-items>div{padding-left:0;}h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,a.source,.search-input,.search-results .result-name,.content table td:first-child>a,.item-left>a,.out-of-band,span.since,#source-sidebar,#sidebar-toggle,details.rustdoc-toggle>summary::before,div.impl-items>div:not(.docblock):not(.item-info),.content ul.crate a.crate,a.srclink,#main-content>ul.docblock>li>a{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p{margin:0 0 .75em 0;}summary{outline:none;}td,th{padding:0;}table{border-collapse:collapse;}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0;}button{padding:1px 6px;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.source main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}.source .width-limiter{max-width:unset;}details:not(.rustdoc-toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;}.docblock.item-decl{margin-left:0;}.item-decl pre{overflow-x:auto;}.source .content pre{padding:20px;}img{max-width:100%;}li{position:relative;}.source .content{max-width:none;overflow:visible;margin-left:0px;}nav.sub{position:relative;font-size:1rem;text-transform:uppercase;}.sub-container{display:flex;flex-direction:row;flex-wrap:nowrap;}.sub-logo-container{display:none;margin-right:20px;}.source .sub-logo-container{display:block;}.source .sub-logo-container>img{height:60px;width:60px;object-fit:contain;}.sidebar{font-size:0.875rem;width:250px;min-width:200px;overflow-y:scroll;position:sticky;height:100vh;top:0;left:0;}.sidebar-elems,.sidebar>.location{padding-left:24px;}.sidebar .location{overflow-wrap:anywhere;}.rustdoc.source .sidebar{width:50px;min-width:0px;max-width:300px;flex-grow:0;flex-shrink:0;flex-basis:auto;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.source .sidebar>*:not(:first-child){transition:opacity 0.5s;opacity:0;visibility:hidden;}.source .sidebar.expanded{overflow-y:auto;}.source .sidebar.expanded>*{opacity:1;visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;}.sidebar{scrollbar-width:thin;}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;}.hidden{display:none !important;}.sidebar .logo-container{display:flex;margin-top:10px;margin-bottom:10px;justify-content:center;}.version{overflow-wrap:break-word;}.logo-container>img{height:100px;width:100px;}.location:empty{border:none;}.location a:first-of-type{font-weight:500;}.block{padding:0;}.block ul,.block li{padding:0;margin:0;list-style:none;}.block a,h2.location a{display:block;padding:0.25rem;margin-left:-0.25rem;text-overflow:ellipsis;overflow:hidden;}.sidebar h2{border-bottom:none;font-weight:500;padding:0;margin:0;margin-top:0.7rem;margin-bottom:0.7rem;}.sidebar h3{font-size:1.125rem;font-weight:500;padding:0;margin:0;}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;}.mobile-topbar{display:none;}.source .content pre.rust{white-space:pre;overflow:auto;padding-left:0;}.rustdoc .example-wrap{display:inline-flex;margin-bottom:10px;}.example-wrap{position:relative;width:100%;}.example-wrap>pre.line-number{overflow:initial;border:1px solid;padding:13px 8px;text-align:right;border-top-left-radius:5px;border-bottom-left-radius:5px;}.example-wrap>pre.rust a:hover{text-decoration:underline;}.rustdoc:not(.source) .example-wrap>pre:not(.line-number){width:100%;overflow-x:auto;}.rustdoc:not(.source) .example-wrap>pre.line-numbers{width:auto;overflow-x:visible;}.rustdoc .example-wrap>pre{margin:0;}#search{position:relative;}.search-loading{text-align:center;}#results>table{width:100%;table-layout:fixed;}.content>.example-wrap pre.line-numbers{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.line-numbers span{cursor:pointer;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock-short p{display:inline;}.docblock-short p{overflow:hidden;text-overflow:ellipsis;margin:0;}.docblock>:not(pre)>code,.docblock-short>:not(pre)>code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.125rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.875rem;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.information){max-width:100%;overflow-x:auto;}.content .out-of-band{flex-grow:0;font-size:1.125rem;font-weight:normal;float:right;}.method>.code-header,.trait-impl>.code-header{max-width:calc(100% - 41px);display:block;}.invisible{width:100%;display:inline-block;}.content .in-band{flex-grow:1;margin:0px;padding:0px;overflow-wrap:break-word;overflow-wrap:anywhere;}.in-band>code,.in-band>.code-header{display:inline-block;}#main-content{position:relative;}#main-content>.since{top:inherit;font-family:"Fira Sans",Arial,sans-serif;}.content table:not(.table-display){border-spacing:0 5px;}.content td{vertical-align:top;}.content td:first-child{padding-right:20px;}.content td p:first-child{margin-top:0;}.content td h1,.content td h2{margin-left:0;font-size:1.125rem;}.content tr:first-child td{border-top:0;}.docblock table{margin:.5em 0;width:calc(100% - 2px);overflow-x:auto;display:block;}.docblock table td{padding:.5em;border:1px dashed;}.docblock table th{padding:.5em;text-align:left;border:1px solid;}.fields+table{margin-bottom:1em;}.content .item-list{list-style-type:none;padding:0;}.content .multi-column{-moz-column-count:5;-moz-column-gap:2.5em;-webkit-column-count:5;-webkit-column-gap:2.5em;column-count:5;column-gap:2.5em;}.content .multi-column li{width:100%;display:inline-block;}.content>.methods>.method{font-size:1rem;position:relative;}.content .method .where,.content .fn .where,.content .where.fmt-newline{display:block;font-size:0.875rem;}.content .methods>div:not(.notable-traits):not(.method){margin-left:40px;margin-bottom:15px;}.content .docblock>.impl-items{margin-left:20px;margin-top:-34px;}.content .docblock>.impl-items .table-display{margin:0;}.content .docblock>.impl-items table td{padding:0;}.content .docblock>.impl-items .table-display,.impl-items table td{border:none;}.content .item-info code{font-size:0.875rem;}.content .item-info{position:relative;margin-left:24px;}.sub-variant>div>.item-info{margin-top:initial;}.content .impl-items .docblock,.content .impl-items .item-info{margin-bottom:.6em;}.content .impl-items>.item-info{margin-left:40px;}.methods>.item-info,.content .impl-items>.item-info{margin-top:-8px;}.impl-items{flex-basis:100%;}#main-content>.item-info{margin-top:0;margin-left:0;}nav.sub{flex-grow:1;margin-bottom:25px;}.source nav.sub{margin-left:32px;}nav.main{padding:20px 0;text-align:center;}nav.main .current{border-top:1px solid;border-bottom:1px solid;}nav.main .separator{border:1px solid;display:inline-block;height:23px;margin:0 20px;}nav.sum{text-align:right;}nav.sub form{display:inline;}a{text-decoration:none;background:transparent;}.small-section-header{display:flex;justify-content:space-between;position:relative;}.small-section-header:hover>.anchor{display:initial;}.in-band:hover>.anchor,.impl:hover>.anchor,.method.trait-impl:hover>.anchor,.type.trait-impl:hover>.anchor,.associatedconstant.trait-impl:hover>.anchor,.associatedtype.trait-impl:hover>.anchor{display:inline-block;position:absolute;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.small-section-header>.anchor{left:-15px;padding-right:8px;}h2.small-section-header>.anchor{padding-right:6px;}.anchor::before{content:'§';}.docblock a:not(.srclink):not(.test-arrow):hover,.docblock-short a:not(.srclink):not(.test-arrow):hover,.item-info a{text-decoration:underline;}.block a.current.crate{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{display:table;}.item-row{display:table-row;}.item-left,.item-right{display:table-cell;}.item-left{padding-right:1.25rem;}.search-container{position:relative;display:flex;height:34px;}.search-container>*{height:100%;}.search-results-title{display:inline;}#search-settings{font-size:1.5rem;font-weight:500;margin-bottom:20px;}#crate-search{min-width:115px;margin-top:5px;margin-left:0.25em;padding-left:0.3125em;padding-right:23px;border:0;border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;text-overflow:"";background-repeat:no-repeat;background-color:transparent;background-size:20px;background-position:calc(100% - 1px) 56%;background-image:url("down-arrow.svg");}.search-container{margin-top:4px;}.search-input{-webkit-appearance:none;-moz-box-sizing:border-box !important;box-sizing:border-box !important;outline:none;border:1px solid;border-radius:2px;padding:8px;font-size:1rem;transition:border-color 300ms ease;width:100%;}.search-results{display:none;padding-bottom:2em;}.search-results.active{display:block;clear:both;}.search-results .desc>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;}.search-results>a{display:block;width:100%;margin-left:2px;margin-right:2px;border-bottom:1px solid #aaa3;}.search-results>a>div{display:flex;flex-flow:row wrap;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:50%;}.search-results .result-name{padding-right:1em;}.search-results .result-name>span{display:inline-block;margin:0;font-weight:normal;}body.blur>:not(#help){filter:blur(8px);-webkit-filter:blur(8px);opacity:.7;}#help{width:100%;height:100vh;position:fixed;top:0;left:0;display:flex;justify-content:center;align-items:center;}#help>div{flex:0 0 auto;box-shadow:0 0 6px rgba(0,0,0,.2);width:550px;height:auto;border:1px solid;}#help dt{float:left;clear:left;display:block;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;}#help span.top{text-align:center;display:block;margin:10px 0;border-bottom:1px solid;padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid;}#help dd{margin:5px 35px;}#help .infos{padding-left:0;}#help h1,#help h2{margin-top:0;}#help>div div{width:50%;float:left;padding:0 20px 20px 17px;;}.item-info .stab{display:inline-block;}.stab{padding:3px;margin-bottom:5px;font-size:0.875rem;font-weight:normal;}.stab p{display:inline;}.stab .emoji{font-size:1.25rem;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.module-item .stab,.import-item .stab{border-radius:3px;display:inline-block;font-size:0.875rem;line-height:1.2;margin-bottom:0;margin-left:0.3125em;padding:2px;vertical-align:text-bottom;}.module-item.unstable,.import-item.unstable{opacity:0.65;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;padding-right:2px;position:initial;}.impl-items .srclink,.impl .srclink,.methods .srclink{font-weight:normal;font-size:1rem;}.rightside{float:right;}.variants_table{width:100%;}.variants_table tbody tr td:first-child{width:1%;}td.summary-column{width:100%;}.summary{padding-right:0px;}pre.rust .question-mark{font-weight:bold;}a.test-arrow{display:inline-block;visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.375rem;top:5px;right:5px;z-index:1;}.example-wrap:hover .test-arrow{visibility:visible;}a.test-arrow:hover{text-decoration:none;}.code-attribute{font-weight:300;}.item-spacer{width:100%;height:12px;}.out-of-band>span.since{position:initial;font-size:1.25rem;}h3.variant{font-weight:600;font-size:1.125rem;margin-bottom:10px;border-bottom:none;}.sub-variant h4{font-size:1rem;font-weight:400;border-bottom:none;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}.toggle-label{display:inline-block;margin-left:4px;margin-top:3px;}:target>code,:target>.code-header{opacity:1;}:target{padding-right:3px;}.information{position:absolute;left:-25px;margin-top:7px;z-index:1;}.tooltip{position:relative;display:inline-block;cursor:pointer;}.tooltip::after{display:none;text-align:center;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;font-size:1rem;}.tooltip.ignore::after{content:"This example is not tested";}.tooltip.compile_fail::after{content:"This example deliberately fails to compile";}.tooltip.should_panic::after{content:"This example panics";}.tooltip.edition::after{content:"This code runs with edition " attr(data-edition);}.tooltip::before{content:" ";position:absolute;top:50%;left:16px;margin-top:-5px;border-width:5px;border-style:solid;display:none;}.tooltip:hover::before,.tooltip:hover::after{display:inline;}.tooltip.compile_fail,.tooltip.should_panic,.tooltip.ignore{font-weight:bold;font-size:1.25rem;}.notable-traits-tooltip{display:inline-block;cursor:pointer;}.notable-traits:hover .notable-traits-tooltiptext,.notable-traits .notable-traits-tooltiptext.force-tooltip{display:inline-block;}.notable-traits .notable-traits-tooltiptext{display:none;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;z-index:10;font-size:1rem;cursor:default;position:absolute;border:1px solid;}.notable-traits-tooltip::after{content:"\00a0\00a0\00a0";}.notable-traits .notable,.notable-traits .docblock{margin:0;}.notable-traits .notable{margin:0;margin-bottom:13px;font-size:1.1875rem;font-weight:600;display:block;}.notable-traits .docblock code.content{margin:0;padding:0;font-size:1.25rem;}pre.rust.rust-example-rendered{position:relative;}pre.rust{tab-size:4;-moz-tab-size:4;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#titles{height:35px;}#titles>button{float:left;width:33.3%;text-align:center;font-size:1.125rem;cursor:pointer;border:0;border-top:2px solid;}#titles>button:not(:last-child){margin-right:1px;width:calc(33.3% - 1px);}#titles>button>div.count{display:inline-block;font-size:1rem;}.notable-traits{cursor:pointer;z-index:2;margin-left:5px;}#sidebar-toggle{position:sticky;top:0;left:0;cursor:pointer;font-weight:bold;font-size:1.25rem;border-bottom:1px solid;display:flex;height:40px;justify-content:center;align-items:center;z-index:10;}#source-sidebar{width:100%;z-index:1;overflow:auto;}#source-sidebar>.title{font-size:1.5rem;text-align:center;border-bottom:1px solid;margin-bottom:6px;}.theme-picker{position:absolute;left:-38px;top:4px;}.theme-picker button{outline:none;}#settings-menu,#help-button{margin-left:4px;outline:none;}#theme-picker,#copy-path{height:34px;}#theme-picker,#settings-menu,#help-button,#copy-path{padding:5px;width:33px;border:1px solid;border-radius:2px;cursor:pointer;}#help-button{font-family:"Fira Sans",Arial,sans-serif;text-align:center;font-size:20px;padding-top:2px;}#copy-path{background:initial;margin-left:10px;padding:0;padding-left:2px;border:0;}#theme-choices{display:none;position:absolute;left:0;top:28px;border:1px solid;border-radius:3px;z-index:1;cursor:pointer;}#theme-choices>button{border:none;width:100%;padding:4px 8px;text-align:center;background:rgba(0,0,0,0);overflow-wrap:normal;}#theme-choices>button:not(:first-child){border-top:1px solid;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px;border-radius:3px;cursor:default;}.hidden-by-impl-hider,.hidden-by-usual-hider{display:none !important;}#implementations-list>h3>span.in-band{width:100%;}.table-display{width:100%;border:0;border-collapse:collapse;border-spacing:0;font-size:1rem;}.table-display tr td:first-child{padding-right:0;}.table-display tr td:last-child{float:right;}.table-display .out-of-band{position:relative;font-size:1.125rem;display:block;}.table-display td:hover .anchor{display:block;top:2px;left:-5px;}#main-content>ul{padding-left:10px;}#main-content>ul>li{list-style:none;}.non-exhaustive{margin-bottom:1em;}div.children{padding-left:27px;display:none;}div.name{cursor:pointer;position:relative;margin-left:16px;}div.files>a{display:block;padding:0 3px;}div.files>a:hover,div.name:hover{background-color:#a14b4b;}div.name.expand+.children{display:block;}div.name::before{content:"\25B6";padding-left:4px;font-size:0.625rem;position:absolute;left:-16px;top:4px;}div.name.expand::before{transform:rotate(90deg);left:-15px;top:2px;}details.rustdoc-toggle>summary.hideme{cursor:pointer;}details.rustdoc-toggle>summary{list-style:none;}details.rustdoc-toggle>summary::-webkit-details-marker,details.rustdoc-toggle>summary::marker{display:none;}details.rustdoc-toggle>summary.hideme>span{margin-left:9px;}details.rustdoc-toggle>summary::before{content:"";cursor:pointer;width:16px;height:16px;background-repeat:no-repeat;background-position:top left;display:inline-block;vertical-align:middle;opacity:.5;}details.rustdoc-toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.rustdoc-toggle>summary.hideme::after{content:"";}details.rustdoc-toggle>summary:focus::before,details.rustdoc-toggle>summary:hover::before{opacity:1;}details.rustdoc-toggle.top-doc>summary,details.rustdoc-toggle.top-doc>summary::before,details.rustdoc-toggle.non-exhaustive>summary,details.rustdoc-toggle.non-exhaustive>summary::before{font-family:'Fira Sans';font-size:1rem;}details.non-exhaustive{margin-bottom:8px;}details.rustdoc-toggle>summary.hideme::before{position:relative;}details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:4px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.rustdoc-toggle[open] >summary.hideme{position:absolute;}details.rustdoc-toggle{position:relative;}details.rustdoc-toggle[open] >summary.hideme>span{display:none;}details.undocumented[open] >summary::before,details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{background-image:url("toggle-minus.svg");}details.undocumented>summary::before,details.rustdoc-toggle>summary::before{background-image:url("toggle-plus.svg");}details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{width:16px;height:16px;background-repeat:no-repeat;background-position:top left;display:inline-block;content:"";}details.rustdoc-toggle[open] >summary::after,details.rustdoc-toggle[open] >summary.hideme::after{content:"Collapse";}@media (min-width:701px){.docblock>.information:first-child>.tooltip{margin-top:16px;}.sidebar.expanded+main .width-limiter .sub-logo-container.rust-logo{display:none;}.rustdoc.source .sidebar{transition:width .5s;}.source .sidebar.expanded{width:300px;}}@media (max-width:700px){*[id]{scroll-margin-top:45px;}.rustdoc{padding-top:0px;display:block;}main{padding-left:15px;padding-top:0px;}.rustdoc,.main-heading{flex-direction:column;}.content .out-of-band{text-align:left;margin-left:initial;padding:initial;}.content .out-of-band .since::before{content:"Since ";}#copy-path{display:none;}.sidebar .sidebar-logo,.sidebar .location{display:none;}.sidebar-elems{margin-top:1em;}.sidebar{position:fixed;top:45px;left:-1000px;margin-left:0;background-color:rgba(0,0,0,0);margin:0;padding:0;z-index:11;height:calc(100vh - 45px);}.source main,.source .sidebar{top:0;padding:0;}.sidebar.shown,.sidebar.expanded,.sidebar:focus-within{left:0;}.rustdoc.source>.sidebar{position:fixed;margin:0;z-index:11;width:0;}.mobile-topbar .location a{padding:0;margin:0;}.mobile-topbar .location{border:none;padding:0;margin:auto 0.5em auto auto;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:24px;}.mobile-topbar .logo-container{max-height:45px;}.mobile-topbar .logo-container>img{max-width:35px;max-height:35px;margin-left:20px;margin-top:5px;margin-bottom:5px;}.mobile-topbar{display:flex;flex-direction:row;position:sticky;z-index:10;font-size:2rem;height:45px;width:100%;left:0;top:0;}.source .mobile-topbar{display:none;}.sidebar-menu-toggle{width:45px;font-size:32px;border:none;}.source nav:not(.sidebar).sub{margin-left:32px;}#theme-picker{display:none;width:0;}.content{margin-left:0px;}.source .content{margin-top:10px;}#search{margin-left:0;padding:0;}.anchor{display:none !important;}.notable-traits{position:absolute;left:-22px;top:24px;}#titles>button>div.count{float:left;width:100%;}#titles{height:50px;}#sidebar-filler{position:fixed;left:45px;width:calc(100% - 45px);top:0;height:45px;z-index:-1;border-bottom:1px solid;}#main-content>details.rustdoc-toggle>summary::before,#main-content>div>details.rustdoc-toggle>summary::before{left:-11px;}.sidebar.expanded #sidebar-toggle{font-size:1.5rem;}.sidebar:not(.expanded) #sidebar-toggle{position:fixed;left:1px;top:100px;width:30px;font-size:1.5rem;text-align:center;padding:0;z-index:10;border-top-right-radius:3px;border-bottom-right-radius:3px;cursor:pointer;font-weight:bold;border:1px solid;border-left:0;}#source-sidebar{z-index:11;}#main-content>.line-numbers{margin-top:0;}.notable-traits .notable-traits-tooltiptext{left:0;top:100%;}#help-button{display:none;}.item-table{display:block;}.item-row{display:flex;flex-flow:column wrap;}.item-left,.item-right{width:100%;}.search-results>a{border-bottom:1px solid #aaa9;padding:5px 0px;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:100%;}.search-results div.desc,.search-results .result-description,.item-right{padding-left:2em;}.source .sidebar.expanded{max-width:100vw;width:100vw;}details.rustdoc-toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before,#main-content>details.rustdoc-toggle:not(.top-doc)>summary::before,#main-content>div>details.rustdoc-toggle>summary::before{left:-11px;}}@media print{nav.sub,.content .out-of-band{display:none;}}@media (max-width:464px){#titles,#titles>button{height:73px;}#main-content>table:not(.table-display) td{word-break:break-word;width:50%;}#crate-search{border-radius:4px;border:0;}.docblock{margin-left:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}.sub-container{flex-direction:column;}.sub-logo-container{align-self:center;}.source .sub-logo-container>img{height:35px;width:35px;}.sidebar:not(.expanded) #sidebar-toggle{top:10px;}}.method-toggle summary,.implementors-toggle summary,.impl{margin-bottom:0.75em;}.method-toggle[open]{margin-bottom:2em;}.implementors-toggle[open]{margin-bottom:2em;}#trait-implementations-list .method-toggle,#synthetic-implementations-list .method-toggle,#blanket-implementations-list .method-toggle{margin-bottom:1em;}.scraped-example-title{font-family:'Fira Sans';}.scraped-example:not(.expanded) .code-wrapper pre.line-numbers{overflow:hidden;max-height:240px;}.scraped-example:not(.expanded) .code-wrapper .example-wrap pre.rust{overflow-y:hidden;max-height:240px;padding-bottom:0;}.scraped-example .code-wrapper .prev{position:absolute;top:0.25em;right:2.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .next{position:absolute;top:0.25em;right:1.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .expand{position:absolute;top:0.25em;right:0.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper:before{content:" ";width:100%;height:5px;position:absolute;z-index:100;top:0;background:linear-gradient(to bottom,rgba(255,255,255,1),rgba(255,255,255,0));}.scraped-example:not(.expanded) .code-wrapper:after{content:" ";width:100%;height:5px;position:absolute;z-index:100;bottom:0;background:linear-gradient(to top,rgba(255,255,255,1),rgba(255,255,255,0));}.scraped-example:not(.expanded) .code-wrapper{overflow:hidden;max-height:240px;}.scraped-example .code-wrapper .line-numbers{margin:0;padding:14px 0;}.scraped-example .code-wrapper .line-numbers span{padding:0 14px;}.scraped-example .code-wrapper .example-wrap{flex:1;overflow-x:auto;overflow-y:hidden;margin-bottom:0;}.scraped-example .code-wrapper .example-wrap pre.rust{overflow-x:inherit;width:inherit;overflow-y:hidden;}.scraped-example .example-wrap .rust span.highlight{background:#fcffd6;}.scraped-example .example-wrap .rust span.highlight.focus{background:#f6fdb0;}.more-examples-toggle{margin-top:10px;}.more-examples-toggle summary{color:#999;font-family:'Fira Sans';}.more-scraped-examples{margin-left:25px;display:flex;flex-direction:row;width:calc(100% - 25px);}.more-scraped-examples-inner{width:calc(100% - 20px);}.toggle-line{align-self:stretch;margin-right:10px;margin-top:5px;padding:0 4px;cursor:pointer;}.toggle-line:hover .toggle-line-inner{background:#aaa;}.toggle-line-inner{min-width:2px;background:#ddd;height:100%;}.more-scraped-examples .scraped-example{margin-bottom:20px;}.more-scraped-examples .scraped-example:last-child{margin-bottom:0;}.example-links a{margin-top:20px;font-family:'Fira Sans';}.example-links ul{margin-bottom:0;} \ No newline at end of file diff --git a/docs/doc/search-index.js b/docs/doc/search-index.js index 89fa0ab..121419e 100644 --- a/docs/doc/search-index.js +++ b/docs/doc/search-index.js @@ -1,4 +1,5 @@ var searchIndex = JSON.parse('{\ -"ubits":{"doc":"crates.io Downloads Build Docs Licence","t":[14,0,0,0,18,18,3,18,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,18,18,3,4,13,13,13,13,13,13,13,13,18,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["bitfield","examples","flagless_example","full_example","BITS","BYTES","ExampleField","MAX","as_binary","as_integer","bitand","bitand_assign","bitor","bitor_assign","bitxor","bitxor_assign","borrow","borrow_mut","clear_index","clone","clone_into","combine","default","diff","eq","fmt","fmt","from","from","from_binary_str","from_binary_string","get_index","intersect","into","into_combined","into_diff","into_intersection","ne","new","ones","partial_cmp","set_index","to_owned","toggle_index","try_from","try_into","type_id","zeros","BITS","BYTES","ExampleField","ExampleFlags","Flag0","Flag1","Flag2","Flag3","Flag4","Flag5","Flag6","Flag7","MAX","as_binary","as_integer","bitand","bitand","bitand","bitand_assign","bitand_assign","bitor","bitor","bitor","bitor_assign","bitor_assign","bitxor","bitxor","bitxor","bitxor_assign","bitxor_assign","borrow","borrow","borrow_mut","borrow_mut","clear","clear_index","clone","clone","clone_into","clone_into","combine","default","diff","eq","eq","fmt","fmt","fmt","from","from","from","from","from","from_binary_str","from_binary_string","get","get_index","intersect","into","into","into_combined","into_diff","into_intersection","ne","new","ones","partial_cmp","partial_cmp","set","set_index","to_owned","to_owned","toggle","toggle_index","try_from","try_from","try_into","try_into","type_id","type_id","zeros"],"q":["ubits","","ubits::examples","","ubits::examples::flagless_example","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","ubits::examples::full_example","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Generates a bitfield struct and a corresponding flag enum.","Examples of generated output using different …","Example of generated output, using only a bit field …","Example of generated output, using both a bit field and a …","Number of bits in an instance of ExampleField.","Number of bytes used by an instance of ExampleField.","Optional docstring for my example bit field.","Maximum valid integer for ExampleField.","Returns the current field value as a binary formatted …","Returns the current field value as a u8","","","","","","","","","Sets the value of the bit at the supplied index to 0.","","","Returns a new ExampleFieldwith ones for flags that were …","","Returns a new ExampleFieldwith ones for flags that do not …","","","","Returns the argument unchanged.","","Create a new instance of ExampleField from a binary string.","Create a new instance of ExampleField from a binary string.","Returns the value of the bit at the supplied index as a …","Returns a new ExampleFieldwith ones for flags that were …","Calls U::from(self).","Returns a new ExampleFieldwith ones for flags that were …","Returns a new ExampleFieldwith ones for flags that do not …","Returns a new ExampleFieldwith ones for flags that were …","","Create a new instance of ExampleField from a u8 value.","Create a new instance of ExampleField from the maximum …","","Sets the value of the bit at the supplied index to 1.","","Flips the value of the bit at the supplied index.","","","","Create a new instance of ExampleField from 0.","Number of bits in an instance of ExampleField.","Number of bytes used by an instance of ExampleField.","Optional docstring for my example bit field.","Optional docstring for my flag enum.","Optional docstring for Flag0","Optional docstring for Flag1","Optional docstring for Flag2","Optional docstring for Flag3","Optional docstring for Flag4","Optional docstring for Flag5","Optional docstring for Flag6","Optional docstring for Flag7","Maximum valid integer for ExampleField.","Returns the current field value as a binary formatted …","Returns the current field value as a u8","","","","","","","","","","","","","","","","","","","","Sets the value of the bit at the supplied flag to 0.","Sets the value of the bit at the supplied index to 0.","","","","","Returns a new ExampleFieldwith ones for flags that were …","","Returns a new ExampleFieldwith ones for flags that do not …","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Create a new instance of ExampleField from a binary string.","Create a new instance of ExampleField from a binary string.","Returns the value of the bit at the supplied flag as a …","Returns the value of the bit at the supplied index as a …","Returns a new ExampleFieldwith ones for flags that were …","Calls U::from(self).","Calls U::from(self).","Returns a new ExampleFieldwith ones for flags that were …","Returns a new ExampleFieldwith ones for flags that do not …","Returns a new ExampleFieldwith ones for flags that were …","","Create a new instance of ExampleField from a u8 value.","Create a new instance of ExampleField from the maximum …","","","Sets the value of the bit at the supplied flag to 1.","Sets the value of the bit at the supplied index to 1.","","","Flips the value of the bit at the supplied flag.","Flips the value of the bit at the supplied index.","","","","","","","Create a new instance of ExampleField from 0."],"i":[0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,0,0,3,3,3,3,3,3,3,3,2,2,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,2,3,2,3,2,2,2,3,2,3,2,2,2,2,3,2,3,2,2,3,3,2,2,2,2,2,2,2,2,3,2,2,2,2,2,2,2,3,2,2,2,3,2,2,2,3,2,3,2,3,2,2],"f":[null,null,null,null,null,null,null,null,[[["",0]],["string",3]],[[["",0]],["u8",0]],[[]],[[["",0]]],[[]],[[["",0]]],[[]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0],["u8",0]]],[[["",0]],["examplefield",3]],[[["",0],["",0]]],[[["",0]]],[[]],[[["",0]]],[[["",0],["examplefield",3]],["bool",0]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[["u8",0]],["examplefield",3]],[[["str",0]]],[[["string",3]]],[[["",0],["u8",0]],["bool",0]],[[["",0]]],[[]],[[]],[[]],[[]],[[["",0],["examplefield",3]],["bool",0]],[[["u8",0]]],[[]],[[["",0],["examplefield",3]],["option",4,[["ordering",4]]]],[[["",0],["u8",0]]],[[["",0]]],[[["",0],["u8",0]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["string",3]],[[["",0]],["u8",0]],[[]],[[["exampleflags",4]]],[[]],[[["",0],["exampleflags",4]]],[[["",0]]],[[]],[[]],[[["exampleflags",4]]],[[["",0],["exampleflags",4]]],[[["",0]]],[[]],[[["exampleflags",4]]],[[]],[[["",0],["exampleflags",4]]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0],["exampleflags",4]],["",0]],[[["",0],["u8",0]]],[[["",0]],["exampleflags",4]],[[["",0]],["examplefield",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0]]],[[]],[[["",0]]],[[["",0],["exampleflags",4]],["bool",0]],[[["",0],["examplefield",3]],["bool",0]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["u8",0]],["exampleflags",4]],[[]],[[["u8",0]],["examplefield",3]],[[["exampleflags",4]],["examplefield",3]],[[]],[[["str",0]]],[[["string",3]]],[[["",0],["exampleflags",4]],["bool",0]],[[["",0],["u8",0]],["bool",0]],[[["",0]]],[[]],[[]],[[]],[[]],[[]],[[["",0],["examplefield",3]],["bool",0]],[[["u8",0]]],[[]],[[["",0],["exampleflags",4]],["option",4,[["ordering",4]]]],[[["",0],["examplefield",3]],["option",4,[["ordering",4]]]],[[["",0],["exampleflags",4]],["",0]],[[["",0],["u8",0]]],[[["",0]]],[[["",0]]],[[["",0],["exampleflags",4]],["",0]],[[["",0],["u8",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]]],"p":[[3,"ExampleField"],[3,"ExampleField"],[4,"ExampleFlags"]]}\ +"ubits":{"doc":"crates.io Downloads Build Docs Licence","t":"OAAASSDSLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLSSDENNNNNNNNSLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL","n":["bitfield","examples","flagless_example","full_example","BITS","BYTES","ExampleField","MAX","as_binary","as_integer","bitand","bitand_assign","bitor","bitor_assign","bitxor","bitxor_assign","borrow","borrow_mut","clear_index","clone","clone_into","combine","default","diff","eq","fmt","fmt","from","from","from_binary_str","from_binary_string","get_index","intersect","into","into_combined","into_diff","into_intersection","new","ones","partial_cmp","set_index","to_owned","toggle_index","try_from","try_into","type_id","zeros","BITS","BYTES","ExampleField","ExampleFlags","Flag0","Flag1","Flag2","Flag3","Flag4","Flag5","Flag6","Flag7","MAX","as_binary","as_integer","bitand","bitand","bitand","bitand","bitand","bitand_assign","bitand_assign","bitor","bitor","bitor","bitor","bitor","bitor_assign","bitor_assign","bitxor","bitxor","bitxor","bitxor","bitxor","bitxor_assign","bitxor_assign","borrow","borrow","borrow_mut","borrow_mut","clear","clear_index","clone","clone","clone_into","clone_into","combine","default","diff","eq","eq","fmt","fmt","fmt","from","from","from","from","from","from_binary_str","from_binary_string","get","get_index","intersect","into","into","into_combined","into_diff","into_intersection","new","ones","partial_cmp","partial_cmp","set","set_index","to_owned","to_owned","toggle","toggle_index","try_from","try_from","try_into","try_into","type_id","type_id","zeros"],"q":[[0,"ubits"],[2,"ubits::examples"],[4,"ubits::examples::flagless_example"],[47,"ubits::examples::full_example"]],"d":["Generates a bitfield struct and a corresponding flag enum.","Examples of generated output using different …","Example of generated output, using only a bit field …","Example of generated output, using both a bit field and a …","Number of bits in an instance of ExampleField.","Number of bytes used by an instance of ExampleField.","Optional docstring for my example bit field.","Maximum valid integer for ExampleField.","Returns the current field value as a binary formatted …","Returns the current field value as a u8","","","","","","","","","Sets the value of the bit at the supplied index to 0.","","","Returns a new ExampleFieldwith ones for flags that were …","","Returns a new ExampleFieldwith ones for flags that do not …","","","","","Returns the argument unchanged.","Create a new instance of ExampleField from a binary string.","Create a new instance of ExampleField from a binary string.","Returns the value of the bit at the supplied index as a …","Returns a new ExampleFieldwith ones for flags that were …","Calls U::from(self).","Returns a new ExampleFieldwith ones for flags that were …","Returns a new ExampleFieldwith ones for flags that do not …","Returns a new ExampleFieldwith ones for flags that were …","Create a new instance of ExampleField from a u8 value.","Create a new instance of ExampleField from the maximum …","","Sets the value of the bit at the supplied index to 1.","","Flips the value of the bit at the supplied index.","","","","Create a new instance of ExampleField from 0.","Number of bits in an instance of ExampleField.","Number of bytes used by an instance of ExampleField.","Optional docstring for my example bit field.","Optional docstring for my flag enum.","Optional docstring for Flag0","Optional docstring for Flag1","Optional docstring for Flag2","Optional docstring for Flag3","Optional docstring for Flag4","Optional docstring for Flag5","Optional docstring for Flag6","Optional docstring for Flag7","Maximum valid integer for ExampleField.","Returns the current field value as a binary formatted …","Returns the current field value as a u8","","","","","","","","","","","","","","","","","","","","","","","","","","Sets the value of the bit at the supplied flag to 0.","Sets the value of the bit at the supplied index to 0.","","","","","Returns a new ExampleFieldwith ones for flags that were …","","Returns a new ExampleFieldwith ones for flags that do not …","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","Create a new instance of ExampleField from a binary string.","Create a new instance of ExampleField from a binary string.","Returns the value of the bit at the supplied flag as a …","Returns the value of the bit at the supplied index as a …","Returns a new ExampleFieldwith ones for flags that were …","Calls U::from(self).","Calls U::from(self).","Returns a new ExampleFieldwith ones for flags that were …","Returns a new ExampleFieldwith ones for flags that do not …","Returns a new ExampleFieldwith ones for flags that were …","Create a new instance of ExampleField from a u8 value.","Create a new instance of ExampleField from the maximum …","","","Sets the value of the bit at the supplied flag to 1.","Sets the value of the bit at the supplied index to 1.","","","Flips the value of the bit at the supplied flag.","Flips the value of the bit at the supplied index.","","","","","","","Create a new instance of ExampleField from 0."],"i":[0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,12,0,0,13,13,13,13,13,13,13,13,12,12,12,13,12,12,12,12,12,12,13,12,12,12,12,12,12,13,12,12,12,12,12,12,13,12,13,12,12,12,13,12,13,12,12,12,12,13,12,13,12,12,13,13,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12,13,12,12,12,13,12,12,12,13,12,13,12,13,12,12],"f":[0,0,0,0,0,0,0,0,[1,2],[1,3],[[1,1]],[[1,1]],[[1,1]],[[1,1]],[[1,1]],[[1,1]],[[]],[[]],[[1,3]],[1,1],[[]],[[1,1],1],[[],1],[[1,1],1],[[1,1],4],[[1,5],6],[[1,5],6],[3,1],[[]],[7,1],[2,1],[[1,3],4],[[1,1],1],[[]],[[1,1],1],[[1,1],1],[[1,1],1],[3,1],[[],1],[[1,1],[[9,[8]]]],[[1,3]],[[]],[[1,3]],[[],10],[[],10],[[],11],[[],1],0,0,0,0,0,0,0,0,0,0,0,0,0,[12,2],[12,3],[[13,13]],[[12,13]],[[12,13]],[[12,12]],[[12,13]],[[12,13]],[[12,12]],[[13,13]],[[12,13]],[[12,13]],[[12,13]],[[12,12]],[[12,12]],[[12,13]],[[13,13]],[[12,13]],[[12,12]],[[12,13]],[[12,13]],[[12,12]],[[12,13]],[[]],[[]],[[]],[[]],[[12,13],12],[[12,3]],[13,13],[12,12],[[]],[[]],[[12,12],12],[[],12],[[12,12],12],[[13,13],4],[[12,12],4],[[13,5],6],[[12,5],6],[[12,5],6],[[]],[3,13],[[]],[13,12],[3,12],[7,12],[2,12],[[12,13],4],[[12,3],4],[[12,12],12],[[]],[[]],[[12,12],12],[[12,12],12],[[12,12],12],[3,12],[[],12],[[13,13],[[9,[8]]]],[[12,12],[[9,[8]]]],[[12,13],12],[[12,3]],[[]],[[]],[[12,13],12],[[12,3]],[[],10],[[],10],[[],10],[[],10],[[],11],[[],11],[[],12]],"c":[],"p":[[3,"ExampleField"],[3,"String"],[15,"u8"],[15,"bool"],[3,"Formatter"],[6,"Result"],[15,"str"],[4,"Ordering"],[4,"Option"],[4,"Result"],[3,"TypeId"],[3,"ExampleField"],[4,"ExampleFlags"]]}\ }'); -if (window.initSearch) {window.initSearch(searchIndex)}; \ No newline at end of file +if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)}; +if (typeof exports !== 'undefined') {exports.searchIndex = searchIndex}; diff --git a/docs/doc/search.js b/docs/doc/search.js deleted file mode 100644 index a8026db..0000000 --- a/docs/doc/search.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(){var itemTypes=["mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","primitive","associatedtype","constant","associatedconstant","union","foreigntype","keyword","existential","attr","derive","traitalias",];var TY_PRIMITIVE=itemTypes.indexOf("primitive");var TY_KEYWORD=itemTypes.indexOf("keyword");function printTab(nb){if(nb===0||nb===1||nb===2){searchState.currentTab=nb}var nb_copy=nb;onEachLazy(document.getElementById("titles").childNodes,function(elem){if(nb_copy===0){addClass(elem,"selected")}else{removeClass(elem,"selected")}nb_copy-=1});onEachLazy(document.getElementById("results").childNodes,function(elem){if(nb===0){addClass(elem,"active")}else{removeClass(elem,"active")}nb-=1})}function removeEmptyStringsFromArray(x){for(var i=0,len=x.length;i-1){var obj=searchIndex[result.id];obj.lev=result.lev;var res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=obj.displayPath+obj.name;obj.fullPath+="|"+obj.ty;if(duplicates[obj.fullPath]){continue}duplicates[obj.fullPath]=true;obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break}}}return out}function sortResults(results,isType){var ar=[];for(var entry in results){if(hasOwnPropertyRustdoc(results,entry)){var result=results[entry];result.word=searchWords[result.id];result.item=searchIndex[result.id]||{};ar.push(result)}}results=ar;if(results.length===0){return[]}results.sort(function(aaa,bbb){var a,b;a=(aaa.word!==val);b=(bbb.word!==val);if(a!==b){return a-b}a=(aaa.lev);b=(bbb.lev);if(a!==b){return a-b}a=(aaa.item.crate!==window.currentCrate);b=(bbb.item.crate!==window.currentCrate);if(a!==b){return a-b}a=aaa.word.length;b=bbb.word.length;if(a!==b){return a-b}a=aaa.word;b=bbb.word;if(a!==b){return(a>b?+1:-1)}a=(aaa.index<0);b=(bbb.index<0);if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}if((aaa.item.ty===TY_PRIMITIVE&&bbb.item.ty!==TY_KEYWORD)||(aaa.item.ty===TY_KEYWORD&&bbb.item.ty!==TY_PRIMITIVE)){return-1}if((bbb.item.ty===TY_PRIMITIVE&&aaa.item.ty!==TY_PRIMITIVE)||(bbb.item.ty===TY_KEYWORD&&aaa.item.ty!==TY_KEYWORD)){return 1}a=(aaa.item.desc==="");b=(bbb.item.desc==="");if(a!==b){return a-b}a=aaa.item.ty;b=bbb.item.ty;if(a!==b){return a-b}a=aaa.item.path;b=bbb.item.path;if(a!==b){return(a>b?+1:-1)}return 0});for(var i=0,len=results.length;i"));return{name:val.substring(0,val.indexOf("<")),generics:values.split(/\s*,\s*/),}}return{name:val,generics:[],}}function checkGenerics(obj,val){var tmp_lev,elem_name;if(val.generics.length>0){if(obj.length>GENERICS_DATA&&obj[GENERICS_DATA].length>=val.generics.length){var elems=Object.create(null);var elength=obj[GENERICS_DATA].length;for(var x=0;xGENERICS_DATA&&obj[GENERICS_DATA].length>0){var elems=Object.create(null);len=obj[GENERICS_DATA].length;for(x=0;xGENERICS_DATA&&obj[GENERICS_DATA].length!==0){tmp_lev=checkGenerics(obj,val);if(tmp_lev<=MAX_LEV_DISTANCE){return tmp_lev}}}}else if(literalSearch){var found=false;if((!val.generics||val.generics.length===0)&&obj.length>GENERICS_DATA&&obj[GENERICS_DATA].length>0){found=obj[GENERICS_DATA].some(function(gen){return gen[NAME]===val.name})}return found?0:MAX_LEV_DISTANCE+1}lev_distance=Math.min(levenshtein(obj[NAME],val.name),lev_distance);if(lev_distance<=MAX_LEV_DISTANCE){lev_distance=Math.ceil((checkGenerics(obj,val)+lev_distance)/2)}if(obj.length>GENERICS_DATA&&obj[GENERICS_DATA].length>0){var olength=obj[GENERICS_DATA].length;for(x=0;x0){var length=obj.type[INPUTS_DATA].length;for(var i=0;iOUTPUT_DATA){var ret=obj.type[OUTPUT_DATA];if(typeof ret[0]==="string"){ret=[ret]}for(var x=0,len=ret.length;xlength){return MAX_LEV_DISTANCE+1}for(var i=0;ilength){break}var lev_total=0;var aborted=false;for(var x=0;xMAX_LEV_DISTANCE){aborted=true;break}lev_total+=lev}if(!aborted){ret_lev=Math.min(ret_lev,Math.round(lev_total/clength))}}return ret_lev}function typePassesFilter(filter,type){if(filter<=NO_TYPE_FILTER||filter===type)return true;var name=itemTypes[type];switch(itemTypes[filter]){case"constant":return name==="associatedconstant";case"fn":return name==="method"||name==="tymethod";case"type":return name==="primitive"||name==="associatedtype";case"trait":return name==="traitalias"}return false}function createAliasFromItem(item){return{crate:item.crate,name:item.name,path:item.path,desc:item.desc,ty:item.ty,parent:item.parent,type:item.type,is_alias:true,}}function handleAliases(ret,query,filterCrates){var aliases=[];var crateAliases=[];if(filterCrates!==null){if(ALIASES[filterCrates]&&ALIASES[filterCrates][query.search]){var query_aliases=ALIASES[filterCrates][query.search];var len=query_aliases.length;for(var i=0;iMAX_RESULTS){ret.others.pop()}};onEach(aliases,pushFunc);onEach(crateAliases,pushFunc)}function addIntoResults(isExact,res,fullId,id,index,lev){if(lev===0||(!isExact&&lev<=MAX_LEV_DISTANCE)){if(res[fullId]!==undefined){var result=res[fullId];if(result.dontValidate||result.lev<=lev){return}}res[fullId]={id:id,index:index,dontValidate:isExact,lev:lev,}}}var nSearchWords=searchWords.length;var i,it;var ty;var fullId;var returned;var in_args;var len;if((val.charAt(0)==="\""||val.charAt(0)==="'")&&val.charAt(val.length-1)===val.charAt(0)){val=extractGenerics(val.substr(1,val.length-2));for(i=0;i")>-1){var trimmer=function(s){return s.trim()};var parts=val.split("->").map(trimmer);var input=parts[0];var inputs=input.split(",").map(trimmer).sort();for(i=0,len=inputs.length;i0){firstNonZeroDistance=distance;break}}in_args=firstNonZeroDistance}addIntoResults(true,results_in_args,fullId,i,-1,in_args);addIntoResults(true,results_returned,fullId,i,-1,returned);if(is_module){addIntoResults(true,results,fullId,i,-1,0)}}}query.inputs=inputs.map(function(input){return input.name});query.output=output.name}else{query.inputs=[val];query.output=val;query.search=val;val=val.replace(/_/g,"");var valGenerics=extractGenerics(val);var paths=valLower.split("::");removeEmptyStringsFromArray(paths);val=paths[paths.length-1];var contains=paths.slice(0,paths.length>1?paths.length-1:1);var lev,j;for(j=0;j1){lev=checkPath(contains,paths[paths.length-1],ty);if(lev>MAX_LEV_DISTANCE){continue}else if(lev>0){lev_add=lev/10}}returned=MAX_LEV_DISTANCE+1;in_args=MAX_LEV_DISTANCE+1;var index=-1;lev=MAX_LEV_DISTANCE+1;fullId=ty.id;if(searchWords[j].indexOf(split[i])>-1||searchWords[j].indexOf(val)>-1||ty.normalizedName.indexOf(val)>-1){if(typePassesFilter(typeFilter,ty.ty)&&results[fullId]===undefined){index=ty.normalizedName.indexOf(val)}}if((lev=levenshtein(searchWords[j],val))<=MAX_LEV_DISTANCE){if(typePassesFilter(typeFilter,ty.ty)){lev+=1}else{lev=MAX_LEV_DISTANCE+1}}in_args=findArg(ty,valGenerics,false,typeFilter);returned=checkReturned(ty,valGenerics,false,typeFilter);lev+=lev_add;if(lev>0&&val.length>3&&searchWords[j].indexOf(val)>-1){if(val.length<6){lev-=1}else{lev=0}}addIntoResults(false,results_in_args,fullId,j,index,in_args);addIntoResults(false,results_returned,fullId,j,index,returned);if(typePassesFilter(typeFilter,ty.ty)&&(index!==-1||lev<=MAX_LEV_DISTANCE)){if(index!==-1&&paths.length<2){lev=0}addIntoResults(false,results,fullId,j,index,lev)}}}var ret={"in_args":sortResults(results_in_args,true),"returned":sortResults(results_returned,true),"others":sortResults(results,false),};handleAliases(ret,query,filterCrates);return ret}function validateResult(name,path,keys,parent){for(var i=0,len=keys.length;i-1||path.indexOf(keys[i])>-1||(parent!==undefined&&parent.name!==undefined&&parent.name.toLowerCase().indexOf(keys[i])>-1)||levenshtein(name,keys[i])<=MAX_LEV_DISTANCE)){return false}}return true}function getQuery(raw){var matches,type="",query;query=raw;matches=query.match(/^(fn|mod|struct|enum|trait|type|const|macro)\s*:\s*/i);if(matches){type=matches[1].replace(/^const$/,"constant");query=query.substring(matches[0].length)}return{raw:raw,query:query,type:type,id:query+type}}function nextTab(direction){var next=(searchState.currentTab+direction+3)%searchState.focusedByTab.length;searchState.focusedByTab[searchState.currentTab]=document.activeElement;printTab(next);focusSearchResult()}function focusSearchResult(){var target=searchState.focusedByTab[searchState.currentTab]||document.querySelectorAll(".search-results.active a").item(0)||document.querySelectorAll("#titles > button").item(searchState.currentTab);if(target){target.focus()}}function buildHrefAndPath(item){var displayPath;var href;var type=itemTypes[item.ty];var name=item.name;var path=item.path;if(type==="mod"){displayPath=path+"::";href=window.rootPath+path.replace(/::/g,"/")+"/"+name+"/index.html"}else if(type==="primitive"||type==="keyword"){displayPath="";href=window.rootPath+path.replace(/::/g,"/")+"/"+type+"."+name+".html"}else if(type==="externcrate"){displayPath="";href=window.rootPath+name+"/index.html"}else if(item.parent!==undefined){var myparent=item.parent;var anchor="#"+type+"."+name;var parentType=itemTypes[myparent.ty];var pageType=parentType;var pageName=myparent.name;if(parentType==="primitive"){displayPath=myparent.name+"::"}else if(type==="structfield"&&parentType==="variant"){var enumNameIdx=item.path.lastIndexOf("::");var enumName=item.path.substr(enumNameIdx+2);path=item.path.substr(0,enumNameIdx);displayPath=path+"::"+enumName+"::"+myparent.name+"::";anchor="#variant."+myparent.name+".field."+name;pageType="enum";pageName=enumName}else{displayPath=path+"::"+myparent.name+"::"}href=window.rootPath+path.replace(/::/g,"/")+"/"+pageType+"."+pageName+".html"+anchor}else{displayPath=item.path+"::";href=window.rootPath+item.path.replace(/::/g,"/")+"/"+type+"."+name+".html"}return[displayPath,href]}function escape(content){var h1=document.createElement("h1");h1.textContent=content;return h1.innerHTML}function pathSplitter(path){var tmp=""+path.replace(/::/g,"::");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}function addTab(array,query,display){var extraClass="";if(display===true){extraClass=" active"}var output=document.createElement("div");var length=0;if(array.length>0){output.className="search-results "+extraClass;array.forEach(function(item){var name=item.name;var type=itemTypes[item.ty];length+=1;var extra="";if(type==="primitive"){extra=" (primitive type)"}else if(type==="keyword"){extra=" (keyword)"}var link=document.createElement("a");link.className="result-"+type;link.href=item.href;var wrapper=document.createElement("div");var resultName=document.createElement("div");resultName.className="result-name";if(item.is_alias){var alias=document.createElement("span");alias.className="alias";var bold=document.createElement("b");bold.innerText=item.alias;alias.appendChild(bold);alias.insertAdjacentHTML("beforeend"," - see ");resultName.appendChild(alias)}resultName.insertAdjacentHTML("beforeend",item.displayPath+""+name+extra+"");wrapper.appendChild(resultName);var description=document.createElement("div");description.className="desc";var spanDesc=document.createElement("span");spanDesc.insertAdjacentHTML("beforeend",item.desc);description.appendChild(spanDesc);wrapper.appendChild(description);link.appendChild(wrapper);output.appendChild(link)})}else{output.className="search-failed"+extraClass;output.innerHTML="No results :(
"+"Try on DuckDuckGo?

"+"Or try looking in one of these:"}return[output,length]}function makeTabHeader(tabNb,text,nbElems){if(searchState.currentTab===tabNb){return""}return""}function showResults(results,go_to_first,filterCrates){var search=searchState.outputElement();if(go_to_first||(results.others.length===1&&getSettingValue("go-to-only-result")==="true"&&(!search.firstChild||search.firstChild.innerText!==searchState.loadingText))){var elem=document.createElement("a");elem.href=results.others[0].href;removeClass(elem,"active");document.body.appendChild(elem);elem.click();return}var query=getQuery(searchState.input.value);currentResults=query.id;var ret_others=addTab(results.others,query,true);var ret_in_args=addTab(results.in_args,query,false);var ret_returned=addTab(results.returned,query,false);var currentTab=searchState.currentTab;if((currentTab===0&&ret_others[1]===0)||(currentTab===1&&ret_in_args[1]===0)||(currentTab===2&&ret_returned[1]===0)){if(ret_others[1]!==0){currentTab=0}else if(ret_in_args[1]!==0){currentTab=1}else if(ret_returned[1]!==0){currentTab=2}}let crates="";if(window.ALL_CRATES.length>1){crates=` in `}var output=`
-

Results for ${escape(query.query)} `+(query.type?" (type: "+escape(query.type)+")":"")+"

"+crates+`
`+makeTabHeader(0,"In Names",ret_others[1])+makeTabHeader(1,"In Parameters",ret_in_args[1])+makeTabHeader(2,"In Return Types",ret_returned[1])+"
";var resultsElem=document.createElement("div");resultsElem.id="results";resultsElem.appendChild(ret_others[0]);resultsElem.appendChild(ret_in_args[0]);resultsElem.appendChild(ret_returned[0]);search.innerHTML=output;let crateSearch=document.getElementById("crate-search");if(crateSearch){crateSearch.addEventListener("input",updateCrate)}search.appendChild(resultsElem);searchState.focusedByTab=[null,null,null];searchState.showResults(search);var elems=document.getElementById("titles").childNodes;elems[0].onclick=function(){printTab(0)};elems[1].onclick=function(){printTab(1)};elems[2].onclick=function(){printTab(2)};printTab(currentTab)}function execSearch(query,searchWords,filterCrates){query=query.raw.trim();var results={"in_args":[],"returned":[],"others":[],};if(query.length!==0){var tmp=execQuery(getQuery(query),searchWords,filterCrates);results.in_args.push(tmp.in_args);results.returned.push(tmp.returned);results.others.push(tmp.others)}return{"in_args":results.in_args[0],"returned":results.returned[0],"others":results.others[0],}}function search(e,forced){var params=searchState.getQueryStringParams();var query=getQuery(searchState.input.value.trim());if(e){e.preventDefault()}if(query.query.length===0){return}if(!forced&&query.id===currentResults){if(query.query.length>0){putBackSearch()}return}var filterCrates=getFilterCrates();if(filterCrates===null&¶ms["filter-crate"]!==undefined){filterCrates=params["filter-crate"]}searchState.title="Results for "+query.query+" - Rust";if(searchState.browserSupportsHistoryApi()){var newURL=buildUrl(query.raw,filterCrates);if(!history.state&&!params.search){history.pushState(null,"",newURL)}else{history.replaceState(null,"",newURL)}}showResults(execSearch(query,searchWords,filterCrates),params["go_to_first"],filterCrates)}function buildIndex(rawSearchIndex){searchIndex=[];var searchWords=[];var i,word;var currentIndex=0;var id=0;for(var crate in rawSearchIndex){if(!hasOwnPropertyRustdoc(rawSearchIndex,crate)){continue}var crateSize=0;var crateCorpus=rawSearchIndex[crate];searchWords.push(crate);var crateRow={crate:crate,ty:1,name:crate,path:"",desc:crateCorpus.doc,parent:undefined,type:null,id:id,normalizedName:crate.indexOf("_")===-1?crate:crate.replace(/_/g,""),};id+=1;searchIndex.push(crateRow);currentIndex+=1;var itemTypes=crateCorpus.t;var itemNames=crateCorpus.n;var itemPaths=crateCorpus.q;var itemDescs=crateCorpus.d;var itemParentIdxs=crateCorpus.i;var itemFunctionSearchTypes=crateCorpus.f;var paths=crateCorpus.p;var aliases=crateCorpus.a;var len=paths.length;for(i=0;i0?paths[itemParentIdxs[i]-1]:undefined,type:itemFunctionSearchTypes[i],id:id,normalizedName:word.indexOf("_")===-1?word:word.replace(/_/g,""),};id+=1;searchIndex.push(row);lastPath=row.path;crateSize+=1}if(aliases){ALIASES[crate]={};var j,local_aliases;for(var alias_name in aliases){if(!hasOwnPropertyRustdoc(aliases,alias_name)){continue}if(!hasOwnPropertyRustdoc(ALIASES[crate],alias_name)){ALIASES[crate][alias_name]=[]}local_aliases=aliases[alias_name];for(j=0,len=local_aliases.length;j0){searchState.input.value=params.search;search(e)}else{searchState.input.value="";searchState.hideResults()}})}window.onpageshow=function(){var qSearch=searchState.getQueryStringParams().search;if(searchState.input.value===""&&qSearch){searchState.input.value=qSearch}search()}}function updateCrate(ev){if(ev.target.value==="All crates"){var params=searchState.getQueryStringParams();var query=searchState.input.value.trim();if(!history.state&&!params.search){history.pushState(null,"",buildUrl(query,null))}else{history.replaceState(null,"",buildUrl(query,null))}}currentResults=null;search(undefined,true)}searchWords=buildIndex(rawSearchIndex);registerSearchEvents();function runSearchIfNeeded(){if(searchState.getQueryStringParams().search){search()}}runSearchIfNeeded()};if(window.searchIndex!==undefined){initSearch(window.searchIndex)}})() \ No newline at end of file diff --git a/docs/doc/settings.css b/docs/doc/settings.css deleted file mode 100644 index 35df7bc..0000000 --- a/docs/doc/settings.css +++ /dev/null @@ -1 +0,0 @@ -.setting-line{margin:0.6em 0 0.6em 0.3em;position:relative;}.setting-line>div{display:inline-block;vertical-align:top;font-size:17px;padding-top:2px;}.setting-line>.title{font-size:19px;width:100%;max-width:none;border-bottom:1px solid;}.setting-line .radio-line,.setting-line .choices{display:flex;flex-wrap:wrap;}.setting-line .radio-line .setting-name{flex-grow:1;margin-top:auto;margin-bottom:auto;}.setting-line .radio-line input{margin-right:0.3em;}.radio-line .choice{border-radius:0.1em;border:1px solid;margin-left:0.5em;margin-top:0.1em;margin-bottom:0.1em;min-width:3.8em;padding:0.3em;}.toggle{position:relative;display:inline-block;width:45px;height:27px;margin-right:20px;}.toggle input{opacity:0;position:absolute;}.select-wrapper{float:right;position:relative;height:27px;min-width:25%;}.select-wrapper select{appearance:none;-moz-appearance:none;-webkit-appearance:none;background:none;border:2px solid #ccc;padding-right:28px;width:100%;}.select-wrapper img{pointer-events:none;position:absolute;right:0;bottom:0;background:#ccc;height:100%;width:28px;padding:0px 4px;}.select-wrapper select option{color:initial;}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:.3s;transition:.3s;}.slider:before{position:absolute;content:"";height:19px;width:19px;left:4px;bottom:4px;background-color:white;-webkit-transition:.3s;transition:.3s;}input:checked+.slider{background-color:#2196F3;}input:focus+.slider{box-shadow:0 0 0 2px #0a84ff,0 0 0 6px rgba(10,132,255,0.3);}input:checked+.slider:before{-webkit-transform:translateX(19px);-ms-transform:translateX(19px);transform:translateX(19px);}.setting-line>.sub-settings{padding-left:42px;width:100%;display:block;} \ No newline at end of file diff --git a/docs/doc/settings.html b/docs/doc/settings.html index b04fccb..95d67de 100644 --- a/docs/doc/settings.html +++ b/docs/doc/settings.html @@ -1,17 +1 @@ -Rustdoc settings - -
-

Rustdoc settings

Back
Use system theme
Theme
Preferred light theme
Preferred dark theme
Auto-hide item contents for large items.
Auto-hide item methods' documentation
Auto-hide trait implementation documentation
Directly go to item in search if there is only one result
Show line numbers on code examples
Disable keyboard shortcuts
- \ No newline at end of file +Rustdoc settings

Rustdoc settings

Back
\ No newline at end of file diff --git a/docs/doc/settings.js b/docs/doc/settings.js deleted file mode 100644 index 8047189..0000000 --- a/docs/doc/settings.js +++ /dev/null @@ -1 +0,0 @@ -(function(){function changeSetting(settingName,value){updateLocalStorage(settingName,value);switch(settingName){case"theme":case"preferred-dark-theme":case"preferred-light-theme":case"use-system-theme":updateSystemTheme();updateLightAndDark();break}}function handleKey(ev){if(ev.ctrlKey||ev.altKey||ev.metaKey){return}switch(getVirtualKey(ev)){case"Enter":case"Return":case"Space":ev.target.checked=!ev.target.checked;ev.preventDefault();break}}function showLightAndDark(){addClass(document.getElementById("theme").parentElement,"hidden");removeClass(document.getElementById("preferred-light-theme").parentElement,"hidden");removeClass(document.getElementById("preferred-dark-theme").parentElement,"hidden")}function hideLightAndDark(){addClass(document.getElementById("preferred-light-theme").parentElement,"hidden");addClass(document.getElementById("preferred-dark-theme").parentElement,"hidden");removeClass(document.getElementById("theme").parentElement,"hidden")}function updateLightAndDark(){if(getSettingValue("use-system-theme")!=="false"){showLightAndDark()}else{hideLightAndDark()}}function setEvents(){updateLightAndDark();onEachLazy(document.getElementsByClassName("slider"),function(elem){var toggle=elem.previousElementSibling;var settingId=toggle.id;var settingValue=getSettingValue(settingId);if(settingValue!==null){toggle.checked=settingValue==="true"}toggle.onchange=function(){changeSetting(this.id,this.checked)};toggle.onkeyup=handleKey;toggle.onkeyrelease=handleKey});onEachLazy(document.getElementsByClassName("select-wrapper"),function(elem){var select=elem.getElementsByTagName("select")[0];var settingId=select.id;var settingValue=getSettingValue(settingId);if(settingValue!==null){select.value=settingValue}select.onchange=function(){changeSetting(this.id,this.value)}});onEachLazy(document.querySelectorAll("input[type=\"radio\"]"),function(elem){const settingId=elem.name;const settingValue=getSettingValue(settingId);if(settingValue!==null&&settingValue!=="null"){elem.checked=settingValue===elem.value}elem.addEventListener("change",function(ev){changeSetting(ev.target.name,ev.target.value)})});document.getElementById("back").addEventListener("click",function(){history.back()})}window.addEventListener("DOMContentLoaded",setEvents)})() \ No newline at end of file diff --git a/docs/doc/source-files.js b/docs/doc/source-files.js index b3924f0..2559b6d 100644 --- a/docs/doc/source-files.js +++ b/docs/doc/source-files.js @@ -1,3 +1,4 @@ -var N = null;var sourcesIndex = {}; -sourcesIndex["ubits"] = {"name":"","files":["lib.rs"]}; +var sourcesIndex = JSON.parse('{\ +"ubits":["",[],["lib.rs"]]\ +}'); createSourceSidebar(); diff --git a/docs/doc/source-script.js b/docs/doc/source-script.js deleted file mode 100644 index e01a7fe..0000000 --- a/docs/doc/source-script.js +++ /dev/null @@ -1 +0,0 @@ -(function(){function getCurrentFilePath(){var parts=window.location.pathname.split("/");var rootPathParts=window.rootPath.split("/");for(var i=0,len=rootPathParts.length;i"){sidebar.classList.add("expanded");child.innerText="<";updateLocalStorage("source-sidebar-show","true")}else{sidebar.classList.remove("expanded");child.innerText=">";updateLocalStorage("source-sidebar-show","false")}}function createSidebarToggle(){var sidebarToggle=document.createElement("div");sidebarToggle.id="sidebar-toggle";sidebarToggle.onclick=toggleSidebar;var inner=document.createElement("div");if(getCurrentValue("source-sidebar-show")==="true"){inner.innerText="<"}else{inner.innerText=">"}sidebarToggle.appendChild(inner);return sidebarToggle}function createSourceSidebar(){if(!window.rootPath.endsWith("/")){window.rootPath+="/"}var container=document.querySelector("nav.sidebar");var sidebarToggle=createSidebarToggle();container.insertBefore(sidebarToggle,container.firstChild);var sidebar=document.createElement("div");sidebar.id="source-sidebar";if(getCurrentValue("source-sidebar-show")!=="true"){container.classList.remove("expanded")}else{container.classList.add("expanded")}var currentFile=getCurrentFilePath();var hasFoundFile=false;var title=document.createElement("div");title.className="title";title.innerText="Files";sidebar.appendChild(title);Object.keys(sourcesIndex).forEach(function(key){sourcesIndex[key].name=key;hasFoundFile=createDirEntry(sourcesIndex[key],sidebar,"",currentFile,hasFoundFile)});container.appendChild(sidebar);var selected_elem=sidebar.getElementsByClassName("selected")[0];if(typeof selected_elem!=="undefined"){selected_elem.focus()}}var lineNumbersRegex=/^#?(\d+)(?:-(\d+))?$/;function highlightSourceLines(scrollTo,match){if(typeof match==="undefined"){match=window.location.hash.match(lineNumbersRegex)}if(!match){return}var from=parseInt(match[1],10);var to=from;if(typeof match[2]!=="undefined"){to=parseInt(match[2],10)}if(tocur_line_id){var tmp=prev_line_id;prev_line_id=cur_line_id;cur_line_id=tmp}set_fragment(prev_line_id+"-"+cur_line_id)}else{prev_line_id=cur_line_id;set_fragment(cur_line_id)}}}());window.addEventListener("hashchange",function(){var match=window.location.hash.match(lineNumbersRegex);if(match){return highlightSourceLines(false,match)}});onEachLazy(document.getElementsByClassName("line-numbers"),function(el){el.addEventListener("click",handleSourceHighlight)});highlightSourceLines(true);window.createSourceSidebar=createSourceSidebar})() \ No newline at end of file diff --git a/docs/doc/src/ubits/lib.rs.html b/docs/doc/src/ubits/lib.rs.html index cb7510e..abf6050 100644 --- a/docs/doc/src/ubits/lib.rs.html +++ b/docs/doc/src/ubits/lib.rs.html @@ -1,5048 +1,5043 @@ -lib.rs - source - -
   1
-   2
-   3
-   4
-   5
-   6
-   7
-   8
-   9
-  10
-  11
-  12
-  13
-  14
-  15
-  16
-  17
-  18
-  19
-  20
-  21
-  22
-  23
-  24
-  25
-  26
-  27
-  28
-  29
-  30
-  31
-  32
-  33
-  34
-  35
-  36
-  37
-  38
-  39
-  40
-  41
-  42
-  43
-  44
-  45
-  46
-  47
-  48
-  49
-  50
-  51
-  52
-  53
-  54
-  55
-  56
-  57
-  58
-  59
-  60
-  61
-  62
-  63
-  64
-  65
-  66
-  67
-  68
-  69
-  70
-  71
-  72
-  73
-  74
-  75
-  76
-  77
-  78
-  79
-  80
-  81
-  82
-  83
-  84
-  85
-  86
-  87
-  88
-  89
-  90
-  91
-  92
-  93
-  94
-  95
-  96
-  97
-  98
-  99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
-1000
-1001
-1002
-1003
-1004
-1005
-1006
-1007
-1008
-1009
-1010
-1011
-1012
-1013
-1014
-1015
-1016
-1017
-1018
-1019
-1020
-1021
-1022
-1023
-1024
-1025
-1026
-1027
-1028
-1029
-1030
-1031
-1032
-1033
-1034
-1035
-1036
-1037
-1038
-1039
-1040
-1041
-1042
-1043
-1044
-1045
-1046
-1047
-1048
-1049
-1050
-1051
-1052
-1053
-1054
-1055
-1056
-1057
-1058
-1059
-1060
-1061
-1062
-1063
-1064
-1065
-1066
-1067
-1068
-1069
-1070
-1071
-1072
-1073
-1074
-1075
-1076
-1077
-1078
-1079
-1080
-1081
-1082
-1083
-1084
-1085
-1086
-1087
-1088
-1089
-1090
-1091
-1092
-1093
-1094
-1095
-1096
-1097
-1098
-1099
-1100
-1101
-1102
-1103
-1104
-1105
-1106
-1107
-1108
-1109
-1110
-1111
-1112
-1113
-1114
-1115
-1116
-1117
-1118
-1119
-1120
-1121
-1122
-1123
-1124
-1125
-1126
-1127
-1128
-1129
-1130
-1131
-1132
-1133
-1134
-1135
-1136
-1137
-1138
-1139
-1140
-1141
-1142
-1143
-1144
-1145
-1146
-1147
-1148
-1149
-1150
-1151
-1152
-1153
-1154
-1155
-1156
-1157
-1158
-1159
-1160
-1161
-1162
-1163
-1164
-1165
-1166
-1167
-1168
-1169
-1170
-1171
-1172
-1173
-1174
-1175
-1176
-1177
-1178
-1179
-1180
-1181
-1182
-1183
-1184
-1185
-1186
-1187
-1188
-1189
-1190
-1191
-1192
-1193
-1194
-1195
-1196
-1197
-1198
-1199
-1200
-1201
-1202
-1203
-1204
-1205
-1206
-1207
-1208
-1209
-1210
-1211
-1212
-1213
-1214
-1215
-1216
-1217
-1218
-1219
-1220
-1221
-1222
-1223
-1224
-1225
-1226
-1227
-1228
-1229
-1230
-1231
-1232
-1233
-1234
-1235
-1236
-1237
-1238
-1239
-1240
-1241
-1242
-1243
-1244
-1245
-1246
-1247
-1248
-1249
-1250
-1251
-1252
-1253
-1254
-1255
-1256
-1257
-1258
-1259
-1260
-1261
-1262
-1263
-1264
-1265
-1266
-1267
-1268
-1269
-1270
-1271
-1272
-1273
-1274
-1275
-1276
-1277
-1278
-1279
-1280
-1281
-1282
-1283
-1284
-1285
-1286
-1287
-1288
-1289
-1290
-1291
-1292
-1293
-1294
-1295
-1296
-1297
-1298
-1299
-1300
-1301
-1302
-1303
-1304
-1305
-1306
-1307
-1308
-1309
-1310
-1311
-1312
-1313
-1314
-1315
-1316
-1317
-1318
-1319
-1320
-1321
-1322
-1323
-1324
-1325
-1326
-1327
-1328
-1329
-1330
-1331
-1332
-1333
-1334
-1335
-1336
-1337
-1338
-1339
-1340
-1341
-1342
-1343
-1344
-1345
-1346
-1347
-1348
-1349
-1350
-1351
-1352
-1353
-1354
-1355
-1356
-1357
-1358
-1359
-1360
-1361
-1362
-1363
-1364
-1365
-1366
-1367
-1368
-1369
-1370
-1371
-1372
-1373
-1374
-1375
-1376
-1377
-1378
-1379
-1380
-1381
-1382
-1383
-1384
-1385
-1386
-1387
-1388
-1389
-1390
-1391
-1392
-1393
-1394
-1395
-1396
-1397
-1398
-1399
-1400
-1401
-1402
-1403
-1404
-1405
-1406
-1407
-1408
-1409
-1410
-1411
-1412
-1413
-1414
-1415
-1416
-1417
-1418
-1419
-1420
-1421
-1422
-1423
-1424
-1425
-1426
-1427
-1428
-1429
-1430
-1431
-1432
-1433
-1434
-1435
-1436
-1437
-1438
-1439
-1440
-1441
-1442
-1443
-1444
-1445
-1446
-1447
-1448
-1449
-1450
-1451
-1452
-1453
-1454
-1455
-1456
-1457
-1458
-1459
-1460
-1461
-1462
-1463
-1464
-1465
-1466
-1467
-1468
-1469
-1470
-1471
-1472
-1473
-1474
-1475
-1476
-1477
-1478
-1479
-1480
-1481
-1482
-1483
-1484
-1485
-1486
-1487
-1488
-1489
-1490
-1491
-1492
-1493
-1494
-1495
-1496
-1497
-1498
-1499
-1500
-1501
-1502
-1503
-1504
-1505
-1506
-1507
-1508
-1509
-1510
-1511
-1512
-1513
-1514
-1515
-1516
-1517
-1518
-1519
-1520
-1521
-1522
-1523
-1524
-1525
-1526
-1527
-1528
-1529
-1530
-1531
-1532
-1533
-1534
-1535
-1536
-1537
-1538
-1539
-1540
-1541
-1542
-1543
-1544
-1545
-1546
-1547
-1548
-1549
-1550
-1551
-1552
-1553
-1554
-1555
-1556
-1557
-1558
-1559
-1560
-1561
-1562
-1563
-1564
-1565
-1566
-1567
-1568
-1569
-1570
-1571
-1572
-1573
-1574
-1575
-1576
-1577
-1578
-1579
-1580
-1581
-1582
-1583
-1584
-1585
-1586
-1587
-1588
-1589
-1590
-1591
-1592
-1593
-1594
-1595
-1596
-1597
-1598
-1599
-1600
-1601
-1602
-1603
-1604
-1605
-1606
-1607
-1608
-1609
-1610
-1611
-1612
-1613
-1614
-1615
-1616
-1617
-1618
-1619
-1620
-1621
-1622
-1623
-1624
-1625
-1626
-1627
-1628
-1629
-1630
-1631
-1632
-1633
-1634
-1635
-1636
-1637
-1638
-1639
-1640
-1641
-1642
-1643
-1644
-1645
-1646
-1647
-1648
-1649
-1650
-1651
-1652
-1653
-1654
-1655
-1656
-1657
-1658
-1659
-1660
-1661
-1662
-1663
-1664
-1665
-1666
-1667
-1668
-1669
-1670
-1671
-1672
-1673
-1674
-1675
-1676
-1677
-1678
-1679
-1680
-1681
-1682
-1683
-1684
-1685
-1686
-1687
-1688
-1689
-1690
-1691
-1692
-1693
-1694
-1695
-1696
-1697
-1698
-1699
-1700
-1701
-1702
-1703
-1704
-1705
-1706
-1707
-1708
-1709
-1710
-1711
-1712
-1713
-1714
-1715
-1716
-1717
-1718
-1719
-1720
-1721
-1722
-1723
-1724
-1725
-1726
-1727
-1728
-1729
-1730
-1731
-1732
-1733
-1734
-1735
-1736
-1737
-1738
-1739
-1740
-1741
-1742
-1743
-1744
-1745
-1746
-1747
-1748
-1749
-1750
-1751
-1752
-1753
-1754
-1755
-1756
-1757
-1758
-1759
-1760
-1761
-1762
-1763
-1764
-1765
-1766
-1767
-1768
-1769
-1770
-1771
-1772
-1773
-1774
-1775
-1776
-1777
-1778
-1779
-1780
-1781
-1782
-1783
-1784
-1785
-1786
-1787
-1788
-1789
-1790
-1791
-1792
-1793
-1794
-1795
-1796
-1797
-1798
-1799
-1800
-1801
-1802
-1803
-1804
-1805
-1806
-1807
-1808
-1809
-1810
-1811
-1812
-1813
-1814
-1815
-1816
-1817
-1818
-1819
-1820
-1821
-1822
-1823
-1824
-1825
-1826
-1827
-1828
-1829
-1830
-1831
-1832
-1833
-1834
-1835
-1836
-1837
-1838
-1839
-1840
-1841
-1842
-1843
-1844
-1845
-1846
-1847
-1848
-1849
-1850
-1851
-1852
-1853
-1854
-1855
-1856
-1857
-1858
-1859
-1860
-1861
-1862
-1863
-1864
-1865
-1866
-1867
-1868
-1869
-1870
-1871
-1872
-1873
-1874
-1875
-1876
-1877
-1878
-1879
-1880
-1881
-1882
-1883
-1884
-1885
-1886
-1887
-1888
-1889
-1890
-1891
-1892
-1893
-1894
-1895
-1896
-1897
-1898
-1899
-1900
-1901
-1902
-1903
-1904
-1905
-1906
-1907
-1908
-1909
-1910
-1911
-1912
-1913
-1914
-1915
-1916
-1917
-1918
-1919
-1920
-1921
-1922
-1923
-1924
-1925
-1926
-1927
-1928
-1929
-1930
-1931
-1932
-1933
-1934
-1935
-1936
-1937
-1938
-1939
-1940
-1941
-1942
-1943
-1944
-1945
-1946
-1947
-1948
-1949
-1950
-1951
-1952
-1953
-1954
-1955
-1956
-1957
-1958
-1959
-1960
-1961
-1962
-1963
-1964
-1965
-1966
-1967
-1968
-1969
-1970
-1971
-1972
-1973
-1974
-1975
-1976
-1977
-1978
-1979
-1980
-1981
-1982
-1983
-1984
-1985
-1986
-1987
-1988
-1989
-1990
-1991
-1992
-1993
-1994
-1995
-1996
-1997
-1998
-1999
-2000
-2001
-2002
-2003
-2004
-2005
-2006
-2007
-2008
-2009
-2010
-2011
-2012
-2013
-2014
-2015
-2016
-2017
-2018
-2019
-2020
-2021
-2022
-2023
-2024
-2025
-2026
-2027
-2028
-2029
-2030
-2031
-2032
-2033
-2034
-2035
-2036
-2037
-2038
-2039
-2040
-2041
-2042
-2043
-2044
-2045
-2046
-2047
-2048
-2049
-2050
-2051
-2052
-2053
-2054
-2055
-2056
-2057
-2058
-2059
-2060
-2061
-2062
-2063
-2064
-2065
-2066
-2067
-2068
-2069
-2070
-2071
-2072
-2073
-2074
-2075
-2076
-2077
-2078
-2079
-2080
-2081
-2082
-2083
-2084
-2085
-2086
-2087
-2088
-2089
-2090
-2091
-2092
-2093
-2094
-2095
-2096
-2097
-2098
-2099
-2100
-2101
-2102
-2103
-2104
-2105
-2106
-2107
-2108
-2109
-2110
-2111
-2112
-2113
-2114
-2115
-2116
-2117
-2118
-2119
-2120
-2121
-2122
-2123
-2124
-2125
-2126
-2127
-2128
-2129
-2130
-2131
-2132
-2133
-2134
-2135
-2136
-2137
-2138
-2139
-2140
-2141
-2142
-2143
-2144
-2145
-2146
-2147
-2148
-2149
-2150
-2151
-2152
-2153
-2154
-2155
-2156
-2157
-2158
-2159
-2160
-2161
-2162
-2163
-2164
-2165
-2166
-2167
-2168
-2169
-2170
-2171
-2172
-2173
-2174
-2175
-2176
-2177
-2178
-2179
-2180
-2181
-2182
-2183
-2184
-2185
-2186
-2187
-2188
-2189
-2190
-2191
-2192
-2193
-2194
-2195
-2196
-2197
-2198
-2199
-2200
-2201
-2202
-2203
-2204
-2205
-2206
-2207
-2208
-2209
-2210
-2211
-2212
-2213
-2214
-2215
-2216
-2217
-2218
-2219
-2220
-2221
-2222
-2223
-2224
-2225
-2226
-2227
-2228
-2229
-2230
-2231
-2232
-2233
-2234
-2235
-2236
-2237
-2238
-2239
-2240
-2241
-2242
-2243
-2244
-2245
-2246
-2247
-2248
-2249
-2250
-2251
-2252
-2253
-2254
-2255
-2256
-2257
-2258
-2259
-2260
-2261
-2262
-2263
-2264
-2265
-2266
-2267
-2268
-2269
-2270
-2271
-2272
-2273
-2274
-2275
-2276
-2277
-2278
-2279
-2280
-2281
-2282
-2283
-2284
-2285
-2286
-2287
-2288
-2289
-2290
-2291
-2292
-2293
-2294
-2295
-2296
-2297
-2298
-2299
-2300
-2301
-2302
-2303
-2304
-2305
-2306
-2307
-2308
-2309
-2310
-2311
-2312
-2313
-2314
-2315
-2316
-2317
-2318
-2319
-2320
-2321
-2322
-2323
-2324
-2325
-2326
-2327
-2328
-2329
-2330
-2331
-2332
-2333
-2334
-2335
-2336
-2337
-2338
-2339
-2340
-2341
-2342
-2343
-2344
-2345
-2346
-2347
-2348
-2349
-2350
-2351
-2352
-2353
-2354
-2355
-2356
-2357
-2358
-2359
-2360
-2361
-2362
-2363
-2364
-2365
-2366
-2367
-2368
-2369
-2370
-2371
-2372
-2373
-2374
-2375
-2376
-2377
-2378
-2379
-2380
-2381
-2382
-2383
-2384
-2385
-2386
-2387
-2388
-2389
-2390
-2391
-2392
-2393
-2394
-2395
-2396
-2397
-2398
-2399
-2400
-2401
-2402
-2403
-2404
-2405
-2406
-2407
-2408
-2409
-2410
-2411
-2412
-2413
-2414
-2415
-2416
-2417
-2418
-2419
-2420
-2421
-2422
-2423
-2424
-2425
-2426
-2427
-2428
-2429
-2430
-2431
-2432
-2433
-2434
-2435
-2436
-2437
-2438
-2439
-2440
-2441
-2442
-2443
-2444
-2445
-2446
-2447
-2448
-2449
-2450
-2451
-2452
-2453
-2454
-2455
-2456
-2457
-2458
-2459
-2460
-2461
-2462
-2463
-2464
-2465
-2466
-2467
-2468
-2469
-2470
-2471
-2472
-2473
-2474
-2475
-2476
-2477
-2478
-2479
-2480
-2481
-2482
-2483
-2484
-2485
-2486
-2487
-2488
-2489
-2490
-2491
-2492
-2493
-2494
-2495
-2496
-2497
-2498
-2499
-2500
-2501
-2502
-2503
-2504
-2505
-2506
-2507
-2508
-2509
-2510
-2511
-2512
-2513
-2514
-2515
-2516
-2517
-2518
-2519
-2520
-2521
-2522
-2523
-2524
-2525
-2526
-2527
-2528
-2529
-2530
-2531
-2532
-2533
-2534
-2535
-2536
-2537
-2538
-2539
-2540
-2541
-2542
-2543
-2544
-2545
-2546
-2547
-2548
-2549
-2550
-2551
-2552
-2553
-2554
-2555
-2556
-2557
-2558
-2559
-2560
-2561
-2562
-2563
-2564
-2565
-2566
-2567
-2568
-2569
-2570
-2571
-2572
-2573
-2574
-2575
-2576
-2577
-2578
-2579
-2580
-2581
-2582
-2583
-2584
-2585
-2586
-2587
-2588
-2589
-2590
-2591
-2592
-2593
-2594
-2595
-2596
-2597
-2598
-2599
-2600
-2601
-2602
-2603
-2604
-2605
-2606
-2607
-2608
-2609
-2610
-2611
-2612
-2613
-2614
-2615
-2616
-2617
-2618
-2619
-2620
-2621
-2622
-2623
-2624
-2625
-2626
-2627
-2628
-2629
-2630
-2631
-2632
-2633
-2634
-2635
-2636
-2637
-2638
-2639
-2640
-2641
-2642
-2643
-2644
-2645
-2646
-2647
-2648
-2649
-2650
-2651
-2652
-2653
-2654
-2655
-2656
-2657
-2658
-2659
-2660
-2661
-2662
-2663
-2664
-2665
-2666
-2667
-2668
-2669
-2670
-2671
-2672
-2673
-2674
-2675
-2676
-2677
-2678
-2679
-2680
-2681
-2682
-2683
-2684
-2685
-2686
-2687
-2688
-2689
-2690
-2691
-2692
-2693
-2694
-2695
-2696
-2697
-2698
-2699
-2700
-2701
-2702
-2703
-2704
-2705
-2706
-2707
-2708
-2709
-2710
-2711
-2712
-2713
-2714
-2715
-2716
-2717
-2718
-2719
-2720
-2721
-2722
-2723
-2724
-2725
-2726
-2727
-2728
-2729
-2730
-2731
-2732
-2733
-2734
-2735
-2736
-2737
-2738
-2739
-2740
-2741
-2742
-2743
-2744
-2745
-2746
-2747
-2748
-2749
-2750
-2751
-2752
-2753
-2754
-2755
-2756
-2757
-2758
-2759
-2760
-2761
-2762
-2763
-2764
-2765
-2766
-2767
-2768
-2769
-2770
-2771
-2772
-2773
-2774
-2775
-2776
-2777
-2778
-2779
-2780
-2781
-2782
-2783
-2784
-2785
-2786
-2787
-2788
-2789
-2790
-2791
-2792
-2793
-2794
-2795
-2796
-2797
-2798
-2799
-2800
-2801
-2802
-2803
-2804
-2805
-2806
-2807
-2808
-2809
-2810
-2811
-2812
-2813
-2814
-2815
-2816
-2817
-2818
-2819
-2820
-2821
-2822
-2823
-2824
-2825
-2826
-2827
-2828
-2829
-2830
-2831
-2832
-2833
-2834
-2835
-2836
-2837
-2838
-2839
-2840
-2841
-2842
-2843
-2844
-2845
-2846
-2847
-2848
-2849
-2850
-2851
-2852
-2853
-2854
-2855
-2856
-2857
-2858
-2859
-2860
-2861
-2862
-2863
-2864
-2865
-2866
-2867
-2868
-2869
-2870
-2871
-2872
-2873
-2874
-2875
-2876
-2877
-2878
-2879
-2880
-2881
-2882
-2883
-2884
-2885
-2886
-2887
-2888
-2889
-2890
-2891
-2892
-2893
-2894
-2895
-2896
-2897
-2898
-2899
-2900
-2901
-2902
-2903
-2904
-2905
-2906
-2907
-2908
-2909
-2910
-2911
-2912
-2913
-2914
-2915
-2916
-2917
-2918
-2919
-2920
-2921
-2922
-2923
-2924
-2925
-2926
-2927
-2928
-2929
-2930
-2931
-2932
-2933
-2934
-2935
-2936
-2937
-2938
-2939
-2940
-2941
-2942
-2943
-2944
-2945
-2946
-2947
-2948
-2949
-2950
-2951
-2952
-2953
-2954
-2955
-2956
-2957
-2958
-2959
-2960
-2961
-2962
-2963
-2964
-2965
-2966
-2967
-2968
-2969
-2970
-2971
-2972
-2973
-2974
-2975
-2976
-2977
-2978
-2979
-2980
-2981
-2982
-2983
-2984
-2985
-2986
-2987
-2988
-2989
-2990
-2991
-2992
-2993
-2994
-2995
-2996
-2997
-2998
-2999
-3000
-3001
-3002
-3003
-3004
-3005
-3006
-3007
-3008
-3009
-3010
-3011
-3012
-3013
-3014
-3015
-3016
-3017
-3018
-3019
-3020
-3021
-3022
-3023
-3024
-3025
-3026
-3027
-3028
-3029
-3030
-3031
-3032
-3033
-3034
-3035
-3036
-3037
-3038
-3039
-3040
-3041
-3042
-3043
-3044
-3045
-3046
-3047
-3048
-3049
-3050
-3051
-3052
-3053
-3054
-3055
-3056
-3057
-3058
-3059
-3060
-3061
-3062
-3063
-3064
-3065
-3066
-3067
-3068
-3069
-3070
-3071
-3072
-3073
-3074
-3075
-3076
-3077
-3078
-3079
-3080
-3081
-3082
-3083
-3084
-3085
-3086
-3087
-3088
-3089
-3090
-3091
-3092
-3093
-3094
-3095
-3096
-3097
-3098
-3099
-3100
-3101
-3102
-3103
-3104
-3105
-3106
-3107
-3108
-3109
-3110
-3111
-3112
-3113
-3114
-3115
-3116
-3117
-3118
-3119
-3120
-3121
-3122
-3123
-3124
-3125
-3126
-3127
-3128
-3129
-3130
-3131
-3132
-3133
-3134
-3135
-3136
-3137
-3138
-3139
-3140
-3141
-3142
-3143
-3144
-3145
-3146
-3147
-3148
-3149
-3150
-3151
-3152
-3153
-3154
-3155
-3156
-3157
-3158
-3159
-3160
-3161
-3162
-3163
-3164
-3165
-3166
-3167
-3168
-3169
-3170
-3171
-3172
-3173
-3174
-3175
-3176
-3177
-3178
-3179
-3180
-3181
-3182
-3183
-3184
-3185
-3186
-3187
-3188
-3189
-3190
-3191
-3192
-3193
-3194
-3195
-3196
-3197
-3198
-3199
-3200
-3201
-3202
-3203
-3204
-3205
-3206
-3207
-3208
-3209
-3210
-3211
-3212
-3213
-3214
-3215
-3216
-3217
-3218
-3219
-3220
-3221
-3222
-3223
-3224
-3225
-3226
-3227
-3228
-3229
-3230
-3231
-3232
-3233
-3234
-3235
-3236
-3237
-3238
-3239
-3240
-3241
-3242
-3243
-3244
-3245
-3246
-3247
-3248
-3249
-3250
-3251
-3252
-3253
-3254
-3255
-3256
-3257
-3258
-3259
-3260
-3261
-3262
-3263
-3264
-3265
-3266
-3267
-3268
-3269
-3270
-3271
-3272
-3273
-3274
-3275
-3276
-3277
-3278
-3279
-3280
-3281
-3282
-3283
-3284
-3285
-3286
-3287
-3288
-3289
-3290
-3291
-3292
-3293
-3294
-3295
-3296
-3297
-3298
-3299
-3300
-3301
-3302
-3303
-3304
-3305
-3306
-3307
-3308
-3309
-3310
-3311
-3312
-3313
-3314
-3315
-3316
-3317
-3318
-3319
-3320
-3321
-3322
-3323
-3324
-3325
-3326
-3327
-3328
-3329
-3330
-3331
-3332
-3333
-3334
-3335
-3336
-3337
-3338
-3339
-3340
-3341
-3342
-3343
-3344
-3345
-3346
-3347
-3348
-3349
-3350
-3351
-3352
-3353
-3354
-3355
-3356
-3357
-3358
-3359
-3360
-3361
-3362
-3363
-3364
-3365
-3366
-3367
-3368
-3369
-3370
-3371
-3372
-3373
-3374
-3375
-3376
-3377
-3378
-3379
-3380
-3381
-3382
-3383
-3384
-3385
-3386
-3387
-3388
-3389
-3390
-3391
-3392
-3393
-3394
-3395
-3396
-3397
-3398
-3399
-3400
-3401
-3402
-3403
-3404
-3405
-3406
-3407
-3408
-3409
-3410
-3411
-3412
-3413
-3414
-3415
-3416
-3417
-3418
-3419
-3420
-3421
-3422
-3423
-3424
-3425
-3426
-3427
-3428
-3429
-3430
-3431
-3432
-3433
-3434
-3435
-3436
-3437
-3438
-3439
-3440
-3441
-3442
-3443
-3444
-3445
-3446
-3447
-3448
-3449
-3450
-3451
-3452
-3453
-3454
-3455
-3456
-3457
-3458
-3459
-3460
-3461
-3462
-3463
-3464
-3465
-3466
-3467
-3468
-3469
-3470
-3471
-3472
-3473
-3474
-3475
-3476
-3477
-3478
-3479
-3480
-3481
-3482
-3483
-3484
-3485
-3486
-3487
-3488
-3489
-3490
-3491
-3492
-3493
-3494
-3495
-3496
-3497
-3498
-3499
-3500
-3501
-3502
-3503
-3504
-3505
-3506
-3507
-3508
-3509
-3510
-3511
-3512
-3513
-3514
-3515
-3516
-3517
-3518
-3519
-3520
-3521
-3522
-3523
-3524
-3525
-3526
-3527
-3528
-3529
-3530
-3531
-3532
-3533
-3534
-3535
-3536
-3537
-3538
-3539
-3540
-3541
-3542
-3543
-3544
-3545
-3546
-3547
-3548
-3549
-3550
-3551
-3552
-3553
-3554
-3555
-3556
-3557
-3558
-3559
-3560
-3561
-3562
-3563
-3564
-3565
-3566
-3567
-3568
-3569
-3570
-3571
-3572
-3573
-3574
-3575
-3576
-3577
-3578
-3579
-3580
-3581
-3582
-3583
-3584
-3585
-3586
-3587
-3588
-3589
-3590
-3591
-3592
-3593
-3594
-3595
-3596
-3597
-3598
-3599
-3600
-3601
-3602
-3603
-3604
-3605
-3606
-3607
-3608
-3609
-3610
-3611
-3612
-3613
-3614
-3615
-3616
-3617
-3618
-3619
-3620
-3621
-3622
-3623
-3624
-3625
-3626
-3627
-3628
-3629
-3630
-3631
-3632
-3633
-3634
-3635
-3636
-3637
-3638
-3639
-3640
-3641
-3642
-3643
-3644
-3645
-3646
-3647
-3648
-3649
-3650
-3651
-3652
-3653
-3654
-3655
-3656
-3657
-3658
-3659
-3660
-3661
-3662
-3663
-3664
-3665
-3666
-3667
-3668
-3669
-3670
-3671
-3672
-3673
-3674
-3675
-3676
-3677
-3678
-3679
-3680
-3681
-3682
-3683
-3684
-3685
-3686
-3687
-3688
-3689
-3690
-3691
-3692
-3693
-3694
-3695
-3696
-3697
-3698
-3699
-3700
-3701
-3702
-3703
-3704
-3705
-3706
-3707
-3708
-3709
-3710
-3711
-3712
-3713
-3714
-3715
-3716
-3717
-3718
-3719
-3720
-3721
-3722
-3723
-3724
-3725
-3726
-3727
-3728
-3729
-3730
-3731
-3732
-3733
-3734
-3735
-3736
-3737
-3738
-3739
-3740
-3741
-3742
-3743
-3744
-3745
-3746
-3747
-3748
-3749
-3750
-3751
-3752
-3753
-3754
-3755
-3756
-3757
-3758
-3759
-3760
-3761
-3762
-3763
-3764
-3765
-3766
-3767
-3768
-3769
-3770
-3771
-3772
-3773
-3774
-3775
-3776
-3777
-3778
-3779
-3780
-3781
-3782
-3783
-3784
-3785
-3786
-3787
-3788
-3789
-3790
-3791
-3792
-3793
-3794
-3795
-3796
-3797
-3798
-3799
-3800
-3801
-3802
-3803
-3804
-3805
-3806
-3807
-3808
-3809
-3810
-3811
-3812
-3813
-3814
-3815
-3816
-3817
-3818
-3819
-3820
-3821
-3822
-3823
-3824
-3825
-3826
-3827
-3828
-3829
-3830
-3831
-3832
-3833
-3834
-3835
-3836
-
//!
-//! [![crates.io](https://img.shields.io/crates/v/ubits.svg)](https://crates.io/crates/ubits)
-//! [![Downloads](https://img.shields.io/crates/d/ubits.svg)](https://crates.io/crates/ubits)
-//! [![Build](https://github.com/manoadamro/ubits/actions/workflows/rust.yml/badge.svg)](https://github.com/manoadamro/ubits/actions/workflows/rust.yml)
-//! [![Docs](https://img.shields.io/docsrs/ubits)](https://manoadamro.github.io/ubits/doc/ubits/)
-//! [![Licence](https://img.shields.io/github/license/manoadamro/ubits)](https://github.com/manoadamro/ubits/blob/main/LICENSE)
-//!
-//! Bit fields and masks for rust!
-//!
-//! Provides a macro for generating [`bit field`](https://en.wikipedia.org/wiki/Bit_field) types
-//! complete with flags and some helpful trait implementations.
-//!
-//! Supports field widths of `8`, `16`, `32`, `64` and `128` bits.
-//!
-//! - [`bitfield`] - macro documentation.
-//! - [`examples`] - examples of the output generated by the [`bitfield`] macro.
-//!
-//! __Note: the example module is only complied with documentation builds
-//! and is not available for importing in the wild.__
-//!
-//!
-//! # Usage
-//!
-//! Generate a bitfield struct with a flag enum...
-//! (The following examples all use this as a definition.)
-//! ```rust
-//! use ubits::bitfield;
-//!
-//!     bitfield! {
-//!         pub u8 ExampleField
-//!         ExampleFlags {
-//!             0 : Flag0,
-//!             1 : Flag1,
-//!             2 : Flag2,
-//!             3 : Flag3,
-//!             4 : Flag4,
-//!             5 : Flag5,
-//!             6 : Flag6,
-//!             7 : Flag7,
-//!         }
-//!     }
-//! ```
-//!
-//! ## Instances
-//!
-//! From integer:
-//! ```rust
-//! # use ubits::bitfield;
-//! #    bitfield! {
-//! #        pub u8 ExampleField
-//! #        ExampleFlags {
-//! #            0 : Flag0,
-//! #            1 : Flag1,
-//! #            2 : Flag2,
-//! #            3 : Flag3,
-//! #            4 : Flag4,
-//! #            5 : Flag5,
-//! #            6 : Flag6,
-//! #            7 : Flag7,
-//! #        }
-//! #    }
-//!
-//! let from_integer = ExampleField(123);
-//! assert_eq!(ExampleField(123), from_integer);
-//! ```
-//!
-//! From a binary string:
-//! ```rust
-//! # use ubits::bitfield;
-//! #    bitfield! {
-//! #        pub u8 ExampleField
-//! #        ExampleFlags {
-//! #            0 : Flag0,
-//! #            1 : Flag1,
-//! #            2 : Flag2,
-//! #            3 : Flag3,
-//! #            4 : Flag4,
-//! #            5 : Flag5,
-//! #            6 : Flag6,
-//! #            7 : Flag7,
-//! #        }
-//! #    }
-//!
-//! let from_binary = ExampleField::from_binary_str("01111011");
-//! assert_eq!(ExampleField(123), from_binary)
-//! ```
-//!
-//! From ones:
-//! ```rust
-//! # use ubits::bitfield;
-//! #    bitfield! {
-//! #        pub u8 ExampleField
-//! #        ExampleFlags {
-//! #            0 : Flag0,
-//! #            1 : Flag1,
-//! #            2 : Flag2,
-//! #            3 : Flag3,
-//! #            4 : Flag4,
-//! #            5 : Flag5,
-//! #            6 : Flag6,
-//! #            7 : Flag7,
-//! #        }
-//! #    }
-//!
-//! let from_ones = ExampleField::ones();
-//! assert_eq!("11111111", from_ones.as_binary());
-//! assert_eq!(255, from_ones.as_integer());
-//! ```
-//!
-//! From zeros:
-//! ```rust
-//! # use ubits::bitfield;
-//! #    bitfield! {
-//! #        pub u8 ExampleField
-//! #        ExampleFlags {
-//! #            0 : Flag0,
-//! #            1 : Flag1,
-//! #            2 : Flag2,
-//! #            3 : Flag3,
-//! #            4 : Flag4,
-//! #            5 : Flag5,
-//! #            6 : Flag6,
-//! #            7 : Flag7,
-//! #        }
-//! #    }
-//!
-//! let from_zeros = ExampleField::zeros();
-//! assert_eq!("00000000", from_zeros.as_binary());
-//! assert_eq!(0, from_zeros.as_integer());
-//! ```
-//!
-//! ### Field Access
-//!
-//! Get bit value by field:
-//! ```rust
-//! # use ubits::bitfield;
-//! #    bitfield! {
-//! #        pub u8 ExampleField
-//! #        ExampleFlags {
-//! #            0 : Flag0,
-//! #            1 : Flag1,
-//! #            2 : Flag2,
-//! #            3 : Flag3,
-//! #            4 : Flag4,
-//! #            5 : Flag5,
-//! #            6 : Flag6,
-//! #            7 : Flag7,
-//! #        }
-//! #    }
-//!
-//! let field = ExampleField::from_binary_str("01010101");
-//! assert!(field.get(ExampleFlags::Flag0));
-//! assert!(!field.get(ExampleFlags::Flag1));
-//! ```
-//!
-//! Get bit value by index:
-//!
-//! ```rust
-//! # use ubits::bitfield;
-//! #    bitfield! {
-//! #        pub u8 ExampleField
-//! #        ExampleFlags {
-//! #            0 : Flag0,
-//! #            1 : Flag1,
-//! #            2 : Flag2,
-//! #            3 : Flag3,
-//! #            4 : Flag4,
-//! #            5 : Flag5,
-//! #            6 : Flag6,
-//! #            7 : Flag7,
-//! #        }
-//! #    }
-//!
-//! let field = ExampleField::from_binary_str("01010101");
-//! assert!(field.get_index(0));
-//! assert!(!field.get_index(1));
-//! ```
-//!
-//! Set bit value by field:
-//!
-//! ```rust
-//! # use ubits::bitfield;
-//! #    bitfield! {
-//! #        pub u8 ExampleField
-//! #        ExampleFlags {
-//! #            0 : Flag0,
-//! #            1 : Flag1,
-//! #            2 : Flag2,
-//! #            3 : Flag3,
-//! #            4 : Flag4,
-//! #            5 : Flag5,
-//! #            6 : Flag6,
-//! #            7 : Flag7,
-//! #        }
-//! #    }
-//!
-//! let mut field = ExampleField::from_binary_str("01010101");
-//! field.set(ExampleFlags::Flag1);
-//! field.set(ExampleFlags::Flag3);
-//! assert_eq!("01011111", field.as_binary());
-//! ```
-//!
-//! Set bit value by index:
-//!
-//! ```rust
-//! # use ubits::bitfield;
-//! #    bitfield! {
-//! #        pub u8 ExampleField
-//! #        ExampleFlags {
-//! #            0 : Flag0,
-//! #            1 : Flag1,
-//! #            2 : Flag2,
-//! #            3 : Flag3,
-//! #            4 : Flag4,
-//! #            5 : Flag5,
-//! #            6 : Flag6,
-//! #            7 : Flag7,
-//! #        }
-//! #    }
-//!
-//! let mut field = ExampleField::from_binary_str("01010101");
-//! field.set_index(1);
-//! field.set_index(3);
-//! assert_eq!("01011111", field.as_binary());
-//! ```
-//!
-//! Clear bit value by field:
-//!
-//! ```rust
-//! # use ubits::bitfield;
-//! #    bitfield! {
-//! #        pub u8 ExampleField
-//! #        ExampleFlags {
-//! #            0 : Flag0,
-//! #            1 : Flag1,
-//! #            2 : Flag2,
-//! #            3 : Flag3,
-//! #            4 : Flag4,
-//! #            5 : Flag5,
-//! #            6 : Flag6,
-//! #            7 : Flag7,
-//! #        }
-//! #    }
-//!
-//! let mut field = ExampleField::from_binary_str("01010101");
-//! field.clear(ExampleFlags::Flag0);
-//! field.clear(ExampleFlags::Flag2);
-//! assert_eq!("01010000", field.as_binary());
-//! ```
-//!
-//! Clear bit value by index:
-//!
-//! ```rust
-//! # use ubits::bitfield;
-//! #    bitfield! {
-//! #        pub u8 ExampleField
-//! #        ExampleFlags {
-//! #            0 : Flag0,
-//! #            1 : Flag1,
-//! #            2 : Flag2,
-//! #            3 : Flag3,
-//! #            4 : Flag4,
-//! #            5 : Flag5,
-//! #            6 : Flag6,
-//! #            7 : Flag7,
-//! #        }
-//! #    }
-//!
-//! let mut field = ExampleField::from_binary_str("01010101");
-//! field.clear_index(0);
-//! field.clear_index(2);
-//! assert_eq!("01010000", field.as_binary());
-//! ```
-//!
-//! Toggle bit value by field:
-//!
-//! ```rust
-//! # use ubits::bitfield;
-//! #    bitfield! {
-//! #        pub u8 ExampleField
-//! #        ExampleFlags {
-//! #            0 : Flag0,
-//! #            1 : Flag1,
-//! #            2 : Flag2,
-//! #            3 : Flag3,
-//! #            4 : Flag4,
-//! #            5 : Flag5,
-//! #            6 : Flag6,
-//! #            7 : Flag7,
-//! #        }
-//! #    }
-//!
-//! let mut field = ExampleField::from_binary_str("01010101");
-//! field.toggle(ExampleFlags::Flag0);
-//! assert_eq!("01010100", field.as_binary());
-//! field.toggle(ExampleFlags::Flag0);
-//! assert_eq!("01010101", field.as_binary());
-//! ```
-//!
-//! Toggle bit value by index:
-//!
-//! ```rust
-//! # use ubits::bitfield;
-//! #    bitfield! {
-//! #        pub u8 ExampleField
-//! #        ExampleFlags {
-//! #            0 : Flag0,
-//! #            1 : Flag1,
-//! #            2 : Flag2,
-//! #            3 : Flag3,
-//! #            4 : Flag4,
-//! #            5 : Flag5,
-//! #            6 : Flag6,
-//! #            7 : Flag7,
-//! #        }
-//! #    }
-//!
-//! let mut field = ExampleField::from_binary_str("01010101");
-//! field.toggle_index(0);
-//! assert_eq!("01010100", field.as_binary());
-//! field.toggle_index(0);
-//! assert_eq!("01010101", field.as_binary());
-//! ```
-//!
-//! ### Named Getters and Setters
-//!
-//! Ubits can generate getter and setter methods for zero or more fields, if a name is provided.
-//!
-//! ```rust
-//! use ubits::bitfield;
-//!    bitfield! {
-//!        pub u8 ExampleField
-//!        ExampleFlags {
-//!            0 : Flag0 : (field_0),  // is_field_0 & set_field_0 & clear_field_0 & toggle_field_0
-//!            1 : Flag1 : (field_1),  // is_field_1 & set_field_1 & clear_field_1 & toggle_field_1
-//!            2 : Flag2,
-//!            3 : Flag3,
-//!            4 : Flag4,
-//!            5 : Flag5,
-//!            6 : Flag6,
-//!            7 : Flag7,
-//!        }
-//!    }
-//!
-//! let mut field = ExampleField::from_binary_str("01010101");
-//! assert_eq!(true, field.is_field_0());
-//! assert_eq!(false, field.is_field_1());
-//!
-//! field.set_field_1();
-//! assert_eq!(true, field.is_field_1());
-//!
-//! field.clear_field_1();
-//! assert_eq!(false, field.is_field_1());
-//!
-//! field.toggle_field_1();
-//! assert_eq!(true, field.is_field_1());
-//! ```
-//!
-//! ### Combinations
-//!
-//! Combine bit fields: <br>
-//! (use `into_combined` to consume self)
-//!
-//! ```rust
-//! # use ubits::bitfield;
-//! #    bitfield! {
-//! #        pub u8 ExampleField
-//! #        ExampleFlags {
-//! #            0 : Flag0,
-//! #            1 : Flag1,
-//! #            2 : Flag2,
-//! #            3 : Flag3,
-//! #            4 : Flag4,
-//! #            5 : Flag5,
-//! #            6 : Flag6,
-//! #            7 : Flag7,
-//! #        }
-//! #    }
-//!
-//! let mut a = ExampleField::from_binary_str("01010101");
-//! let b = ExampleField::from_binary_str("10101010");
-//! assert_eq!("11111111", a.combine(b).as_binary());
-//! ```
-//!
-//! Get the intersection of two bitfields: <br>
-//! (use `into_intersection` to consume self)
-//! ```rust
-//! # use ubits::bitfield;
-//! #    bitfield! {
-//! #        pub u8 ExampleField
-//! #        ExampleFlags {
-//! #            0 : Flag0,
-//! #            1 : Flag1,
-//! #            2 : Flag2,
-//! #            3 : Flag3,
-//! #            4 : Flag4,
-//! #            5 : Flag5,
-//! #            6 : Flag6,
-//! #            7 : Flag7,
-//! #        }
-//! #    }
-//!
-//! let mut a = ExampleField::from_binary_str("11000011");
-//! let b = ExampleField::from_binary_str("01111110");
-//! assert_eq!("01000010", a.intersect(b).as_binary());
-//! ```
-//!
-//! Get the diff of two bitfields: <br>
-//! (use `into_diff` to consume self)
-//!
-//! ```rust
-//! # use ubits::bitfield;
-//! #    bitfield! {
-//! #        pub u8 ExampleField
-//! #        ExampleFlags {
-//! #            0 : Flag0,
-//! #            1 : Flag1,
-//! #            2 : Flag2,
-//! #            3 : Flag3,
-//! #            4 : Flag4,
-//! #            5 : Flag5,
-//! #            6 : Flag6,
-//! #            7 : Flag7,
-//! #        }
-//! #    }
-//!
-//! let mut a = ExampleField::from_binary_str("11000011");
-//! let b = ExampleField::from_binary_str("01100110");
-//! assert_eq!("10100101", a.diff(b).as_binary());
-//! ```
-//!
-//! ### Bitwise
-//!
-//! Both bit field instances and flags use bitwise operators to change bit values.
-//!
-//! ```rust
-//! # use ubits::bitfield;
-//! #    bitfield! {
-//! #        pub u8 ExampleField
-//! #        ExampleFlags {
-//! #            0 : Flag0,
-//! #            1 : Flag1,
-//! #            2 : Flag2,
-//! #            3 : Flag3,
-//! #            4 : Flag4,
-//! #            5 : Flag5,
-//! #            6 : Flag6,
-//! #            7 : Flag7,
-//! #        }
-//! #    }
-//!
-//! let mut from_zeros = ExampleField::zeros();
-//! assert_eq!("00000000", from_zeros.as_binary());
-//!
-//! // set bit to 1
-//! from_zeros |= ExampleFlags::Flag1;
-//! assert_eq!("00000010", from_zeros.as_binary());
-//!
-//! // set bit back to 0
-//! from_zeros &= ExampleFlags::Flag1;
-//! assert_eq!("00000000", from_zeros.as_binary());
-//!
-//! // toggle a bit
-//! from_zeros ^= ExampleFlags::Flag1;
-//! assert_eq!("00000010", from_zeros.as_binary());
-//!
-//! from_zeros ^= ExampleFlags::Flag1;
-//! assert_eq!("00000000", from_zeros.as_binary());
-//! ```
-//!
-//! Operations can also be chained together:
-//!
-//! ```rust
-//! # use ubits::bitfield;
-//! #    bitfield! {
-//! #        pub u8 ExampleField
-//! #        ExampleFlags {
-//! #            0 : Flag0,
-//! #            1 : Flag1,
-//! #            2 : Flag2,
-//! #            3 : Flag3,
-//! #            4 : Flag4,
-//! #            5 : Flag5,
-//! #            6 : Flag6,
-//! #            7 : Flag7,
-//! #        }
-//! #    }
-//!
-//! let mut from_zeros = ExampleField::zeros() | ExampleFlags::Flag1 | ExampleFlags::Flag3;
-//! assert_eq!("00001010", from_zeros.as_binary());
-//!
-//! ```
-//!
-//! Bitfield instances can also be created from combining flags:
-//!
-//! ```rust
-//! # use ubits::bitfield;
-//! #    bitfield! {
-//! #        pub u8 ExampleField
-//! #        ExampleFlags {
-//! #            0 : Flag0,
-//! #            1 : Flag1,
-//! #            2 : Flag2,
-//! #            3 : Flag3,
-//! #            4 : Flag4,
-//! #            5 : Flag5,
-//! #            6 : Flag6,
-//! #            7 : Flag7,
-//! #        }
-//! #    }
-//!
-//! let mut from_zeros = ExampleFlags::Flag1 | ExampleFlags::Flag3;
-//! assert_eq!("00001010", from_zeros.as_binary());
-//!
-//! ```
-//!
-//! ## Fields named with flags
-//!
-//! The generated flags enum allows you to access bits by name.
-//! The flag has an associated [`u8`] value,
-//! which determines the index its target bit.
-//! (See [`bitfield`] for more info)
-//!
-//! With the following input...
-//! ```no_compile
-//! 1 0 1 0 0 1 1 0
-//! ```
-//!
-//! and the following flags...
-//! ```no_compile
-//! 0 : f1
-//! 1 : f1
-//! 2 : f2
-//! 3 : f3
-//! 4 : f4
-//! 5 : f5
-//! 6 : f6
-//! 7 : f7
-//! ```
-//!
-//! we end up with this layout.
-//!
-//! | name      | f7  | f6  | f5  | f4  | f3  | f2  | f1  | f0  |
-//! |-----------|----|----|----|----|----|----|----|----|
-//! | bit value | 1  | 0  | 1  | 0  | 0  | 1  | 1  | 0  |
-//! | index     | 7  | 6  | 5  | 4  | 3  | 2  | 1  | 0  |
-//!
-//!
-//! With the same input and only the first few flags:
-//!
-//! ```no_compile
-//! 0 : f0
-//! 1 : f1
-//! 2 : f2
-//! ```
-//!
-//! we end up with this layout.
-//!
-//! | name      |    |    |    |    |    | f2 | f1 | f0 |
-//! |-----------|----|----|----|----|----|----|----|----|
-//! | bit value | 1  | 0  | 1  | 0  | 0  | 1  | 1  | 0  |
-//! | index     | 7  | 6  | 5  | 4  | 3  | 2  | 1  | 0  |
-//!
-//!
-//! Using the same input, but with dispersed flags:
-//!
-//! ```no_compile
-//! 1 : f0
-//! 3 : f1
-//! 6 : f2
-//! ```
-//!
-//! we end up with this layout.
-//!
-//! | name      |    | f2 |    |    | f1 |    | f0 |    |
-//! |-----------|----|----|----|----|----|----|----|----|
-//! | bit value | 1  | 0  | 1  | 0  | 0  | 1  | 1  | 0  |
-//! | index     | 7  | 6  | 5  | 4  | 3  | 2  | 1  | 0  |
-//!
-
-// -------------------------------------------------------------------------------------------------
-// Imports
-
-extern crate doc_comment;
-extern crate paste;
-extern crate safe_transmute;
-
-#[doc(hidden)]
-pub use doc_comment::doc_comment as __doc_comment;
-
-#[doc(hidden)]
-pub use safe_transmute::{
-    transmute_one as __transmute_one, TriviallyTransmutable as __TriviallyTransmutable,
+lib.rs - source
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
+336
+337
+338
+339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362
+363
+364
+365
+366
+367
+368
+369
+370
+371
+372
+373
+374
+375
+376
+377
+378
+379
+380
+381
+382
+383
+384
+385
+386
+387
+388
+389
+390
+391
+392
+393
+394
+395
+396
+397
+398
+399
+400
+401
+402
+403
+404
+405
+406
+407
+408
+409
+410
+411
+412
+413
+414
+415
+416
+417
+418
+419
+420
+421
+422
+423
+424
+425
+426
+427
+428
+429
+430
+431
+432
+433
+434
+435
+436
+437
+438
+439
+440
+441
+442
+443
+444
+445
+446
+447
+448
+449
+450
+451
+452
+453
+454
+455
+456
+457
+458
+459
+460
+461
+462
+463
+464
+465
+466
+467
+468
+469
+470
+471
+472
+473
+474
+475
+476
+477
+478
+479
+480
+481
+482
+483
+484
+485
+486
+487
+488
+489
+490
+491
+492
+493
+494
+495
+496
+497
+498
+499
+500
+501
+502
+503
+504
+505
+506
+507
+508
+509
+510
+511
+512
+513
+514
+515
+516
+517
+518
+519
+520
+521
+522
+523
+524
+525
+526
+527
+528
+529
+530
+531
+532
+533
+534
+535
+536
+537
+538
+539
+540
+541
+542
+543
+544
+545
+546
+547
+548
+549
+550
+551
+552
+553
+554
+555
+556
+557
+558
+559
+560
+561
+562
+563
+564
+565
+566
+567
+568
+569
+570
+571
+572
+573
+574
+575
+576
+577
+578
+579
+580
+581
+582
+583
+584
+585
+586
+587
+588
+589
+590
+591
+592
+593
+594
+595
+596
+597
+598
+599
+600
+601
+602
+603
+604
+605
+606
+607
+608
+609
+610
+611
+612
+613
+614
+615
+616
+617
+618
+619
+620
+621
+622
+623
+624
+625
+626
+627
+628
+629
+630
+631
+632
+633
+634
+635
+636
+637
+638
+639
+640
+641
+642
+643
+644
+645
+646
+647
+648
+649
+650
+651
+652
+653
+654
+655
+656
+657
+658
+659
+660
+661
+662
+663
+664
+665
+666
+667
+668
+669
+670
+671
+672
+673
+674
+675
+676
+677
+678
+679
+680
+681
+682
+683
+684
+685
+686
+687
+688
+689
+690
+691
+692
+693
+694
+695
+696
+697
+698
+699
+700
+701
+702
+703
+704
+705
+706
+707
+708
+709
+710
+711
+712
+713
+714
+715
+716
+717
+718
+719
+720
+721
+722
+723
+724
+725
+726
+727
+728
+729
+730
+731
+732
+733
+734
+735
+736
+737
+738
+739
+740
+741
+742
+743
+744
+745
+746
+747
+748
+749
+750
+751
+752
+753
+754
+755
+756
+757
+758
+759
+760
+761
+762
+763
+764
+765
+766
+767
+768
+769
+770
+771
+772
+773
+774
+775
+776
+777
+778
+779
+780
+781
+782
+783
+784
+785
+786
+787
+788
+789
+790
+791
+792
+793
+794
+795
+796
+797
+798
+799
+800
+801
+802
+803
+804
+805
+806
+807
+808
+809
+810
+811
+812
+813
+814
+815
+816
+817
+818
+819
+820
+821
+822
+823
+824
+825
+826
+827
+828
+829
+830
+831
+832
+833
+834
+835
+836
+837
+838
+839
+840
+841
+842
+843
+844
+845
+846
+847
+848
+849
+850
+851
+852
+853
+854
+855
+856
+857
+858
+859
+860
+861
+862
+863
+864
+865
+866
+867
+868
+869
+870
+871
+872
+873
+874
+875
+876
+877
+878
+879
+880
+881
+882
+883
+884
+885
+886
+887
+888
+889
+890
+891
+892
+893
+894
+895
+896
+897
+898
+899
+900
+901
+902
+903
+904
+905
+906
+907
+908
+909
+910
+911
+912
+913
+914
+915
+916
+917
+918
+919
+920
+921
+922
+923
+924
+925
+926
+927
+928
+929
+930
+931
+932
+933
+934
+935
+936
+937
+938
+939
+940
+941
+942
+943
+944
+945
+946
+947
+948
+949
+950
+951
+952
+953
+954
+955
+956
+957
+958
+959
+960
+961
+962
+963
+964
+965
+966
+967
+968
+969
+970
+971
+972
+973
+974
+975
+976
+977
+978
+979
+980
+981
+982
+983
+984
+985
+986
+987
+988
+989
+990
+991
+992
+993
+994
+995
+996
+997
+998
+999
+1000
+1001
+1002
+1003
+1004
+1005
+1006
+1007
+1008
+1009
+1010
+1011
+1012
+1013
+1014
+1015
+1016
+1017
+1018
+1019
+1020
+1021
+1022
+1023
+1024
+1025
+1026
+1027
+1028
+1029
+1030
+1031
+1032
+1033
+1034
+1035
+1036
+1037
+1038
+1039
+1040
+1041
+1042
+1043
+1044
+1045
+1046
+1047
+1048
+1049
+1050
+1051
+1052
+1053
+1054
+1055
+1056
+1057
+1058
+1059
+1060
+1061
+1062
+1063
+1064
+1065
+1066
+1067
+1068
+1069
+1070
+1071
+1072
+1073
+1074
+1075
+1076
+1077
+1078
+1079
+1080
+1081
+1082
+1083
+1084
+1085
+1086
+1087
+1088
+1089
+1090
+1091
+1092
+1093
+1094
+1095
+1096
+1097
+1098
+1099
+1100
+1101
+1102
+1103
+1104
+1105
+1106
+1107
+1108
+1109
+1110
+1111
+1112
+1113
+1114
+1115
+1116
+1117
+1118
+1119
+1120
+1121
+1122
+1123
+1124
+1125
+1126
+1127
+1128
+1129
+1130
+1131
+1132
+1133
+1134
+1135
+1136
+1137
+1138
+1139
+1140
+1141
+1142
+1143
+1144
+1145
+1146
+1147
+1148
+1149
+1150
+1151
+1152
+1153
+1154
+1155
+1156
+1157
+1158
+1159
+1160
+1161
+1162
+1163
+1164
+1165
+1166
+1167
+1168
+1169
+1170
+1171
+1172
+1173
+1174
+1175
+1176
+1177
+1178
+1179
+1180
+1181
+1182
+1183
+1184
+1185
+1186
+1187
+1188
+1189
+1190
+1191
+1192
+1193
+1194
+1195
+1196
+1197
+1198
+1199
+1200
+1201
+1202
+1203
+1204
+1205
+1206
+1207
+1208
+1209
+1210
+1211
+1212
+1213
+1214
+1215
+1216
+1217
+1218
+1219
+1220
+1221
+1222
+1223
+1224
+1225
+1226
+1227
+1228
+1229
+1230
+1231
+1232
+1233
+1234
+1235
+1236
+1237
+1238
+1239
+1240
+1241
+1242
+1243
+1244
+1245
+1246
+1247
+1248
+1249
+1250
+1251
+1252
+1253
+1254
+1255
+1256
+1257
+1258
+1259
+1260
+1261
+1262
+1263
+1264
+1265
+1266
+1267
+1268
+1269
+1270
+1271
+1272
+1273
+1274
+1275
+1276
+1277
+1278
+1279
+1280
+1281
+1282
+1283
+1284
+1285
+1286
+1287
+1288
+1289
+1290
+1291
+1292
+1293
+1294
+1295
+1296
+1297
+1298
+1299
+1300
+1301
+1302
+1303
+1304
+1305
+1306
+1307
+1308
+1309
+1310
+1311
+1312
+1313
+1314
+1315
+1316
+1317
+1318
+1319
+1320
+1321
+1322
+1323
+1324
+1325
+1326
+1327
+1328
+1329
+1330
+1331
+1332
+1333
+1334
+1335
+1336
+1337
+1338
+1339
+1340
+1341
+1342
+1343
+1344
+1345
+1346
+1347
+1348
+1349
+1350
+1351
+1352
+1353
+1354
+1355
+1356
+1357
+1358
+1359
+1360
+1361
+1362
+1363
+1364
+1365
+1366
+1367
+1368
+1369
+1370
+1371
+1372
+1373
+1374
+1375
+1376
+1377
+1378
+1379
+1380
+1381
+1382
+1383
+1384
+1385
+1386
+1387
+1388
+1389
+1390
+1391
+1392
+1393
+1394
+1395
+1396
+1397
+1398
+1399
+1400
+1401
+1402
+1403
+1404
+1405
+1406
+1407
+1408
+1409
+1410
+1411
+1412
+1413
+1414
+1415
+1416
+1417
+1418
+1419
+1420
+1421
+1422
+1423
+1424
+1425
+1426
+1427
+1428
+1429
+1430
+1431
+1432
+1433
+1434
+1435
+1436
+1437
+1438
+1439
+1440
+1441
+1442
+1443
+1444
+1445
+1446
+1447
+1448
+1449
+1450
+1451
+1452
+1453
+1454
+1455
+1456
+1457
+1458
+1459
+1460
+1461
+1462
+1463
+1464
+1465
+1466
+1467
+1468
+1469
+1470
+1471
+1472
+1473
+1474
+1475
+1476
+1477
+1478
+1479
+1480
+1481
+1482
+1483
+1484
+1485
+1486
+1487
+1488
+1489
+1490
+1491
+1492
+1493
+1494
+1495
+1496
+1497
+1498
+1499
+1500
+1501
+1502
+1503
+1504
+1505
+1506
+1507
+1508
+1509
+1510
+1511
+1512
+1513
+1514
+1515
+1516
+1517
+1518
+1519
+1520
+1521
+1522
+1523
+1524
+1525
+1526
+1527
+1528
+1529
+1530
+1531
+1532
+1533
+1534
+1535
+1536
+1537
+1538
+1539
+1540
+1541
+1542
+1543
+1544
+1545
+1546
+1547
+1548
+1549
+1550
+1551
+1552
+1553
+1554
+1555
+1556
+1557
+1558
+1559
+1560
+1561
+1562
+1563
+1564
+1565
+1566
+1567
+1568
+1569
+1570
+1571
+1572
+1573
+1574
+1575
+1576
+1577
+1578
+1579
+1580
+1581
+1582
+1583
+1584
+1585
+1586
+1587
+1588
+1589
+1590
+1591
+1592
+1593
+1594
+1595
+1596
+1597
+1598
+1599
+1600
+1601
+1602
+1603
+1604
+1605
+1606
+1607
+1608
+1609
+1610
+1611
+1612
+1613
+1614
+1615
+1616
+1617
+1618
+1619
+1620
+1621
+1622
+1623
+1624
+1625
+1626
+1627
+1628
+1629
+1630
+1631
+1632
+1633
+1634
+1635
+1636
+1637
+1638
+1639
+1640
+1641
+1642
+1643
+1644
+1645
+1646
+1647
+1648
+1649
+1650
+1651
+1652
+1653
+1654
+1655
+1656
+1657
+1658
+1659
+1660
+1661
+1662
+1663
+1664
+1665
+1666
+1667
+1668
+1669
+1670
+1671
+1672
+1673
+1674
+1675
+1676
+1677
+1678
+1679
+1680
+1681
+1682
+1683
+1684
+1685
+1686
+1687
+1688
+1689
+1690
+1691
+1692
+1693
+1694
+1695
+1696
+1697
+1698
+1699
+1700
+1701
+1702
+1703
+1704
+1705
+1706
+1707
+1708
+1709
+1710
+1711
+1712
+1713
+1714
+1715
+1716
+1717
+1718
+1719
+1720
+1721
+1722
+1723
+1724
+1725
+1726
+1727
+1728
+1729
+1730
+1731
+1732
+1733
+1734
+1735
+1736
+1737
+1738
+1739
+1740
+1741
+1742
+1743
+1744
+1745
+1746
+1747
+1748
+1749
+1750
+1751
+1752
+1753
+1754
+1755
+1756
+1757
+1758
+1759
+1760
+1761
+1762
+1763
+1764
+1765
+1766
+1767
+1768
+1769
+1770
+1771
+1772
+1773
+1774
+1775
+1776
+1777
+1778
+1779
+1780
+1781
+1782
+1783
+1784
+1785
+1786
+1787
+1788
+1789
+1790
+1791
+1792
+1793
+1794
+1795
+1796
+1797
+1798
+1799
+1800
+1801
+1802
+1803
+1804
+1805
+1806
+1807
+1808
+1809
+1810
+1811
+1812
+1813
+1814
+1815
+1816
+1817
+1818
+1819
+1820
+1821
+1822
+1823
+1824
+1825
+1826
+1827
+1828
+1829
+1830
+1831
+1832
+1833
+1834
+1835
+1836
+1837
+1838
+1839
+1840
+1841
+1842
+1843
+1844
+1845
+1846
+1847
+1848
+1849
+1850
+1851
+1852
+1853
+1854
+1855
+1856
+1857
+1858
+1859
+1860
+1861
+1862
+1863
+1864
+1865
+1866
+1867
+1868
+1869
+1870
+1871
+1872
+1873
+1874
+1875
+1876
+1877
+1878
+1879
+1880
+1881
+1882
+1883
+1884
+1885
+1886
+1887
+1888
+1889
+1890
+1891
+1892
+1893
+1894
+1895
+1896
+1897
+1898
+1899
+1900
+1901
+1902
+1903
+1904
+1905
+1906
+1907
+1908
+1909
+1910
+1911
+1912
+1913
+1914
+1915
+1916
+1917
+1918
+1919
+1920
+1921
+1922
+1923
+1924
+1925
+1926
+1927
+1928
+1929
+1930
+1931
+1932
+1933
+1934
+1935
+1936
+1937
+1938
+1939
+1940
+1941
+1942
+1943
+1944
+1945
+1946
+1947
+1948
+1949
+1950
+1951
+1952
+1953
+1954
+1955
+1956
+1957
+1958
+1959
+1960
+1961
+1962
+1963
+1964
+1965
+1966
+1967
+1968
+1969
+1970
+1971
+1972
+1973
+1974
+1975
+1976
+1977
+1978
+1979
+1980
+1981
+1982
+1983
+1984
+1985
+1986
+1987
+1988
+1989
+1990
+1991
+1992
+1993
+1994
+1995
+1996
+1997
+1998
+1999
+2000
+2001
+2002
+2003
+2004
+2005
+2006
+2007
+2008
+2009
+2010
+2011
+2012
+2013
+2014
+2015
+2016
+2017
+2018
+2019
+2020
+2021
+2022
+2023
+2024
+2025
+2026
+2027
+2028
+2029
+2030
+2031
+2032
+2033
+2034
+2035
+2036
+2037
+2038
+2039
+2040
+2041
+2042
+2043
+2044
+2045
+2046
+2047
+2048
+2049
+2050
+2051
+2052
+2053
+2054
+2055
+2056
+2057
+2058
+2059
+2060
+2061
+2062
+2063
+2064
+2065
+2066
+2067
+2068
+2069
+2070
+2071
+2072
+2073
+2074
+2075
+2076
+2077
+2078
+2079
+2080
+2081
+2082
+2083
+2084
+2085
+2086
+2087
+2088
+2089
+2090
+2091
+2092
+2093
+2094
+2095
+2096
+2097
+2098
+2099
+2100
+2101
+2102
+2103
+2104
+2105
+2106
+2107
+2108
+2109
+2110
+2111
+2112
+2113
+2114
+2115
+2116
+2117
+2118
+2119
+2120
+2121
+2122
+2123
+2124
+2125
+2126
+2127
+2128
+2129
+2130
+2131
+2132
+2133
+2134
+2135
+2136
+2137
+2138
+2139
+2140
+2141
+2142
+2143
+2144
+2145
+2146
+2147
+2148
+2149
+2150
+2151
+2152
+2153
+2154
+2155
+2156
+2157
+2158
+2159
+2160
+2161
+2162
+2163
+2164
+2165
+2166
+2167
+2168
+2169
+2170
+2171
+2172
+2173
+2174
+2175
+2176
+2177
+2178
+2179
+2180
+2181
+2182
+2183
+2184
+2185
+2186
+2187
+2188
+2189
+2190
+2191
+2192
+2193
+2194
+2195
+2196
+2197
+2198
+2199
+2200
+2201
+2202
+2203
+2204
+2205
+2206
+2207
+2208
+2209
+2210
+2211
+2212
+2213
+2214
+2215
+2216
+2217
+2218
+2219
+2220
+2221
+2222
+2223
+2224
+2225
+2226
+2227
+2228
+2229
+2230
+2231
+2232
+2233
+2234
+2235
+2236
+2237
+2238
+2239
+2240
+2241
+2242
+2243
+2244
+2245
+2246
+2247
+2248
+2249
+2250
+2251
+2252
+2253
+2254
+2255
+2256
+2257
+2258
+2259
+2260
+2261
+2262
+2263
+2264
+2265
+2266
+2267
+2268
+2269
+2270
+2271
+2272
+2273
+2274
+2275
+2276
+2277
+2278
+2279
+2280
+2281
+2282
+2283
+2284
+2285
+2286
+2287
+2288
+2289
+2290
+2291
+2292
+2293
+2294
+2295
+2296
+2297
+2298
+2299
+2300
+2301
+2302
+2303
+2304
+2305
+2306
+2307
+2308
+2309
+2310
+2311
+2312
+2313
+2314
+2315
+2316
+2317
+2318
+2319
+2320
+2321
+2322
+2323
+2324
+2325
+2326
+2327
+2328
+2329
+2330
+2331
+2332
+2333
+2334
+2335
+2336
+2337
+2338
+2339
+2340
+2341
+2342
+2343
+2344
+2345
+2346
+2347
+2348
+2349
+2350
+2351
+2352
+2353
+2354
+2355
+2356
+2357
+2358
+2359
+2360
+2361
+2362
+2363
+2364
+2365
+2366
+2367
+2368
+2369
+2370
+2371
+2372
+2373
+2374
+2375
+2376
+2377
+2378
+2379
+2380
+2381
+2382
+2383
+2384
+2385
+2386
+2387
+2388
+2389
+2390
+2391
+2392
+2393
+2394
+2395
+2396
+2397
+2398
+2399
+2400
+2401
+2402
+2403
+2404
+2405
+2406
+2407
+2408
+2409
+2410
+2411
+2412
+2413
+2414
+2415
+2416
+2417
+2418
+2419
+2420
+2421
+2422
+2423
+2424
+2425
+2426
+2427
+2428
+2429
+2430
+2431
+2432
+2433
+2434
+2435
+2436
+2437
+2438
+2439
+2440
+2441
+2442
+2443
+2444
+2445
+2446
+2447
+2448
+2449
+2450
+2451
+2452
+2453
+2454
+2455
+2456
+2457
+2458
+2459
+2460
+2461
+2462
+2463
+2464
+2465
+2466
+2467
+2468
+2469
+2470
+2471
+2472
+2473
+2474
+2475
+2476
+2477
+2478
+2479
+2480
+2481
+2482
+2483
+2484
+2485
+2486
+2487
+2488
+2489
+2490
+2491
+2492
+2493
+2494
+2495
+2496
+2497
+2498
+2499
+2500
+2501
+2502
+2503
+2504
+2505
+2506
+2507
+2508
+2509
+2510
+2511
+2512
+2513
+2514
+2515
+2516
+2517
+2518
+2519
+2520
+2521
+2522
+2523
+2524
+2525
+2526
+2527
+2528
+2529
+2530
+2531
+2532
+2533
+2534
+2535
+2536
+2537
+2538
+2539
+2540
+2541
+2542
+2543
+2544
+2545
+2546
+2547
+2548
+2549
+2550
+2551
+2552
+2553
+2554
+2555
+2556
+2557
+2558
+2559
+2560
+2561
+2562
+2563
+2564
+2565
+2566
+2567
+2568
+2569
+2570
+2571
+2572
+2573
+2574
+2575
+2576
+2577
+2578
+2579
+2580
+2581
+2582
+2583
+2584
+2585
+2586
+2587
+2588
+2589
+2590
+2591
+2592
+2593
+2594
+2595
+2596
+2597
+2598
+2599
+2600
+2601
+2602
+2603
+2604
+2605
+2606
+2607
+2608
+2609
+2610
+2611
+2612
+2613
+2614
+2615
+2616
+2617
+2618
+2619
+2620
+2621
+2622
+2623
+2624
+2625
+2626
+2627
+2628
+2629
+2630
+2631
+2632
+2633
+2634
+2635
+2636
+2637
+2638
+2639
+2640
+2641
+2642
+2643
+2644
+2645
+2646
+2647
+2648
+2649
+2650
+2651
+2652
+2653
+2654
+2655
+2656
+2657
+2658
+2659
+2660
+2661
+2662
+2663
+2664
+2665
+2666
+2667
+2668
+2669
+2670
+2671
+2672
+2673
+2674
+2675
+2676
+2677
+2678
+2679
+2680
+2681
+2682
+2683
+2684
+2685
+2686
+2687
+2688
+2689
+2690
+2691
+2692
+2693
+2694
+2695
+2696
+2697
+2698
+2699
+2700
+2701
+2702
+2703
+2704
+2705
+2706
+2707
+2708
+2709
+2710
+2711
+2712
+2713
+2714
+2715
+2716
+2717
+2718
+2719
+2720
+2721
+2722
+2723
+2724
+2725
+2726
+2727
+2728
+2729
+2730
+2731
+2732
+2733
+2734
+2735
+2736
+2737
+2738
+2739
+2740
+2741
+2742
+2743
+2744
+2745
+2746
+2747
+2748
+2749
+2750
+2751
+2752
+2753
+2754
+2755
+2756
+2757
+2758
+2759
+2760
+2761
+2762
+2763
+2764
+2765
+2766
+2767
+2768
+2769
+2770
+2771
+2772
+2773
+2774
+2775
+2776
+2777
+2778
+2779
+2780
+2781
+2782
+2783
+2784
+2785
+2786
+2787
+2788
+2789
+2790
+2791
+2792
+2793
+2794
+2795
+2796
+2797
+2798
+2799
+2800
+2801
+2802
+2803
+2804
+2805
+2806
+2807
+2808
+2809
+2810
+2811
+2812
+2813
+2814
+2815
+2816
+2817
+2818
+2819
+2820
+2821
+2822
+2823
+2824
+2825
+2826
+2827
+2828
+2829
+2830
+2831
+2832
+2833
+2834
+2835
+2836
+2837
+2838
+2839
+2840
+2841
+2842
+2843
+2844
+2845
+2846
+2847
+2848
+2849
+2850
+2851
+2852
+2853
+2854
+2855
+2856
+2857
+2858
+2859
+2860
+2861
+2862
+2863
+2864
+2865
+2866
+2867
+2868
+2869
+2870
+2871
+2872
+2873
+2874
+2875
+2876
+2877
+2878
+2879
+2880
+2881
+2882
+2883
+2884
+2885
+2886
+2887
+2888
+2889
+2890
+2891
+2892
+2893
+2894
+2895
+2896
+2897
+2898
+2899
+2900
+2901
+2902
+2903
+2904
+2905
+2906
+2907
+2908
+2909
+2910
+2911
+2912
+2913
+2914
+2915
+2916
+2917
+2918
+2919
+2920
+2921
+2922
+2923
+2924
+2925
+2926
+2927
+2928
+2929
+2930
+2931
+2932
+2933
+2934
+2935
+2936
+2937
+2938
+2939
+2940
+2941
+2942
+2943
+2944
+2945
+2946
+2947
+2948
+2949
+2950
+2951
+2952
+2953
+2954
+2955
+2956
+2957
+2958
+2959
+2960
+2961
+2962
+2963
+2964
+2965
+2966
+2967
+2968
+2969
+2970
+2971
+2972
+2973
+2974
+2975
+2976
+2977
+2978
+2979
+2980
+2981
+2982
+2983
+2984
+2985
+2986
+2987
+2988
+2989
+2990
+2991
+2992
+2993
+2994
+2995
+2996
+2997
+2998
+2999
+3000
+3001
+3002
+3003
+3004
+3005
+3006
+3007
+3008
+3009
+3010
+3011
+3012
+3013
+3014
+3015
+3016
+3017
+3018
+3019
+3020
+3021
+3022
+3023
+3024
+3025
+3026
+3027
+3028
+3029
+3030
+3031
+3032
+3033
+3034
+3035
+3036
+3037
+3038
+3039
+3040
+3041
+3042
+3043
+3044
+3045
+3046
+3047
+3048
+3049
+3050
+3051
+3052
+3053
+3054
+3055
+3056
+3057
+3058
+3059
+3060
+3061
+3062
+3063
+3064
+3065
+3066
+3067
+3068
+3069
+3070
+3071
+3072
+3073
+3074
+3075
+3076
+3077
+3078
+3079
+3080
+3081
+3082
+3083
+3084
+3085
+3086
+3087
+3088
+3089
+3090
+3091
+3092
+3093
+3094
+3095
+3096
+3097
+3098
+3099
+3100
+3101
+3102
+3103
+3104
+3105
+3106
+3107
+3108
+3109
+3110
+3111
+3112
+3113
+3114
+3115
+3116
+3117
+3118
+3119
+3120
+3121
+3122
+3123
+3124
+3125
+3126
+3127
+3128
+3129
+3130
+3131
+3132
+3133
+3134
+3135
+3136
+3137
+3138
+3139
+3140
+3141
+3142
+3143
+3144
+3145
+3146
+3147
+3148
+3149
+3150
+3151
+3152
+3153
+3154
+3155
+3156
+3157
+3158
+3159
+3160
+3161
+3162
+3163
+3164
+3165
+3166
+3167
+3168
+3169
+3170
+3171
+3172
+3173
+3174
+3175
+3176
+3177
+3178
+3179
+3180
+3181
+3182
+3183
+3184
+3185
+3186
+3187
+3188
+3189
+3190
+3191
+3192
+3193
+3194
+3195
+3196
+3197
+3198
+3199
+3200
+3201
+3202
+3203
+3204
+3205
+3206
+3207
+3208
+3209
+3210
+3211
+3212
+3213
+3214
+3215
+3216
+3217
+3218
+3219
+3220
+3221
+3222
+3223
+3224
+3225
+3226
+3227
+3228
+3229
+3230
+3231
+3232
+3233
+3234
+3235
+3236
+3237
+3238
+3239
+3240
+3241
+3242
+3243
+3244
+3245
+3246
+3247
+3248
+3249
+3250
+3251
+3252
+3253
+3254
+3255
+3256
+3257
+3258
+3259
+3260
+3261
+3262
+3263
+3264
+3265
+3266
+3267
+3268
+3269
+3270
+3271
+3272
+3273
+3274
+3275
+3276
+3277
+3278
+3279
+3280
+3281
+3282
+3283
+3284
+3285
+3286
+3287
+3288
+3289
+3290
+3291
+3292
+3293
+3294
+3295
+3296
+3297
+3298
+3299
+3300
+3301
+3302
+3303
+3304
+3305
+3306
+3307
+3308
+3309
+3310
+3311
+3312
+3313
+3314
+3315
+3316
+3317
+3318
+3319
+3320
+3321
+3322
+3323
+3324
+3325
+3326
+3327
+3328
+3329
+3330
+3331
+3332
+3333
+3334
+3335
+3336
+3337
+3338
+3339
+3340
+3341
+3342
+3343
+3344
+3345
+3346
+3347
+3348
+3349
+3350
+3351
+3352
+3353
+3354
+3355
+3356
+3357
+3358
+3359
+3360
+3361
+3362
+3363
+3364
+3365
+3366
+3367
+3368
+3369
+3370
+3371
+3372
+3373
+3374
+3375
+3376
+3377
+3378
+3379
+3380
+3381
+3382
+3383
+3384
+3385
+3386
+3387
+3388
+3389
+3390
+3391
+3392
+3393
+3394
+3395
+3396
+3397
+3398
+3399
+3400
+3401
+3402
+3403
+3404
+3405
+3406
+3407
+3408
+3409
+3410
+3411
+3412
+3413
+3414
+3415
+3416
+3417
+3418
+3419
+3420
+3421
+3422
+3423
+3424
+3425
+3426
+3427
+3428
+3429
+3430
+3431
+3432
+3433
+3434
+3435
+3436
+3437
+3438
+3439
+3440
+3441
+3442
+3443
+3444
+3445
+3446
+3447
+3448
+3449
+3450
+3451
+3452
+3453
+3454
+3455
+3456
+3457
+3458
+3459
+3460
+3461
+3462
+3463
+3464
+3465
+3466
+3467
+3468
+3469
+3470
+3471
+3472
+3473
+3474
+3475
+3476
+3477
+3478
+3479
+3480
+3481
+3482
+3483
+3484
+3485
+3486
+3487
+3488
+3489
+3490
+3491
+3492
+3493
+3494
+3495
+3496
+3497
+3498
+3499
+3500
+3501
+3502
+3503
+3504
+3505
+3506
+3507
+3508
+3509
+3510
+3511
+3512
+3513
+3514
+3515
+3516
+3517
+3518
+3519
+3520
+3521
+3522
+3523
+3524
+3525
+3526
+3527
+3528
+3529
+3530
+3531
+3532
+3533
+3534
+3535
+3536
+3537
+3538
+3539
+3540
+3541
+3542
+3543
+3544
+3545
+3546
+3547
+3548
+3549
+3550
+3551
+3552
+3553
+3554
+3555
+3556
+3557
+3558
+3559
+3560
+3561
+3562
+3563
+3564
+3565
+3566
+3567
+3568
+3569
+3570
+3571
+3572
+3573
+3574
+3575
+3576
+3577
+3578
+3579
+3580
+3581
+3582
+3583
+3584
+3585
+3586
+3587
+3588
+3589
+3590
+3591
+3592
+3593
+3594
+3595
+3596
+3597
+3598
+3599
+3600
+3601
+3602
+3603
+3604
+3605
+3606
+3607
+3608
+3609
+3610
+3611
+3612
+3613
+3614
+3615
+3616
+3617
+3618
+3619
+3620
+3621
+3622
+3623
+3624
+3625
+3626
+3627
+3628
+3629
+3630
+3631
+3632
+3633
+3634
+3635
+3636
+3637
+3638
+3639
+3640
+3641
+3642
+3643
+3644
+3645
+3646
+3647
+3648
+3649
+3650
+3651
+3652
+3653
+3654
+3655
+3656
+3657
+3658
+3659
+3660
+3661
+3662
+3663
+3664
+3665
+3666
+3667
+3668
+3669
+3670
+3671
+3672
+3673
+3674
+3675
+3676
+3677
+3678
+3679
+3680
+3681
+3682
+3683
+3684
+3685
+3686
+3687
+3688
+3689
+3690
+3691
+3692
+3693
+3694
+3695
+3696
+3697
+3698
+3699
+3700
+3701
+3702
+3703
+3704
+3705
+3706
+3707
+3708
+3709
+3710
+3711
+3712
+3713
+3714
+3715
+3716
+3717
+3718
+3719
+3720
+3721
+3722
+3723
+3724
+3725
+3726
+3727
+3728
+3729
+3730
+3731
+3732
+3733
+3734
+3735
+3736
+3737
+3738
+3739
+3740
+3741
+3742
+3743
+3744
+3745
+3746
+3747
+3748
+3749
+3750
+3751
+3752
+3753
+3754
+3755
+3756
+3757
+3758
+3759
+3760
+3761
+3762
+3763
+3764
+3765
+3766
+3767
+3768
+3769
+3770
+3771
+3772
+3773
+3774
+3775
+3776
+3777
+3778
+3779
+3780
+3781
+3782
+3783
+3784
+3785
+3786
+3787
+3788
+3789
+3790
+3791
+3792
+3793
+3794
+3795
+3796
+3797
+3798
+3799
+3800
+3801
+3802
+3803
+3804
+3805
+3806
+3807
+3808
+3809
+3810
+3811
+3812
+3813
+3814
+3815
+3816
+3817
+3818
+3819
+3820
+3821
+3822
+3823
+3824
+3825
+3826
+3827
+3828
+3829
+3830
+3831
+3832
+3833
+3834
+3835
+3836
+
//!
+//! [![crates.io](https://img.shields.io/crates/v/ubits.svg)](https://crates.io/crates/ubits)
+//! [![Downloads](https://img.shields.io/crates/d/ubits.svg)](https://crates.io/crates/ubits)
+//! [![Build](https://github.com/manoadamro/ubits/actions/workflows/rust.yml/badge.svg)](https://github.com/manoadamro/ubits/actions/workflows/rust.yml)
+//! [![Docs](https://img.shields.io/docsrs/ubits)](https://manoadamro.github.io/ubits/doc/ubits/)
+//! [![Licence](https://img.shields.io/github/license/manoadamro/ubits)](https://github.com/manoadamro/ubits/blob/main/LICENSE)
+//!
+//! Bit fields and masks for rust!
+//!
+//! Provides a macro for generating [`bit field`](https://en.wikipedia.org/wiki/Bit_field) types
+//! complete with flags and some helpful trait implementations.
+//!
+//! Supports field widths of `8`, `16`, `32`, `64` and `128` bits.
+//!
+//! - [`bitfield`] - macro documentation.
+//! - [`examples`] - examples of the output generated by the [`bitfield`] macro.
+//!
+//! __Note: the example module is only complied with documentation builds
+//! and is not available for importing in the wild.__
+//!
+//!
+//! # Usage
+//!
+//! Generate a bitfield struct with a flag enum...
+//! (The following examples all use this as a definition.)
+//! ```rust
+//! use ubits::bitfield;
+//!
+//!     bitfield! {
+//!         pub u8 ExampleField
+//!         ExampleFlags {
+//!             0 : Flag0,
+//!             1 : Flag1,
+//!             2 : Flag2,
+//!             3 : Flag3,
+//!             4 : Flag4,
+//!             5 : Flag5,
+//!             6 : Flag6,
+//!             7 : Flag7,
+//!         }
+//!     }
+//! ```
+//!
+//! ## Instances
+//!
+//! From integer:
+//! ```rust
+//! # use ubits::bitfield;
+//! #    bitfield! {
+//! #        pub u8 ExampleField
+//! #        ExampleFlags {
+//! #            0 : Flag0,
+//! #            1 : Flag1,
+//! #            2 : Flag2,
+//! #            3 : Flag3,
+//! #            4 : Flag4,
+//! #            5 : Flag5,
+//! #            6 : Flag6,
+//! #            7 : Flag7,
+//! #        }
+//! #    }
+//!
+//! let from_integer = ExampleField(123);
+//! assert_eq!(ExampleField(123), from_integer);
+//! ```
+//!
+//! From a binary string:
+//! ```rust
+//! # use ubits::bitfield;
+//! #    bitfield! {
+//! #        pub u8 ExampleField
+//! #        ExampleFlags {
+//! #            0 : Flag0,
+//! #            1 : Flag1,
+//! #            2 : Flag2,
+//! #            3 : Flag3,
+//! #            4 : Flag4,
+//! #            5 : Flag5,
+//! #            6 : Flag6,
+//! #            7 : Flag7,
+//! #        }
+//! #    }
+//!
+//! let from_binary = ExampleField::from_binary_str("01111011");
+//! assert_eq!(ExampleField(123), from_binary)
+//! ```
+//!
+//! From ones:
+//! ```rust
+//! # use ubits::bitfield;
+//! #    bitfield! {
+//! #        pub u8 ExampleField
+//! #        ExampleFlags {
+//! #            0 : Flag0,
+//! #            1 : Flag1,
+//! #            2 : Flag2,
+//! #            3 : Flag3,
+//! #            4 : Flag4,
+//! #            5 : Flag5,
+//! #            6 : Flag6,
+//! #            7 : Flag7,
+//! #        }
+//! #    }
+//!
+//! let from_ones = ExampleField::ones();
+//! assert_eq!("11111111", from_ones.as_binary());
+//! assert_eq!(255, from_ones.as_integer());
+//! ```
+//!
+//! From zeros:
+//! ```rust
+//! # use ubits::bitfield;
+//! #    bitfield! {
+//! #        pub u8 ExampleField
+//! #        ExampleFlags {
+//! #            0 : Flag0,
+//! #            1 : Flag1,
+//! #            2 : Flag2,
+//! #            3 : Flag3,
+//! #            4 : Flag4,
+//! #            5 : Flag5,
+//! #            6 : Flag6,
+//! #            7 : Flag7,
+//! #        }
+//! #    }
+//!
+//! let from_zeros = ExampleField::zeros();
+//! assert_eq!("00000000", from_zeros.as_binary());
+//! assert_eq!(0, from_zeros.as_integer());
+//! ```
+//!
+//! ### Field Access
+//!
+//! Get bit value by field:
+//! ```rust
+//! # use ubits::bitfield;
+//! #    bitfield! {
+//! #        pub u8 ExampleField
+//! #        ExampleFlags {
+//! #            0 : Flag0,
+//! #            1 : Flag1,
+//! #            2 : Flag2,
+//! #            3 : Flag3,
+//! #            4 : Flag4,
+//! #            5 : Flag5,
+//! #            6 : Flag6,
+//! #            7 : Flag7,
+//! #        }
+//! #    }
+//!
+//! let field = ExampleField::from_binary_str("01010101");
+//! assert!(field.get(ExampleFlags::Flag0));
+//! assert!(!field.get(ExampleFlags::Flag1));
+//! ```
+//!
+//! Get bit value by index:
+//!
+//! ```rust
+//! # use ubits::bitfield;
+//! #    bitfield! {
+//! #        pub u8 ExampleField
+//! #        ExampleFlags {
+//! #            0 : Flag0,
+//! #            1 : Flag1,
+//! #            2 : Flag2,
+//! #            3 : Flag3,
+//! #            4 : Flag4,
+//! #            5 : Flag5,
+//! #            6 : Flag6,
+//! #            7 : Flag7,
+//! #        }
+//! #    }
+//!
+//! let field = ExampleField::from_binary_str("01010101");
+//! assert!(field.get_index(0));
+//! assert!(!field.get_index(1));
+//! ```
+//!
+//! Set bit value by field:
+//!
+//! ```rust
+//! # use ubits::bitfield;
+//! #    bitfield! {
+//! #        pub u8 ExampleField
+//! #        ExampleFlags {
+//! #            0 : Flag0,
+//! #            1 : Flag1,
+//! #            2 : Flag2,
+//! #            3 : Flag3,
+//! #            4 : Flag4,
+//! #            5 : Flag5,
+//! #            6 : Flag6,
+//! #            7 : Flag7,
+//! #        }
+//! #    }
+//!
+//! let mut field = ExampleField::from_binary_str("01010101");
+//! field.set(ExampleFlags::Flag1);
+//! field.set(ExampleFlags::Flag3);
+//! assert_eq!("01011111", field.as_binary());
+//! ```
+//!
+//! Set bit value by index:
+//!
+//! ```rust
+//! # use ubits::bitfield;
+//! #    bitfield! {
+//! #        pub u8 ExampleField
+//! #        ExampleFlags {
+//! #            0 : Flag0,
+//! #            1 : Flag1,
+//! #            2 : Flag2,
+//! #            3 : Flag3,
+//! #            4 : Flag4,
+//! #            5 : Flag5,
+//! #            6 : Flag6,
+//! #            7 : Flag7,
+//! #        }
+//! #    }
+//!
+//! let mut field = ExampleField::from_binary_str("01010101");
+//! field.set_index(1);
+//! field.set_index(3);
+//! assert_eq!("01011111", field.as_binary());
+//! ```
+//!
+//! Clear bit value by field:
+//!
+//! ```rust
+//! # use ubits::bitfield;
+//! #    bitfield! {
+//! #        pub u8 ExampleField
+//! #        ExampleFlags {
+//! #            0 : Flag0,
+//! #            1 : Flag1,
+//! #            2 : Flag2,
+//! #            3 : Flag3,
+//! #            4 : Flag4,
+//! #            5 : Flag5,
+//! #            6 : Flag6,
+//! #            7 : Flag7,
+//! #        }
+//! #    }
+//!
+//! let mut field = ExampleField::from_binary_str("01010101");
+//! field.clear(ExampleFlags::Flag0);
+//! field.clear(ExampleFlags::Flag2);
+//! assert_eq!("01010000", field.as_binary());
+//! ```
+//!
+//! Clear bit value by index:
+//!
+//! ```rust
+//! # use ubits::bitfield;
+//! #    bitfield! {
+//! #        pub u8 ExampleField
+//! #        ExampleFlags {
+//! #            0 : Flag0,
+//! #            1 : Flag1,
+//! #            2 : Flag2,
+//! #            3 : Flag3,
+//! #            4 : Flag4,
+//! #            5 : Flag5,
+//! #            6 : Flag6,
+//! #            7 : Flag7,
+//! #        }
+//! #    }
+//!
+//! let mut field = ExampleField::from_binary_str("01010101");
+//! field.clear_index(0);
+//! field.clear_index(2);
+//! assert_eq!("01010000", field.as_binary());
+//! ```
+//!
+//! Toggle bit value by field:
+//!
+//! ```rust
+//! # use ubits::bitfield;
+//! #    bitfield! {
+//! #        pub u8 ExampleField
+//! #        ExampleFlags {
+//! #            0 : Flag0,
+//! #            1 : Flag1,
+//! #            2 : Flag2,
+//! #            3 : Flag3,
+//! #            4 : Flag4,
+//! #            5 : Flag5,
+//! #            6 : Flag6,
+//! #            7 : Flag7,
+//! #        }
+//! #    }
+//!
+//! let mut field = ExampleField::from_binary_str("01010101");
+//! field.toggle(ExampleFlags::Flag0);
+//! assert_eq!("01010100", field.as_binary());
+//! field.toggle(ExampleFlags::Flag0);
+//! assert_eq!("01010101", field.as_binary());
+//! ```
+//!
+//! Toggle bit value by index:
+//!
+//! ```rust
+//! # use ubits::bitfield;
+//! #    bitfield! {
+//! #        pub u8 ExampleField
+//! #        ExampleFlags {
+//! #            0 : Flag0,
+//! #            1 : Flag1,
+//! #            2 : Flag2,
+//! #            3 : Flag3,
+//! #            4 : Flag4,
+//! #            5 : Flag5,
+//! #            6 : Flag6,
+//! #            7 : Flag7,
+//! #        }
+//! #    }
+//!
+//! let mut field = ExampleField::from_binary_str("01010101");
+//! field.toggle_index(0);
+//! assert_eq!("01010100", field.as_binary());
+//! field.toggle_index(0);
+//! assert_eq!("01010101", field.as_binary());
+//! ```
+//!
+//! ### Named Getters and Setters
+//!
+//! Ubits can generate getter and setter methods for zero or more fields, if a name is provided.
+//!
+//! ```rust
+//! use ubits::bitfield;
+//!    bitfield! {
+//!        pub u8 ExampleField
+//!        ExampleFlags {
+//!            0 : Flag0 : (field_0),  // is_field_0 & set_field_0 & clear_field_0 & toggle_field_0
+//!            1 : Flag1 : (field_1),  // is_field_1 & set_field_1 & clear_field_1 & toggle_field_1
+//!            2 : Flag2,
+//!            3 : Flag3,
+//!            4 : Flag4,
+//!            5 : Flag5,
+//!            6 : Flag6,
+//!            7 : Flag7,
+//!        }
+//!    }
+//!
+//! let mut field = ExampleField::from_binary_str("01010101");
+//! assert_eq!(true, field.is_field_0());
+//! assert_eq!(false, field.is_field_1());
+//!
+//! field.set_field_1();
+//! assert_eq!(true, field.is_field_1());
+//!
+//! field.clear_field_1();
+//! assert_eq!(false, field.is_field_1());
+//!
+//! field.toggle_field_1();
+//! assert_eq!(true, field.is_field_1());
+//! ```
+//!
+//! ### Combinations
+//!
+//! Combine bit fields: <br>
+//! (use `into_combined` to consume self)
+//!
+//! ```rust
+//! # use ubits::bitfield;
+//! #    bitfield! {
+//! #        pub u8 ExampleField
+//! #        ExampleFlags {
+//! #            0 : Flag0,
+//! #            1 : Flag1,
+//! #            2 : Flag2,
+//! #            3 : Flag3,
+//! #            4 : Flag4,
+//! #            5 : Flag5,
+//! #            6 : Flag6,
+//! #            7 : Flag7,
+//! #        }
+//! #    }
+//!
+//! let mut a = ExampleField::from_binary_str("01010101");
+//! let b = ExampleField::from_binary_str("10101010");
+//! assert_eq!("11111111", a.combine(b).as_binary());
+//! ```
+//!
+//! Get the intersection of two bitfields: <br>
+//! (use `into_intersection` to consume self)
+//! ```rust
+//! # use ubits::bitfield;
+//! #    bitfield! {
+//! #        pub u8 ExampleField
+//! #        ExampleFlags {
+//! #            0 : Flag0,
+//! #            1 : Flag1,
+//! #            2 : Flag2,
+//! #            3 : Flag3,
+//! #            4 : Flag4,
+//! #            5 : Flag5,
+//! #            6 : Flag6,
+//! #            7 : Flag7,
+//! #        }
+//! #    }
+//!
+//! let mut a = ExampleField::from_binary_str("11000011");
+//! let b = ExampleField::from_binary_str("01111110");
+//! assert_eq!("01000010", a.intersect(b).as_binary());
+//! ```
+//!
+//! Get the diff of two bitfields: <br>
+//! (use `into_diff` to consume self)
+//!
+//! ```rust
+//! # use ubits::bitfield;
+//! #    bitfield! {
+//! #        pub u8 ExampleField
+//! #        ExampleFlags {
+//! #            0 : Flag0,
+//! #            1 : Flag1,
+//! #            2 : Flag2,
+//! #            3 : Flag3,
+//! #            4 : Flag4,
+//! #            5 : Flag5,
+//! #            6 : Flag6,
+//! #            7 : Flag7,
+//! #        }
+//! #    }
+//!
+//! let mut a = ExampleField::from_binary_str("11000011");
+//! let b = ExampleField::from_binary_str("01100110");
+//! assert_eq!("10100101", a.diff(b).as_binary());
+//! ```
+//!
+//! ### Bitwise
+//!
+//! Both bit field instances and flags use bitwise operators to change bit values.
+//!
+//! ```rust
+//! # use ubits::bitfield;
+//! #    bitfield! {
+//! #        pub u8 ExampleField
+//! #        ExampleFlags {
+//! #            0 : Flag0,
+//! #            1 : Flag1,
+//! #            2 : Flag2,
+//! #            3 : Flag3,
+//! #            4 : Flag4,
+//! #            5 : Flag5,
+//! #            6 : Flag6,
+//! #            7 : Flag7,
+//! #        }
+//! #    }
+//!
+//! let mut from_zeros = ExampleField::zeros();
+//! assert_eq!("00000000", from_zeros.as_binary());
+//!
+//! // set bit to 1
+//! from_zeros |= ExampleFlags::Flag1;
+//! assert_eq!("00000010", from_zeros.as_binary());
+//!
+//! // set bit back to 0
+//! from_zeros &= ExampleFlags::Flag1;
+//! assert_eq!("00000000", from_zeros.as_binary());
+//!
+//! // toggle a bit
+//! from_zeros ^= ExampleFlags::Flag1;
+//! assert_eq!("00000010", from_zeros.as_binary());
+//!
+//! from_zeros ^= ExampleFlags::Flag1;
+//! assert_eq!("00000000", from_zeros.as_binary());
+//! ```
+//!
+//! Operations can also be chained together:
+//!
+//! ```rust
+//! # use ubits::bitfield;
+//! #    bitfield! {
+//! #        pub u8 ExampleField
+//! #        ExampleFlags {
+//! #            0 : Flag0,
+//! #            1 : Flag1,
+//! #            2 : Flag2,
+//! #            3 : Flag3,
+//! #            4 : Flag4,
+//! #            5 : Flag5,
+//! #            6 : Flag6,
+//! #            7 : Flag7,
+//! #        }
+//! #    }
+//!
+//! let mut from_zeros = ExampleField::zeros() | ExampleFlags::Flag1 | ExampleFlags::Flag3;
+//! assert_eq!("00001010", from_zeros.as_binary());
+//!
+//! ```
+//!
+//! Bitfield instances can also be created from combining flags:
+//!
+//! ```rust
+//! # use ubits::bitfield;
+//! #    bitfield! {
+//! #        pub u8 ExampleField
+//! #        ExampleFlags {
+//! #            0 : Flag0,
+//! #            1 : Flag1,
+//! #            2 : Flag2,
+//! #            3 : Flag3,
+//! #            4 : Flag4,
+//! #            5 : Flag5,
+//! #            6 : Flag6,
+//! #            7 : Flag7,
+//! #        }
+//! #    }
+//!
+//! let mut from_zeros = ExampleFlags::Flag1 | ExampleFlags::Flag3;
+//! assert_eq!("00001010", from_zeros.as_binary());
+//!
+//! ```
+//!
+//! ## Fields named with flags
+//!
+//! The generated flags enum allows you to access bits by name.
+//! The flag has an associated [`u8`] value,
+//! which determines the index its target bit.
+//! (See [`bitfield`] for more info)
+//!
+//! With the following input...
+//! ```no_compile
+//! 1 0 1 0 0 1 1 0
+//! ```
+//!
+//! and the following flags...
+//! ```no_compile
+//! 0 : f1
+//! 1 : f1
+//! 2 : f2
+//! 3 : f3
+//! 4 : f4
+//! 5 : f5
+//! 6 : f6
+//! 7 : f7
+//! ```
+//!
+//! we end up with this layout.
+//!
+//! | name      | f7  | f6  | f5  | f4  | f3  | f2  | f1  | f0  |
+//! |-----------|----|----|----|----|----|----|----|----|
+//! | bit value | 1  | 0  | 1  | 0  | 0  | 1  | 1  | 0  |
+//! | index     | 7  | 6  | 5  | 4  | 3  | 2  | 1  | 0  |
+//!
+//!
+//! With the same input and only the first few flags:
+//!
+//! ```no_compile
+//! 0 : f0
+//! 1 : f1
+//! 2 : f2
+//! ```
+//!
+//! we end up with this layout.
+//!
+//! | name      |    |    |    |    |    | f2 | f1 | f0 |
+//! |-----------|----|----|----|----|----|----|----|----|
+//! | bit value | 1  | 0  | 1  | 0  | 0  | 1  | 1  | 0  |
+//! | index     | 7  | 6  | 5  | 4  | 3  | 2  | 1  | 0  |
+//!
+//!
+//! Using the same input, but with dispersed flags:
+//!
+//! ```no_compile
+//! 1 : f0
+//! 3 : f1
+//! 6 : f2
+//! ```
+//!
+//! we end up with this layout.
+//!
+//! | name      |    | f2 |    |    | f1 |    | f0 |    |
+//! |-----------|----|----|----|----|----|----|----|----|
+//! | bit value | 1  | 0  | 1  | 0  | 0  | 1  | 1  | 0  |
+//! | index     | 7  | 6  | 5  | 4  | 3  | 2  | 1  | 0  |
+//!
+
+// -------------------------------------------------------------------------------------------------
+// Imports
+
+extern crate doc_comment;
+extern crate paste;
+extern crate safe_transmute;
+
+#[doc(hidden)]
+pub use doc_comment::doc_comment as __doc_comment;
+
+#[doc(hidden)]
+pub use safe_transmute::{
+    transmute_one as __transmute_one, TriviallyTransmutable as __TriviallyTransmutable,
 };
 
-#[doc(hidden)]
-pub use paste::paste as __paste;
-
-// -------------------------------------------------------------------------------------------------
-// Generator Macros
-
-/// Generates a bitfield struct and a corresponding flag enum.
-///
-/// Can be used multiple times in a single codebase
-/// as long as the identifiers are unique or are isolated so as not to clash.
-///
-/// __See the [`examples`] module for examples of the generated output.__
-///
-/// # Args
-///
-/// - `pub` - optional accessor: if provided, both generated items will public.
-/// If omitted, both will be private. <br>
-/// [see here](https://doc.rust-lang.org/reference/visibility-and-privacy.html#visibility-and-privacy) for possible visibility options.
-///
-/// - `ExampleField` - name for the generated bitfield struct.
-/// (results in `struct ExampleField(...)`)
-///
-/// - `ExampleFlags` - name for the generated flag enum.
-/// (results in `enum ExampleFlags { ... }`)
-///
-/// - `u8` - unsigned integer type to use as a bit array. *Must be an unsigned integer* <br>
-/// valid options are: [`u8`],[`u16`], [`u32`], [`u64`], [`u128`], [`usize`]
-///
-/// - `0 : Flag0` - defines each member of the flag enum. <br>
-/// The left hand side must be a [`u8`] `(0..=254)`
-/// and must be less than the number of bits in the underlying unsigned type.
-/// This value determines the index of the target bit within the field. <br>
-/// The right hand side can be any valid identifier (unique to this enum).
-/// These identifiers will be used to access the corresponding field.
-///
-/// - `/// docstrings` - Each element can take optional docstrings.
-/// This includes the bit field struct, the flag enum, and each member within the flag enum.
-/// See [`examples`] for more information.
-///
-/// # Examples:
-///
-/// Full Example - (see below for explanation for each parameter):
-/// ```rust
-/// use ubits::bitfield;
-///
-///     bitfield! {
-///         /// Optional docstring
-///         /// for [`ExampleField`] struct
-///         pub u8 ExampleField
-///         /// Optional docstring
-///         /// for [`ExampleFlags`] enum
-///         ExampleFlags {
-///             /// Optional docstring for [`ExampleFlags::Flag0`]
-///             0 : Flag0,
-///             /// Optional docstring for [`ExampleFlags::Flag1`]
-///             1 : Flag1,
-///             /// Optional docstring for [`ExampleFlags::Flag2`]
-///             2 : Flag2,
-///             /// Optional docstring for [`ExampleFlags::Flag3`]
-///             3 : Flag3,
-///             /// Optional docstring for [`ExampleFlags::Flag4`]
-///             4 : Flag4,
-///             /// Optional docstring for [`ExampleFlags::Flag5`]
-///             5 : Flag5,
-///             /// Optional docstring for [`ExampleFlags::Flag6`]
-///             6 : Flag6,
-///             /// Optional docstring for [`ExampleFlags::Flag7`]
-///             7 : Flag7,
-///         }
-///     }
-/// ```
-///
-/// You don't have to name *all* the fields if you don't need them...
-///
-/// You can use just a few from the front:
-/// ```rust
-/// use ubits::bitfield;
-///
-///     bitfield! {
-///         /// Optional docstring
-///         /// for [`ExampleField`] struct
-///         pub u8 ExampleField
-///         /// Optional docstring
-///         /// for [`ExampleFlags`] enum
-///         ExampleFlags {
-///             /// Optional docstring for [`ExampleFlags::Flag0`]
-///             0 : Flag0,
-///             /// Optional docstring for [`ExampleFlags::Flag1`]
-///             1 : Flag1,
-///             /// Optional docstring for [`ExampleFlags::Flag2`]
-///             2 : Flag2,
-///         }
-///     }
-/// ```
-///
-/// ... or any valid indices:
-/// ```rust
-/// use ubits::bitfield;
-///
-///     bitfield! {
-///         /// Optional docstring
-///         /// for [`ExampleField`] struct
-///         pub u8 ExampleField
-///         /// Optional docstring
-///         /// for [`ExampleFlags`] enum
-///         ExampleFlags {
-///             /// Optional docstring for [`ExampleFlags::Flag0`]
-///             0 : Flag0,
-///             /// Optional docstring for [`ExampleFlags::Flag1`]
-///             3 : Flag1,
-///             /// Optional docstring for [`ExampleFlags::Flag2`]
-///             6 : Flag2,
-///         }
-///     }
-/// ```
-/// ... or just omit the flags altogether and use indices only.:
-/// ```rust
-/// use ubits::bitfield;
-///     bitfield! {
-///         /// Optional docstring
-///         /// for [`ExampleField`] struct
-///         pub u8 ExampleField
-///     }
-/// ```
-/// __Note: if you omit flags, no flag enum will be generated
-/// and no methods for the bitfield struct that rely on flags will be generated.__
-///
-#[macro_export(local_inner_macros)]
-macro_rules! bitfield {
-
-    // U8
-    (
-        $(#[$doc:meta])*
-        $access:vis u8 $name:ident
+#[doc(hidden)]
+pub use paste::paste as __paste;
+
+// -------------------------------------------------------------------------------------------------
+// Generator Macros
+
+/// Generates a bitfield struct and a corresponding flag enum.
+///
+/// Can be used multiple times in a single codebase
+/// as long as the identifiers are unique or are isolated so as not to clash.
+///
+/// __See the [`examples`] module for examples of the generated output.__
+///
+/// # Args
+///
+/// - `pub` - optional accessor: if provided, both generated items will public.
+/// If omitted, both will be private. <br>
+/// [see here](https://doc.rust-lang.org/reference/visibility-and-privacy.html#visibility-and-privacy) for possible visibility options.
+///
+/// - `ExampleField` - name for the generated bitfield struct.
+/// (results in `struct ExampleField(...)`)
+///
+/// - `ExampleFlags` - name for the generated flag enum.
+/// (results in `enum ExampleFlags { ... }`)
+///
+/// - `u8` - unsigned integer type to use as a bit array. *Must be an unsigned integer* <br>
+/// valid options are: [`u8`],[`u16`], [`u32`], [`u64`], [`u128`], [`usize`]
+///
+/// - `0 : Flag0` - defines each member of the flag enum. <br>
+/// The left hand side must be a [`u8`] `(0..=254)`
+/// and must be less than the number of bits in the underlying unsigned type.
+/// This value determines the index of the target bit within the field. <br>
+/// The right hand side can be any valid identifier (unique to this enum).
+/// These identifiers will be used to access the corresponding field.
+///
+/// - `/// docstrings` - Each element can take optional docstrings.
+/// This includes the bit field struct, the flag enum, and each member within the flag enum.
+/// See [`examples`] for more information.
+///
+/// # Examples:
+///
+/// Full Example - (see below for explanation for each parameter):
+/// ```rust
+/// use ubits::bitfield;
+///
+///     bitfield! {
+///         /// Optional docstring
+///         /// for [`ExampleField`] struct
+///         pub u8 ExampleField
+///         /// Optional docstring
+///         /// for [`ExampleFlags`] enum
+///         ExampleFlags {
+///             /// Optional docstring for [`ExampleFlags::Flag0`]
+///             0 : Flag0,
+///             /// Optional docstring for [`ExampleFlags::Flag1`]
+///             1 : Flag1,
+///             /// Optional docstring for [`ExampleFlags::Flag2`]
+///             2 : Flag2,
+///             /// Optional docstring for [`ExampleFlags::Flag3`]
+///             3 : Flag3,
+///             /// Optional docstring for [`ExampleFlags::Flag4`]
+///             4 : Flag4,
+///             /// Optional docstring for [`ExampleFlags::Flag5`]
+///             5 : Flag5,
+///             /// Optional docstring for [`ExampleFlags::Flag6`]
+///             6 : Flag6,
+///             /// Optional docstring for [`ExampleFlags::Flag7`]
+///             7 : Flag7,
+///         }
+///     }
+/// ```
+///
+/// You don't have to name *all* the fields if you don't need them...
+///
+/// You can use just a few from the front:
+/// ```rust
+/// use ubits::bitfield;
+///
+///     bitfield! {
+///         /// Optional docstring
+///         /// for [`ExampleField`] struct
+///         pub u8 ExampleField
+///         /// Optional docstring
+///         /// for [`ExampleFlags`] enum
+///         ExampleFlags {
+///             /// Optional docstring for [`ExampleFlags::Flag0`]
+///             0 : Flag0,
+///             /// Optional docstring for [`ExampleFlags::Flag1`]
+///             1 : Flag1,
+///             /// Optional docstring for [`ExampleFlags::Flag2`]
+///             2 : Flag2,
+///         }
+///     }
+/// ```
+///
+/// ... or any valid indices:
+/// ```rust
+/// use ubits::bitfield;
+///
+///     bitfield! {
+///         /// Optional docstring
+///         /// for [`ExampleField`] struct
+///         pub u8 ExampleField
+///         /// Optional docstring
+///         /// for [`ExampleFlags`] enum
+///         ExampleFlags {
+///             /// Optional docstring for [`ExampleFlags::Flag0`]
+///             0 : Flag0,
+///             /// Optional docstring for [`ExampleFlags::Flag1`]
+///             3 : Flag1,
+///             /// Optional docstring for [`ExampleFlags::Flag2`]
+///             6 : Flag2,
+///         }
+///     }
+/// ```
+/// ... or just omit the flags altogether and use indices only.:
+/// ```rust
+/// use ubits::bitfield;
+///     bitfield! {
+///         /// Optional docstring
+///         /// for [`ExampleField`] struct
+///         pub u8 ExampleField
+///     }
+/// ```
+/// __Note: if you omit flags, no flag enum will be generated
+/// and no methods for the bitfield struct that rely on flags will be generated.__
+///
+#[macro_export(local_inner_macros)]
+macro_rules! bitfield {
+
+    // U8
+    (
+        $(#[$doc:meta])*
+        $access:vis u8 $name:ident
         $(
-            $(#[$flag_doc:meta])*
-            $flag:ident {
+            $(#[$flag_doc:meta])*
+            $flag:ident {
                 $(
-                    $(#[$member_doc:meta])*
-                    $idx:literal : $field:ident $( : ( $named_getter:ident ) )?,
-                )*
+                    $(#[$member_doc:meta])*
+                    $idx:literal : $field:ident $( : ( $named_getter:ident ) )?,
+                )*
             }
-        )?
-    ) => {
-        __bitfield_unchecked!( $(#[$doc])* $access [u8] [8] [u8::MAX] $name $($(#[$flag_doc])* $flag { $( $(#[$member_doc])* $idx : $field $(($named_getter))?, )* } )?);
+        )?
+    ) => {
+        __bitfield_unchecked!( $(#[$doc])* $access [u8] [8] [u8::MAX] $name $($(#[$flag_doc])* $flag { $( $(#[$member_doc])* $idx : $field $(($named_getter))?, )* } )?);
     };
 
-    // U16
-    (
-        $(#[$doc:meta])*
-        $access:vis u16 $name:ident
+    // U16
+    (
+        $(#[$doc:meta])*
+        $access:vis u16 $name:ident
         $(
-            $(#[$flag_doc:meta])*
-            $flag:ident {
+            $(#[$flag_doc:meta])*
+            $flag:ident {
                 $(
-                    $(#[$member_doc:meta])*
-                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
-                )*
+                    $(#[$member_doc:meta])*
+                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
+                )*
             }
-        )?
-    ) => {
-        __bitfield_unchecked!( $(#[$doc])* $access [u16] [16] [u16::MAX] $name $($(#[$flag_doc])* $flag { $( $(#[$member_doc])* $idx : $field $(($named_getter))?, )* } )?);
+        )?
+    ) => {
+        __bitfield_unchecked!( $(#[$doc])* $access [u16] [16] [u16::MAX] $name $($(#[$flag_doc])* $flag { $( $(#[$member_doc])* $idx : $field $(($named_getter))?, )* } )?);
     };
 
-    // U32
-    (
-        $(#[$doc:meta])*
-        $access:vis u32 $name:ident
+    // U32
+    (
+        $(#[$doc:meta])*
+        $access:vis u32 $name:ident
         $(
-            $(#[$flag_doc:meta])*
-            $flag:ident {
+            $(#[$flag_doc:meta])*
+            $flag:ident {
                 $(
-                    $(#[$member_doc:meta])*
-                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
-                )*
+                    $(#[$member_doc:meta])*
+                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
+                )*
             }
-        )?
-    ) => {
-        __bitfield_unchecked!( $(#[$doc])* $access [u32] [32] [u32::MAX] $name $($(#[$flag_doc])* $flag { $( $(#[$member_doc])* $idx : $field $(($named_getter))?, )* } )?);
+        )?
+    ) => {
+        __bitfield_unchecked!( $(#[$doc])* $access [u32] [32] [u32::MAX] $name $($(#[$flag_doc])* $flag { $( $(#[$member_doc])* $idx : $field $(($named_getter))?, )* } )?);
     };
 
-    // U64
-    (
-        $(#[$doc:meta])*
-        $access:vis u64 $name:ident
+    // U64
+    (
+        $(#[$doc:meta])*
+        $access:vis u64 $name:ident
         $(
-            $(#[$flag_doc:meta])*
-            $flag:ident {
+            $(#[$flag_doc:meta])*
+            $flag:ident {
                 $(
-                    $(#[$member_doc:meta])*
-                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
-                )*
+                    $(#[$member_doc:meta])*
+                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
+                )*
             }
-        )?
-    ) => {
-        __bitfield_unchecked!( $(#[$doc])* $access [u64] [64] [u64::MAX] $name $($(#[$flag_doc])* $flag { $( $(#[$member_doc])* $idx : $field $(($named_getter))?, )* } )?);
+        )?
+    ) => {
+        __bitfield_unchecked!( $(#[$doc])* $access [u64] [64] [u64::MAX] $name $($(#[$flag_doc])* $flag { $( $(#[$member_doc])* $idx : $field $(($named_getter))?, )* } )?);
     };
 
-    // U128
-    (
-        $(#[$doc:meta])*
-        $access:vis u128 $name:ident
+    // U128
+    (
+        $(#[$doc:meta])*
+        $access:vis u128 $name:ident
         $(
-            $(#[$flag_doc:meta])*
-            $flag:ident {
+            $(#[$flag_doc:meta])*
+            $flag:ident {
                 $(
-                    $(#[$member_doc:meta])*
-                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
-                )*
+                    $(#[$member_doc:meta])*
+                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
+                )*
             }
-        )?
-    ) => {
-        __bitfield_unchecked!( $(#[$doc])* $access [u128] [128] [u128::MAX] $name $($(#[$flag_doc])* $flag { $( $(#[$member_doc])* $idx : $field $(($named_getter))?, )* } )?);
+        )?
+    ) => {
+        __bitfield_unchecked!( $(#[$doc])* $access [u128] [128] [u128::MAX] $name $($(#[$flag_doc])* $flag { $( $(#[$member_doc])* $idx : $field $(($named_getter))?, )* } )?);
     };
 
-    // USIZE
-    (
-        $(#[$doc:meta])*
-        $access:vis usize $name:ident
+    // USIZE
+    (
+        $(#[$doc:meta])*
+        $access:vis usize $name:ident
         $(
-            $(#[$flag_doc:meta])*
-            $flag:ident {
+            $(#[$flag_doc:meta])*
+            $flag:ident {
                 $(
-                    $(#[$member_doc:meta])*
-                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
-                )*
+                    $(#[$member_doc:meta])*
+                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
+                )*
             }
-        )?
-    ) => {
-        __bitfield_unchecked!( $(#[$doc])* $access [usize] [usize::BITS as usize] [usize::MAX] $name $($(#[$flag_doc])* $flag { $( $(#[$member_doc])* $idx : $field $(($named_getter))?, )* } )?);
+        )?
+    ) => {
+        __bitfield_unchecked!( $(#[$doc])* $access [usize] [usize::BITS as usize] [usize::MAX] $name $($(#[$flag_doc])* $flag { $( $(#[$member_doc])* $idx : $field $(($named_getter))?, )* } )?);
     };
 }
 
-/// Not to be used directly.
-///
-/// Generates a bitfield struct and flag enum
-/// but does no type checking.
-/// Passing types that aren't unsigned integer types is undefined behaviour.
-///
-/// Use the [`bitfield`] macro instead as it enforces a closed set of types.
-#[doc(hidden)]
-#[macro_export(local_inner_macros)]
-macro_rules! __bitfield_unchecked {
+/// Not to be used directly.
+///
+/// Generates a bitfield struct and flag enum
+/// but does no type checking.
+/// Passing types that aren't unsigned integer types is undefined behaviour.
+///
+/// Use the [`bitfield`] macro instead as it enforces a closed set of types.
+#[doc(hidden)]
+#[macro_export(local_inner_macros)]
+macro_rules! __bitfield_unchecked {
     (
-        $(#[$field_doc:meta])*
-        $access:vis [$type:ty] [$($bits:tt)*] [$max:path] $name:ident
+        $(#[$field_doc:meta])*
+        $access:vis [$type:ty] [$($bits:tt)*] [$max:path] $name:ident
         $(
-            $(#[$flag_doc:meta])*
-            $flag:ident {
+            $(#[$flag_doc:meta])*
+            $flag:ident {
                 $(
-                    $(#[$member_doc:meta])*
-                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
-                )*
+                    $(#[$member_doc:meta])*
+                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
+                )*
             }
-        )?
-    ) => {
+        )?
+    ) => {
 
         $(
-            __def_flag_enum! {
-                $(#[$flag_doc])*
-                $access $name
-                $flag {
+            __def_flag_enum! {
+                $(#[$flag_doc])*
+                $access $name
+                $flag {
                     $(
-                        $(#[$member_doc])*
-                        $idx : $field $(($named_getter))?,
-                    )*
+                        $(#[$member_doc])*
+                        $idx : $field $(($named_getter))?,
+                    )*
                 }
             }
-        )?
+        )?
 
-        __def_field_struct! {
-            $(#[$field_doc])*
-            $access [$type] [$($bits)*] [$max] $name
-            $(
-                $flag {
+        __def_field_struct! {
+            $(#[$field_doc])*
+            $access [$type] [$($bits)*] [$max] $name
+            $(
+                $flag {
                     $(
-                        $(#[$member_doc])*
-                        $idx : $field $(($named_getter))?,
-                    )*
+                        $(#[$member_doc])*
+                        $idx : $field $(($named_getter))?,
+                    )*
                 }
-            )?
-        }
+            )?
+        }
     };
 }
 
-// -------------------------------------------------------------------------------------------------
-// Type Definitions
+// -------------------------------------------------------------------------------------------------
+// Type Definitions
 
-/// Defines a field struct with its members and implementations
-#[doc(hidden)]
-#[macro_export(local_inner_macros)]
-macro_rules! __def_field_struct {
+/// Defines a field struct with its members and implementations
+#[doc(hidden)]
+#[macro_export(local_inner_macros)]
+macro_rules! __def_field_struct {
     (
-        $(#[$field_doc:meta])*
-        $access:vis [$type:ty] [$($bits:tt)*] [$max:path] $name:ident
+        $(#[$field_doc:meta])*
+        $access:vis [$type:ty] [$($bits:tt)*] [$max:path] $name:ident
         $(
-            $flag:ident {
+            $flag:ident {
                 $(
-                    $(#[$member_doc:meta])*
-                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
-                )*
+                    $(#[$member_doc:meta])*
+                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
+                )*
             }
-        )?
-    ) => {
+        )?
+    ) => {
 
-        // Struct: $name
-        $(#[$field_doc])*
-        #[derive(Copy, Clone, PartialEq, PartialOrd)]
-        $access struct $name($type);
+        // Struct: $name
+        $(#[$field_doc])*
+        #[derive(Copy, Clone, PartialEq, PartialOrd)]
+        $access struct $name($type);
 
         $(
-            impl $name {
+            impl $name {
                 $(
                     $(
-                        __paste! {
-                            fn [< is_ $named_getter >](&self) -> bool {
-                                self.get($flag::$field)
+                        __paste! {
+                            pub fn [< is_ $named_getter >](&self) -> bool {
+                                self.get($flag::$field)
                             }
                         }
 
-                        __paste! {
-                            fn [< set_ $named_getter >](&mut self) {
-                                self.set($flag::$field);
+                        __paste! {
+                            pub fn [< set_ $named_getter >](&mut self) {
+                                self.set($flag::$field);
                             }
                         }
 
-                        __paste! {
-                            fn [< clear_ $named_getter >](&mut self) {
-                                self.clear($flag::$field);
+                        __paste! {
+                            pub fn [< clear_ $named_getter >](&mut self) {
+                                self.clear($flag::$field);
                             }
                         }
 
-                        __paste! {
-                            fn [< toggle_ $named_getter >](&mut self) {
-                                self.toggle($flag::$field);
+                        __paste! {
+                            pub fn [< toggle_ $named_getter >](&mut self) {
+                                self.toggle($flag::$field);
                             }
                         }
-                    )?
-                )*
+                    )?
+                )*
             }
-        )?
+        )?
 
-        // Constants
-        __impl_field_constants! {
-            $name { type: $type, max: $max, bits: [$($bits)*] }
+        // Constants
+        __impl_field_constants! {
+            $name { type: $type, max: $max, bits: [$($bits)*] }
         }
 
-        // Constructors
-        __impl_field_ctors! {
-            $name : $type
-        }
+        // Constructors
+        __impl_field_ctors! {
+            $name : $type
+        }
 
-        // State
-        __impl_field_state! {
-            $name : $type
-        }
+        // State
+        __impl_field_state! {
+            $name : $type
+        }
 
-        // Indexers
-        __impl_field_index_accessors! {
-            $name
-        }
+        // Indexers
+        __impl_field_index_accessors! {
+            $name
+        }
 
         $(
-            // Flags
-            __impl_field_flag_accessors! {
-                $name $flag $type
-            }
-        )?
+            // Flags
+            __impl_field_flag_accessors! {
+                $name $flag $type
+            }
+        )?
 
-        // Combinators
-        __impl_field_flag_combinators! {
-            $name
-        }
+        // Combinators
+        __impl_field_flag_combinators! {
+            $name
+        }
 
-        // Converters
-        __impl_field_flag_converters! {
-            $name
-        }
+        // Converters
+        __impl_field_flag_converters! {
+            $name
+        }
 
-        // Name: $name
-        __impl_default! {
-            $name => { $name(0) }
+        // Name: $name
+        __impl_default! {
+            $name => { $name(0) }
         }
 
-        // From: $type -> $name
-        __impl_from! {
-            /// Returns a field instance from value of its underlying type.
-            $type as $name (value) => {
-                $name(value)
+        // From: $type -> $name
+        __impl_from! {
+            /// Returns a field instance from value of its underlying type.
+            $type as $name (value) => {
+                $name(value)
             }
         }
 
         $(
-            // From: $flag -> $name
-            __impl_from! {
-                /// Returns a field instance from a flag.
-                $flag as $name (value) => {
-                    Self(0 | (1 << (value as $type)) )
+            // From: $flag -> $name
+            __impl_from! {
+                /// Returns a field instance from a flag.
+                $flag as $name (value) => {
+                    Self(0 | (1 << (value as $type)) )
                 }
             }
-        )?
+        )?
 
-        // Bitwise: $name + $name
-        __impl_bitwise_operators! {
-            [Self] for $name : (self rhs -> Self)
-            BitAnd => { Self(self.0 & rhs.0) }
-            BitOr => { Self(self.0 | rhs.0) }
-            BitXor => {  Self(self.0 ^ rhs.0) }
-            BitAndAssign => { self.0 &= rhs.0; }
-            BitOrAssign => { self.0 |= rhs.0; }
-            BitXorAssign => { self.0 ^= rhs.0; }
+        // Bitwise: $name + $name
+        __impl_bitwise_operators! {
+            [Self] for $name : (self rhs -> Self)
+            BitAnd => { Self(self.0 & rhs.0) }
+            BitOr => { Self(self.0 | rhs.0) }
+            BitXor => {  Self(self.0 ^ rhs.0) }
+            BitAndAssign => { self.0 &= rhs.0; }
+            BitOrAssign => { self.0 |= rhs.0; }
+            BitXorAssign => { self.0 ^= rhs.0; }
         }
 
         $(
-            // Bitwise: $name + $flag
-            __impl_bitwise_operators! {
-                [$flag] for $name : (self rhs -> $name)
-                BitAnd => { $name(self.0 & !(1 << (rhs as $type))) }
-                BitOr => { $name(self.0 | (1 << (rhs as $type))) }
-                BitXor => { $name(self.0 ^ (1 << (rhs as $type))) }
-                BitAndAssign => { self.clear(rhs); }
-                BitOrAssign => { self.set(rhs); }
-                BitXorAssign => { self.toggle(rhs); }
+            // Bitwise: $name + $flag
+            __impl_bitwise_operators! {
+                [$flag] for $name : (self rhs -> $name)
+                BitAnd => { $name(self.0 & !(1 << (rhs as $type))) }
+                BitOr => { $name(self.0 | (1 << (rhs as $type))) }
+                BitXor => { $name(self.0 ^ (1 << (rhs as $type))) }
+                BitAndAssign => { self.clear(rhs); }
+                BitOrAssign => { self.set(rhs); }
+                BitXorAssign => { self.toggle(rhs); }
             }
 
-            // Bitwise: &$name + $flag
-            __impl_bitwise_operators! {
-                [$flag] for & $name : (self rhs -> $name)
-                BitAnd => { $name(self.0 & !(1 << (rhs as $type))) }
-                BitOr => { $name(self.0 | (1 << (rhs as $type))) }
-                BitXor => { $name(self.0 ^ (1 << (rhs as $type))) }
+            // Bitwise: &$name + $flag
+            __impl_bitwise_operators! {
+                [$flag] for & $name : (self rhs -> $name)
+                BitAnd => { $name(self.0 & !(1 << (rhs as $type))) }
+                BitOr => { $name(self.0 | (1 << (rhs as $type))) }
+                BitXor => { $name(self.0 ^ (1 << (rhs as $type))) }
             }
 
-            // Bitwise: $mut $name + $flag
-            __impl_bitwise_operators! {
-                [$flag] for &mut $name : (self rhs -> $name)
-                BitAnd => { $name(self.0 & !(1 << (rhs as $type))) }
-                BitOr => { $name(self.0 | (1 << (rhs as $type))) }
-                BitXor => { $name(self.0 ^ (1 << (rhs as $type))) }
+            // Bitwise: $mut $name + $flag
+            __impl_bitwise_operators! {
+                [$flag] for &mut $name : (self rhs -> $name)
+                BitAnd => { $name(self.0 & !(1 << (rhs as $type))) }
+                BitOr => { $name(self.0 | (1 << (rhs as $type))) }
+                BitXor => { $name(self.0 ^ (1 << (rhs as $type))) }
             }
-        )?
+        )?
 
-        // Bitwise: Debug & Binary
-        __impl_formatters! {
-            $name (self f) {
-                Debug => { core::write!(f, "{}({})", core::stringify!($name), self.as_binary()) }
-                Binary => { core::write!(f, "{}", self.as_binary()) }
+        // Bitwise: Debug & Binary
+        __impl_formatters! {
+            $name (self f) {
+                Debug => { core::write!(f, "{}({})", core::stringify!($name), self.as_binary()) }
+                Binary => { core::write!(f, "{}", self.as_binary()) }
             }
         }
     };
 }
 
-/// Defines a flag enum with its members and implementations
-#[doc(hidden)]
-#[macro_export(local_inner_macros)]
-macro_rules! __def_flag_enum {
+/// Defines a flag enum with its members and implementations
+#[doc(hidden)]
+#[macro_export(local_inner_macros)]
+macro_rules! __def_flag_enum {
     (
-        $(#[$flag_doc:meta])*
-        $access:vis $name:ident
-        $flag:ident {
+        $(#[$flag_doc:meta])*
+        $access:vis $name:ident
+        $flag:ident {
             $(
-                $(#[$member_doc:meta])*
-                $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
-            )*
+                $(#[$member_doc:meta])*
+                $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
+            )*
         }
     ) => {
 
-        // Enum: $flag
-        $(#[$flag_doc])*
-        #[derive(Debug, Copy, Clone, PartialEq, PartialOrd)]
-        #[repr(u8)]
-        $access enum $flag {
-            $( $(#[$member_doc])* $field = $idx ),*
-        }
-
-        // Bitwise: $flag + $flag
-        __impl_bitwise_operators! {
-            [Self] for $flag : (self rhs -> $name)
-            BitAnd => { $name(0).clear(self) & rhs }
-            BitOr => { $name(0).set(self) | rhs }
-            BitXor => { $name(0).toggle(self) ^ rhs }
-        }
-
-        // Bitwise: u8 -> $flag
-        __impl_from! {
-            /// Converts a [`u8`] to a flag
-            ///
-            /// # Errors
-            ///
-            /// Panics if the supplied [`u8`] is out of range for fields base type.
-            /// eg: for a 16-bit field (using [`u16`]),
-            /// providing an index of `20` will cause a panic.
-            u8 as $flag (value) => {
-                $crate::__transmute_one::<$flag>(&[value])
-                .expect(std::format!(
+        // Enum: $flag
+        $(#[$flag_doc])*
+        #[derive(Debug, Copy, Clone, PartialEq, PartialOrd)]
+        #[repr(u8)]
+        $access enum $flag {
+            $( $(#[$member_doc])* $field = $idx ),*
+        }
+
+        // Bitwise: $flag + $flag
+        __impl_bitwise_operators! {
+            [Self] for $flag : (self rhs -> $name)
+            BitAnd => { $name(0).clear(self) & rhs }
+            BitOr => { $name(0).set(self) | rhs }
+            BitXor => { $name(0).toggle(self) ^ rhs }
+        }
+
+        // Bitwise: u8 -> $flag
+        __impl_from! {
+            /// Converts a [`u8`] to a flag
+            ///
+            /// # Errors
+            ///
+            /// Panics if the supplied [`u8`] is out of range for fields base type.
+            /// eg: for a 16-bit field (using [`u16`]),
+            /// providing an index of `20` will cause a panic.
+            u8 as $flag (value) => {
+                $crate::__transmute_one::<$flag>(&[value])
+                .expect(std::format!(
                     "failed to transmute {} to {}. {} is not a valid index in {}.",
-                    value,
-                    core::stringify!($flag),
-                    value,
-                    core::stringify!($flag)
-                ).as_str())
+                    value,
+                    core::stringify!($flag),
+                    value,
+                    core::stringify!($flag)
+                ).as_str())
             }
         }
 
-        // Bitwise: $flag -> u8
-        __impl_from! {
-            /// Returns a flag as its corresponding [`u8`] value.
-            $flag as u8 (value) => {
-                value as u8
+        // Bitwise: $flag -> u8
+        __impl_from! {
+            /// Returns a flag as its corresponding [`u8`] value.
+            $flag as u8 (value) => {
+                value as u8
             }
         }
 
-        unsafe impl $crate::__TriviallyTransmutable for $flag {}
+        unsafe impl $crate::__TriviallyTransmutable for $flag {}
     };
 }
 
-// -------------------------------------------------------------------------------------------------
-// Field Implementations
+// -------------------------------------------------------------------------------------------------
+// Field Implementations
 
-/// Generates constants for `$name`
-#[doc(hidden)]
-#[macro_export]
-macro_rules! __impl_field_constants {
-    ($name:ident { type: $type:ty, max: $max:path, bits: [$($bits:tt)*] }) => {
-        $crate::__doc_comment! {
+/// Generates constants for `$name`
+#[doc(hidden)]
+#[macro_export]
+macro_rules! __impl_field_constants {
+    ($name:ident { type: $type:ty, max: $max:path, bits: [$($bits:tt)*] }) => {
+        $crate::__doc_comment! {
             core::concat!(
-                "Constant values describing [`", core::stringify!($name), "`]."
-            ),
-            impl $name {
-                $crate::__doc_comment! {
+                "Constant values describing [`", core::stringify!($name), "`]."
+            ),
+            impl $name {
+                $crate::__doc_comment! {
                     core::concat!(
-                      "Number of bits in an instance of [`", core::stringify!($name), "`]."
-                    ),
-                    pub const BITS: usize = $($bits)*;
+                      "Number of bits in an instance of [`", core::stringify!($name), "`]."
+                    ),
+                    pub const BITS: usize = $($bits)*;
                 }
-                $crate::__doc_comment! {
+                $crate::__doc_comment! {
                     core::concat!(
-                      "Number of bytes used by an instance of [`", core::stringify!($name), "`]."
-                    ),
-                    pub const BYTES: usize = $($bits)* / 8;
+                      "Number of bytes used by an instance of [`", core::stringify!($name), "`]."
+                    ),
+                    pub const BYTES: usize = $($bits)* / 8;
                 }
-                $crate::__doc_comment! {
+                $crate::__doc_comment! {
                     core::concat!(
-                      "Maximum valid integer for [`", core::stringify!($name), "`]."
-                    ),
-                    pub const MAX: $type = $max;
+                      "Maximum valid integer for [`", core::stringify!($name), "`]."
+                    ),
+                    pub const MAX: $type = $max;
                 }
             }
         }
     };
 }
 
-/// Generates constructors for `$name`
-#[doc(hidden)]
-#[macro_export]
-macro_rules! __impl_field_ctors {
-    ( $name:ident : $type:ty ) => {
-        $crate::__doc_comment! {
+/// Generates constructors for `$name`
+#[doc(hidden)]
+#[macro_export]
+macro_rules! __impl_field_ctors {
+    ( $name:ident : $type:ty ) => {
+        $crate::__doc_comment! {
             core::concat!(
-                "Constructors for creating instances of [`", core::stringify!($name), "`]."
-            ),
-            impl $name {
-                $crate::__doc_comment! {
+                "Constructors for creating instances of [`", core::stringify!($name), "`]."
+            ),
+            impl $name {
+                $crate::__doc_comment! {
                     core::concat!(
-                      "Create a new instance of [`", core::stringify!($name), "`] ",
-                      "from a [`", core::stringify!($type), "`] value."
-                    ),
-                    pub fn new(value: $type) -> Self {
-                        Self(value)
+                      "Create a new instance of [`", core::stringify!($name), "`] ",
+                      "from a [`", core::stringify!($type), "`] value."
+                    ),
+                    pub fn new(value: $type) -> Self {
+                        Self(value)
                     }
                 }
 
-                $crate::__doc_comment! {
+                $crate::__doc_comment! {
                     core::concat!(
-                      "Create a new instance of [`", core::stringify!($name), "`] ",
-                      "from `0`."
-                    ),
-                    pub fn zeros() -> Self {
+                      "Create a new instance of [`", core::stringify!($name), "`] ",
+                      "from `0`."
+                    ),
+                    pub fn zeros() -> Self {
                         Self(0)
                     }
                 }
 
-                $crate::__doc_comment! {
+                $crate::__doc_comment! {
                     core::concat!(
-                      "Create a new instance of [`", core::stringify!($name), "`] ",
-                      "from the maximum possible integer value."
-                    ),
-                    pub fn ones() -> Self {
-                        Self(Self::MAX)
+                      "Create a new instance of [`", core::stringify!($name), "`] ",
+                      "from the maximum possible integer value."
+                    ),
+                    pub fn ones() -> Self {
+                        Self(Self::MAX)
                     }
                 }
 
-                $crate::__doc_comment! {
+                $crate::__doc_comment! {
                     core::concat!(
-                      "Create a new instance of [`", core::stringify!($name), "`] ",
-                      "from a binary string."
-                    ),
-                    pub fn from_binary_str(value: &str) -> Self {
-                        Self(<$type>::from_str_radix(value, 2).unwrap())
+                      "Create a new instance of [`", core::stringify!($name), "`] ",
+                      "from a binary string."
+                    ),
+                    pub fn from_binary_str(value: &str) -> Self {
+                        Self(<$type>::from_str_radix(value, 2).unwrap())
                     }
                 }
 
-                $crate::__doc_comment! {
+                $crate::__doc_comment! {
                     core::concat!(
-                      "Create a new instance of [`", core::stringify!($name), "`] ",
-                      "from a binary string."
-                    ),
-                    pub fn from_binary_string(value: String) -> Self {
-                        Self(<$type>::from_str_radix(value.as_str(), 2).unwrap())
+                      "Create a new instance of [`", core::stringify!($name), "`] ",
+                      "from a binary string."
+                    ),
+                    pub fn from_binary_string(value: String) -> Self {
+                        Self(<$type>::from_str_radix(value.as_str(), 2).unwrap())
                     }
                 }
             }
@@ -5050,31 +5045,31 @@
     };
 }
 
-/// Generates getters for state fields in `$name`
-#[doc(hidden)]
-#[macro_export]
-macro_rules! __impl_field_state {
-    ($name:ident : $type:ty) => {
-        $crate::__doc_comment! {
+/// Generates getters for state fields in `$name`
+#[doc(hidden)]
+#[macro_export]
+macro_rules! __impl_field_state {
+    ($name:ident : $type:ty) => {
+        $crate::__doc_comment! {
             core::concat!(
-                "Current state of this bitfield."
-            ),
-            impl $name {
-                $crate::__doc_comment! {
+                "Current state of this bitfield."
+            ),
+            impl $name {
+                $crate::__doc_comment! {
                     core::concat!(
-                      "Returns the current field value as a [`", core::stringify!($type), "`]"
-                    ),
-                    pub fn as_integer(&self) -> $type {
-                        self.0
-                    }
+                      "Returns the current field value as a [`", core::stringify!($type), "`]"
+                    ),
+                    pub fn as_integer(&self) -> $type {
+                        self.0
+                    }
                 }
 
-                $crate::__doc_comment! {
+                $crate::__doc_comment! {
                     core::concat!(
-                      "Returns the current field value as a binary formatted string."
-                    ),
-                    pub fn as_binary(&self) -> String {
-                        std::format!("{:0width$b}", self.0, width = Self::BITS)
+                      "Returns the current field value as a binary formatted string."
+                    ),
+                    pub fn as_binary(&self) -> String {
+                        std::format!("{:0width$b}", self.0, width = Self::BITS)
                     }
                 }
             }
@@ -5082,49 +5077,49 @@
     };
 }
 
-/// Generates getters by index for bit fields in `$name`
-#[doc(hidden)]
-#[macro_export]
-macro_rules! __impl_field_index_accessors {
-    ($name:ident) => {
-        $crate::__doc_comment! {
+/// Generates getters by index for bit fields in `$name`
+#[doc(hidden)]
+#[macro_export]
+macro_rules! __impl_field_index_accessors {
+    ($name:ident) => {
+        $crate::__doc_comment! {
             core::concat!(
-                "Field accessors by index for [`", core::stringify!($name), "`]."
-            ),
-            impl $name {
-                $crate::__doc_comment! {
+                "Field accessors by index for [`", core::stringify!($name), "`]."
+            ),
+            impl $name {
+                $crate::__doc_comment! {
                     core::concat!(
-                        "Returns the value of the bit at the supplied index as a boolean."
-                    ),
-                    pub fn get_index(&self, index: u8) -> bool {
-                        ((self.0 >> index) & 1) == 1
-                    }
+                        "Returns the value of the bit at the supplied index as a boolean."
+                    ),
+                    pub fn get_index(&self, index: u8) -> bool {
+                        ((self.0 >> index) & 1) == 1
+                    }
                 }
 
-                $crate::__doc_comment! {
+                $crate::__doc_comment! {
                     core::concat!(
-                        "Sets the value of the bit at the supplied index to `1`."
-                    ),
-                    pub fn set_index(&mut self, index: u8) {
-                        self.0 |= (1 << index);
+                        "Sets the value of the bit at the supplied index to `1`."
+                    ),
+                    pub fn set_index(&mut self, index: u8) {
+                        self.0 |= (1 << index);
                     }
                 }
 
-                $crate::__doc_comment! {
+                $crate::__doc_comment! {
                     core::concat!(
-                        "Sets the value of the bit at the supplied index to `0`."
-                    ),
-                    pub fn clear_index(&mut self, index: u8) {
-                        self.0 &= !(1 << index);
+                        "Sets the value of the bit at the supplied index to `0`."
+                    ),
+                    pub fn clear_index(&mut self, index: u8) {
+                        self.0 &= !(1 << index);
                     }
                 }
 
-                $crate::__doc_comment! {
+                $crate::__doc_comment! {
                     core::concat!(
-                        "Flips the value of the bit at the supplied index."
-                    ),
-                    pub fn toggle_index(&mut self, index: u8) {
-                        self.0 ^= (1 << index);
+                        "Flips the value of the bit at the supplied index."
+                    ),
+                    pub fn toggle_index(&mut self, index: u8) {
+                        self.0 ^= (1 << index);
                     }
                 }
             }
@@ -5132,99 +5127,99 @@
     };
 }
 
-/// Generates getters by flag for bit fields in `$name`
-#[doc(hidden)]
-#[macro_export]
-macro_rules! __impl_field_flag_accessors {
-    ($name:ident $flag:ident $type:ty) => {
-        $crate::__doc_comment! {
+/// Generates getters by flag for bit fields in `$name`
+#[doc(hidden)]
+#[macro_export]
+macro_rules! __impl_field_flag_accessors {
+    ($name:ident $flag:ident $type:ty) => {
+        $crate::__doc_comment! {
             core::concat!(
-                "Named field accessors by [`", core::stringify!($flag), "`] for [`", core::stringify!($name), "`]."
-            ),
-            impl $name {
-                $crate::__doc_comment! {
+                "Named field accessors by [`", core::stringify!($flag), "`] for [`", core::stringify!($name), "`]."
+            ),
+            impl $name {
+                $crate::__doc_comment! {
                     core::concat!(
-                        "Returns the value of the bit at the supplied flag as a boolean."
-                    ),
-                    pub fn get(&self, flag: $flag) -> bool {
-                        ((self.0 >> (flag as $type)) & 1) == 1
-                    }
+                        "Returns the value of the bit at the supplied flag as a boolean."
+                    ),
+                    pub fn get(&self, flag: $flag) -> bool {
+                        ((self.0 >> (flag as $type)) & 1) == 1
+                    }
                 }
 
-                $crate::__doc_comment! {
+                $crate::__doc_comment! {
                     core::concat!(
-                        "Sets the value of the bit at the supplied flag to `1`."
-                    ),
-                    pub fn set(&mut self, flag: $flag) -> &mut Self {
-                        self.0 |= (1 << (flag as $type));
-                        self
-                    }
+                        "Sets the value of the bit at the supplied flag to `1`."
+                    ),
+                    pub fn set(&mut self, flag: $flag) -> &mut Self {
+                        self.0 |= (1 << (flag as $type));
+                        self
+                    }
                 }
 
-                $crate::__doc_comment! {
+                $crate::__doc_comment! {
                     core::concat!(
-                        "Sets the value of the bit at the supplied flag to `0`."
-                    ),
-                    pub fn clear(&mut self, flag: $flag) -> &mut Self {
-                        self.0 &= !(1 << (flag as $type));
-                        self
-                    }
+                        "Sets the value of the bit at the supplied flag to `0`."
+                    ),
+                    pub fn clear(&mut self, flag: $flag) -> &mut Self {
+                        self.0 &= !(1 << (flag as $type));
+                        self
+                    }
                 }
 
-                $crate::__doc_comment! {
+                $crate::__doc_comment! {
                     core::concat!(
-                        "Flips the value of the bit at the supplied flag."
-                    ),
-                    pub fn toggle(&mut self, flag: $flag) -> &mut Self {
-                        self.0 ^= (1 << (flag as $type));
-                        self
-                    }
+                        "Flips the value of the bit at the supplied flag."
+                    ),
+                    pub fn toggle(&mut self, flag: $flag) -> &mut Self {
+                        self.0 ^= (1 << (flag as $type));
+                        self
+                    }
                 }
             }
         }
     };
 }
 
-/// Generates combinator methods for `$name`
-#[doc(hidden)]
-#[macro_export]
-macro_rules! __impl_field_flag_combinators {
-    ($name:ident) => {
-        $crate::__doc_comment! {
+/// Generates combinator methods for `$name`
+#[doc(hidden)]
+#[macro_export]
+macro_rules! __impl_field_flag_combinators {
+    ($name:ident) => {
+        $crate::__doc_comment! {
             core::concat!(
-                "Combinators for [`", core::stringify!($name), "`]."
-            ),
-            impl $name {
-                $crate::__doc_comment! {
+                "Combinators for [`", core::stringify!($name), "`]."
+            ),
+            impl $name {
+                $crate::__doc_comment! {
                     core::concat!(
-                        "Returns a new [`", core::stringify!($name), "`]",
+                        "Returns a new [`", core::stringify!($name), "`]",
                         "with ones for flags that do not match. ",
-                        "Does not consume `self`."
-                    ),
-                    pub fn diff(&self, other: Self) -> Self {
-                        Self(self.0 ^ other.0)
+                        "Does not consume `self`."
+                    ),
+                    pub fn diff(&self, other: Self) -> Self {
+                        Self(self.0 ^ other.0)
                     }
                 }
 
-                $crate::__doc_comment! {
+                $crate::__doc_comment! {
                     core::concat!(
-                        "Returns a new [`", core::stringify!($name), "`]",
+                        "Returns a new [`", core::stringify!($name), "`]",
                         "with ones for flags that were set on either input. ",
-                        "Does not consume `self`."
-                    ),
-                    pub fn combine(&self, other: Self) -> Self {
-                        Self(self.0 | other.0)
+                        "Does not consume `self`."
+                    ),
+                    pub fn combine(&self, other: Self) -> Self {
+                        Self(self.0 | other.0)
                     }
                 }
 
-                $crate::__doc_comment! {
+                $crate::__doc_comment! {
                     core::concat!(
-                        "Returns a new [`", core::stringify!($name), "`]",
+                        "Returns a new [`", core::stringify!($name), "`]",
                         "with ones for flags that were set on both inputs. ",
-                        "Does not consume `self`."
-                    ),
-                    pub fn intersect(&self, other: Self) -> Self {
-                        Self(self.0 & other.0)
+                        "Does not consume `self`."
+                    ),
+                    pub fn intersect(&self, other: Self) -> Self {
+                        Self(self.0 & other.0)
                     }
                 }
             }
@@ -5232,46 +5227,46 @@
     };
 }
 
-/// Generates conversion methods for `$name`
-#[doc(hidden)]
-#[macro_export]
-macro_rules! __impl_field_flag_converters {
-    ($name:ident) => {
-        $crate::__doc_comment! {
+/// Generates conversion methods for `$name`
+#[doc(hidden)]
+#[macro_export]
+macro_rules! __impl_field_flag_converters {
+    ($name:ident) => {
+        $crate::__doc_comment! {
             core::concat!(
-                "Conversion methods."
-            ),
-            impl $name {
-                $crate::__doc_comment! {
+                "Conversion methods."
+            ),
+            impl $name {
+                $crate::__doc_comment! {
                     core::concat!(
-                        "Returns a new [`", core::stringify!($name), "`]",
+                        "Returns a new [`", core::stringify!($name), "`]",
                         "with ones for flags that do not match. ",
-                        "Consumes `self`."
-                    ),
-                    pub fn into_diff(self, other: Self) -> Self {
-                        Self(self.0 ^ other.0)
+                        "Consumes `self`."
+                    ),
+                    pub fn into_diff(self, other: Self) -> Self {
+                        Self(self.0 ^ other.0)
                     }
                 }
 
-                $crate::__doc_comment! {
+                $crate::__doc_comment! {
                     core::concat!(
-                        "Returns a new [`", core::stringify!($name), "`]",
+                        "Returns a new [`", core::stringify!($name), "`]",
                         "with ones for flags that were set on either input. ",
-                        "Consumes `self`."
-                    ),
-                    pub fn into_combined(self, other: Self) -> Self {
-                        Self(self.0 | other.0)
+                        "Consumes `self`."
+                    ),
+                    pub fn into_combined(self, other: Self) -> Self {
+                        Self(self.0 | other.0)
                     }
                 }
 
-                $crate::__doc_comment! {
+                $crate::__doc_comment! {
                     core::concat!(
-                        "Returns a new [`", core::stringify!($name), "`]",
+                        "Returns a new [`", core::stringify!($name), "`]",
                         "with ones for flags that were set on both inputs. ",
-                        "Consumes `self`."
-                    ),
-                    pub fn into_intersection(self, other: Self) -> Self {
-                        Self(self.0 & other.0)
+                        "Consumes `self`."
+                    ),
+                    pub fn into_intersection(self, other: Self) -> Self {
+                        Self(self.0 & other.0)
                     }
                 }
             }
@@ -5279,2402 +5274,2400 @@
     };
 }
 
-// -------------------------------------------------------------------------------------------------
-// Trait Implementations
-
-// Operators
-
-/// Generates a set of bitwise operators
-/// for a set of parameters
-#[doc(hidden)]
-#[macro_export(local_inner_macros)]
-macro_rules! __impl_bitwise_operators {
-
-    // Owned
-    (
-        [$flag:ty] for $dest:ident : ($self:ident $other:ident -> $output:ident)
-        $( BitAnd => $bitand:block )?
-        $( BitOr => $bitor:block )?
-        $( BitXor => $bitxor:block )?
-        $( BitAndAssign => $bitand_assign:block )?
-        $( BitOrAssign => $bitor_assign:block )?
-        $( BitXorAssign => $bitxor_assign:block )?
-    ) => {
-        $( __impl_operator! {BitAnd [$flag] bitand for $dest ($self $other -> $output) => $bitand} )?
-        $( __impl_operator! {BitOr [$flag] bitor for $dest ($self $other -> $output) => $bitor} )?
-        $( __impl_operator! {BitXor [$flag] bitxor for $dest ($self $other -> $output) => $bitxor} )?
-
-        $( __impl_assign_operator! {BitAndAssign [$flag] bitand_assign for $dest ($self $other) => $bitand_assign} )?
-        $( __impl_assign_operator! {BitOrAssign [$flag] bitor_assign for $dest ($self $other) => $bitor_assign} )?
-        $( __impl_assign_operator! {BitXorAssign [$flag] bitxor_assign for $dest ($self $other) => $bitxor_assign} )?
-    };
-
-    // Reference
-    (
-        [$flag:ty] for & $dest:ident : ($self:ident $other:ident -> $output:ident)
-        $( BitAnd => $bitand:block )?
-        $( BitOr => $bitor:block )?
-        $( BitXor => $bitxor:block )?
-    ) => {
-        $( __impl_operator! {BitAnd [$flag] bitand for & $dest ($self $other -> $output) => $bitand} )?
-        $( __impl_operator! {BitOr [$flag] bitor for & $dest ($self $other -> $output) => $bitor} )?
-        $( __impl_operator! {BitXor [$flag] bitxor for & $dest ($self $other -> $output) => $bitxor} )?
-    };
-
-    // Mutable Reference
-    (
-        [$flag:ty] for &mut $dest:ident : ($self:ident $other:ident -> $output:ident)
-        $( BitAnd => $bitand:block )?
-        $( BitOr => $bitor:block )?
-        $( BitXor => $bitxor:block )?
-    ) => {
-        $( __impl_operator! {BitAnd [$flag] bitand for &mut $dest ($self $other -> $output) => $bitand} )?
-        $( __impl_operator! {BitOr [$flag] bitor for &mut $dest ($self $other -> $output) => $bitor} )?
-        $( __impl_operator! {BitXor [$flag] bitxor for &mut $dest ($self $other -> $output) => $bitxor} )?
-    };
+// -------------------------------------------------------------------------------------------------
+// Trait Implementations
+
+// Operators
+
+/// Generates a set of bitwise operators
+/// for a set of parameters
+#[doc(hidden)]
+#[macro_export(local_inner_macros)]
+macro_rules! __impl_bitwise_operators {
+
+    // Owned
+    (
+        [$flag:ty] for $dest:ident : ($self:ident $other:ident -> $output:ident)
+        $( BitAnd => $bitand:block )?
+        $( BitOr => $bitor:block )?
+        $( BitXor => $bitxor:block )?
+        $( BitAndAssign => $bitand_assign:block )?
+        $( BitOrAssign => $bitor_assign:block )?
+        $( BitXorAssign => $bitxor_assign:block )?
+    ) => {
+        $( __impl_operator! {BitAnd [$flag] bitand for $dest ($self $other -> $output) => $bitand} )?
+        $( __impl_operator! {BitOr [$flag] bitor for $dest ($self $other -> $output) => $bitor} )?
+        $( __impl_operator! {BitXor [$flag] bitxor for $dest ($self $other -> $output) => $bitxor} )?
+
+        $( __impl_assign_operator! {BitAndAssign [$flag] bitand_assign for $dest ($self $other) => $bitand_assign} )?
+        $( __impl_assign_operator! {BitOrAssign [$flag] bitor_assign for $dest ($self $other) => $bitor_assign} )?
+        $( __impl_assign_operator! {BitXorAssign [$flag] bitxor_assign for $dest ($self $other) => $bitxor_assign} )?
+    };
+
+    // Reference
+    (
+        [$flag:ty] for & $dest:ident : ($self:ident $other:ident -> $output:ident)
+        $( BitAnd => $bitand:block )?
+        $( BitOr => $bitor:block )?
+        $( BitXor => $bitxor:block )?
+    ) => {
+        $( __impl_operator! {BitAnd [$flag] bitand for & $dest ($self $other -> $output) => $bitand} )?
+        $( __impl_operator! {BitOr [$flag] bitor for & $dest ($self $other -> $output) => $bitor} )?
+        $( __impl_operator! {BitXor [$flag] bitxor for & $dest ($self $other -> $output) => $bitxor} )?
+    };
+
+    // Mutable Reference
+    (
+        [$flag:ty] for &mut $dest:ident : ($self:ident $other:ident -> $output:ident)
+        $( BitAnd => $bitand:block )?
+        $( BitOr => $bitor:block )?
+        $( BitXor => $bitxor:block )?
+    ) => {
+        $( __impl_operator! {BitAnd [$flag] bitand for &mut $dest ($self $other -> $output) => $bitand} )?
+        $( __impl_operator! {BitOr [$flag] bitor for &mut $dest ($self $other -> $output) => $bitor} )?
+        $( __impl_operator! {BitXor [$flag] bitxor for &mut $dest ($self $other -> $output) => $bitxor} )?
+    };
 }
 
-/// Generates a generic operator
-#[doc(hidden)]
-#[macro_export]
-macro_rules! __impl_operator {
-
-    // Owned
-    ( $op_type:ident [$rhs:ty] $op_lower:ident for $dest:ident ($self:ident $other:ident -> $output:ident) => $block:block ) => {
-        impl std::ops::$op_type<$rhs> for $dest {
-            type Output = $output;
-            fn $op_lower($self, $other: $rhs) -> Self::Output $block
-        }
+/// Generates a generic operator
+#[doc(hidden)]
+#[macro_export]
+macro_rules! __impl_operator {
+
+    // Owned
+    ( $op_type:ident [$rhs:ty] $op_lower:ident for $dest:ident ($self:ident $other:ident -> $output:ident) => $block:block ) => {
+        impl std::ops::$op_type<$rhs> for $dest {
+            type Output = $output;
+            fn $op_lower($self, $other: $rhs) -> Self::Output $block
+        }
     };
 
-    // Reference
-    ( $op_type:ident [$rhs:ty] $op_lower:ident for & $dest:ident ($self:ident $other:ident -> $output:ident) => $block:block ) => {
-        impl std::ops::$op_type<$rhs> for &$dest {
-            type Output = $output;
-            fn $op_lower($self, $other: $rhs) -> Self::Output $block
-        }
+    // Reference
+    ( $op_type:ident [$rhs:ty] $op_lower:ident for & $dest:ident ($self:ident $other:ident -> $output:ident) => $block:block ) => {
+        impl std::ops::$op_type<$rhs> for &$dest {
+            type Output = $output;
+            fn $op_lower($self, $other: $rhs) -> Self::Output $block
+        }
     };
 
-    // Mutable Reference
-    ( $op_type:ident [$rhs:ty] $op_lower:ident for &mut $dest:ident ($self:ident $other:ident -> $output:ident) => $block:block ) => {
-        impl std::ops::$op_type<$rhs> for &mut $dest {
-            type Output = $output;
-            fn $op_lower($self, $other: $rhs) -> Self::Output $block
-        }
+    // Mutable Reference
+    ( $op_type:ident [$rhs:ty] $op_lower:ident for &mut $dest:ident ($self:ident $other:ident -> $output:ident) => $block:block ) => {
+        impl std::ops::$op_type<$rhs> for &mut $dest {
+            type Output = $output;
+            fn $op_lower($self, $other: $rhs) -> Self::Output $block
+        }
     };
 }
 
-/// Generates a generic assign operator
-#[doc(hidden)]
-#[macro_export]
-macro_rules! __impl_assign_operator {
-    ( $op_type:ident [$rhs:ty] $op_lower:ident for $dest:ident ($self:ident $other:ident) => $block:block ) => {
-        impl std::ops::$op_type<$rhs> for $dest {
-            fn $op_lower(&mut $self, $other: $rhs) $block
-        }
+/// Generates a generic assign operator
+#[doc(hidden)]
+#[macro_export]
+macro_rules! __impl_assign_operator {
+    ( $op_type:ident [$rhs:ty] $op_lower:ident for $dest:ident ($self:ident $other:ident) => $block:block ) => {
+        impl std::ops::$op_type<$rhs> for $dest {
+            fn $op_lower(&mut $self, $other: $rhs) $block
+        }
     };
 }
 
-// Defaults
+// Defaults
 
-/// Generates a [`Default`] implementation.
-#[doc(hidden)]
-#[macro_export]
-macro_rules! __impl_default {
-    ($name:ident => $block:block) => {
-        impl Default for $name {
-            fn default() -> Self $block
-        }
+/// Generates a [`Default`] implementation.
+#[doc(hidden)]
+#[macro_export]
+macro_rules! __impl_default {
+    ($name:ident => $block:block) => {
+        impl Default for $name {
+            fn default() -> Self $block
+        }
     };
 }
 
-// Converters
-
-/// Generates a [`From`] implementation.
-#[doc(hidden)]
-#[macro_export]
-macro_rules! __impl_from {
-    ($(#[$doc:meta])* $from:ty as $to:ident ($arg:ident) => $block:block) => {
-        $(#[$doc])*
-        impl From<$from> for $to {
-            fn from($arg: $from) -> $to $block
-        }
+// Converters
+
+/// Generates a [`From`] implementation.
+#[doc(hidden)]
+#[macro_export]
+macro_rules! __impl_from {
+    ($(#[$doc:meta])* $from:ty as $to:ident ($arg:ident) => $block:block) => {
+        $(#[$doc])*
+        impl From<$from> for $to {
+            fn from($arg: $from) -> $to $block
+        }
     };
 }
 
-// Formatters
+// Formatters
 
-/// Generates formatter implementations
-/// from a set of parameters.
-#[doc(hidden)]
-#[macro_export(local_inner_macros)]
-macro_rules! __impl_formatters {
-    ($name:ident ($self:ident $f:ident) { $( $formatter:ident => $block:block )+ } ) => {
-        $( __impl_formatter!($formatter for $name ($self $f) => $block); )+
+/// Generates formatter implementations
+/// from a set of parameters.
+#[doc(hidden)]
+#[macro_export(local_inner_macros)]
+macro_rules! __impl_formatters {
+    ($name:ident ($self:ident $f:ident) { $( $formatter:ident => $block:block )+ } ) => {
+        $( __impl_formatter!($formatter for $name ($self $f) => $block); )+
     };
 }
 
-/// Generates a generic formatter implementation.
-#[doc(hidden)]
-#[macro_export]
-macro_rules! __impl_formatter {
-    ($formatter:ident for $name:ident ($self:ident $f:ident) => $block:block) => {
-        impl std::fmt::$formatter for $name {
-            fn fmt(&$self, $f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result $block
-        }
+/// Generates a generic formatter implementation.
+#[doc(hidden)]
+#[macro_export]
+macro_rules! __impl_formatter {
+    ($formatter:ident for $name:ident ($self:ident $f:ident) => $block:block) => {
+        impl std::fmt::$formatter for $name {
+            fn fmt(&$self, $f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result $block
+        }
     };
 }
 
-// -------------------------------------------------------------------------------------------------
-// Example
-
-#[allow(dead_code)]
-#[allow(unused_variables)]
-#[cfg(doc)]
-pub mod examples {
-    //! Examples of generated output using different configurations.
-    //!
-    //! __This module is only compiled with documentation builds
-    //! and will not be available for import.__
-    //!
-    //! use the [`bitfield`] macro to generate a field struct and flag enum.
-    //!
-
-    #[allow(dead_code)]
-    #[allow(unused_variables)]
-    #[cfg(doc)]
-    pub mod full_example {
-        //! Example of generated output, using both a bit field and a flag enum.
-        //!
-        //! __This module is only compiled with documentation builds
-        //! and will not be available for import.__
-        //!
-        //! use the [`bitfield`] macro to generate a field struct and flag enum.
-        //!
-        use super::*;
-
-        bitfield! {
-            /// Optional docstring for my example bit field.
-            pub u8 ExampleField
-            /// Optional docstring for my flag enum.
-            ExampleFlags {
-                /// Optional docstring for Flag0
-                0 : Flag0,
-                /// Optional docstring for Flag1
-                1 : Flag1,
-                /// Optional docstring for Flag2
-                2 : Flag2,
-                /// Optional docstring for Flag3
-                3 : Flag3,
-                /// Optional docstring for Flag4
-                4 : Flag4,
-                /// Optional docstring for Flag5
-                5 : Flag5,
-                /// Optional docstring for Flag6
-                6 : Flag6,
-                /// Optional docstring for Flag7
-                7 : Flag7,
+// -------------------------------------------------------------------------------------------------
+// Example
+
+#[allow(dead_code)]
+#[allow(unused_variables)]
+#[cfg(doc)]
+pub mod examples {
+    //! Examples of generated output using different configurations.
+    //!
+    //! __This module is only compiled with documentation builds
+    //! and will not be available for import.__
+    //!
+    //! use the [`bitfield`] macro to generate a field struct and flag enum.
+    //!
+
+    #[allow(dead_code)]
+    #[allow(unused_variables)]
+    #[cfg(doc)]
+    pub mod full_example {
+        //! Example of generated output, using both a bit field and a flag enum.
+        //!
+        //! __This module is only compiled with documentation builds
+        //! and will not be available for import.__
+        //!
+        //! use the [`bitfield`] macro to generate a field struct and flag enum.
+        //!
+        use super::*;
+
+        bitfield! {
+            /// Optional docstring for my example bit field.
+            pub u8 ExampleField
+            /// Optional docstring for my flag enum.
+            ExampleFlags {
+                /// Optional docstring for Flag0
+                0 : Flag0,
+                /// Optional docstring for Flag1
+                1 : Flag1,
+                /// Optional docstring for Flag2
+                2 : Flag2,
+                /// Optional docstring for Flag3
+                3 : Flag3,
+                /// Optional docstring for Flag4
+                4 : Flag4,
+                /// Optional docstring for Flag5
+                5 : Flag5,
+                /// Optional docstring for Flag6
+                6 : Flag6,
+                /// Optional docstring for Flag7
+                7 : Flag7,
             }
         }
     }
 
-    #[allow(dead_code)]
-    #[allow(unused_variables)]
-    #[cfg(doc)]
-    pub mod flagless_example {
-        //! Example of generated output, using only a bit field without a flag enum.
-        //!
-        //! __This module is only compiled with documentation builds
-        //! and will not be available for import.__
-        //!
-        //! use the [`bitfield`] macro to generate a field struct and flag enum.
-        //!
-        use super::*;
-
-        bitfield! {
-            /// Optional docstring for my example bit field.
-            pub u8 ExampleField
+    #[allow(dead_code)]
+    #[allow(unused_variables)]
+    #[cfg(doc)]
+    pub mod flagless_example {
+        //! Example of generated output, using only a bit field without a flag enum.
+        //!
+        //! __This module is only compiled with documentation builds
+        //! and will not be available for import.__
+        //!
+        //! use the [`bitfield`] macro to generate a field struct and flag enum.
+        //!
+        use super::*;
+
+        bitfield! {
+            /// Optional docstring for my example bit field.
+            pub u8 ExampleField
         }
     }
 }
 
-// -------------------------------------------------------------------------------------------------
-// Tests
+// -------------------------------------------------------------------------------------------------
+// Tests
 
-#[allow(dead_code)]
-#[allow(unused_variables)]
-#[cfg(test)]
-mod test {
-    use super::*;
-    use std::{u128, u16, u32, u64, usize};
+#[allow(dead_code)]
+#[allow(unused_variables)]
+#[cfg(test)]
+mod test {
+    use super::*;
+    use std::{u128, u16, u32, u64, usize};
 
-    macro_rules! tests {
-        ( $( $name:ident => $block:block )+ ) => {
+    macro_rules! tests {
+        ( $( $name:ident => $block:block )+ ) => {
             $(
-                #[test]
-                fn $name() $block
-            )+
+                #[test]
+                fn $name() $block
+            )+
         };
     }
 
-    bitfield! {
-        /// My Test Thing
-        u8 MyFieldU8
-        MyFlagsU8 {
-            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
+    bitfield! {
+        /// My Test Thing
+        u8 MyFieldU8
+        MyFlagsU8 {
+            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
         }
     }
 
-    bitfield! {
-        /// My Test Thing
-        u16 MyFieldU16
-        MyFlagsU16 {
-            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
-            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
+    bitfield! {
+        /// My Test Thing
+        u16 MyFieldU16
+        MyFlagsU16 {
+            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
+            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
         }
     }
 
-    bitfield! {
-        /// My Test Thing
-        u32 MyFieldU32
-        MyFlagsU32 {
-            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
-            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
-            16 : Flag16, 17 : Flag17, 18 : Flag18, 19 : Flag19, 20 : Flag20, 21 : Flag21, 22 : Flag22, 23 : Flag23,
-            24 : Flag24, 25 : Flag25, 26 : Flag26, 27 : Flag27, 28 : Flag28, 29 : Flag29, 30 : Flag30, 31 : Flag31,
+    bitfield! {
+        /// My Test Thing
+        u32 MyFieldU32
+        MyFlagsU32 {
+            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
+            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
+            16 : Flag16, 17 : Flag17, 18 : Flag18, 19 : Flag19, 20 : Flag20, 21 : Flag21, 22 : Flag22, 23 : Flag23,
+            24 : Flag24, 25 : Flag25, 26 : Flag26, 27 : Flag27, 28 : Flag28, 29 : Flag29, 30 : Flag30, 31 : Flag31,
         }
     }
 
-    bitfield! {
-        /// My Test Thing
-        u64 MyFieldU64
-        MyFlagsU64 {
-            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
-            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
-            16 : Flag16, 17 : Flag17, 18 : Flag18, 19 : Flag19, 20 : Flag20, 21 : Flag21, 22 : Flag22, 23 : Flag23,
-            24 : Flag24, 25 : Flag25, 26 : Flag26, 27 : Flag27, 28 : Flag28, 29 : Flag29, 30 : Flag30, 31 : Flag31,
-            32 : Flag32, 33 : Flag33, 34 : Flag34, 35 : Flag35, 36 : Flag36, 37 : Flag37, 38 : Flag38, 39 : Flag39,
-            40 : Flag40, 41 : Flag41, 42 : Flag42, 43 : Flag43, 44 : Flag44, 45 : Flag45, 46 : Flag46, 47 : Flag47,
-            48 : Flag48, 49 : Flag49, 50 : Flag50, 51 : Flag51, 52 : Flag52, 53 : Flag53, 54 : Flag54, 55 : Flag55,
-            56 : Flag56, 57 : Flag57, 58 : Flag58, 59 : Flag59, 60 : Flag60, 61 : Flag61, 62 : Flag62, 63 : Flag63,
+    bitfield! {
+        /// My Test Thing
+        u64 MyFieldU64
+        MyFlagsU64 {
+            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
+            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
+            16 : Flag16, 17 : Flag17, 18 : Flag18, 19 : Flag19, 20 : Flag20, 21 : Flag21, 22 : Flag22, 23 : Flag23,
+            24 : Flag24, 25 : Flag25, 26 : Flag26, 27 : Flag27, 28 : Flag28, 29 : Flag29, 30 : Flag30, 31 : Flag31,
+            32 : Flag32, 33 : Flag33, 34 : Flag34, 35 : Flag35, 36 : Flag36, 37 : Flag37, 38 : Flag38, 39 : Flag39,
+            40 : Flag40, 41 : Flag41, 42 : Flag42, 43 : Flag43, 44 : Flag44, 45 : Flag45, 46 : Flag46, 47 : Flag47,
+            48 : Flag48, 49 : Flag49, 50 : Flag50, 51 : Flag51, 52 : Flag52, 53 : Flag53, 54 : Flag54, 55 : Flag55,
+            56 : Flag56, 57 : Flag57, 58 : Flag58, 59 : Flag59, 60 : Flag60, 61 : Flag61, 62 : Flag62, 63 : Flag63,
         }
     }
 
-    bitfield! {
-        /// My Test Thing
-        u128 MyFieldU128
-        MyFlagsU128 {
-            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
-            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
-            16 : Flag16, 17 : Flag17, 18 : Flag18, 19 : Flag19, 20 : Flag20, 21 : Flag21, 22 : Flag22, 23 : Flag23,
-            24 : Flag24, 25 : Flag25, 26 : Flag26, 27 : Flag27, 28 : Flag28, 29 : Flag29, 30 : Flag30, 31 : Flag31,
-            32 : Flag32, 33 : Flag33, 34 : Flag34, 35 : Flag35, 36 : Flag36, 37 : Flag37, 38 : Flag38, 39 : Flag39,
-            40 : Flag40, 41 : Flag41, 42 : Flag42, 43 : Flag43, 44 : Flag44, 45 : Flag45, 46 : Flag46, 47 : Flag47,
-            48 : Flag48, 49 : Flag49, 50 : Flag50, 51 : Flag51, 52 : Flag52, 53 : Flag53, 54 : Flag54, 55 : Flag55,
-            56 : Flag56, 57 : Flag57, 58 : Flag58, 59 : Flag59, 60 : Flag60, 61 : Flag61, 62 : Flag62, 63 : Flag63,
-            64 : Flag64, 65 : Flag65, 66 : Flag66, 67 : Flag67, 68 : Flag68, 69 : Flag69, 70 : Flag70, 71 : Flag71,
-            72 : Flag72, 73 : Flag73, 74 : Flag74, 75 : Flag75, 76 : Flag76, 77 : Flag77, 78 : Flag78, 79 : Flag79,
-            80 : Flag80, 81 : Flag81, 82 : Flag82, 83 : Flag83, 84 : Flag84, 85 : Flag85, 86 : Flag86, 87 : Flag87,
-            88 : Flag88, 89 : Flag89, 90 : Flag90, 91 : Flag91, 92 : Flag92, 93 : Flag93, 94 : Flag94, 95 : Flag95,
-            96 : Flag96, 97 : Flag97, 98 : Flag98, 99 : Flag99, 100 : Flag100, 101 : Flag101, 102 : Flag102, 103 : Flag103,
-            104 : Flag104, 105 : Flag105, 106 : Flag106, 107 : Flag107, 108 : Flag108, 109 : Flag109, 110 : Flag110, 111 : Flag111,
-            112 : Flag112, 113 : Flag113, 114 : Flag114, 115 : Flag115, 116 : Flag116, 117 : Flag117, 118 : Flag118, 119 : Flag119,
-            120 : Flag120, 121 : Flag121, 122 : Flag122, 123 : Flag123, 124 : Flag124, 125 : Flag125, 126 : Flag126, 127 : Flag127,
+    bitfield! {
+        /// My Test Thing
+        u128 MyFieldU128
+        MyFlagsU128 {
+            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
+            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
+            16 : Flag16, 17 : Flag17, 18 : Flag18, 19 : Flag19, 20 : Flag20, 21 : Flag21, 22 : Flag22, 23 : Flag23,
+            24 : Flag24, 25 : Flag25, 26 : Flag26, 27 : Flag27, 28 : Flag28, 29 : Flag29, 30 : Flag30, 31 : Flag31,
+            32 : Flag32, 33 : Flag33, 34 : Flag34, 35 : Flag35, 36 : Flag36, 37 : Flag37, 38 : Flag38, 39 : Flag39,
+            40 : Flag40, 41 : Flag41, 42 : Flag42, 43 : Flag43, 44 : Flag44, 45 : Flag45, 46 : Flag46, 47 : Flag47,
+            48 : Flag48, 49 : Flag49, 50 : Flag50, 51 : Flag51, 52 : Flag52, 53 : Flag53, 54 : Flag54, 55 : Flag55,
+            56 : Flag56, 57 : Flag57, 58 : Flag58, 59 : Flag59, 60 : Flag60, 61 : Flag61, 62 : Flag62, 63 : Flag63,
+            64 : Flag64, 65 : Flag65, 66 : Flag66, 67 : Flag67, 68 : Flag68, 69 : Flag69, 70 : Flag70, 71 : Flag71,
+            72 : Flag72, 73 : Flag73, 74 : Flag74, 75 : Flag75, 76 : Flag76, 77 : Flag77, 78 : Flag78, 79 : Flag79,
+            80 : Flag80, 81 : Flag81, 82 : Flag82, 83 : Flag83, 84 : Flag84, 85 : Flag85, 86 : Flag86, 87 : Flag87,
+            88 : Flag88, 89 : Flag89, 90 : Flag90, 91 : Flag91, 92 : Flag92, 93 : Flag93, 94 : Flag94, 95 : Flag95,
+            96 : Flag96, 97 : Flag97, 98 : Flag98, 99 : Flag99, 100 : Flag100, 101 : Flag101, 102 : Flag102, 103 : Flag103,
+            104 : Flag104, 105 : Flag105, 106 : Flag106, 107 : Flag107, 108 : Flag108, 109 : Flag109, 110 : Flag110, 111 : Flag111,
+            112 : Flag112, 113 : Flag113, 114 : Flag114, 115 : Flag115, 116 : Flag116, 117 : Flag117, 118 : Flag118, 119 : Flag119,
+            120 : Flag120, 121 : Flag121, 122 : Flag122, 123 : Flag123, 124 : Flag124, 125 : Flag125, 126 : Flag126, 127 : Flag127,
         }
     }
 
-    #[cfg(target_pointer_width = "64")]
-    bitfield! {
-        /// My Test Thing
-        usize MyFieldUsize
-        MyFlagsUsize {
-            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
-            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
-            16 : Flag16, 17 : Flag17, 18 : Flag18, 19 : Flag19, 20 : Flag20, 21 : Flag21, 22 : Flag22, 23 : Flag23,
-            24 : Flag24, 25 : Flag25, 26 : Flag26, 27 : Flag27, 28 : Flag28, 29 : Flag29, 30 : Flag30, 31 : Flag31,
-            32 : Flag32, 33 : Flag33, 34 : Flag34, 35 : Flag35, 36 : Flag36, 37 : Flag37, 38 : Flag38, 39 : Flag39,
-            40 : Flag40, 41 : Flag41, 42 : Flag42, 43 : Flag43, 44 : Flag44, 45 : Flag45, 46 : Flag46, 47 : Flag47,
-            48 : Flag48, 49 : Flag49, 50 : Flag50, 51 : Flag51, 52 : Flag52, 53 : Flag53, 54 : Flag54, 55 : Flag55,
-            56 : Flag56, 57 : Flag57, 58 : Flag58, 59 : Flag59, 60 : Flag60, 61 : Flag61, 62 : Flag62, 63 : Flag63,
+    #[cfg(target_pointer_width = "64")]
+    bitfield! {
+        /// My Test Thing
+        usize MyFieldUsize
+        MyFlagsUsize {
+            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
+            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
+            16 : Flag16, 17 : Flag17, 18 : Flag18, 19 : Flag19, 20 : Flag20, 21 : Flag21, 22 : Flag22, 23 : Flag23,
+            24 : Flag24, 25 : Flag25, 26 : Flag26, 27 : Flag27, 28 : Flag28, 29 : Flag29, 30 : Flag30, 31 : Flag31,
+            32 : Flag32, 33 : Flag33, 34 : Flag34, 35 : Flag35, 36 : Flag36, 37 : Flag37, 38 : Flag38, 39 : Flag39,
+            40 : Flag40, 41 : Flag41, 42 : Flag42, 43 : Flag43, 44 : Flag44, 45 : Flag45, 46 : Flag46, 47 : Flag47,
+            48 : Flag48, 49 : Flag49, 50 : Flag50, 51 : Flag51, 52 : Flag52, 53 : Flag53, 54 : Flag54, 55 : Flag55,
+            56 : Flag56, 57 : Flag57, 58 : Flag58, 59 : Flag59, 60 : Flag60, 61 : Flag61, 62 : Flag62, 63 : Flag63,
         }
     }
 
-    #[cfg(target_pointer_width = "32")]
-    bitfield! {
-        /// My Test Thing
-        usize MyFieldUsize
-        MyFlagsUsize {
-            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
-            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
-            16 : Flag16, 17 : Flag17, 18 : Flag18, 19 : Flag19, 20 : Flag20, 21 : Flag21, 22 : Flag22, 23 : Flag23,
-            24 : Flag24, 25 : Flag25, 26 : Flag26, 27 : Flag27, 28 : Flag28, 29 : Flag29, 30 : Flag30, 31 : Flag31,
+    #[cfg(target_pointer_width = "32")]
+    bitfield! {
+        /// My Test Thing
+        usize MyFieldUsize
+        MyFlagsUsize {
+            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
+            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
+            16 : Flag16, 17 : Flag17, 18 : Flag18, 19 : Flag19, 20 : Flag20, 21 : Flag21, 22 : Flag22, 23 : Flag23,
+            24 : Flag24, 25 : Flag25, 26 : Flag26, 27 : Flag27, 28 : Flag28, 29 : Flag29, 30 : Flag30, 31 : Flag31,
         }
     }
 
-    bitfield! {
-        /// My Test Thing
-        u8 MyFieldU8Nf
-        MyFlagsU8Nf {
-            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
+    bitfield! {
+        /// My Test Thing
+        u8 MyFieldU8Nf
+        MyFlagsU8Nf {
+            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
         }
     }
 
-    bitfield! {
-        /// My Test Thing
-        u16 MyFieldU16Nf
-        MyFlagsU16Nf {
-            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
-            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
+    bitfield! {
+        /// My Test Thing
+        u16 MyFieldU16Nf
+        MyFlagsU16Nf {
+            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
+            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
         }
     }
 
-    bitfield! {
-        /// My Test Thing
-        u32 MyFieldU32Nf
-        MyFlagsU32Nf {
-            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
-            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
-            16 : Flag16, 17 : Flag17, 18 : Flag18, 19 : Flag19, 20 : Flag20, 21 : Flag21, 22 : Flag22, 23 : Flag23,
-            24 : Flag24, 25 : Flag25, 26 : Flag26, 27 : Flag27, 28 : Flag28, 29 : Flag29, 30 : Flag30, 31 : Flag31,
+    bitfield! {
+        /// My Test Thing
+        u32 MyFieldU32Nf
+        MyFlagsU32Nf {
+            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
+            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
+            16 : Flag16, 17 : Flag17, 18 : Flag18, 19 : Flag19, 20 : Flag20, 21 : Flag21, 22 : Flag22, 23 : Flag23,
+            24 : Flag24, 25 : Flag25, 26 : Flag26, 27 : Flag27, 28 : Flag28, 29 : Flag29, 30 : Flag30, 31 : Flag31,
         }
     }
 
-    bitfield! {
-        /// My Test Thing
-        u64 MyFieldU64Nf
-        MyFlagsU64Nf {
-            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
-            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
-            16 : Flag16, 17 : Flag17, 18 : Flag18, 19 : Flag19, 20 : Flag20, 21 : Flag21, 22 : Flag22, 23 : Flag23,
-            24 : Flag24, 25 : Flag25, 26 : Flag26, 27 : Flag27, 28 : Flag28, 29 : Flag29, 30 : Flag30, 31 : Flag31,
-            32 : Flag32, 33 : Flag33, 34 : Flag34, 35 : Flag35, 36 : Flag36, 37 : Flag37, 38 : Flag38, 39 : Flag39,
-            40 : Flag40, 41 : Flag41, 42 : Flag42, 43 : Flag43, 44 : Flag44, 45 : Flag45, 46 : Flag46, 47 : Flag47,
-            48 : Flag48, 49 : Flag49, 50 : Flag50, 51 : Flag51, 52 : Flag52, 53 : Flag53, 54 : Flag54, 55 : Flag55,
-            56 : Flag56, 57 : Flag57, 58 : Flag58, 59 : Flag59, 60 : Flag60, 61 : Flag61, 62 : Flag62, 63 : Flag63,
+    bitfield! {
+        /// My Test Thing
+        u64 MyFieldU64Nf
+        MyFlagsU64Nf {
+            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
+            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
+            16 : Flag16, 17 : Flag17, 18 : Flag18, 19 : Flag19, 20 : Flag20, 21 : Flag21, 22 : Flag22, 23 : Flag23,
+            24 : Flag24, 25 : Flag25, 26 : Flag26, 27 : Flag27, 28 : Flag28, 29 : Flag29, 30 : Flag30, 31 : Flag31,
+            32 : Flag32, 33 : Flag33, 34 : Flag34, 35 : Flag35, 36 : Flag36, 37 : Flag37, 38 : Flag38, 39 : Flag39,
+            40 : Flag40, 41 : Flag41, 42 : Flag42, 43 : Flag43, 44 : Flag44, 45 : Flag45, 46 : Flag46, 47 : Flag47,
+            48 : Flag48, 49 : Flag49, 50 : Flag50, 51 : Flag51, 52 : Flag52, 53 : Flag53, 54 : Flag54, 55 : Flag55,
+            56 : Flag56, 57 : Flag57, 58 : Flag58, 59 : Flag59, 60 : Flag60, 61 : Flag61, 62 : Flag62, 63 : Flag63,
         }
     }
 
-    bitfield! {
-        /// My Test Thing
-        u128 MyFieldU128Nf
-        MyFlagsU128Nf {
-            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
-            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
-            16 : Flag16, 17 : Flag17, 18 : Flag18, 19 : Flag19, 20 : Flag20, 21 : Flag21, 22 : Flag22, 23 : Flag23,
-            24 : Flag24, 25 : Flag25, 26 : Flag26, 27 : Flag27, 28 : Flag28, 29 : Flag29, 30 : Flag30, 31 : Flag31,
-            32 : Flag32, 33 : Flag33, 34 : Flag34, 35 : Flag35, 36 : Flag36, 37 : Flag37, 38 : Flag38, 39 : Flag39,
-            40 : Flag40, 41 : Flag41, 42 : Flag42, 43 : Flag43, 44 : Flag44, 45 : Flag45, 46 : Flag46, 47 : Flag47,
-            48 : Flag48, 49 : Flag49, 50 : Flag50, 51 : Flag51, 52 : Flag52, 53 : Flag53, 54 : Flag54, 55 : Flag55,
-            56 : Flag56, 57 : Flag57, 58 : Flag58, 59 : Flag59, 60 : Flag60, 61 : Flag61, 62 : Flag62, 63 : Flag63,
-            64 : Flag64, 65 : Flag65, 66 : Flag66, 67 : Flag67, 68 : Flag68, 69 : Flag69, 70 : Flag70, 71 : Flag71,
-            72 : Flag72, 73 : Flag73, 74 : Flag74, 75 : Flag75, 76 : Flag76, 77 : Flag77, 78 : Flag78, 79 : Flag79,
-            80 : Flag80, 81 : Flag81, 82 : Flag82, 83 : Flag83, 84 : Flag84, 85 : Flag85, 86 : Flag86, 87 : Flag87,
-            88 : Flag88, 89 : Flag89, 90 : Flag90, 91 : Flag91, 92 : Flag92, 93 : Flag93, 94 : Flag94, 95 : Flag95,
-            96 : Flag96, 97 : Flag97, 98 : Flag98, 99 : Flag99, 100 : Flag100, 101 : Flag101, 102 : Flag102, 103 : Flag103,
-            104 : Flag104, 105 : Flag105, 106 : Flag106, 107 : Flag107, 108 : Flag108, 109 : Flag109, 110 : Flag110, 111 : Flag111,
-            112 : Flag112, 113 : Flag113, 114 : Flag114, 115 : Flag115, 116 : Flag116, 117 : Flag117, 118 : Flag118, 119 : Flag119,
-            120 : Flag120, 121 : Flag121, 122 : Flag122, 123 : Flag123, 124 : Flag124, 125 : Flag125, 126 : Flag126, 127 : Flag127,
+    bitfield! {
+        /// My Test Thing
+        u128 MyFieldU128Nf
+        MyFlagsU128Nf {
+            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
+            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
+            16 : Flag16, 17 : Flag17, 18 : Flag18, 19 : Flag19, 20 : Flag20, 21 : Flag21, 22 : Flag22, 23 : Flag23,
+            24 : Flag24, 25 : Flag25, 26 : Flag26, 27 : Flag27, 28 : Flag28, 29 : Flag29, 30 : Flag30, 31 : Flag31,
+            32 : Flag32, 33 : Flag33, 34 : Flag34, 35 : Flag35, 36 : Flag36, 37 : Flag37, 38 : Flag38, 39 : Flag39,
+            40 : Flag40, 41 : Flag41, 42 : Flag42, 43 : Flag43, 44 : Flag44, 45 : Flag45, 46 : Flag46, 47 : Flag47,
+            48 : Flag48, 49 : Flag49, 50 : Flag50, 51 : Flag51, 52 : Flag52, 53 : Flag53, 54 : Flag54, 55 : Flag55,
+            56 : Flag56, 57 : Flag57, 58 : Flag58, 59 : Flag59, 60 : Flag60, 61 : Flag61, 62 : Flag62, 63 : Flag63,
+            64 : Flag64, 65 : Flag65, 66 : Flag66, 67 : Flag67, 68 : Flag68, 69 : Flag69, 70 : Flag70, 71 : Flag71,
+            72 : Flag72, 73 : Flag73, 74 : Flag74, 75 : Flag75, 76 : Flag76, 77 : Flag77, 78 : Flag78, 79 : Flag79,
+            80 : Flag80, 81 : Flag81, 82 : Flag82, 83 : Flag83, 84 : Flag84, 85 : Flag85, 86 : Flag86, 87 : Flag87,
+            88 : Flag88, 89 : Flag89, 90 : Flag90, 91 : Flag91, 92 : Flag92, 93 : Flag93, 94 : Flag94, 95 : Flag95,
+            96 : Flag96, 97 : Flag97, 98 : Flag98, 99 : Flag99, 100 : Flag100, 101 : Flag101, 102 : Flag102, 103 : Flag103,
+            104 : Flag104, 105 : Flag105, 106 : Flag106, 107 : Flag107, 108 : Flag108, 109 : Flag109, 110 : Flag110, 111 : Flag111,
+            112 : Flag112, 113 : Flag113, 114 : Flag114, 115 : Flag115, 116 : Flag116, 117 : Flag117, 118 : Flag118, 119 : Flag119,
+            120 : Flag120, 121 : Flag121, 122 : Flag122, 123 : Flag123, 124 : Flag124, 125 : Flag125, 126 : Flag126, 127 : Flag127,
         }
     }
 
-    #[cfg(target_pointer_width = "64")]
-    bitfield! {
-        /// My Test Thing
-        usize MyFieldUsizeNf
-        MyFlagsUsizeNf {
-            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
-            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
-            16 : Flag16, 17 : Flag17, 18 : Flag18, 19 : Flag19, 20 : Flag20, 21 : Flag21, 22 : Flag22, 23 : Flag23,
-            24 : Flag24, 25 : Flag25, 26 : Flag26, 27 : Flag27, 28 : Flag28, 29 : Flag29, 30 : Flag30, 31 : Flag31,
-            32 : Flag32, 33 : Flag33, 34 : Flag34, 35 : Flag35, 36 : Flag36, 37 : Flag37, 38 : Flag38, 39 : Flag39,
-            40 : Flag40, 41 : Flag41, 42 : Flag42, 43 : Flag43, 44 : Flag44, 45 : Flag45, 46 : Flag46, 47 : Flag47,
-            48 : Flag48, 49 : Flag49, 50 : Flag50, 51 : Flag51, 52 : Flag52, 53 : Flag53, 54 : Flag54, 55 : Flag55,
-            56 : Flag56, 57 : Flag57, 58 : Flag58, 59 : Flag59, 60 : Flag60, 61 : Flag61, 62 : Flag62, 63 : Flag63,
+    #[cfg(target_pointer_width = "64")]
+    bitfield! {
+        /// My Test Thing
+        usize MyFieldUsizeNf
+        MyFlagsUsizeNf {
+            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
+            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
+            16 : Flag16, 17 : Flag17, 18 : Flag18, 19 : Flag19, 20 : Flag20, 21 : Flag21, 22 : Flag22, 23 : Flag23,
+            24 : Flag24, 25 : Flag25, 26 : Flag26, 27 : Flag27, 28 : Flag28, 29 : Flag29, 30 : Flag30, 31 : Flag31,
+            32 : Flag32, 33 : Flag33, 34 : Flag34, 35 : Flag35, 36 : Flag36, 37 : Flag37, 38 : Flag38, 39 : Flag39,
+            40 : Flag40, 41 : Flag41, 42 : Flag42, 43 : Flag43, 44 : Flag44, 45 : Flag45, 46 : Flag46, 47 : Flag47,
+            48 : Flag48, 49 : Flag49, 50 : Flag50, 51 : Flag51, 52 : Flag52, 53 : Flag53, 54 : Flag54, 55 : Flag55,
+            56 : Flag56, 57 : Flag57, 58 : Flag58, 59 : Flag59, 60 : Flag60, 61 : Flag61, 62 : Flag62, 63 : Flag63,
         }
     }
 
-    #[cfg(target_pointer_width = "32")]
-    bitfield! {
-        /// My Test Thing
-        usize MyFieldUsizeNf
-        MyFlagsUsizeNf {
-            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
-            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
-            16 : Flag16, 17 : Flag17, 18 : Flag18, 19 : Flag19, 20 : Flag20, 21 : Flag21, 22 : Flag22, 23 : Flag23,
-            24 : Flag24, 25 : Flag25, 26 : Flag26, 27 : Flag27, 28 : Flag28, 29 : Flag29, 30 : Flag30, 31 : Flag31,
+    #[cfg(target_pointer_width = "32")]
+    bitfield! {
+        /// My Test Thing
+        usize MyFieldUsizeNf
+        MyFlagsUsizeNf {
+            0 : Flag0, 1 : Flag1, 2 : Flag2, 3 : Flag3, 4 : Flag4, 5 : Flag5, 6 : Flag6, 7 : Flag7,
+            8 : Flag8, 9 : Flag9, 10 : Flag10, 11 : Flag11, 12 : Flag12, 13 : Flag13, 14 : Flag14, 15 : Flag15,
+            16 : Flag16, 17 : Flag17, 18 : Flag18, 19 : Flag19, 20 : Flag20, 21 : Flag21, 22 : Flag22, 23 : Flag23,
+            24 : Flag24, 25 : Flag25, 26 : Flag26, 27 : Flag27, 28 : Flag28, 29 : Flag29, 30 : Flag30, 31 : Flag31,
         }
     }
 
-    const U8: u8 = 123;
-    const B8: &str = "01111011";
-    const U16: u16 = 51526;
-    const B16: &str = "1100100101000110";
-    const U32: u32 = 2828091834;
-    const B32: &str = "10101000100100010100000110111010";
-    const U64: u64 = 18325744043706550615;
-    const B64: &str = "1111111001010010000111110001110100100001110111000000100101010111";
-    const U128: u128 = 160140183460469230739687303714882104727;
-    const B128: &str = "01111000011110011110000010100001011000111110000100101011010111011111111110000110011101100010110100100000110001101010110110010111";
+    const U8: u8 = 123;
+    const B8: &str = "01111011";
+    const U16: u16 = 51526;
+    const B16: &str = "1100100101000110";
+    const U32: u32 = 2828091834;
+    const B32: &str = "10101000100100010100000110111010";
+    const U64: u64 = 18325744043706550615;
+    const B64: &str = "1111111001010010000111110001110100100001110111000000100101010111";
+    const U128: u128 = 160140183460469230739687303714882104727;
+    const B128: &str = "01111000011110011110000010100001011000111110000100101011010111011111111110000110011101100010110100100000110001101010110110010111";
 
-    #[cfg(target_pointer_width = "64")]
-    const USIZE: usize = 18325744043706550615;
-    #[cfg(target_pointer_width = "64")]
-    const BSIZE: &str = "1111111001010010000111110001110100100001110111000000100101010111";
+    #[cfg(target_pointer_width = "64")]
+    const USIZE: usize = 18325744043706550615;
+    #[cfg(target_pointer_width = "64")]
+    const BSIZE: &str = "1111111001010010000111110001110100100001110111000000100101010111";
 
-    #[cfg(target_pointer_width = "32")]
-    const USIZE: usize = 2828091834;
-    #[cfg(target_pointer_width = "32")]
-    const BSIZE: &str = "10101000100100010100000110111010";
+    #[cfg(target_pointer_width = "32")]
+    const USIZE: usize = 2828091834;
+    #[cfg(target_pointer_width = "32")]
+    const BSIZE: &str = "10101000100100010100000110111010";
 
-    // constructors
-    tests! {
-        new_u8 => {
-            MyFieldU8(U8);
+    // constructors
+    tests! {
+        new_u8 => {
+            MyFieldU8(U8);
         }
-        new_u16 => {
-            MyFieldU16(U16);
+        new_u16 => {
+            MyFieldU16(U16);
         }
-        new_u32 => {
-            MyFieldU32(U32);
+        new_u32 => {
+            MyFieldU32(U32);
         }
-        new_u64 => {
-            MyFieldU64(U64);
+        new_u64 => {
+            MyFieldU64(U64);
         }
-        new_u128 => {
-            MyFieldU128(U128);
+        new_u128 => {
+            MyFieldU128(U128);
         }
-        new_usize => {
-            MyFieldUsize(USIZE);
+        new_usize => {
+            MyFieldUsize(USIZE);
         }
     }
 
-    // from binary str
-    tests! {
-        from_binary_str_u8 => {
-            assert_eq!(MyFieldU8::from_binary_str(B8), MyFieldU8(U8));
+    // from binary str
+    tests! {
+        from_binary_str_u8 => {
+            assert_eq!(MyFieldU8::from_binary_str(B8), MyFieldU8(U8));
         }
-        from_binary_str_u16 => {
-            assert_eq!(MyFieldU16::from_binary_str(B16), MyFieldU16(U16));
+        from_binary_str_u16 => {
+            assert_eq!(MyFieldU16::from_binary_str(B16), MyFieldU16(U16));
         }
-        from_binary_str_u32 => {
-            assert_eq!(MyFieldU32::from_binary_str(B32), MyFieldU32(U32));
+        from_binary_str_u32 => {
+            assert_eq!(MyFieldU32::from_binary_str(B32), MyFieldU32(U32));
         }
-        from_binary_str_u64 => {
-            assert_eq!(MyFieldU64::from_binary_str(B64), MyFieldU64(U64));
+        from_binary_str_u64 => {
+            assert_eq!(MyFieldU64::from_binary_str(B64), MyFieldU64(U64));
         }
-        from_binary_str_u128 => {
-            assert_eq!(MyFieldU128::from_binary_str(B128), MyFieldU128(U128));
+        from_binary_str_u128 => {
+            assert_eq!(MyFieldU128::from_binary_str(B128), MyFieldU128(U128));
         }
-        from_binary_str_usize => {
-            assert_eq!(MyFieldUsize::from_binary_str(BSIZE), MyFieldUsize(USIZE));
+        from_binary_str_usize => {
+            assert_eq!(MyFieldUsize::from_binary_str(BSIZE), MyFieldUsize(USIZE));
         }
     }
 
-    // from binary string
-    tests! {
-        from_binary_string_u8 => {
-            assert_eq!(MyFieldU8::from_binary_string(String::from(B8)), MyFieldU8(U8));
+    // from binary string
+    tests! {
+        from_binary_string_u8 => {
+            assert_eq!(MyFieldU8::from_binary_string(String::from(B8)), MyFieldU8(U8));
         }
-        from_binary_string_u16 => {
-            assert_eq!(MyFieldU16::from_binary_string(String::from(B16)), MyFieldU16(U16));
+        from_binary_string_u16 => {
+            assert_eq!(MyFieldU16::from_binary_string(String::from(B16)), MyFieldU16(U16));
         }
-        from_binary_string_u32 => {
-            assert_eq!(MyFieldU32::from_binary_string(String::from(B32)), MyFieldU32(U32));
+        from_binary_string_u32 => {
+            assert_eq!(MyFieldU32::from_binary_string(String::from(B32)), MyFieldU32(U32));
         }
-        from_binary_string_u64 => {
-            assert_eq!(MyFieldU64::from_binary_string(String::from(B64)), MyFieldU64(U64));
+        from_binary_string_u64 => {
+            assert_eq!(MyFieldU64::from_binary_string(String::from(B64)), MyFieldU64(U64));
         }
-        from_binary_string_u128 => {
-            assert_eq!(MyFieldU128::from_binary_string(String::from(B128)), MyFieldU128(U128));
+        from_binary_string_u128 => {
+            assert_eq!(MyFieldU128::from_binary_string(String::from(B128)), MyFieldU128(U128));
         }
-        from_binary_string_usize => {
-            assert_eq!(MyFieldUsize::from_binary_string(String::from(BSIZE)), MyFieldUsize(USIZE));
+        from_binary_string_usize => {
+            assert_eq!(MyFieldUsize::from_binary_string(String::from(BSIZE)), MyFieldUsize(USIZE));
         }
     }
 
-    // ones
-    tests! {
-        ones_u8 => {
-            assert_eq!(MyFieldU8::ones(), MyFieldU8(u8::MAX));
+    // ones
+    tests! {
+        ones_u8 => {
+            assert_eq!(MyFieldU8::ones(), MyFieldU8(u8::MAX));
         }
-        ones_u16 => {
-            assert_eq!(MyFieldU16::ones(), MyFieldU16(u16::MAX));
+        ones_u16 => {
+            assert_eq!(MyFieldU16::ones(), MyFieldU16(u16::MAX));
         }
-        ones_u32 => {
-            assert_eq!(MyFieldU32::ones(), MyFieldU32(u32::MAX));
+        ones_u32 => {
+            assert_eq!(MyFieldU32::ones(), MyFieldU32(u32::MAX));
         }
-        ones_u64 => {
-            assert_eq!(MyFieldU64::ones(), MyFieldU64(u64::MAX));
+        ones_u64 => {
+            assert_eq!(MyFieldU64::ones(), MyFieldU64(u64::MAX));
         }
-        ones_u128 => {
-            assert_eq!(MyFieldU128::ones(), MyFieldU128(u128::MAX));
+        ones_u128 => {
+            assert_eq!(MyFieldU128::ones(), MyFieldU128(u128::MAX));
         }
-        ones_usize => {
-            assert_eq!(MyFieldUsize::ones(), MyFieldUsize(usize::MAX));
+        ones_usize => {
+            assert_eq!(MyFieldUsize::ones(), MyFieldUsize(usize::MAX));
         }
     }
 
-    // zeros
-    tests! {
-        zeros_u8 => {
-            assert_eq!(MyFieldU8::zeros(), MyFieldU8(0));
+    // zeros
+    tests! {
+        zeros_u8 => {
+            assert_eq!(MyFieldU8::zeros(), MyFieldU8(0));
         }
-        zeros_u16 => {
-            assert_eq!(MyFieldU16::zeros(), MyFieldU16(0));
+        zeros_u16 => {
+            assert_eq!(MyFieldU16::zeros(), MyFieldU16(0));
         }
-        zeros_u32 => {
-            assert_eq!(MyFieldU32::zeros(), MyFieldU32(0));
+        zeros_u32 => {
+            assert_eq!(MyFieldU32::zeros(), MyFieldU32(0));
         }
-        zeros_u64 => {
-            assert_eq!(MyFieldU64::zeros(), MyFieldU64(0));
+        zeros_u64 => {
+            assert_eq!(MyFieldU64::zeros(), MyFieldU64(0));
         }
-        zeros_u128 => {
-            assert_eq!(MyFieldU128::zeros(), MyFieldU128(0));
+        zeros_u128 => {
+            assert_eq!(MyFieldU128::zeros(), MyFieldU128(0));
         }
-        zeros_usize => {
-            assert_eq!(MyFieldUsize::zeros(), MyFieldUsize(0));
+        zeros_usize => {
+            assert_eq!(MyFieldUsize::zeros(), MyFieldUsize(0));
         }
     }
 
-    // defaults
-    tests! {
-        default_u8 => {
-            assert_eq!(0, MyFieldU8::default().as_integer())
+    // defaults
+    tests! {
+        default_u8 => {
+            assert_eq!(0, MyFieldU8::default().as_integer())
         }
-        default_u16 => {
-            assert_eq!(0, MyFieldU16::default().as_integer())
+        default_u16 => {
+            assert_eq!(0, MyFieldU16::default().as_integer())
         }
-        default_u32 => {
-            assert_eq!(0, MyFieldU32::default().as_integer())
+        default_u32 => {
+            assert_eq!(0, MyFieldU32::default().as_integer())
         }
-        default_u64 => {
-            assert_eq!(0, MyFieldU64::default().as_integer())
+        default_u64 => {
+            assert_eq!(0, MyFieldU64::default().as_integer())
         }
-        default_u128 => {
-            assert_eq!(0, MyFieldU128::default().as_integer())
+        default_u128 => {
+            assert_eq!(0, MyFieldU128::default().as_integer())
         }
-        default_usize => {
-            assert_eq!(0, MyFieldUsize::default().as_integer())
+        default_usize => {
+            assert_eq!(0, MyFieldUsize::default().as_integer())
         }
     }
 
-    // bit count
-    tests! {
-        bit_count_u8 => {
-            let field = MyFieldU8(U8);
-            assert_eq!(u8::BITS as usize, MyFieldU8::BITS)
+    // bit count
+    tests! {
+        bit_count_u8 => {
+            let field = MyFieldU8(U8);
+            assert_eq!(u8::BITS as usize, MyFieldU8::BITS)
         }
-        bit_count_u16 => {
-            let field = MyFieldU16(U16);
-            assert_eq!(u16::BITS as usize, MyFieldU16::BITS)
+        bit_count_u16 => {
+            let field = MyFieldU16(U16);
+            assert_eq!(u16::BITS as usize, MyFieldU16::BITS)
         }
-        bit_count_u32 => {
-            let field = MyFieldU32(U32);
-            assert_eq!(u32::BITS as usize, MyFieldU32::BITS)
+        bit_count_u32 => {
+            let field = MyFieldU32(U32);
+            assert_eq!(u32::BITS as usize, MyFieldU32::BITS)
         }
-        bit_count_u64 => {
-            let field = MyFieldU64(U64);
-            assert_eq!(u64::BITS as usize, MyFieldU64::BITS)
+        bit_count_u64 => {
+            let field = MyFieldU64(U64);
+            assert_eq!(u64::BITS as usize, MyFieldU64::BITS)
         }
-        bit_count_u128 => {
-            let field = MyFieldU128(U128);
-            assert_eq!(u128::BITS as usize, MyFieldU128::BITS)
+        bit_count_u128 => {
+            let field = MyFieldU128(U128);
+            assert_eq!(u128::BITS as usize, MyFieldU128::BITS)
         }
-        bit_count_usize => {
-            let field = MyFieldUsize(USIZE);
-            assert_eq!(usize::BITS as usize, MyFieldUsize::BITS)
+        bit_count_usize => {
+            let field = MyFieldUsize(USIZE);
+            assert_eq!(usize::BITS as usize, MyFieldUsize::BITS)
         }
     }
 
-    // byte count
-    tests! {
-        byte_count_u8 => {
-            let field = MyFieldU8(U8);
-            assert_eq!(1, MyFieldU8::BYTES)
+    // byte count
+    tests! {
+        byte_count_u8 => {
+            let field = MyFieldU8(U8);
+            assert_eq!(1, MyFieldU8::BYTES)
         }
-        byte_count_u16 => {
-            let field = MyFieldU16(U16);
-            assert_eq!(2, MyFieldU16::BYTES)
+        byte_count_u16 => {
+            let field = MyFieldU16(U16);
+            assert_eq!(2, MyFieldU16::BYTES)
         }
-        byte_count_u32 => {
-            let field = MyFieldU32(U32);
-            assert_eq!(4, MyFieldU32::BYTES)
+        byte_count_u32 => {
+            let field = MyFieldU32(U32);
+            assert_eq!(4, MyFieldU32::BYTES)
         }
-        byte_count_u64 => {
-            let field = MyFieldU64(U64);
-            assert_eq!(8, MyFieldU64::BYTES)
+        byte_count_u64 => {
+            let field = MyFieldU64(U64);
+            assert_eq!(8, MyFieldU64::BYTES)
         }
-        byte_count_u128 => {
-            let field = MyFieldU128(U128);
-            assert_eq!(16, MyFieldU128::BYTES)
+        byte_count_u128 => {
+            let field = MyFieldU128(U128);
+            assert_eq!(16, MyFieldU128::BYTES)
         }
-        byte_count_usize => {
-            let field = MyFieldUsize(USIZE);
-            assert_eq!((usize::BITS as usize) / 8, MyFieldUsize::BYTES)
+        byte_count_usize => {
+            let field = MyFieldUsize(USIZE);
+            assert_eq!((usize::BITS as usize) / 8, MyFieldUsize::BYTES)
         }
     }
 
-    // integer value
-    tests! {
-        integer_u8 => {
-            let field = MyFieldU8(U8);
-            assert_eq!(U8, field.as_integer())
+    // integer value
+    tests! {
+        integer_u8 => {
+            let field = MyFieldU8(U8);
+            assert_eq!(U8, field.as_integer())
         }
-        integer_u16 => {
-            let field = MyFieldU16(U16);
-            assert_eq!(U16, field.as_integer())
+        integer_u16 => {
+            let field = MyFieldU16(U16);
+            assert_eq!(U16, field.as_integer())
         }
-        integer_u32 => {
-            let field = MyFieldU32(U32);
-            assert_eq!(U32, field.as_integer())
+        integer_u32 => {
+            let field = MyFieldU32(U32);
+            assert_eq!(U32, field.as_integer())
         }
-        integer_u64 => {
-            let field = MyFieldU64(U64);
-            assert_eq!(U64, field.as_integer())
+        integer_u64 => {
+            let field = MyFieldU64(U64);
+            assert_eq!(U64, field.as_integer())
         }
-        integer_u128 => {
-            let field = MyFieldU128(U128);
-            assert_eq!(U128, field.as_integer())
+        integer_u128 => {
+            let field = MyFieldU128(U128);
+            assert_eq!(U128, field.as_integer())
         }
-        integer_usize => {
-            let field = MyFieldUsize(USIZE);
-            assert_eq!(USIZE, field.as_integer())
+        integer_usize => {
+            let field = MyFieldUsize(USIZE);
+            assert_eq!(USIZE, field.as_integer())
         }
     }
 
-    // binary value
-    tests! {
-        binary_u8 => {
-            let field = MyFieldU8(U8);
-            assert_eq!(B8, field.as_binary())
+    // binary value
+    tests! {
+        binary_u8 => {
+            let field = MyFieldU8(U8);
+            assert_eq!(B8, field.as_binary())
         }
-        binary_u16 => {
-            let field = MyFieldU16(U16);
-            assert_eq!(B16, field.as_binary())
+        binary_u16 => {
+            let field = MyFieldU16(U16);
+            assert_eq!(B16, field.as_binary())
         }
-        binary_u32 => {
-            let field = MyFieldU32(U32);
-            assert_eq!(B32, field.as_binary())
+        binary_u32 => {
+            let field = MyFieldU32(U32);
+            assert_eq!(B32, field.as_binary())
         }
-        binary_u64 => {
-            let field = MyFieldU64(U64);
-            assert_eq!(B64, field.as_binary())
+        binary_u64 => {
+            let field = MyFieldU64(U64);
+            assert_eq!(B64, field.as_binary())
         }
-        binary_u128 => {
-            let field = MyFieldU128(U128);
-            assert_eq!(B128, field.as_binary())
+        binary_u128 => {
+            let field = MyFieldU128(U128);
+            assert_eq!(B128, field.as_binary())
         }
-        binary_usize => {
-            let field = MyFieldUsize(USIZE);
-            assert_eq!(BSIZE, field.as_binary())
+        binary_usize => {
+            let field = MyFieldUsize(USIZE);
+            assert_eq!(BSIZE, field.as_binary())
         }
     }
 
-    // get index
-    tests! {
-        get_index_u8 => {
-            let field = MyFieldU8(U8);
-            for (index, char) in B8.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get_index(index as u8))
-                } else if char == '0' {
-                    assert!(!field.get_index(index as u8))
-                } else {
+    // get index
+    tests! {
+        get_index_u8 => {
+            let field = MyFieldU8(U8);
+            for (index, char) in B8.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get_index(index as u8))
+                } else if char == '0' {
+                    assert!(!field.get_index(index as u8))
+                } else {
                     panic!("invalid char in binary string")
                 }
             }
         }
-        get_index_u16 => {
-            let field = MyFieldU16(U16);
-            for (index, char) in B16.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get_index(index as u8))
-                } else if char == '0' {
-                    assert!(!field.get_index(index as u8))
-                } else {
+        get_index_u16 => {
+            let field = MyFieldU16(U16);
+            for (index, char) in B16.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get_index(index as u8))
+                } else if char == '0' {
+                    assert!(!field.get_index(index as u8))
+                } else {
                     panic!("invalid char in binary string")
                 }
             }
         }
-        get_index_u32 => {
-            let field = MyFieldU32(U32);
-            for (index, char) in B32.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get_index(index as u8))
-                } else if char == '0' {
-                    assert!(!field.get_index(index as u8))
-                } else {
+        get_index_u32 => {
+            let field = MyFieldU32(U32);
+            for (index, char) in B32.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get_index(index as u8))
+                } else if char == '0' {
+                    assert!(!field.get_index(index as u8))
+                } else {
                     panic!("invalid char in binary string")
                 }
             }
         }
-        get_index_u64 => {
-            let field = MyFieldU64(U64);
-            for (index, char) in B64.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get_index(index as u8))
-                } else if char == '0' {
-                    assert!(!field.get_index(index as u8))
-                } else {
+        get_index_u64 => {
+            let field = MyFieldU64(U64);
+            for (index, char) in B64.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get_index(index as u8))
+                } else if char == '0' {
+                    assert!(!field.get_index(index as u8))
+                } else {
                     panic!("invalid char in binary string")
                 }
             }
         }
-        get_index_u128 => {
-            let field = MyFieldU128(U128);
-            for (index, char) in B128.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get_index(index as u8))
-                } else if char == '0' {
-                    assert!(!field.get_index(index as u8))
-                } else {
+        get_index_u128 => {
+            let field = MyFieldU128(U128);
+            for (index, char) in B128.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get_index(index as u8))
+                } else if char == '0' {
+                    assert!(!field.get_index(index as u8))
+                } else {
                     panic!("invalid char in binary string")
                 }
             }
         }
-        get_index_usize => {
-            let field = MyFieldUsize(USIZE);
-            for (index, char) in BSIZE.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get_index(index as u8))
-                } else if char == '0' {
-                    assert!(!field.get_index(index as u8))
-                } else {
+        get_index_usize => {
+            let field = MyFieldUsize(USIZE);
+            for (index, char) in BSIZE.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get_index(index as u8))
+                } else if char == '0' {
+                    assert!(!field.get_index(index as u8))
+                } else {
                     panic!("invalid char in binary string")
                 }
             }
         }
     }
 
-    // set index
-    tests! {
-        set_index_u8 => {
-            let mut field = MyFieldU8(0);
-            for (index, char) in B8.chars().rev().enumerate() {
-                field.set_index(index as u8);
-                for (s_index, _char) in B8.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+    // set index
+    tests! {
+        set_index_u8 => {
+            let mut field = MyFieldU8(0);
+            for (index, char) in B8.chars().rev().enumerate() {
+                field.set_index(index as u8);
+                for (s_index, _char) in B8.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
-        set_index_u16 => {
-            let mut field = MyFieldU16(0);
-            for (index, char) in B16.chars().rev().enumerate() {
-                field.set_index(index as u8);
-                for (s_index, _char) in B16.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+        set_index_u16 => {
+            let mut field = MyFieldU16(0);
+            for (index, char) in B16.chars().rev().enumerate() {
+                field.set_index(index as u8);
+                for (s_index, _char) in B16.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
-        set_index_u32 => {
-            let mut field = MyFieldU32(0);
-            for (index, char) in B32.chars().rev().enumerate() {
-                field.set_index(index as u8);
-                for (s_index, _char) in B32.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+        set_index_u32 => {
+            let mut field = MyFieldU32(0);
+            for (index, char) in B32.chars().rev().enumerate() {
+                field.set_index(index as u8);
+                for (s_index, _char) in B32.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
-        set_index_u64 => {
-            let mut field = MyFieldU64(0);
-            for (index, char) in B64.chars().rev().enumerate() {
-                field.set_index(index as u8);
-                for (s_index, _char) in B64.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+        set_index_u64 => {
+            let mut field = MyFieldU64(0);
+            for (index, char) in B64.chars().rev().enumerate() {
+                field.set_index(index as u8);
+                for (s_index, _char) in B64.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
-        set_index_u128 => {
-            let mut field = MyFieldU128(0);
-            for (index, char) in B128.chars().rev().enumerate() {
-                field.set_index(index as u8);
-                for (s_index, _char) in B128.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+        set_index_u128 => {
+            let mut field = MyFieldU128(0);
+            for (index, char) in B128.chars().rev().enumerate() {
+                field.set_index(index as u8);
+                for (s_index, _char) in B128.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
-        set_index_usize => {
-            let mut field = MyFieldUsize(0);
-            for (index, char) in BSIZE.chars().rev().enumerate() {
-                field.set_index(index as u8);
-                for (s_index, _char) in BSIZE.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+        set_index_usize => {
+            let mut field = MyFieldUsize(0);
+            for (index, char) in BSIZE.chars().rev().enumerate() {
+                field.set_index(index as u8);
+                for (s_index, _char) in BSIZE.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
     }
 
-    // clear index
-    tests! {
-        clear_index_u8 => {
-            let mut field = MyFieldU8(u8::MAX);
-            for (index, char) in B8.chars().rev().enumerate() {
-                assert!(field.get_index(index as u8), "{:#?}", field);
-                field.clear_index(index as u8);
-                for (s_index, _char) in B8.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+    // clear index
+    tests! {
+        clear_index_u8 => {
+            let mut field = MyFieldU8(u8::MAX);
+            for (index, char) in B8.chars().rev().enumerate() {
+                assert!(field.get_index(index as u8), "{:#?}", field);
+                field.clear_index(index as u8);
+                for (s_index, _char) in B8.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
-        clear_index_u16 => {
-            let mut field = MyFieldU16(u16::MAX);
-            for (index, char) in B16.chars().rev().enumerate() {
-                assert!(field.get_index(index as u8), "{:#?}", field);
-                field.clear_index(index as u8);
-                for (s_index, _char) in B16.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+        clear_index_u16 => {
+            let mut field = MyFieldU16(u16::MAX);
+            for (index, char) in B16.chars().rev().enumerate() {
+                assert!(field.get_index(index as u8), "{:#?}", field);
+                field.clear_index(index as u8);
+                for (s_index, _char) in B16.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
-        clear_index_u32 => {
-            let mut field = MyFieldU32(u32::MAX);
-            for (index, char) in B32.chars().rev().enumerate() {
-                assert!(field.get_index(index as u8), "{:#?}", field);
-                field.clear_index(index as u8);
-                for (s_index, _char) in B32.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+        clear_index_u32 => {
+            let mut field = MyFieldU32(u32::MAX);
+            for (index, char) in B32.chars().rev().enumerate() {
+                assert!(field.get_index(index as u8), "{:#?}", field);
+                field.clear_index(index as u8);
+                for (s_index, _char) in B32.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
-        clear_index_u64 => {
-            let mut field = MyFieldU64(u64::MAX);
-            for (index, char) in B64.chars().rev().enumerate() {
-                assert!(field.get_index(index as u8), "{:#?}", field);
-                field.clear_index(index as u8);
-                for (s_index, _char) in B64.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+        clear_index_u64 => {
+            let mut field = MyFieldU64(u64::MAX);
+            for (index, char) in B64.chars().rev().enumerate() {
+                assert!(field.get_index(index as u8), "{:#?}", field);
+                field.clear_index(index as u8);
+                for (s_index, _char) in B64.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
-        clear_index_u128 => {
-            let mut field = MyFieldU128(u128::MAX);
-            for (index, char) in B128.chars().rev().enumerate() {
-                assert!(field.get_index(index as u8), "{:#?}", field);
-                field.clear_index(index as u8);
-                for (s_index, _char) in B128.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+        clear_index_u128 => {
+            let mut field = MyFieldU128(u128::MAX);
+            for (index, char) in B128.chars().rev().enumerate() {
+                assert!(field.get_index(index as u8), "{:#?}", field);
+                field.clear_index(index as u8);
+                for (s_index, _char) in B128.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
-        clear_index_usize => {
-            let mut field = MyFieldUsize(usize::MAX);
-            for (index, char) in BSIZE.chars().rev().enumerate() {
-                assert!(field.get_index(index as u8), "{:#?}", field);
-                field.clear_index(index as u8);
-                for (s_index, _char) in BSIZE.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+        clear_index_usize => {
+            let mut field = MyFieldUsize(usize::MAX);
+            for (index, char) in BSIZE.chars().rev().enumerate() {
+                assert!(field.get_index(index as u8), "{:#?}", field);
+                field.clear_index(index as u8);
+                for (s_index, _char) in BSIZE.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
     }
 
-    // toggle index
-    tests! {
-        toggle_index_u8 => {
-            let mut field = MyFieldU8(U8);
-            for (index, char) in B8.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get_index(index as u8));
-                    field.toggle_index(index as u8);
-                    assert!(!field.get_index(index as u8));
-                } else if char == '0' {
-                    assert!(!field.get_index(index as u8));
-                    field.toggle_index(index as u8);
-                    assert!(field.get_index(index as u8));
-                } else {
+    // toggle index
+    tests! {
+        toggle_index_u8 => {
+            let mut field = MyFieldU8(U8);
+            for (index, char) in B8.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get_index(index as u8));
+                    field.toggle_index(index as u8);
+                    assert!(!field.get_index(index as u8));
+                } else if char == '0' {
+                    assert!(!field.get_index(index as u8));
+                    field.toggle_index(index as u8);
+                    assert!(field.get_index(index as u8));
+                } else {
                     panic!("invalid char in binary string");
                 }
             }
         }
-        toggle_index_u16 => {
-            let mut field = MyFieldU16(U16);
-            for (index, char) in B16.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get_index(index as u8));
-                    field.toggle_index(index as u8);
-                    assert!(!field.get_index(index as u8));
-                } else if char == '0' {
-                    assert!(!field.get_index(index as u8));
-                    field.toggle_index(index as u8);
-                    assert!(field.get_index(index as u8));
-                } else {
+        toggle_index_u16 => {
+            let mut field = MyFieldU16(U16);
+            for (index, char) in B16.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get_index(index as u8));
+                    field.toggle_index(index as u8);
+                    assert!(!field.get_index(index as u8));
+                } else if char == '0' {
+                    assert!(!field.get_index(index as u8));
+                    field.toggle_index(index as u8);
+                    assert!(field.get_index(index as u8));
+                } else {
                     panic!("invalid char in binary string")
                 }
             }
         }
-        toggle_index_u32 => {
-            let mut field = MyFieldU32(U32);
-            for (index, char) in B32.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get_index(index as u8));
-                    field.toggle_index(index as u8);
-                    assert!(!field.get_index(index as u8));
-                } else if char == '0' {
-                    assert!(!field.get_index(index as u8));
-                    field.toggle_index(index as u8);
-                    assert!(field.get_index(index as u8));
-                } else {
+        toggle_index_u32 => {
+            let mut field = MyFieldU32(U32);
+            for (index, char) in B32.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get_index(index as u8));
+                    field.toggle_index(index as u8);
+                    assert!(!field.get_index(index as u8));
+                } else if char == '0' {
+                    assert!(!field.get_index(index as u8));
+                    field.toggle_index(index as u8);
+                    assert!(field.get_index(index as u8));
+                } else {
                     panic!("invalid char in binary string")
                 }
             }
         }
-        toggle_index_u64 => {
-            let mut field = MyFieldU64(U64);
-            for (index, char) in B64.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get_index(index as u8));
-                    field.toggle_index(index as u8);
-                    assert!(!field.get_index(index as u8));
-                } else if char == '0' {
-                    assert!(!field.get_index(index as u8));
-                    field.toggle_index(index as u8);
-                    assert!(field.get_index(index as u8));
-                } else {
+        toggle_index_u64 => {
+            let mut field = MyFieldU64(U64);
+            for (index, char) in B64.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get_index(index as u8));
+                    field.toggle_index(index as u8);
+                    assert!(!field.get_index(index as u8));
+                } else if char == '0' {
+                    assert!(!field.get_index(index as u8));
+                    field.toggle_index(index as u8);
+                    assert!(field.get_index(index as u8));
+                } else {
                     panic!("invalid char in binary string")
                 }
             }
         }
-        toggle_index_u128 => {
-            let mut field = MyFieldU128(U128);
-            for (index, char) in B128.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get_index(index as u8));
-                    field.toggle_index(index as u8);
-                    assert!(!field.get_index(index as u8));
-                } else if char == '0' {
-                    assert!(!field.get_index(index as u8));
-                    field.toggle_index(index as u8);
-                    assert!(field.get_index(index as u8));
-                } else {
+        toggle_index_u128 => {
+            let mut field = MyFieldU128(U128);
+            for (index, char) in B128.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get_index(index as u8));
+                    field.toggle_index(index as u8);
+                    assert!(!field.get_index(index as u8));
+                } else if char == '0' {
+                    assert!(!field.get_index(index as u8));
+                    field.toggle_index(index as u8);
+                    assert!(field.get_index(index as u8));
+                } else {
                     panic!("invalid char in binary string")
                 }
             }
         }
-        toggle_index_usize => {
-            let mut field = MyFieldUsize(USIZE);
-            for (index, char) in BSIZE.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get_index(index as u8));
-                    field.toggle_index(index as u8);
-                    assert!(!field.get_index(index as u8));
-                } else if char == '0' {
-                    assert!(!field.get_index(index as u8));
-                    field.toggle_index(index as u8);
-                    assert!(field.get_index(index as u8));
-                } else {
+        toggle_index_usize => {
+            let mut field = MyFieldUsize(USIZE);
+            for (index, char) in BSIZE.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get_index(index as u8));
+                    field.toggle_index(index as u8);
+                    assert!(!field.get_index(index as u8));
+                } else if char == '0' {
+                    assert!(!field.get_index(index as u8));
+                    field.toggle_index(index as u8);
+                    assert!(field.get_index(index as u8));
+                } else {
                     panic!("invalid char in binary string")
                 }
             }
         }
     }
 
-    // get
-    tests! {
-        get_u8 => {
-            let field = MyFieldU8(U8);
-            for (index, char) in B8.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get(MyFlagsU8::from(index as u8)))
-                } else if char == '0' {
-                    assert!(!field.get(MyFlagsU8::from(index as u8)))
-                } else {
+    // get
+    tests! {
+        get_u8 => {
+            let field = MyFieldU8(U8);
+            for (index, char) in B8.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get(MyFlagsU8::from(index as u8)))
+                } else if char == '0' {
+                    assert!(!field.get(MyFlagsU8::from(index as u8)))
+                } else {
                     panic!("invalid char in binary string")
                 }
             }
         }
-        get_u16 => {
-            let field = MyFieldU16(U16);
-            for (index, char) in B16.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get(MyFlagsU16::from(index as u8)))
-                } else if char == '0' {
-                    assert!(!field.get(MyFlagsU16::from(index as u8)))
-                } else {
+        get_u16 => {
+            let field = MyFieldU16(U16);
+            for (index, char) in B16.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get(MyFlagsU16::from(index as u8)))
+                } else if char == '0' {
+                    assert!(!field.get(MyFlagsU16::from(index as u8)))
+                } else {
                     panic!("invalid char in binary string")
                 }
             }
         }
-        get_u32 => {
-            let field = MyFieldU32(U32);
-            for (index, char) in B32.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get(MyFlagsU32::from(index as u8)))
-                } else if char == '0' {
-                    assert!(!field.get(MyFlagsU32::from(index as u8)))
-                } else {
+        get_u32 => {
+            let field = MyFieldU32(U32);
+            for (index, char) in B32.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get(MyFlagsU32::from(index as u8)))
+                } else if char == '0' {
+                    assert!(!field.get(MyFlagsU32::from(index as u8)))
+                } else {
                     panic!("invalid char in binary string")
                 }
             }
         }
-        get_u64 => {
-            let field = MyFieldU64(U64);
-            for (index, char) in B64.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get(MyFlagsU64::from(index as u8)))
-                } else if char == '0' {
-                    assert!(!field.get(MyFlagsU64::from(index as u8)))
-                } else {
+        get_u64 => {
+            let field = MyFieldU64(U64);
+            for (index, char) in B64.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get(MyFlagsU64::from(index as u8)))
+                } else if char == '0' {
+                    assert!(!field.get(MyFlagsU64::from(index as u8)))
+                } else {
                     panic!("invalid char in binary string")
                 }
             }
         }
-        get_u128 => {
-            let field = MyFieldU128(U128);
-            for (index, char) in B128.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get(MyFlagsU128::from(index as u8)))
-                } else if char == '0' {
-                    assert!(!field.get(MyFlagsU128::from(index as u8)))
-                } else {
+        get_u128 => {
+            let field = MyFieldU128(U128);
+            for (index, char) in B128.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get(MyFlagsU128::from(index as u8)))
+                } else if char == '0' {
+                    assert!(!field.get(MyFlagsU128::from(index as u8)))
+                } else {
                     panic!("invalid char in binary string")
                 }
             }
         }
-        get_usize => {
-            let field = MyFieldUsize(USIZE);
-            for (index, char) in BSIZE.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get(MyFlagsUsize::from(index as u8)))
-                } else if char == '0' {
-                    assert!(!field.get(MyFlagsUsize::from(index as u8)))
-                } else {
+        get_usize => {
+            let field = MyFieldUsize(USIZE);
+            for (index, char) in BSIZE.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get(MyFlagsUsize::from(index as u8)))
+                } else if char == '0' {
+                    assert!(!field.get(MyFlagsUsize::from(index as u8)))
+                } else {
                     panic!("invalid char in binary string")
                 }
             }
         }
     }
 
-    // set
-    tests! {
-        set_u8 => {
-            let mut field = MyFieldU8(0);
-            for (index, char) in B8.chars().rev().enumerate() {
-                field.set(MyFlagsU8::from(index as u8));
-                for (s_index, _char) in B8.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+    // set
+    tests! {
+        set_u8 => {
+            let mut field = MyFieldU8(0);
+            for (index, char) in B8.chars().rev().enumerate() {
+                field.set(MyFlagsU8::from(index as u8));
+                for (s_index, _char) in B8.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
-        set_u16 => {
-            let mut field = MyFieldU16(0);
-            for (index, char) in B16.chars().rev().enumerate() {
-                field.set(MyFlagsU16::from(index as u8));
-                for (s_index, _char) in B16.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+        set_u16 => {
+            let mut field = MyFieldU16(0);
+            for (index, char) in B16.chars().rev().enumerate() {
+                field.set(MyFlagsU16::from(index as u8));
+                for (s_index, _char) in B16.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
-        set_u32 => {
-            let mut field = MyFieldU32(0);
-            for (index, char) in B32.chars().rev().enumerate() {
-                field.set(MyFlagsU32::from(index as u8));
-                for (s_index, _char) in B32.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+        set_u32 => {
+            let mut field = MyFieldU32(0);
+            for (index, char) in B32.chars().rev().enumerate() {
+                field.set(MyFlagsU32::from(index as u8));
+                for (s_index, _char) in B32.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
-        set_u64 => {
-            let mut field = MyFieldU64(0);
-            for (index, char) in B64.chars().rev().enumerate() {
-                field.set(MyFlagsU64::from(index as u8));
-                for (s_index, _char) in B64.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+        set_u64 => {
+            let mut field = MyFieldU64(0);
+            for (index, char) in B64.chars().rev().enumerate() {
+                field.set(MyFlagsU64::from(index as u8));
+                for (s_index, _char) in B64.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
-        set_u128 => {
-            let mut field = MyFieldU128(0);
-            for (index, char) in B128.chars().rev().enumerate() {
-                field.set(MyFlagsU128::from(index as u8));
-                for (s_index, _char) in B128.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+        set_u128 => {
+            let mut field = MyFieldU128(0);
+            for (index, char) in B128.chars().rev().enumerate() {
+                field.set(MyFlagsU128::from(index as u8));
+                for (s_index, _char) in B128.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
-        set_usize => {
-            let mut field = MyFieldUsize(0);
-            for (index, char) in BSIZE.chars().rev().enumerate() {
-                field.set(MyFlagsUsize::from(index as u8));
-                for (s_index, _char) in BSIZE.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+        set_usize => {
+            let mut field = MyFieldUsize(0);
+            for (index, char) in BSIZE.chars().rev().enumerate() {
+                field.set(MyFlagsUsize::from(index as u8));
+                for (s_index, _char) in BSIZE.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
     }
 
-    // clear
-    tests! {
-        clear_u8 => {
-            let mut field = MyFieldU8(u8::MAX);
-            for (index, char) in B8.chars().rev().enumerate() {
-                assert!(field.get_index(index as u8), "{:#?}", field);
-                field.clear(MyFlagsU8::from(index as u8));
-                for (s_index, _char) in B8.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+    // clear
+    tests! {
+        clear_u8 => {
+            let mut field = MyFieldU8(u8::MAX);
+            for (index, char) in B8.chars().rev().enumerate() {
+                assert!(field.get_index(index as u8), "{:#?}", field);
+                field.clear(MyFlagsU8::from(index as u8));
+                for (s_index, _char) in B8.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
-        clear_u16 => {
-            let mut field = MyFieldU16(u16::MAX);
-            for (index, char) in B16.chars().rev().enumerate() {
-                assert!(field.get_index(index as u8), "{:#?}", field);
-                field.clear(MyFlagsU16::from(index as u8));
-                for (s_index, _char) in B16.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+        clear_u16 => {
+            let mut field = MyFieldU16(u16::MAX);
+            for (index, char) in B16.chars().rev().enumerate() {
+                assert!(field.get_index(index as u8), "{:#?}", field);
+                field.clear(MyFlagsU16::from(index as u8));
+                for (s_index, _char) in B16.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
-        clear_u32 => {
-            let mut field = MyFieldU32(u32::MAX);
-            for (index, char) in B32.chars().rev().enumerate() {
-                assert!(field.get_index(index as u8), "{:#?}", field);
-                field.clear(MyFlagsU32::from(index as u8));
-                for (s_index, _char) in B32.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+        clear_u32 => {
+            let mut field = MyFieldU32(u32::MAX);
+            for (index, char) in B32.chars().rev().enumerate() {
+                assert!(field.get_index(index as u8), "{:#?}", field);
+                field.clear(MyFlagsU32::from(index as u8));
+                for (s_index, _char) in B32.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
-        clear_u64 => {
-            let mut field = MyFieldU64(u64::MAX);
-            for (index, char) in B64.chars().rev().enumerate() {
-                assert!(field.get_index(index as u8), "{:#?}", field);
-                field.clear(MyFlagsU64::from(index as u8));
-                for (s_index, _char) in B64.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+        clear_u64 => {
+            let mut field = MyFieldU64(u64::MAX);
+            for (index, char) in B64.chars().rev().enumerate() {
+                assert!(field.get_index(index as u8), "{:#?}", field);
+                field.clear(MyFlagsU64::from(index as u8));
+                for (s_index, _char) in B64.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
-        clear_u128 => {
-            let mut field = MyFieldU128(u128::MAX);
-            for (index, char) in B128.chars().rev().enumerate() {
-                assert!(field.get_index(index as u8), "{:#?}", field);
-                field.clear(MyFlagsU128::from(index as u8));
-                for (s_index, _char) in B128.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+        clear_u128 => {
+            let mut field = MyFieldU128(u128::MAX);
+            for (index, char) in B128.chars().rev().enumerate() {
+                assert!(field.get_index(index as u8), "{:#?}", field);
+                field.clear(MyFlagsU128::from(index as u8));
+                for (s_index, _char) in B128.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
-        clear_usize => {
-            let mut field = MyFieldUsize(usize::MAX);
-            for (index, char) in BSIZE.chars().rev().enumerate() {
-                assert!(field.get_index(index as u8), "{:#?}", field);
-                field.clear(MyFlagsUsize::from(index as u8));
-                for (s_index, _char) in BSIZE.chars().rev().enumerate() {
-                    if s_index <= index {
-                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
-                    }  else {
-                        assert!(field.get_index(s_index as u8), "{:#?}", field);
+        clear_usize => {
+            let mut field = MyFieldUsize(usize::MAX);
+            for (index, char) in BSIZE.chars().rev().enumerate() {
+                assert!(field.get_index(index as u8), "{:#?}", field);
+                field.clear(MyFlagsUsize::from(index as u8));
+                for (s_index, _char) in BSIZE.chars().rev().enumerate() {
+                    if s_index <= index {
+                        assert!(!field.get_index(s_index as u8), "{:#?}", field);
+                    }  else {
+                        assert!(field.get_index(s_index as u8), "{:#?}", field);
                     }
                 }
             }
         }
     }
 
-    // toggle
-    tests! {
-        toggle_u8 => {
-            let mut field = MyFieldU8(U8);
-            for (index, char) in B8.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get_index(index as u8));
-                    field.toggle(MyFlagsU8::from(index as u8));
-                    assert!(!field.get_index(index as u8));
-                } else if char == '0' {
-                    assert!(!field.get_index(index as u8));
-                    field.toggle(MyFlagsU8::from(index as u8));
-                    assert!(field.get_index(index as u8));
-                } else {
+    // toggle
+    tests! {
+        toggle_u8 => {
+            let mut field = MyFieldU8(U8);
+            for (index, char) in B8.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get_index(index as u8));
+                    field.toggle(MyFlagsU8::from(index as u8));
+                    assert!(!field.get_index(index as u8));
+                } else if char == '0' {
+                    assert!(!field.get_index(index as u8));
+                    field.toggle(MyFlagsU8::from(index as u8));
+                    assert!(field.get_index(index as u8));
+                } else {
                     panic!("invalid char in binary string");
                 }
             }
         }
-        toggle_u16 => {
-            let mut field = MyFieldU16(U16);
-            for (index, char) in B16.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get_index(index as u8));
-                    field.toggle(MyFlagsU16::from(index as u8));
-                    assert!(!field.get_index(index as u8));
-                } else if char == '0' {
-                    assert!(!field.get_index(index as u8));
-                    field.toggle(MyFlagsU16::from(index as u8));
-                    assert!(field.get_index(index as u8));
-                } else {
+        toggle_u16 => {
+            let mut field = MyFieldU16(U16);
+            for (index, char) in B16.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get_index(index as u8));
+                    field.toggle(MyFlagsU16::from(index as u8));
+                    assert!(!field.get_index(index as u8));
+                } else if char == '0' {
+                    assert!(!field.get_index(index as u8));
+                    field.toggle(MyFlagsU16::from(index as u8));
+                    assert!(field.get_index(index as u8));
+                } else {
                     panic!("invalid char in binary string")
                 }
             }
         }
-        toggle_u32 => {
-            let mut field = MyFieldU32(U32);
-            for (index, char) in B32.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get_index(index as u8));
-                    field.toggle(MyFlagsU32::from(index as u8));
-                    assert!(!field.get_index(index as u8));
-                } else if char == '0' {
-                    assert!(!field.get_index(index as u8));
-                    field.toggle(MyFlagsU32::from(index as u8));
-                    assert!(field.get_index(index as u8));
-                } else {
+        toggle_u32 => {
+            let mut field = MyFieldU32(U32);
+            for (index, char) in B32.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get_index(index as u8));
+                    field.toggle(MyFlagsU32::from(index as u8));
+                    assert!(!field.get_index(index as u8));
+                } else if char == '0' {
+                    assert!(!field.get_index(index as u8));
+                    field.toggle(MyFlagsU32::from(index as u8));
+                    assert!(field.get_index(index as u8));
+                } else {
                     panic!("invalid char in binary string")
                 }
             }
         }
-        toggle_u64 => {
-            let mut field = MyFieldU64(U64);
-            for (index, char) in B64.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get_index(index as u8));
-                    field.toggle(MyFlagsU64::from(index as u8));
-                    assert!(!field.get_index(index as u8));
-                } else if char == '0' {
-                    assert!(!field.get_index(index as u8));
-                    field.toggle(MyFlagsU64::from(index as u8));
-                    assert!(field.get_index(index as u8));
-                } else {
+        toggle_u64 => {
+            let mut field = MyFieldU64(U64);
+            for (index, char) in B64.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get_index(index as u8));
+                    field.toggle(MyFlagsU64::from(index as u8));
+                    assert!(!field.get_index(index as u8));
+                } else if char == '0' {
+                    assert!(!field.get_index(index as u8));
+                    field.toggle(MyFlagsU64::from(index as u8));
+                    assert!(field.get_index(index as u8));
+                } else {
                     panic!("invalid char in binary string")
                 }
             }
         }
-        toggle_u128 => {
-            let mut field = MyFieldU128(U128);
-            for (index, char) in B128.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get_index(index as u8));
-                    field.toggle(MyFlagsU128::from(index as u8));
-                    assert!(!field.get_index(index as u8));
-                } else if char == '0' {
-                    assert!(!field.get_index(index as u8));
-                    field.toggle(MyFlagsU128::from(index as u8));
-                    assert!(field.get_index(index as u8));
-                } else {
+        toggle_u128 => {
+            let mut field = MyFieldU128(U128);
+            for (index, char) in B128.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get_index(index as u8));
+                    field.toggle(MyFlagsU128::from(index as u8));
+                    assert!(!field.get_index(index as u8));
+                } else if char == '0' {
+                    assert!(!field.get_index(index as u8));
+                    field.toggle(MyFlagsU128::from(index as u8));
+                    assert!(field.get_index(index as u8));
+                } else {
                     panic!("invalid char in binary string")
                 }
             }
         }
-        toggle_usize => {
-            let mut field = MyFieldUsize(USIZE);
-            for (index, char) in BSIZE.chars().rev().enumerate() {
-                if char == '1' {
-                    assert!(field.get_index(index as u8));
-                    field.toggle(MyFlagsUsize::from(index as u8));
-                    assert!(!field.get_index(index as u8));
-                } else if char == '0' {
-                    assert!(!field.get_index(index as u8));
-                    field.toggle(MyFlagsUsize::from(index as u8));
-                    assert!(field.get_index(index as u8));
-                } else {
+        toggle_usize => {
+            let mut field = MyFieldUsize(USIZE);
+            for (index, char) in BSIZE.chars().rev().enumerate() {
+                if char == '1' {
+                    assert!(field.get_index(index as u8));
+                    field.toggle(MyFlagsUsize::from(index as u8));
+                    assert!(!field.get_index(index as u8));
+                } else if char == '0' {
+                    assert!(!field.get_index(index as u8));
+                    field.toggle(MyFlagsUsize::from(index as u8));
+                    assert!(field.get_index(index as u8));
+                } else {
                     panic!("invalid char in binary string")
                 }
             }
         }
     }
 
-    // diff
-    tests! {
-        diff_u8 => {
-            let field = MyFieldU8(U8);
-            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.diff(reversed);
-            assert_eq!("10100101", out.as_binary());
-            assert_eq!(165, out.as_integer());
-        }
-        diff_u16 => {
-            let field = MyFieldU16(U16);
-            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.diff(reversed);
-            assert_eq!("1010101111010101", out.as_binary());
-            assert_eq!(43989, out.as_integer());
-        }
-        diff_u32 => {
-            let field = MyFieldU32(U32);
-            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.diff(reversed);
-            assert_eq!("11110101000100111100100010101111", out.as_binary());
-            assert_eq!(4111714479, out.as_integer());
-        }
-        diff_u64 => {
-            let field = MyFieldU64(U64);
-            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.diff(reversed);
-            assert_eq!("0001010011000010001001001001100110011001001001000100001100101000", out.as_binary());
-            assert_eq!(1495798268358312744, out.as_integer());
-        }
-        diff_u128 => {
-            let field = MyFieldU128(U128);
-            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.diff(reversed);
-            assert_eq!("10010001110011001000001110100101110101111000111101001010101000100100010101010010111100011110101110100101110000010011001110001001", out.as_binary());
-            assert_eq!(193799958082971305581995159990093034377, out.as_integer());
-        }
-        // diff_usize => {
-        //     let field = MyFieldUsize(USIZE);
-        // }
-    }
-
-    // combine
-    tests! {
-        combine_u8 => {
-            let field = MyFieldU8(U8);
-            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.combine(reversed);
-            assert_eq!("11111111", out.as_binary());
-            assert_eq!(255, out.as_integer());
-        }
-        combine_u16 => {
-            let field = MyFieldU16(U16);
-            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.combine(reversed);
-            assert_eq!("1110101111010111", out.as_binary());
-            assert_eq!(60375, out.as_integer());
-        }
-        combine_u32 => {
-            let field = MyFieldU32(U32);
-            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.combine(reversed);
-            assert_eq!("11111101100100111100100110111111", out.as_binary());
-            assert_eq!(4254321087, out.as_integer());
-        }
-        combine_u64 => {
-            let field = MyFieldU64(U64);
-            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.combine(reversed);
-            assert_eq!("1111111011010010001111111001110110111001111111000100101101111111", out.as_binary());
-            assert_eq!(18361808577405668223, out.as_integer());
-        }
-        combine_u128 => {
-            let field = MyFieldU128(U128);
-            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.combine(reversed);
-            assert_eq!("11111001111111011110001110100101111101111110111101101011111111111111111111010110111101111110111110100101110001111011111110011111", out.as_binary());
-            assert_eq!(332296039312012448238196841470979719071, out.as_integer());
-        }
-        // combine_usize => {
-        //     let field = MyFieldUsize(USIZE);
-        // }
-    }
-
-    // intersect
-    tests! {
-        intersect_u8 => {
-            let field = MyFieldU8(U8);
-            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.intersect(reversed);
-            assert_eq!("01011010", out.as_binary());
-            assert_eq!(90, out.as_integer());
-        }
-        intersect_u16 => {
-            let field = MyFieldU16(U16);
-            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.intersect(reversed);
-            assert_eq!("0100000000000010", out.as_binary());
-            assert_eq!(16386, out.as_integer());
-        }
-        intersect_u32 => {
-            let field = MyFieldU32(U32);
-            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.intersect(reversed);
-            assert_eq!("00001000100000000000000100010000", out.as_binary());
-            assert_eq!(142606608, out.as_integer());
-        }
-        intersect_u64 => {
-            let field = MyFieldU64(U64);
-            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.intersect(reversed);
-            assert_eq!("1110101000010000000110110000010000100000110110000000100001010111", out.as_binary());
-            assert_eq!(16866010309047355479, out.as_integer());
-        }
-        intersect_u128 => {
-            let field = MyFieldU128(U128);
-            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.intersect(reversed);
-            assert_eq!("01101000001100010110000000000000001000000110000000100001010111011011101010000100000001100000010000000000000001101000110000010110", out.as_binary());
-            assert_eq!(138496081229041142656201681480886684694, out.as_integer());
-        }
-        // intersect_usize => {
-        //     let field = MyFieldUsize(USIZE);
-        // }
-    }
-
-    // into diff
-    tests! {
-        into_diff_u8 => {
-            let field = MyFieldU8(U8);
-            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.into_diff(reversed);
-            assert_eq!("10100101", out.as_binary());
-            assert_eq!(165, out.as_integer());
-        }
-        into_diff_u16 => {
-            let field = MyFieldU16(U16);
-            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.into_diff(reversed);
-            assert_eq!("1010101111010101", out.as_binary());
-            assert_eq!(43989, out.as_integer());
-        }
-        into_diff_u32 => {
-            let field = MyFieldU32(U32);
-            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.into_diff(reversed);
-            assert_eq!("11110101000100111100100010101111", out.as_binary());
-            assert_eq!(4111714479, out.as_integer());
-        }
-        into_diff_u64 => {
-            let field = MyFieldU64(U64);
-            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.into_diff(reversed);
-            assert_eq!("0001010011000010001001001001100110011001001001000100001100101000", out.as_binary());
-            assert_eq!(1495798268358312744, out.as_integer());
-        }
-        into_diff_u128 => {
-            let field = MyFieldU128(U128);
-            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.into_diff(reversed);
-            assert_eq!("10010001110011001000001110100101110101111000111101001010101000100100010101010010111100011110101110100101110000010011001110001001", out.as_binary());
-            assert_eq!(193799958082971305581995159990093034377, out.as_integer());
-        }
-        // into_diff_usize => {
-        //     let field = MyFieldUsize(USIZE);
-        // }
-    }
-
-    // into combined
-    tests! {
-        into_combined_u8 => {
-            let field = MyFieldU8(U8);
-            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.into_combined(reversed);
-            assert_eq!("11111111", out.as_binary());
-            assert_eq!(255, out.as_integer());
-        }
-        into_combined_u16 => {
-            let field = MyFieldU16(U16);
-            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.into_combined(reversed);
-            assert_eq!("1110101111010111", out.as_binary());
-            assert_eq!(60375, out.as_integer());
-        }
-        into_combined_u32 => {
-            let field = MyFieldU32(U32);
-            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.into_combined(reversed);
-            assert_eq!("11111101100100111100100110111111", out.as_binary());
-            assert_eq!(4254321087, out.as_integer());
-        }
-        into_combined_u64 => {
-            let field = MyFieldU64(U64);
-            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.into_combined(reversed);
-            assert_eq!("1111111011010010001111111001110110111001111111000100101101111111", out.as_binary());
-            assert_eq!(18361808577405668223, out.as_integer());
-        }
-        into_combined_u128 => {
-            let field = MyFieldU128(U128);
-            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.into_combined(reversed);
-            assert_eq!("11111001111111011110001110100101111101111110111101101011111111111111111111010110111101111110111110100101110001111011111110011111", out.as_binary());
-            assert_eq!(332296039312012448238196841470979719071, out.as_integer());
-        }
-        // into_combined_usize => {
-        //     let field = MyFieldUsize(USIZE);
-        // }
-    }
-
-    // into intersection
-    tests! {
-        into_intersection_u8 => {
-            let field = MyFieldU8(U8);
-            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.into_intersection(reversed);
-            assert_eq!("01011010", out.as_binary());
-            assert_eq!(90, out.as_integer());
-        }
-        into_intersection_u16 => {
-            let field = MyFieldU16(U16);
-            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.into_intersection(reversed);
-            assert_eq!("0100000000000010", out.as_binary());
-            assert_eq!(16386, out.as_integer());
-        }
-        into_intersection_u32 => {
-            let field = MyFieldU32(U32);
-            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.into_intersection(reversed);
-            assert_eq!("00001000100000000000000100010000", out.as_binary());
-            assert_eq!(142606608, out.as_integer());
-        }
-        into_intersection_u64 => {
-            let field = MyFieldU64(U64);
-            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.into_intersection(reversed);
-            assert_eq!("1110101000010000000110110000010000100000110110000000100001010111", out.as_binary());
-            assert_eq!(16866010309047355479, out.as_integer());
-        }
-        into_intersection_u128 => {
-            let field = MyFieldU128(U128);
-            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field.into_intersection(reversed);
-            assert_eq!("01101000001100010110000000000000001000000110000000100001010111011011101010000100000001100000010000000000000001101000110000010110", out.as_binary());
-            assert_eq!(138496081229041142656201681480886684694, out.as_integer());
-        }
-        // into_intersection_usize => {
-        //     let field = MyFieldUsize(USIZE);
-        // }
-    }
-
-    // field from flag
-    tests! {
-        field_from_flag_u8 => {
-            for index in 0..u8::BITS {
-                let flag = MyFlagsU8::from(index as u8);
-                let field = MyFieldU8::from(flag);
-                assert_eq!(MyFieldU8(0u8 | (1 << index)), field)
-            }
-        }
-        field_from_flag_u16 => {
-            for index in 0..u16::BITS {
-                let flag = MyFlagsU16::from(index as u8);
-                let field = MyFieldU16::from(flag);
-                assert_eq!(MyFieldU16(0u16 | (1 << index)), field)
-            }
-        }
-        field_from_flag_u32 => {
-            for index in 0..u32::BITS {
-                let flag = MyFlagsU32::from(index as u8);
-                let field = MyFieldU32::from(flag);
-                assert_eq!(MyFieldU32(0u32 | (1 << index)), field)
-            }
-        }
-        field_from_flag_u64 => {
-            for index in 0..u64::BITS {
-                let flag = MyFlagsU64::from(index as u8);
-                let field = MyFieldU64::from(flag);
-                assert_eq!(MyFieldU64(0u64 | (1 << index)), field)
-            }
-        }
-        field_from_flag_u128 => {
-            for index in 0..u128::BITS {
-                let flag = MyFlagsU128::from(index as u8);
-                let field = MyFieldU128::from(flag);
-                assert_eq!(MyFieldU128(0u128 | (1 << index)), field)
-            }
-        }
-        field_from_flag_usize => {
-            for index in 0..usize::BITS {
-                let flag = MyFlagsUsize::from(index as u8);
-                let field = MyFieldUsize::from(flag);
-                assert_eq!(MyFieldUsize(0usize | (1 << index)), field)
-            }
-        }
-    }
-
-    // $name & $name
-    tests! {
-        bitwise_name_and_name_u8 => {
-            let field = MyFieldU8(U8);
-            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field & reversed;
-            assert_eq!("01011010", out.as_binary());
-            assert_eq!(90, out.as_integer());
-        }
-        bitwise_name_and_name_u16 => {
-            let field = MyFieldU16(U16);
-            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field & reversed;
-            assert_eq!("0100000000000010", out.as_binary());
-            assert_eq!(16386, out.as_integer());
-        }
-        bitwise_name_and_name_u32 => {
-            let field = MyFieldU32(U32);
-            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field & reversed;
-            assert_eq!("00001000100000000000000100010000", out.as_binary());
-            assert_eq!(142606608, out.as_integer());
-        }
-        bitwise_name_and_name_u64 => {
-            let field = MyFieldU64(U64);
-            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field & reversed;
-            assert_eq!("1110101000010000000110110000010000100000110110000000100001010111", out.as_binary());
-            assert_eq!(16866010309047355479, out.as_integer());
-        }
-        bitwise_name_and_name_u128 => {
-            let field = MyFieldU128(U128);
-            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field & reversed;
-            assert_eq!("01101000001100010110000000000000001000000110000000100001010111011011101010000100000001100000010000000000000001101000110000010110", out.as_binary());
-            assert_eq!(138496081229041142656201681480886684694, out.as_integer());
-        }
-        // bitwise_name_and_name_usize => {
-        //
-        // }
-    }
-
-    // $name | $name
-    tests! {
-        bitwise_name_or_name_u8 => {
-            let field = MyFieldU8(U8);
-            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field | reversed;
-            assert_eq!("11111111", out.as_binary());
-            assert_eq!(255, out.as_integer());
-        }
-        bitwise_name_or_name_u16 => {
-            let field = MyFieldU16(U16);
-            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field | reversed;
-            assert_eq!("1110101111010111", out.as_binary());
-            assert_eq!(60375, out.as_integer());
-        }
-        bitwise_name_or_name_u32 => {
-            let field = MyFieldU32(U32);
-            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field | reversed;
-            assert_eq!("11111101100100111100100110111111", out.as_binary());
-            assert_eq!(4254321087, out.as_integer());
-        }
-        bitwise_name_or_name_u64 => {
-            let field = MyFieldU64(U64);
-            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field | reversed;
-            assert_eq!("1111111011010010001111111001110110111001111111000100101101111111", out.as_binary());
-            assert_eq!(18361808577405668223, out.as_integer());
-        }
-        bitwise_name_or_name_u128 => {
-            let field = MyFieldU128(U128);
-            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field | reversed;
-            assert_eq!("11111001111111011110001110100101111101111110111101101011111111111111111111010110111101111110111110100101110001111011111110011111", out.as_binary());
-            assert_eq!(332296039312012448238196841470979719071, out.as_integer());
-        }
-        // bitwise_name_or_name_usize => {
-        //
-        // }
-    }
-
-    // $name ^ $name
-    tests! {
-        bitwise_name_xor_name_u8 => {
-            let field = MyFieldU8(U8);
-            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field ^ reversed;
-            assert_eq!("10100101", out.as_binary());
-            assert_eq!(165, out.as_integer());
-        }
-        bitwise_name_xor_name_u16 => {
-            let field = MyFieldU16(U16);
-            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field ^ reversed;
-            assert_eq!("1010101111010101", out.as_binary());
-            assert_eq!(43989, out.as_integer());
-        }
-        bitwise_name_xor_name_u32 => {
-            let field = MyFieldU32(U32);
-            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field ^ reversed;
-            assert_eq!("11110101000100111100100010101111", out.as_binary());
-            assert_eq!(4111714479, out.as_integer());
-        }
-        bitwise_name_xor_name_u64 => {
-            let field = MyFieldU64(U64);
-            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field ^ reversed;
-            assert_eq!("0001010011000010001001001001100110011001001001000100001100101000", out.as_binary());
-            assert_eq!(1495798268358312744, out.as_integer());
-        }
-        bitwise_name_xor_name_u128 => {
-            let field = MyFieldU128(U128);
-            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            let out = field ^ reversed;
-            assert_eq!("10010001110011001000001110100101110101111000111101001010101000100100010101010010111100011110101110100101110000010011001110001001", out.as_binary());
-            assert_eq!(193799958082971305581995159990093034377, out.as_integer());
-        }
-        // bitwise_name_xor_name_usize => {
-        //
-        // }
-    }
-
-    // $name &= $name
-    tests! {
-        bitwise_name_and_assign_name_u8 => {
-            let mut field = MyFieldU8(U8);
-            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            field &= reversed;
-            assert_eq!("01011010", field.as_binary());
-            assert_eq!(90, field.as_integer());
-        }
-        bitwise_name_and_assign_name_u16 => {
-            let mut field = MyFieldU16(U16);
-            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            field &= reversed;
-            assert_eq!("0100000000000010", field.as_binary());
-            assert_eq!(16386, field.as_integer());
-        }
-        bitwise_name_and_assign_name_u32 => {
-            let mut field = MyFieldU32(U32);
-            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            field &= reversed;
-            assert_eq!("00001000100000000000000100010000", field.as_binary());
-            assert_eq!(142606608, field.as_integer());
-        }
-        bitwise_name_and_assign_name_u64 => {
-            let mut field = MyFieldU64(U64);
-            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            field &= reversed;
-            assert_eq!("1110101000010000000110110000010000100000110110000000100001010111", field.as_binary());
-            assert_eq!(16866010309047355479, field.as_integer());
-        }
-        bitwise_name_and_assign_name_u128 => {
-            let mut field = MyFieldU128(U128);
-            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            field &= reversed;
-            assert_eq!("01101000001100010110000000000000001000000110000000100001010111011011101010000100000001100000010000000000000001101000110000010110", field.as_binary());
-            assert_eq!(138496081229041142656201681480886684694, field.as_integer());
-        }
-    //     bitwise_name_and_assign_name_usize => {
-    //
-    //     }
-    }
-
-    // $name |= $name
-    tests! {
-        bitwise_name_or_assign_name_u8 => {
-            let mut field = MyFieldU8(U8);
-            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            field |= reversed;
-            assert_eq!("11111111", field.as_binary());
-            assert_eq!(255, field.as_integer());
-        }
-        bitwise_name_or_assign_name_u16 => {
-            let mut field = MyFieldU16(U16);
-            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            field |= reversed;
-            assert_eq!("1110101111010111", field.as_binary());
-            assert_eq!(60375, field.as_integer());
-        }
-        bitwise_name_or_assign_name_u32 => {
-            let mut field = MyFieldU32(U32);
-            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            field |= reversed;
-            assert_eq!("11111101100100111100100110111111", field.as_binary());
-            assert_eq!(4254321087, field.as_integer());
-        }
-        bitwise_name_or_assign_name_u64 => {
-            let mut field = MyFieldU64(U64);
-            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            field |= reversed;
-            assert_eq!("1111111011010010001111111001110110111001111111000100101101111111", field.as_binary());
-            assert_eq!(18361808577405668223, field.as_integer());
-        }
-        bitwise_name_or_assign_name_u128 => {
-            let mut field = MyFieldU128(U128);
-            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            field |= reversed;
-            assert_eq!("11111001111111011110001110100101111101111110111101101011111111111111111111010110111101111110111110100101110001111011111110011111", field.as_binary());
-            assert_eq!(332296039312012448238196841470979719071, field.as_integer());
-        }
-        // bitwise_name_or_assign_name_usize => {
-        //
-        // }
-    }
-
-    // $name ^= $name
-    tests! {
-        bitwise_name_xor_assign_name_u8 => {
-            let mut field = MyFieldU8(U8);
-            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            field ^= reversed;
-            assert_eq!("10100101", field.as_binary());
-            assert_eq!(165, field.as_integer());
-        }
-        bitwise_name_xor_assign_name_u16 => {
-            let mut field = MyFieldU16(U16);
-            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            field ^= reversed;
-            assert_eq!("1010101111010101", field.as_binary());
-            assert_eq!(43989, field.as_integer());
-        }
-        bitwise_name_xor_assign_name_u32 => {
-            let mut field = MyFieldU32(U32);
-            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            field ^= reversed;
-            assert_eq!("11110101000100111100100010101111", field.as_binary());
-            assert_eq!(4111714479, field.as_integer());
-        }
-        bitwise_name_xor_assign_name_u64 => {
-            let mut field = MyFieldU64(U64);
-            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            field ^= reversed;
-            assert_eq!("0001010011000010001001001001100110011001001001000100001100101000", field.as_binary());
-            assert_eq!(1495798268358312744, field.as_integer());
-        }
-        bitwise_name_xor_assign_name_u128 => {
-            let mut field = MyFieldU128(U128);
-            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
-            field ^= reversed;
-            assert_eq!("10010001110011001000001110100101110101111000111101001010101000100100010101010010111100011110101110100101110000010011001110001001", field.as_binary());
-            assert_eq!(193799958082971305581995159990093034377, field.as_integer());
-        }
-        // bitwise_name_xor_assign_name_usize => {
-        //
-        // }
-    }
-
-    // $name & $flag
-    tests! {
-        bitwise_name_and_flag_u8 => {
-            for index in 0..u8::BITS {
-                let mask = MyFieldU8(u8::MAX) & MyFlagsU8::from(index as u8);
-                assert_eq!(0 | !(1 << (index as u8) ), mask.as_integer());
-            }
-        }
-        bitwise_name_and_flag_u16 => {
-            for index in 0..u16::BITS {
-                let mask = MyFieldU16(u16::MAX) & MyFlagsU16::from(index as u8);
-                assert_eq!(0 | !(1 << (index as u8) ), mask.as_integer());
-            }
-        }
-        bitwise_name_and_flag_u32 => {
-            for index in 0..u32::BITS {
-                let mask = MyFieldU32(u32::MAX) & MyFlagsU32::from(index as u8);
-                assert_eq!(0 | !(1 << (index as u8) ), mask.as_integer());
-            }
-        }
-        bitwise_name_and_flag_u64 => {
-            for index in 0..u64::BITS {
-                let mask = MyFieldU64(u64::MAX) & MyFlagsU64::from(index as u8);
-                assert_eq!(0 | !(1 << (index as u8) ), mask.as_integer());
+    // diff
+    tests! {
+        diff_u8 => {
+            let field = MyFieldU8(U8);
+            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.diff(reversed);
+            assert_eq!("10100101", out.as_binary());
+            assert_eq!(165, out.as_integer());
+        }
+        diff_u16 => {
+            let field = MyFieldU16(U16);
+            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.diff(reversed);
+            assert_eq!("1010101111010101", out.as_binary());
+            assert_eq!(43989, out.as_integer());
+        }
+        diff_u32 => {
+            let field = MyFieldU32(U32);
+            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.diff(reversed);
+            assert_eq!("11110101000100111100100010101111", out.as_binary());
+            assert_eq!(4111714479, out.as_integer());
+        }
+        diff_u64 => {
+            let field = MyFieldU64(U64);
+            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.diff(reversed);
+            assert_eq!("0001010011000010001001001001100110011001001001000100001100101000", out.as_binary());
+            assert_eq!(1495798268358312744, out.as_integer());
+        }
+        diff_u128 => {
+            let field = MyFieldU128(U128);
+            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.diff(reversed);
+            assert_eq!("10010001110011001000001110100101110101111000111101001010101000100100010101010010111100011110101110100101110000010011001110001001", out.as_binary());
+            assert_eq!(193799958082971305581995159990093034377, out.as_integer());
+        }
+        // diff_usize => {
+        //     let field = MyFieldUsize(USIZE);
+        // }
+    }
+
+    // combine
+    tests! {
+        combine_u8 => {
+            let field = MyFieldU8(U8);
+            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.combine(reversed);
+            assert_eq!("11111111", out.as_binary());
+            assert_eq!(255, out.as_integer());
+        }
+        combine_u16 => {
+            let field = MyFieldU16(U16);
+            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.combine(reversed);
+            assert_eq!("1110101111010111", out.as_binary());
+            assert_eq!(60375, out.as_integer());
+        }
+        combine_u32 => {
+            let field = MyFieldU32(U32);
+            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.combine(reversed);
+            assert_eq!("11111101100100111100100110111111", out.as_binary());
+            assert_eq!(4254321087, out.as_integer());
+        }
+        combine_u64 => {
+            let field = MyFieldU64(U64);
+            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.combine(reversed);
+            assert_eq!("1111111011010010001111111001110110111001111111000100101101111111", out.as_binary());
+            assert_eq!(18361808577405668223, out.as_integer());
+        }
+        combine_u128 => {
+            let field = MyFieldU128(U128);
+            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.combine(reversed);
+            assert_eq!("11111001111111011110001110100101111101111110111101101011111111111111111111010110111101111110111110100101110001111011111110011111", out.as_binary());
+            assert_eq!(332296039312012448238196841470979719071, out.as_integer());
+        }
+        // combine_usize => {
+        //     let field = MyFieldUsize(USIZE);
+        // }
+    }
+
+    // intersect
+    tests! {
+        intersect_u8 => {
+            let field = MyFieldU8(U8);
+            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.intersect(reversed);
+            assert_eq!("01011010", out.as_binary());
+            assert_eq!(90, out.as_integer());
+        }
+        intersect_u16 => {
+            let field = MyFieldU16(U16);
+            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.intersect(reversed);
+            assert_eq!("0100000000000010", out.as_binary());
+            assert_eq!(16386, out.as_integer());
+        }
+        intersect_u32 => {
+            let field = MyFieldU32(U32);
+            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.intersect(reversed);
+            assert_eq!("00001000100000000000000100010000", out.as_binary());
+            assert_eq!(142606608, out.as_integer());
+        }
+        intersect_u64 => {
+            let field = MyFieldU64(U64);
+            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.intersect(reversed);
+            assert_eq!("1110101000010000000110110000010000100000110110000000100001010111", out.as_binary());
+            assert_eq!(16866010309047355479, out.as_integer());
+        }
+        intersect_u128 => {
+            let field = MyFieldU128(U128);
+            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.intersect(reversed);
+            assert_eq!("01101000001100010110000000000000001000000110000000100001010111011011101010000100000001100000010000000000000001101000110000010110", out.as_binary());
+            assert_eq!(138496081229041142656201681480886684694, out.as_integer());
+        }
+        // intersect_usize => {
+        //     let field = MyFieldUsize(USIZE);
+        // }
+    }
+
+    // into diff
+    tests! {
+        into_diff_u8 => {
+            let field = MyFieldU8(U8);
+            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.into_diff(reversed);
+            assert_eq!("10100101", out.as_binary());
+            assert_eq!(165, out.as_integer());
+        }
+        into_diff_u16 => {
+            let field = MyFieldU16(U16);
+            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.into_diff(reversed);
+            assert_eq!("1010101111010101", out.as_binary());
+            assert_eq!(43989, out.as_integer());
+        }
+        into_diff_u32 => {
+            let field = MyFieldU32(U32);
+            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.into_diff(reversed);
+            assert_eq!("11110101000100111100100010101111", out.as_binary());
+            assert_eq!(4111714479, out.as_integer());
+        }
+        into_diff_u64 => {
+            let field = MyFieldU64(U64);
+            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.into_diff(reversed);
+            assert_eq!("0001010011000010001001001001100110011001001001000100001100101000", out.as_binary());
+            assert_eq!(1495798268358312744, out.as_integer());
+        }
+        into_diff_u128 => {
+            let field = MyFieldU128(U128);
+            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.into_diff(reversed);
+            assert_eq!("10010001110011001000001110100101110101111000111101001010101000100100010101010010111100011110101110100101110000010011001110001001", out.as_binary());
+            assert_eq!(193799958082971305581995159990093034377, out.as_integer());
+        }
+        // into_diff_usize => {
+        //     let field = MyFieldUsize(USIZE);
+        // }
+    }
+
+    // into combined
+    tests! {
+        into_combined_u8 => {
+            let field = MyFieldU8(U8);
+            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.into_combined(reversed);
+            assert_eq!("11111111", out.as_binary());
+            assert_eq!(255, out.as_integer());
+        }
+        into_combined_u16 => {
+            let field = MyFieldU16(U16);
+            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.into_combined(reversed);
+            assert_eq!("1110101111010111", out.as_binary());
+            assert_eq!(60375, out.as_integer());
+        }
+        into_combined_u32 => {
+            let field = MyFieldU32(U32);
+            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.into_combined(reversed);
+            assert_eq!("11111101100100111100100110111111", out.as_binary());
+            assert_eq!(4254321087, out.as_integer());
+        }
+        into_combined_u64 => {
+            let field = MyFieldU64(U64);
+            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.into_combined(reversed);
+            assert_eq!("1111111011010010001111111001110110111001111111000100101101111111", out.as_binary());
+            assert_eq!(18361808577405668223, out.as_integer());
+        }
+        into_combined_u128 => {
+            let field = MyFieldU128(U128);
+            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.into_combined(reversed);
+            assert_eq!("11111001111111011110001110100101111101111110111101101011111111111111111111010110111101111110111110100101110001111011111110011111", out.as_binary());
+            assert_eq!(332296039312012448238196841470979719071, out.as_integer());
+        }
+        // into_combined_usize => {
+        //     let field = MyFieldUsize(USIZE);
+        // }
+    }
+
+    // into intersection
+    tests! {
+        into_intersection_u8 => {
+            let field = MyFieldU8(U8);
+            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.into_intersection(reversed);
+            assert_eq!("01011010", out.as_binary());
+            assert_eq!(90, out.as_integer());
+        }
+        into_intersection_u16 => {
+            let field = MyFieldU16(U16);
+            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.into_intersection(reversed);
+            assert_eq!("0100000000000010", out.as_binary());
+            assert_eq!(16386, out.as_integer());
+        }
+        into_intersection_u32 => {
+            let field = MyFieldU32(U32);
+            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.into_intersection(reversed);
+            assert_eq!("00001000100000000000000100010000", out.as_binary());
+            assert_eq!(142606608, out.as_integer());
+        }
+        into_intersection_u64 => {
+            let field = MyFieldU64(U64);
+            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.into_intersection(reversed);
+            assert_eq!("1110101000010000000110110000010000100000110110000000100001010111", out.as_binary());
+            assert_eq!(16866010309047355479, out.as_integer());
+        }
+        into_intersection_u128 => {
+            let field = MyFieldU128(U128);
+            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field.into_intersection(reversed);
+            assert_eq!("01101000001100010110000000000000001000000110000000100001010111011011101010000100000001100000010000000000000001101000110000010110", out.as_binary());
+            assert_eq!(138496081229041142656201681480886684694, out.as_integer());
+        }
+        // into_intersection_usize => {
+        //     let field = MyFieldUsize(USIZE);
+        // }
+    }
+
+    // field from flag
+    tests! {
+        field_from_flag_u8 => {
+            for index in 0..u8::BITS {
+                let flag = MyFlagsU8::from(index as u8);
+                let field = MyFieldU8::from(flag);
+                assert_eq!(MyFieldU8(0u8 | (1 << index)), field)
+            }
+        }
+        field_from_flag_u16 => {
+            for index in 0..u16::BITS {
+                let flag = MyFlagsU16::from(index as u8);
+                let field = MyFieldU16::from(flag);
+                assert_eq!(MyFieldU16(0u16 | (1 << index)), field)
+            }
+        }
+        field_from_flag_u32 => {
+            for index in 0..u32::BITS {
+                let flag = MyFlagsU32::from(index as u8);
+                let field = MyFieldU32::from(flag);
+                assert_eq!(MyFieldU32(0u32 | (1 << index)), field)
+            }
+        }
+        field_from_flag_u64 => {
+            for index in 0..u64::BITS {
+                let flag = MyFlagsU64::from(index as u8);
+                let field = MyFieldU64::from(flag);
+                assert_eq!(MyFieldU64(0u64 | (1 << index)), field)
+            }
+        }
+        field_from_flag_u128 => {
+            for index in 0..u128::BITS {
+                let flag = MyFlagsU128::from(index as u8);
+                let field = MyFieldU128::from(flag);
+                assert_eq!(MyFieldU128(0u128 | (1 << index)), field)
+            }
+        }
+        field_from_flag_usize => {
+            for index in 0..usize::BITS {
+                let flag = MyFlagsUsize::from(index as u8);
+                let field = MyFieldUsize::from(flag);
+                assert_eq!(MyFieldUsize(0usize | (1 << index)), field)
             }
         }
-        bitwise_name_and_flag_u128 => {
-            for index in 0..u128::BITS {
-                let mask = MyFieldU128(u128::MAX) & MyFlagsU128::from(index as u8);
-                assert_eq!(0 | !(1 << (index as u8) ), mask.as_integer());
-            }
-        }
-        // bitwise_name_and_flag_usize => {
-        //
-        // }
     }
 
-    // $name | $flag
-    tests! {
-        bitwise_name_or_flag_u8 => {
-            for index in 0..u8::BITS {
-                let mask = MyFieldU8(0) | MyFlagsU8::from(index as u8);
-                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
+    // $name & $name
+    tests! {
+        bitwise_name_and_name_u8 => {
+            let field = MyFieldU8(U8);
+            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field & reversed;
+            assert_eq!("01011010", out.as_binary());
+            assert_eq!(90, out.as_integer());
+        }
+        bitwise_name_and_name_u16 => {
+            let field = MyFieldU16(U16);
+            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field & reversed;
+            assert_eq!("0100000000000010", out.as_binary());
+            assert_eq!(16386, out.as_integer());
+        }
+        bitwise_name_and_name_u32 => {
+            let field = MyFieldU32(U32);
+            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field & reversed;
+            assert_eq!("00001000100000000000000100010000", out.as_binary());
+            assert_eq!(142606608, out.as_integer());
+        }
+        bitwise_name_and_name_u64 => {
+            let field = MyFieldU64(U64);
+            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field & reversed;
+            assert_eq!("1110101000010000000110110000010000100000110110000000100001010111", out.as_binary());
+            assert_eq!(16866010309047355479, out.as_integer());
+        }
+        bitwise_name_and_name_u128 => {
+            let field = MyFieldU128(U128);
+            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field & reversed;
+            assert_eq!("01101000001100010110000000000000001000000110000000100001010111011011101010000100000001100000010000000000000001101000110000010110", out.as_binary());
+            assert_eq!(138496081229041142656201681480886684694, out.as_integer());
+        }
+        // bitwise_name_and_name_usize => {
+        //
+        // }
+    }
+
+    // $name | $name
+    tests! {
+        bitwise_name_or_name_u8 => {
+            let field = MyFieldU8(U8);
+            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field | reversed;
+            assert_eq!("11111111", out.as_binary());
+            assert_eq!(255, out.as_integer());
+        }
+        bitwise_name_or_name_u16 => {
+            let field = MyFieldU16(U16);
+            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field | reversed;
+            assert_eq!("1110101111010111", out.as_binary());
+            assert_eq!(60375, out.as_integer());
+        }
+        bitwise_name_or_name_u32 => {
+            let field = MyFieldU32(U32);
+            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field | reversed;
+            assert_eq!("11111101100100111100100110111111", out.as_binary());
+            assert_eq!(4254321087, out.as_integer());
+        }
+        bitwise_name_or_name_u64 => {
+            let field = MyFieldU64(U64);
+            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field | reversed;
+            assert_eq!("1111111011010010001111111001110110111001111111000100101101111111", out.as_binary());
+            assert_eq!(18361808577405668223, out.as_integer());
+        }
+        bitwise_name_or_name_u128 => {
+            let field = MyFieldU128(U128);
+            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field | reversed;
+            assert_eq!("11111001111111011110001110100101111101111110111101101011111111111111111111010110111101111110111110100101110001111011111110011111", out.as_binary());
+            assert_eq!(332296039312012448238196841470979719071, out.as_integer());
+        }
+        // bitwise_name_or_name_usize => {
+        //
+        // }
+    }
+
+    // $name ^ $name
+    tests! {
+        bitwise_name_xor_name_u8 => {
+            let field = MyFieldU8(U8);
+            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field ^ reversed;
+            assert_eq!("10100101", out.as_binary());
+            assert_eq!(165, out.as_integer());
+        }
+        bitwise_name_xor_name_u16 => {
+            let field = MyFieldU16(U16);
+            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field ^ reversed;
+            assert_eq!("1010101111010101", out.as_binary());
+            assert_eq!(43989, out.as_integer());
+        }
+        bitwise_name_xor_name_u32 => {
+            let field = MyFieldU32(U32);
+            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field ^ reversed;
+            assert_eq!("11110101000100111100100010101111", out.as_binary());
+            assert_eq!(4111714479, out.as_integer());
+        }
+        bitwise_name_xor_name_u64 => {
+            let field = MyFieldU64(U64);
+            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field ^ reversed;
+            assert_eq!("0001010011000010001001001001100110011001001001000100001100101000", out.as_binary());
+            assert_eq!(1495798268358312744, out.as_integer());
+        }
+        bitwise_name_xor_name_u128 => {
+            let field = MyFieldU128(U128);
+            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            let out = field ^ reversed;
+            assert_eq!("10010001110011001000001110100101110101111000111101001010101000100100010101010010111100011110101110100101110000010011001110001001", out.as_binary());
+            assert_eq!(193799958082971305581995159990093034377, out.as_integer());
+        }
+        // bitwise_name_xor_name_usize => {
+        //
+        // }
+    }
+
+    // $name &= $name
+    tests! {
+        bitwise_name_and_assign_name_u8 => {
+            let mut field = MyFieldU8(U8);
+            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            field &= reversed;
+            assert_eq!("01011010", field.as_binary());
+            assert_eq!(90, field.as_integer());
+        }
+        bitwise_name_and_assign_name_u16 => {
+            let mut field = MyFieldU16(U16);
+            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            field &= reversed;
+            assert_eq!("0100000000000010", field.as_binary());
+            assert_eq!(16386, field.as_integer());
+        }
+        bitwise_name_and_assign_name_u32 => {
+            let mut field = MyFieldU32(U32);
+            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            field &= reversed;
+            assert_eq!("00001000100000000000000100010000", field.as_binary());
+            assert_eq!(142606608, field.as_integer());
+        }
+        bitwise_name_and_assign_name_u64 => {
+            let mut field = MyFieldU64(U64);
+            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            field &= reversed;
+            assert_eq!("1110101000010000000110110000010000100000110110000000100001010111", field.as_binary());
+            assert_eq!(16866010309047355479, field.as_integer());
+        }
+        bitwise_name_and_assign_name_u128 => {
+            let mut field = MyFieldU128(U128);
+            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            field &= reversed;
+            assert_eq!("01101000001100010110000000000000001000000110000000100001010111011011101010000100000001100000010000000000000001101000110000010110", field.as_binary());
+            assert_eq!(138496081229041142656201681480886684694, field.as_integer());
+        }
+    //     bitwise_name_and_assign_name_usize => {
+    //
+    //     }
+    }
+
+    // $name |= $name
+    tests! {
+        bitwise_name_or_assign_name_u8 => {
+            let mut field = MyFieldU8(U8);
+            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            field |= reversed;
+            assert_eq!("11111111", field.as_binary());
+            assert_eq!(255, field.as_integer());
+        }
+        bitwise_name_or_assign_name_u16 => {
+            let mut field = MyFieldU16(U16);
+            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            field |= reversed;
+            assert_eq!("1110101111010111", field.as_binary());
+            assert_eq!(60375, field.as_integer());
+        }
+        bitwise_name_or_assign_name_u32 => {
+            let mut field = MyFieldU32(U32);
+            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            field |= reversed;
+            assert_eq!("11111101100100111100100110111111", field.as_binary());
+            assert_eq!(4254321087, field.as_integer());
+        }
+        bitwise_name_or_assign_name_u64 => {
+            let mut field = MyFieldU64(U64);
+            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            field |= reversed;
+            assert_eq!("1111111011010010001111111001110110111001111111000100101101111111", field.as_binary());
+            assert_eq!(18361808577405668223, field.as_integer());
+        }
+        bitwise_name_or_assign_name_u128 => {
+            let mut field = MyFieldU128(U128);
+            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            field |= reversed;
+            assert_eq!("11111001111111011110001110100101111101111110111101101011111111111111111111010110111101111110111110100101110001111011111110011111", field.as_binary());
+            assert_eq!(332296039312012448238196841470979719071, field.as_integer());
+        }
+        // bitwise_name_or_assign_name_usize => {
+        //
+        // }
+    }
+
+    // $name ^= $name
+    tests! {
+        bitwise_name_xor_assign_name_u8 => {
+            let mut field = MyFieldU8(U8);
+            let reversed = MyFieldU8(u8::from_str_radix(B8.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            field ^= reversed;
+            assert_eq!("10100101", field.as_binary());
+            assert_eq!(165, field.as_integer());
+        }
+        bitwise_name_xor_assign_name_u16 => {
+            let mut field = MyFieldU16(U16);
+            let reversed = MyFieldU16(u16::from_str_radix(B16.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            field ^= reversed;
+            assert_eq!("1010101111010101", field.as_binary());
+            assert_eq!(43989, field.as_integer());
+        }
+        bitwise_name_xor_assign_name_u32 => {
+            let mut field = MyFieldU32(U32);
+            let reversed = MyFieldU32(u32::from_str_radix(B32.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            field ^= reversed;
+            assert_eq!("11110101000100111100100010101111", field.as_binary());
+            assert_eq!(4111714479, field.as_integer());
+        }
+        bitwise_name_xor_assign_name_u64 => {
+            let mut field = MyFieldU64(U64);
+            let reversed = MyFieldU64(u64::from_str_radix(B64.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            field ^= reversed;
+            assert_eq!("0001010011000010001001001001100110011001001001000100001100101000", field.as_binary());
+            assert_eq!(1495798268358312744, field.as_integer());
+        }
+        bitwise_name_xor_assign_name_u128 => {
+            let mut field = MyFieldU128(U128);
+            let reversed = MyFieldU128(u128::from_str_radix(B128.chars().rev().collect::<String>().as_str(), 2).unwrap());
+            field ^= reversed;
+            assert_eq!("10010001110011001000001110100101110101111000111101001010101000100100010101010010111100011110101110100101110000010011001110001001", field.as_binary());
+            assert_eq!(193799958082971305581995159990093034377, field.as_integer());
+        }
+        // bitwise_name_xor_assign_name_usize => {
+        //
+        // }
+    }
+
+    // $name & $flag
+    tests! {
+        bitwise_name_and_flag_u8 => {
+            for index in 0..u8::BITS {
+                let mask = MyFieldU8(u8::MAX) & MyFlagsU8::from(index as u8);
+                assert_eq!(0 | !(1 << (index as u8) ), mask.as_integer());
+            }
+        }
+        bitwise_name_and_flag_u16 => {
+            for index in 0..u16::BITS {
+                let mask = MyFieldU16(u16::MAX) & MyFlagsU16::from(index as u8);
+                assert_eq!(0 | !(1 << (index as u8) ), mask.as_integer());
+            }
+        }
+        bitwise_name_and_flag_u32 => {
+            for index in 0..u32::BITS {
+                let mask = MyFieldU32(u32::MAX) & MyFlagsU32::from(index as u8);
+                assert_eq!(0 | !(1 << (index as u8) ), mask.as_integer());
+            }
+        }
+        bitwise_name_and_flag_u64 => {
+            for index in 0..u64::BITS {
+                let mask = MyFieldU64(u64::MAX) & MyFlagsU64::from(index as u8);
+                assert_eq!(0 | !(1 << (index as u8) ), mask.as_integer());
+            }
+        }
+        bitwise_name_and_flag_u128 => {
+            for index in 0..u128::BITS {
+                let mask = MyFieldU128(u128::MAX) & MyFlagsU128::from(index as u8);
+                assert_eq!(0 | !(1 << (index as u8) ), mask.as_integer());
+            }
+        }
+        // bitwise_name_and_flag_usize => {
+        //
+        // }
+    }
+
+    // $name | $flag
+    tests! {
+        bitwise_name_or_flag_u8 => {
+            for index in 0..u8::BITS {
+                let mask = MyFieldU8(0) | MyFlagsU8::from(index as u8);
+                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
             }
         }
-        bitwise_name_or_flag_u16 => {
-            for index in 0..u16::BITS {
-                let mask = MyFieldU16(0) | MyFlagsU16::from(index as u8);
-                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
+        bitwise_name_or_flag_u16 => {
+            for index in 0..u16::BITS {
+                let mask = MyFieldU16(0) | MyFlagsU16::from(index as u8);
+                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
             }
         }
-        bitwise_name_or_flag_u32 => {
-            for index in 0..u32::BITS {
-                let mask = MyFieldU32(0) | MyFlagsU32::from(index as u8);
-                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
+        bitwise_name_or_flag_u32 => {
+            for index in 0..u32::BITS {
+                let mask = MyFieldU32(0) | MyFlagsU32::from(index as u8);
+                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
             }
         }
-        bitwise_name_or_flag_u64 => {
-            for index in 0..u64::BITS {
-                let mask = MyFieldU64(0) | MyFlagsU64::from(index as u8);
-                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
+        bitwise_name_or_flag_u64 => {
+            for index in 0..u64::BITS {
+                let mask = MyFieldU64(0) | MyFlagsU64::from(index as u8);
+                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
             }
         }
-        bitwise_name_or_flag_u128 => {
-            for index in 0..u128::BITS {
-                let mask = MyFieldU128(0) | MyFlagsU128::from(index as u8);
-                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
+        bitwise_name_or_flag_u128 => {
+            for index in 0..u128::BITS {
+                let mask = MyFieldU128(0) | MyFlagsU128::from(index as u8);
+                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
             }
         }
-        // bitwise_name_or_flag_usize => {
-        //
-        // }
-    }
+        // bitwise_name_or_flag_usize => {
+        //
+        // }
+    }
 
-    // $name ^ $flag
-    tests! {
-        bitwise_name_xor_flag_u8 => {
-            for index in 0..u8::BITS {
-                let mask = MyFieldU8(0) ^ MyFlagsU8::from(index as u8);
-                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
+    // $name ^ $flag
+    tests! {
+        bitwise_name_xor_flag_u8 => {
+            for index in 0..u8::BITS {
+                let mask = MyFieldU8(0) ^ MyFlagsU8::from(index as u8);
+                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
             }
         }
-        bitwise_name_xor_flag_u16 => {
-            for index in 0..u16::BITS {
-                let mask = MyFieldU16(0) ^ MyFlagsU16::from(index as u8);
-                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
+        bitwise_name_xor_flag_u16 => {
+            for index in 0..u16::BITS {
+                let mask = MyFieldU16(0) ^ MyFlagsU16::from(index as u8);
+                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
             }
         }
-        bitwise_name_xor_flag_u32 => {
-            for index in 0..u32::BITS {
-                let mask = MyFieldU32(0) ^ MyFlagsU32::from(index as u8);
-                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
+        bitwise_name_xor_flag_u32 => {
+            for index in 0..u32::BITS {
+                let mask = MyFieldU32(0) ^ MyFlagsU32::from(index as u8);
+                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
             }
         }
-        bitwise_name_xor_flag_u64 => {
-            for index in 0..u64::BITS {
-                let mask = MyFieldU64(0) ^ MyFlagsU64::from(index as u8);
-                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
+        bitwise_name_xor_flag_u64 => {
+            for index in 0..u64::BITS {
+                let mask = MyFieldU64(0) ^ MyFlagsU64::from(index as u8);
+                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
             }
         }
-        bitwise_name_xor_flag_u128 => {
-            for index in 0..u128::BITS {
-                let mask = MyFieldU128(0) ^ MyFlagsU128::from(index as u8);
-                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
+        bitwise_name_xor_flag_u128 => {
+            for index in 0..u128::BITS {
+                let mask = MyFieldU128(0) ^ MyFlagsU128::from(index as u8);
+                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
             }
         }
-        // bitwise_name_xor_flag_usize => {
-        //
-        // }
-    }
+        // bitwise_name_xor_flag_usize => {
+        //
+        // }
+    }
 
-    // $name &= $flag
-    tests! {
-        bitwise_name_and_assign_flag_u8 => {
-            for index in 0..u8::BITS {
-                let mut mask = MyFieldU8(u8::MAX);
-                mask &= MyFlagsU8::from(index as u8);
-                assert_eq!(0 | !(1 << (index as u8) ), mask.as_integer());
+    // $name &= $flag
+    tests! {
+        bitwise_name_and_assign_flag_u8 => {
+            for index in 0..u8::BITS {
+                let mut mask = MyFieldU8(u8::MAX);
+                mask &= MyFlagsU8::from(index as u8);
+                assert_eq!(0 | !(1 << (index as u8) ), mask.as_integer());
             }
         }
-        bitwise_name_and_assign_flag_u16 => {
-            for index in 0..u16::BITS {
-                let mut mask = MyFieldU16(u16::MAX);
-                mask &= MyFlagsU16::from(index as u8);
-                assert_eq!(0 | !(1 << (index as u8) ), mask.as_integer());
+        bitwise_name_and_assign_flag_u16 => {
+            for index in 0..u16::BITS {
+                let mut mask = MyFieldU16(u16::MAX);
+                mask &= MyFlagsU16::from(index as u8);
+                assert_eq!(0 | !(1 << (index as u8) ), mask.as_integer());
             }
         }
-        bitwise_name_and_assign_flag_u32 => {
-            for index in 0..u32::BITS {
-                let mut mask = MyFieldU32(u32::MAX);
-                mask &= MyFlagsU32::from(index as u8);
-                assert_eq!(0 | !(1 << (index as u8) ), mask.as_integer());
+        bitwise_name_and_assign_flag_u32 => {
+            for index in 0..u32::BITS {
+                let mut mask = MyFieldU32(u32::MAX);
+                mask &= MyFlagsU32::from(index as u8);
+                assert_eq!(0 | !(1 << (index as u8) ), mask.as_integer());
             }
         }
-        bitwise_name_and_assign_flag_u64 => {
-            for index in 0..u64::BITS {
-                let mut mask = MyFieldU64(u64::MAX);
-                mask &= MyFlagsU64::from(index as u8);
-                assert_eq!(0 | !(1 << (index as u8) ), mask.as_integer());
+        bitwise_name_and_assign_flag_u64 => {
+            for index in 0..u64::BITS {
+                let mut mask = MyFieldU64(u64::MAX);
+                mask &= MyFlagsU64::from(index as u8);
+                assert_eq!(0 | !(1 << (index as u8) ), mask.as_integer());
             }
         }
-        bitwise_name_and_assign_flag_u128 => {
-            for index in 0..u128::BITS {
-                let mut mask = MyFieldU128(u128::MAX);
-                mask &= MyFlagsU128::from(index as u8);
-                assert_eq!(0 | !(1 << (index as u8) ), mask.as_integer());
+        bitwise_name_and_assign_flag_u128 => {
+            for index in 0..u128::BITS {
+                let mut mask = MyFieldU128(u128::MAX);
+                mask &= MyFlagsU128::from(index as u8);
+                assert_eq!(0 | !(1 << (index as u8) ), mask.as_integer());
             }
         }
-        // bitwise_name_and_assign_flag_usize => {
-        //
-        // }
-    }
+        // bitwise_name_and_assign_flag_usize => {
+        //
+        // }
+    }
 
-    // $name |= $flag
-    tests! {
-        bitwise_name_or_assign_flag_u8 => {
-            for index in 0..u8::BITS {
-                let mut mask = MyFieldU8(0);
-                mask |= MyFlagsU8::from(index as u8);
-                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
+    // $name |= $flag
+    tests! {
+        bitwise_name_or_assign_flag_u8 => {
+            for index in 0..u8::BITS {
+                let mut mask = MyFieldU8(0);
+                mask |= MyFlagsU8::from(index as u8);
+                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
             }
         }
-        bitwise_name_or_assign_flag_u16 => {
-            for index in 0..u16::BITS {
-                let mut mask = MyFieldU16(0);
-                mask |= MyFlagsU16::from(index as u8);
-                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
+        bitwise_name_or_assign_flag_u16 => {
+            for index in 0..u16::BITS {
+                let mut mask = MyFieldU16(0);
+                mask |= MyFlagsU16::from(index as u8);
+                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
             }
         }
-        bitwise_name_or_assign_flag_u32 => {
-            for index in 0..u32::BITS {
-                let mut mask = MyFieldU32(0);
-                mask |= MyFlagsU32::from(index as u8);
-                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
+        bitwise_name_or_assign_flag_u32 => {
+            for index in 0..u32::BITS {
+                let mut mask = MyFieldU32(0);
+                mask |= MyFlagsU32::from(index as u8);
+                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
             }
         }
-        bitwise_name_or_assign_flag_u64 => {
-            for index in 0..u64::BITS {
-                let mut mask = MyFieldU64(0);
-                mask |= MyFlagsU64::from(index as u8);
-                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
+        bitwise_name_or_assign_flag_u64 => {
+            for index in 0..u64::BITS {
+                let mut mask = MyFieldU64(0);
+                mask |= MyFlagsU64::from(index as u8);
+                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
             }
         }
-        bitwise_name_or_assign_flag_u128 => {
-            for index in 0..u128::BITS {
-                let mut mask = MyFieldU128(0);
-                mask |= MyFlagsU128::from(index as u8);
-                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
+        bitwise_name_or_assign_flag_u128 => {
+            for index in 0..u128::BITS {
+                let mut mask = MyFieldU128(0);
+                mask |= MyFlagsU128::from(index as u8);
+                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
             }
         }
-        // bitwise_name_or_assign_flag_usize => {
-        //
-        // }
-    }
+        // bitwise_name_or_assign_flag_usize => {
+        //
+        // }
+    }
 
-    // $name ^= $flag
-    tests! {
-        bitwise_name_xor_assign_flag_u8 => {
-            for index in 0..u8::BITS {
-                let mut mask = MyFieldU8(0);
-                mask ^= MyFlagsU8::from(index as u8);
-                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
+    // $name ^= $flag
+    tests! {
+        bitwise_name_xor_assign_flag_u8 => {
+            for index in 0..u8::BITS {
+                let mut mask = MyFieldU8(0);
+                mask ^= MyFlagsU8::from(index as u8);
+                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
             }
         }
-        bitwise_name_xor_assign_flag_u16 => {
-            for index in 0..u16::BITS {
-                let mut mask = MyFieldU16(0);
-                mask ^= MyFlagsU16::from(index as u8);
-                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
+        bitwise_name_xor_assign_flag_u16 => {
+            for index in 0..u16::BITS {
+                let mut mask = MyFieldU16(0);
+                mask ^= MyFlagsU16::from(index as u8);
+                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
             }
         }
-        bitwise_name_xor_assign_flag_u32 => {
-            for index in 0..u32::BITS {
-                let mut mask = MyFieldU32(0);
-                mask ^= MyFlagsU32::from(index as u8);
-                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
+        bitwise_name_xor_assign_flag_u32 => {
+            for index in 0..u32::BITS {
+                let mut mask = MyFieldU32(0);
+                mask ^= MyFlagsU32::from(index as u8);
+                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
             }
         }
-        bitwise_name_xor_assign_flag_u64 => {
-            for index in 0..u64::BITS {
-                let mut mask = MyFieldU64(0);
-                mask ^= MyFlagsU64::from(index as u8);
-                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
+        bitwise_name_xor_assign_flag_u64 => {
+            for index in 0..u64::BITS {
+                let mut mask = MyFieldU64(0);
+                mask ^= MyFlagsU64::from(index as u8);
+                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
             }
         }
-        bitwise_name_xor_assign_flag_u128 => {
-            for index in 0..u128::BITS {
-                let mut mask = MyFieldU128(0);
-                mask ^= MyFlagsU128::from(index as u8);
-                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
+        bitwise_name_xor_assign_flag_u128 => {
+            for index in 0..u128::BITS {
+                let mut mask = MyFieldU128(0);
+                mask ^= MyFlagsU128::from(index as u8);
+                assert_eq!(0 | (1 << (index as u8) ), mask.as_integer());
             }
         }
-        // bitwise_name_xor_assign_flag_usize => {
-        //
-        // }
-    }
+        // bitwise_name_xor_assign_flag_usize => {
+        //
+        // }
+    }
 
-    // $flag & $flag
-    tests! {
-        bitwise_flag_and_flag_u8 => {
-            for index_a in 0..u8::BITS {
-                let a = MyFlagsU8::from(index_a as u8);
-                for index_b in 0..u8::BITS {
-                    let b = MyFlagsU8::from(index_b as u8);
-                    assert_eq!(MyFieldU8(0 & 1 << index_a as u8 & 1 << index_b as u8), a & b);
+    // $flag & $flag
+    tests! {
+        bitwise_flag_and_flag_u8 => {
+            for index_a in 0..u8::BITS {
+                let a = MyFlagsU8::from(index_a as u8);
+                for index_b in 0..u8::BITS {
+                    let b = MyFlagsU8::from(index_b as u8);
+                    assert_eq!(MyFieldU8(0 & 1 << index_a as u8 & 1 << index_b as u8), a & b);
                 }
             }
         }
-        bitwise_flag_and_flag_u16 => {
-            for index_a in 0..u16::BITS {
-                let a = MyFlagsU16::from(index_a as u8);
-                for index_b in 0..u16::BITS {
-                    let b = MyFlagsU16::from(index_b as u8);
-                    assert_eq!(MyFieldU16(0 & 1 << index_a as u8 & 1 << index_b as u8), a & b);
+        bitwise_flag_and_flag_u16 => {
+            for index_a in 0..u16::BITS {
+                let a = MyFlagsU16::from(index_a as u8);
+                for index_b in 0..u16::BITS {
+                    let b = MyFlagsU16::from(index_b as u8);
+                    assert_eq!(MyFieldU16(0 & 1 << index_a as u8 & 1 << index_b as u8), a & b);
                 }
             }
         }
-        bitwise_flag_and_flag_u32 => {
-            for index_a in 0..u32::BITS {
-                let a = MyFlagsU32::from(index_a as u8);
-                for index_b in 0..u32::BITS {
-                    let b = MyFlagsU32::from(index_b as u8);
-                    assert_eq!(MyFieldU32(0 & 1 << index_a as u8 & 1 << index_b as u8), a & b);
+        bitwise_flag_and_flag_u32 => {
+            for index_a in 0..u32::BITS {
+                let a = MyFlagsU32::from(index_a as u8);
+                for index_b in 0..u32::BITS {
+                    let b = MyFlagsU32::from(index_b as u8);
+                    assert_eq!(MyFieldU32(0 & 1 << index_a as u8 & 1 << index_b as u8), a & b);
                 }
             }
         }
-        bitwise_flag_and_flag_u64 => {
-            for index_a in 0..u64::BITS {
-                let a = MyFlagsU64::from(index_a as u8);
-                for index_b in 0..u64::BITS {
-                    let b = MyFlagsU64::from(index_b as u8);
-                    assert_eq!(MyFieldU64(0 & 1 << index_a as u8 & 1 << index_b as u8), a & b);
+        bitwise_flag_and_flag_u64 => {
+            for index_a in 0..u64::BITS {
+                let a = MyFlagsU64::from(index_a as u8);
+                for index_b in 0..u64::BITS {
+                    let b = MyFlagsU64::from(index_b as u8);
+                    assert_eq!(MyFieldU64(0 & 1 << index_a as u8 & 1 << index_b as u8), a & b);
                 }
             }
         }
-        bitwise_flag_and_flag_u128 => {
-            for index_a in 0..u128::BITS {
-                let a = MyFlagsU128::from(index_a as u8);
-                for index_b in 0..u128::BITS {
-                    let b = MyFlagsU128::from(index_b as u8);
-                    assert_eq!(MyFieldU128(0 & 1 << index_a as u8 & 1 << index_b as u8), a & b);
+        bitwise_flag_and_flag_u128 => {
+            for index_a in 0..u128::BITS {
+                let a = MyFlagsU128::from(index_a as u8);
+                for index_b in 0..u128::BITS {
+                    let b = MyFlagsU128::from(index_b as u8);
+                    assert_eq!(MyFieldU128(0 & 1 << index_a as u8 & 1 << index_b as u8), a & b);
                 }
             }
         }
-        // bitwise_flag_and_flag_usize => {
-        //
-        // }
-    }
+        // bitwise_flag_and_flag_usize => {
+        //
+        // }
+    }
 
-    // $flag | $flag
-    tests! {
-        bitwise_flag_or_flag_u8 => {
-            for index_a in 0..u8::BITS {
-                let a = MyFlagsU8::from(index_a as u8);
-                for index_b in 0..u8::BITS {
-                    let b = MyFlagsU8::from(index_b as u8);
-                    assert_eq!(MyFieldU8(0 | 1 << index_a as u8 | 1 << index_b as u8), a | b);
+    // $flag | $flag
+    tests! {
+        bitwise_flag_or_flag_u8 => {
+            for index_a in 0..u8::BITS {
+                let a = MyFlagsU8::from(index_a as u8);
+                for index_b in 0..u8::BITS {
+                    let b = MyFlagsU8::from(index_b as u8);
+                    assert_eq!(MyFieldU8(0 | 1 << index_a as u8 | 1 << index_b as u8), a | b);
                 }
             }
         }
-        bitwise_flag_or_flag_u16 => {
-            for index_a in 0..u16::BITS {
-                let a = MyFlagsU16::from(index_a as u8);
-                for index_b in 0..u16::BITS {
-                    let b = MyFlagsU16::from(index_b as u8);
-                    assert_eq!(MyFieldU16(0 | 1 << index_a as u8 | 1 << index_b as u8), a | b);
+        bitwise_flag_or_flag_u16 => {
+            for index_a in 0..u16::BITS {
+                let a = MyFlagsU16::from(index_a as u8);
+                for index_b in 0..u16::BITS {
+                    let b = MyFlagsU16::from(index_b as u8);
+                    assert_eq!(MyFieldU16(0 | 1 << index_a as u8 | 1 << index_b as u8), a | b);
                 }
             }
         }
-        bitwise_flag_or_flag_u32 => {
-            for index_a in 0..u32::BITS {
-                let a = MyFlagsU32::from(index_a as u8);
-                for index_b in 0..u32::BITS {
-                    let b = MyFlagsU32::from(index_b as u8);
-                    assert_eq!(MyFieldU32(0 | 1 << index_a as u8 | 1 << index_b as u8), a | b);
+        bitwise_flag_or_flag_u32 => {
+            for index_a in 0..u32::BITS {
+                let a = MyFlagsU32::from(index_a as u8);
+                for index_b in 0..u32::BITS {
+                    let b = MyFlagsU32::from(index_b as u8);
+                    assert_eq!(MyFieldU32(0 | 1 << index_a as u8 | 1 << index_b as u8), a | b);
                 }
             }
         }
-        bitwise_flag_or_flag_u64 => {
-            for index_a in 0..u64::BITS {
-                let a = MyFlagsU64::from(index_a as u8);
-                for index_b in 0..u64::BITS {
-                    let b = MyFlagsU64::from(index_b as u8);
-                    assert_eq!(MyFieldU64(0 | 1 << index_a as u8 | 1 << index_b as u8), a | b);
+        bitwise_flag_or_flag_u64 => {
+            for index_a in 0..u64::BITS {
+                let a = MyFlagsU64::from(index_a as u8);
+                for index_b in 0..u64::BITS {
+                    let b = MyFlagsU64::from(index_b as u8);
+                    assert_eq!(MyFieldU64(0 | 1 << index_a as u8 | 1 << index_b as u8), a | b);
                 }
             }
         }
-        bitwise_flag_or_flag_u128 => {
-            for index_a in 0..u128::BITS {
-                let a = MyFlagsU128::from(index_a as u8);
-                for index_b in 0..u128::BITS {
-                    let b = MyFlagsU128::from(index_b as u8);
-                    assert_eq!(MyFieldU128(0 | 1 << index_a as u8 | 1 << index_b as u8), a | b);
+        bitwise_flag_or_flag_u128 => {
+            for index_a in 0..u128::BITS {
+                let a = MyFlagsU128::from(index_a as u8);
+                for index_b in 0..u128::BITS {
+                    let b = MyFlagsU128::from(index_b as u8);
+                    assert_eq!(MyFieldU128(0 | 1 << index_a as u8 | 1 << index_b as u8), a | b);
                 }
             }
         }
-        // bitwise_flag_or_flag_usize => {
-        //
-        // }
-    }
+        // bitwise_flag_or_flag_usize => {
+        //
+        // }
+    }
 
-    // $flag ^ $flag
-    tests! {
-        bitwise_flag_xor_flag_u8 => {
-            for index_a in 0..u8::BITS {
-                let a = MyFlagsU8::from(index_a as u8);
-                for index_b in 0..u8::BITS {
-                    let b = MyFlagsU8::from(index_b as u8);
-                    assert_eq!(MyFieldU8(0 ^ 1 << index_a as u8 ^ 1 << index_b as u8), a ^ b);
+    // $flag ^ $flag
+    tests! {
+        bitwise_flag_xor_flag_u8 => {
+            for index_a in 0..u8::BITS {
+                let a = MyFlagsU8::from(index_a as u8);
+                for index_b in 0..u8::BITS {
+                    let b = MyFlagsU8::from(index_b as u8);
+                    assert_eq!(MyFieldU8(0 ^ 1 << index_a as u8 ^ 1 << index_b as u8), a ^ b);
                 }
             }
         }
-        bitwise_flag_xor_flag_u16 => {
-            for index_a in 0..u16::BITS {
-                let a = MyFlagsU16::from(index_a as u8);
-                for index_b in 0..u16::BITS {
-                    let b = MyFlagsU16::from(index_b as u8);
-                    assert_eq!(MyFieldU16(0 ^ 1 << index_a as u8 ^ 1 << index_b as u8), a ^ b);
+        bitwise_flag_xor_flag_u16 => {
+            for index_a in 0..u16::BITS {
+                let a = MyFlagsU16::from(index_a as u8);
+                for index_b in 0..u16::BITS {
+                    let b = MyFlagsU16::from(index_b as u8);
+                    assert_eq!(MyFieldU16(0 ^ 1 << index_a as u8 ^ 1 << index_b as u8), a ^ b);
                 }
             }
         }
-        bitwise_flag_xor_flag_u32 => {
-            for index_a in 0..u32::BITS {
-                let a = MyFlagsU32::from(index_a as u8);
-                for index_b in 0..u32::BITS {
-                    let b = MyFlagsU32::from(index_b as u8);
-                    assert_eq!(MyFieldU32(0 ^ 1 << index_a as u8 ^ 1 << index_b as u8), a ^ b);
+        bitwise_flag_xor_flag_u32 => {
+            for index_a in 0..u32::BITS {
+                let a = MyFlagsU32::from(index_a as u8);
+                for index_b in 0..u32::BITS {
+                    let b = MyFlagsU32::from(index_b as u8);
+                    assert_eq!(MyFieldU32(0 ^ 1 << index_a as u8 ^ 1 << index_b as u8), a ^ b);
                 }
             }
         }
-        bitwise_flag_xor_flag_u64 => {
-            for index_a in 0..u64::BITS {
-                let a = MyFlagsU64::from(index_a as u8);
-                for index_b in 0..u64::BITS {
-                    let b = MyFlagsU64::from(index_b as u8);
-                    assert_eq!(MyFieldU64(0 ^ 1 << index_a as u8 ^ 1 << index_b as u8), a ^ b);
+        bitwise_flag_xor_flag_u64 => {
+            for index_a in 0..u64::BITS {
+                let a = MyFlagsU64::from(index_a as u8);
+                for index_b in 0..u64::BITS {
+                    let b = MyFlagsU64::from(index_b as u8);
+                    assert_eq!(MyFieldU64(0 ^ 1 << index_a as u8 ^ 1 << index_b as u8), a ^ b);
                 }
             }
         }
-        bitwise_flag_xor_flag_u128 => {
-            for index_a in 0..u128::BITS {
-                let a = MyFlagsU128::from(index_a as u8);
-                for index_b in 0..u128::BITS {
-                    let b = MyFlagsU128::from(index_b as u8);
-                    assert_eq!(MyFieldU128(0 ^ 1 << index_a as u8 ^ 1 << index_b as u8), a ^ b);
+        bitwise_flag_xor_flag_u128 => {
+            for index_a in 0..u128::BITS {
+                let a = MyFlagsU128::from(index_a as u8);
+                for index_b in 0..u128::BITS {
+                    let b = MyFlagsU128::from(index_b as u8);
+                    assert_eq!(MyFieldU128(0 ^ 1 << index_a as u8 ^ 1 << index_b as u8), a ^ b);
                 }
             }
         }
-        // bitwise_flag_xor_flag_usize => {
-        //
-        // }
-    }
+        // bitwise_flag_xor_flag_usize => {
+        //
+        // }
+    }
 
-    // flag from u8
-    tests! {
-        flag_from_u8_u8 => {
-            for index in 0..u8::BITS {
-                let _ = MyFlagsU8::from(index as u8);
+    // flag from u8
+    tests! {
+        flag_from_u8_u8 => {
+            for index in 0..u8::BITS {
+                let _ = MyFlagsU8::from(index as u8);
             }
         }
-        flag_from_u8_u16 => {
-            for index in 0..u16::BITS {
-                let _ = MyFlagsU16::from(index as u8);
+        flag_from_u8_u16 => {
+            for index in 0..u16::BITS {
+                let _ = MyFlagsU16::from(index as u8);
             }
         }
-        flag_from_u8_u32 => {
-            for index in 0..u32::BITS {
-                let _ = MyFlagsU32::from(index as u8);
+        flag_from_u8_u32 => {
+            for index in 0..u32::BITS {
+                let _ = MyFlagsU32::from(index as u8);
             }
         }
-        flag_from_u8_u64 => {
-            for index in 0..u64::BITS {
-                let _ = MyFlagsU64::from(index as u8);
+        flag_from_u8_u64 => {
+            for index in 0..u64::BITS {
+                let _ = MyFlagsU64::from(index as u8);
             }
         }
-        flag_from_u8_u128 => {
-            for index in 0..u128::BITS {
-                let _ = MyFlagsU128::from(index as u8);
+        flag_from_u8_u128 => {
+            for index in 0..u128::BITS {
+                let _ = MyFlagsU128::from(index as u8);
             }
         }
-        flag_from_u8_usize => {
-            for index in 0..usize::BITS {
-                let _ = MyFlagsUsize::from(index as u8);
+        flag_from_u8_usize => {
+            for index in 0..usize::BITS {
+                let _ = MyFlagsUsize::from(index as u8);
             }
         }
     }
 
-    // u8 from flag
-    tests! {
-        u8_from_flag_u8 => {
-            for index in 0..u8::BITS {
-                assert_eq!(MyFlagsU8::from(index as u8) as u8, index as u8)
+    // u8 from flag
+    tests! {
+        u8_from_flag_u8 => {
+            for index in 0..u8::BITS {
+                assert_eq!(MyFlagsU8::from(index as u8) as u8, index as u8)
             }
         }
-        u8_from_flag_u16 => {
-            for index in 0..u16::BITS {
-                assert_eq!(MyFlagsU16::from(index as u8) as u8, index as u8)
+        u8_from_flag_u16 => {
+            for index in 0..u16::BITS {
+                assert_eq!(MyFlagsU16::from(index as u8) as u8, index as u8)
             }
         }
-        u8_from_flag_u32 => {
-            for index in 0..u32::BITS {
-                assert_eq!(MyFlagsU32::from(index as u8) as u8, index as u8)
+        u8_from_flag_u32 => {
+            for index in 0..u32::BITS {
+                assert_eq!(MyFlagsU32::from(index as u8) as u8, index as u8)
             }
         }
-        u8_from_flag_u64 => {
-            for index in 0..u64::BITS {
-                assert_eq!(MyFlagsU64::from(index as u8) as u8, index as u8)
+        u8_from_flag_u64 => {
+            for index in 0..u64::BITS {
+                assert_eq!(MyFlagsU64::from(index as u8) as u8, index as u8)
             }
         }
-        u8_from_flag_u128 => {
-            for index in 0..u128::BITS {
-                assert_eq!(MyFlagsU128::from(index as u8) as u8, index as u8)
+        u8_from_flag_u128 => {
+            for index in 0..u128::BITS {
+                assert_eq!(MyFlagsU128::from(index as u8) as u8, index as u8)
             }
         }
-        u8_from_flag_usize => {
-            for index in 0..usize::BITS {
-                assert_eq!(MyFlagsUsize::from(index as u8) as u8, index as u8)
+        u8_from_flag_usize => {
+            for index in 0..usize::BITS {
+                assert_eq!(MyFlagsUsize::from(index as u8) as u8, index as u8)
             }
         }
     }
 }
 
-// -------------------------------------------------------------------------------------------------
-
-
- \ No newline at end of file +// ------------------------------------------------------------------------------------------------- + \ No newline at end of file diff --git a/docs/doc/COPYRIGHT.txt b/docs/doc/static.files/COPYRIGHT-23e9bde6c69aea69.txt similarity index 83% rename from docs/doc/COPYRIGHT.txt rename to docs/doc/static.files/COPYRIGHT-23e9bde6c69aea69.txt index c2629a8..1447df7 100644 --- a/docs/doc/COPYRIGHT.txt +++ b/docs/doc/static.files/COPYRIGHT-23e9bde6c69aea69.txt @@ -1,9 +1,10 @@ +# REUSE-IgnoreStart + These documentation pages include resources by third parties. This copyright file applies only to those resources. The following third party resources are included, and carry their own copyright notices and license terms: -* Fira Sans (FiraSans-Regular.woff2, FiraSans-Medium.woff2, - FiraSans-Regular.woff, FiraSans-Medium.woff): +* Fira Sans (FiraSans-Regular.woff2, FiraSans-Medium.woff2): Copyright (c) 2014, Mozilla Foundation https://mozilla.org/ with Reserved Font Name Fira Sans. @@ -25,9 +26,7 @@ included, and carry their own copyright notices and license terms: Licensed under the MIT license (see LICENSE-MIT.txt). * Source Code Pro (SourceCodePro-Regular.ttf.woff2, - SourceCodePro-Semibold.ttf.woff2, SourceCodePro-It.ttf.woff2, - SourceCodePro-Regular.ttf.woff, SourceCodePro-Semibold.ttf.woff, - SourceCodePro-It.ttf.woff): + SourceCodePro-Semibold.ttf.woff2, SourceCodePro-It.ttf.woff2): Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark @@ -37,8 +36,7 @@ included, and carry their own copyright notices and license terms: See SourceCodePro-LICENSE.txt. * Source Serif 4 (SourceSerif4-Regular.ttf.woff2, SourceSerif4-Bold.ttf.woff2, - SourceSerif4-It.ttf.woff2, SourceSerif4-Regular.ttf.woff, - SourceSerif4-Bold.ttf.woff, SourceSerif4-It.ttf.woff): + SourceSerif4-It.ttf.woff2): Copyright 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United @@ -48,3 +46,5 @@ included, and carry their own copyright notices and license terms: See SourceSerif4-LICENSE.md. This copyright file is intended to be distributed with rustdoc output. + +# REUSE-IgnoreEnd diff --git a/docs/doc/FiraSans-LICENSE.txt b/docs/doc/static.files/FiraSans-LICENSE-db4b642586e02d97.txt similarity index 99% rename from docs/doc/FiraSans-LICENSE.txt rename to docs/doc/static.files/FiraSans-LICENSE-db4b642586e02d97.txt index ff9afab..d7e9c14 100644 --- a/docs/doc/FiraSans-LICENSE.txt +++ b/docs/doc/static.files/FiraSans-LICENSE-db4b642586e02d97.txt @@ -1,3 +1,5 @@ +// REUSE-IgnoreStart + Digitized data copyright (c) 2012-2015, The Mozilla Foundation and Telefonica S.A. with Reserved Font Name < Fira >, @@ -92,3 +94,5 @@ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. + +// REUSE-IgnoreEnd diff --git a/docs/doc/FiraSans-Medium.woff2 b/docs/doc/static.files/FiraSans-Medium-8f9a781e4970d388.woff2 similarity index 100% rename from docs/doc/FiraSans-Medium.woff2 rename to docs/doc/static.files/FiraSans-Medium-8f9a781e4970d388.woff2 diff --git a/docs/doc/FiraSans-Regular.woff2 b/docs/doc/static.files/FiraSans-Regular-018c141bf0843ffd.woff2 similarity index 100% rename from docs/doc/FiraSans-Regular.woff2 rename to docs/doc/static.files/FiraSans-Regular-018c141bf0843ffd.woff2 diff --git a/docs/doc/LICENSE-APACHE.txt b/docs/doc/static.files/LICENSE-APACHE-b91fa81cba47b86a.txt similarity index 100% rename from docs/doc/LICENSE-APACHE.txt rename to docs/doc/static.files/LICENSE-APACHE-b91fa81cba47b86a.txt diff --git a/docs/doc/LICENSE-MIT.txt b/docs/doc/static.files/LICENSE-MIT-65090b722b3f6c56.txt similarity index 100% rename from docs/doc/LICENSE-MIT.txt rename to docs/doc/static.files/LICENSE-MIT-65090b722b3f6c56.txt diff --git a/docs/doc/NanumBarunGothic.ttf.woff2 b/docs/doc/static.files/NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2 similarity index 100% rename from docs/doc/NanumBarunGothic.ttf.woff2 rename to docs/doc/static.files/NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2 diff --git a/docs/doc/NanumBarunGothic-LICENSE.txt b/docs/doc/static.files/NanumBarunGothic-LICENSE-18c5adf4b52b4041.txt similarity index 99% rename from docs/doc/NanumBarunGothic-LICENSE.txt rename to docs/doc/static.files/NanumBarunGothic-LICENSE-18c5adf4b52b4041.txt index 0bf4668..4b3edc2 100644 --- a/docs/doc/NanumBarunGothic-LICENSE.txt +++ b/docs/doc/static.files/NanumBarunGothic-LICENSE-18c5adf4b52b4041.txt @@ -1,3 +1,5 @@ +// REUSE-IgnoreStart + Copyright (c) 2010, NAVER Corporation (https://www.navercorp.com/), with Reserved Font Name Nanum, Naver Nanum, NanumGothic, Naver NanumGothic, @@ -97,3 +99,5 @@ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. + +// REUSE-IgnoreEnd diff --git a/docs/doc/SourceCodePro-It.ttf.woff2 b/docs/doc/static.files/SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2 similarity index 100% rename from docs/doc/SourceCodePro-It.ttf.woff2 rename to docs/doc/static.files/SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2 diff --git a/docs/doc/SourceCodePro-LICENSE.txt b/docs/doc/static.files/SourceCodePro-LICENSE-d180d465a756484a.txt similarity index 99% rename from docs/doc/SourceCodePro-LICENSE.txt rename to docs/doc/static.files/SourceCodePro-LICENSE-d180d465a756484a.txt index 0754257..0d2941e 100644 --- a/docs/doc/SourceCodePro-LICENSE.txt +++ b/docs/doc/static.files/SourceCodePro-LICENSE-d180d465a756484a.txt @@ -1,3 +1,5 @@ +// REUSE-IgnoreStart + Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. This Font Software is licensed under the SIL Open Font License, Version 1.1. @@ -91,3 +93,5 @@ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. + +// REUSE-IgnoreEnd diff --git a/docs/doc/SourceCodePro-Regular.ttf.woff2 b/docs/doc/static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2 similarity index 100% rename from docs/doc/SourceCodePro-Regular.ttf.woff2 rename to docs/doc/static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2 diff --git a/docs/doc/SourceCodePro-Semibold.ttf.woff2 b/docs/doc/static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2 similarity index 100% rename from docs/doc/SourceCodePro-Semibold.ttf.woff2 rename to docs/doc/static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2 diff --git a/docs/doc/static.files/SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2 b/docs/doc/static.files/SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2 new file mode 100644 index 0000000..181a07f Binary files /dev/null and b/docs/doc/static.files/SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2 differ diff --git a/docs/doc/static.files/SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2 b/docs/doc/static.files/SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2 new file mode 100644 index 0000000..2ae08a7 Binary files /dev/null and b/docs/doc/static.files/SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2 differ diff --git a/docs/doc/SourceSerif4-LICENSE.md b/docs/doc/static.files/SourceSerif4-LICENSE-3bb119e13b1258b7.md similarity index 94% rename from docs/doc/SourceSerif4-LICENSE.md rename to docs/doc/static.files/SourceSerif4-LICENSE-3bb119e13b1258b7.md index 68ea189..175fa4f 100644 --- a/docs/doc/SourceSerif4-LICENSE.md +++ b/docs/doc/static.files/SourceSerif4-LICENSE-3bb119e13b1258b7.md @@ -1,4 +1,7 @@ + + Copyright 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries. +Copyright 2014 - 2023 Adobe (http://www.adobe.com/), with Reserved Font Name ‘Source’. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries. This Font Software is licensed under the SIL Open Font License, Version 1.1. @@ -91,3 +94,5 @@ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. + + diff --git a/docs/doc/static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2 b/docs/doc/static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2 new file mode 100644 index 0000000..0263fc3 Binary files /dev/null and b/docs/doc/static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2 differ diff --git a/docs/doc/static.files/ayu-614652228113ac93.css b/docs/doc/static.files/ayu-614652228113ac93.css new file mode 100644 index 0000000..8fd09c9 --- /dev/null +++ b/docs/doc/static.files/ayu-614652228113ac93.css @@ -0,0 +1 @@ + :root{--main-background-color:#0f1419;--main-color:#c5c5c5;--settings-input-color:#ffb454;--settings-input-border-color:#999;--settings-button-color:#fff;--settings-button-border-focus:#e0e0e0;--sidebar-background-color:#14191f;--sidebar-background-color-hover:rgba(70,70,70,0.33);--code-block-background-color:#191f26;--scrollbar-track-background-color:transparent;--scrollbar-thumb-background-color:#5c6773;--scrollbar-color:#5c6773 #24292f;--headings-border-bottom-color:#5c6773;--border-color:#5c6773;--button-background-color:#141920;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--search-input-focused-border-color:#5c6773;--copy-path-button-color:#fff;--copy-path-img-filter:invert(70%);--copy-path-img-hover-filter:invert(100%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--type-link-color:#ffa0a5;--trait-link-color:#39afd7;--assoc-item-link-color:#39afd7;--function-link-color:#fdd687;--macro-link-color:#a37acc;--keyword-link-color:#39afd7;--mod-link-color:#39afd7;--link-color:#39afd7;--sidebar-link-color:#53b1db;--sidebar-current-link-background-color:transparent;--search-result-link-focus-background-color:#3c3c3c;--search-result-border-color:#aaa3;--search-color:#fff;--search-error-code-background-color:#4f4c4c;--search-results-alias-color:#c5c5c5;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:none;--search-tab-button-not-selected-background:transparent !important;--search-tab-button-selected-border-top-color:none;--search-tab-button-selected-background:#141920 !important;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ff7733;--code-highlight-kw-2-color:#ff7733;--code-highlight-lifetime-color:#ff7733;--code-highlight-prelude-color:#69f2df;--code-highlight-prelude-val-color:#ff7733;--code-highlight-number-color:#b8cc52;--code-highlight-string-color:#b8cc52;--code-highlight-literal-color:#ff7733;--code-highlight-attribute-color:#e6e1cf;--code-highlight-self-color:#36a3d9;--code-highlight-macro-color:#a37acc;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#788797;--code-highlight-doc-comment-color:#a1ac88;--src-line-numbers-span-color:#5c6773;--src-line-number-highlighted-background-color:rgba(255,236,164,0.06);--test-arrow-color:#788797;--test-arrow-background-color:rgba(57,175,215,0.09);--test-arrow-hover-color:#c5c5c5;--test-arrow-hover-background-color:rgba(57,175,215,0.368);--target-background-color:rgba(255,236,164,0.06);--target-border-color:rgba(255,180,76,0.85);--kbd-color:#c5c5c5;--kbd-background:#314559;--kbd-box-shadow-color:#5c6773;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(41%) sepia(12%) saturate(487%) hue-rotate(171deg) brightness(94%) contrast(94%);--crate-search-div-hover-filter:invert(98%) sepia(12%) saturate(81%) hue-rotate(343deg) brightness(113%) contrast(76%);--crate-search-hover-border:#e0e0e0;--source-sidebar-background-selected:#14191f;--source-sidebar-background-hover:#14191f;--table-alt-row-background-color:#191f26;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:rgb(91,59,1);--scrape-example-code-line-highlight-focus:rgb(124,75,15);--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(15,20,25,1);--scrape-example-code-wrapper-background-end:rgba(15,20,25,0);}h1,h2,h3,h4,h1 a,.sidebar h2 a,.sidebar h3 a,#source-sidebar>.title{color:#fff;}h4{border:none;}.docblock code{color:#ffb454;}.docblock a>code{color:#39AFD7 !important;}.code-header,.docblock pre>code,pre,pre>code,.item-info code,.rustdoc.source .example-wrap{color:#e6e1cf;}.sidebar .current,.sidebar a:hover,#source-sidebar div.files>a:hover,details.dir-entry summary:hover,#source-sidebar div.files>a:focus,details.dir-entry summary:focus,#source-sidebar div.files>a.selected{color:#ffb44c;}.sidebar-elems .location{color:#ff7733;}.src-line-numbers .line-highlighted{color:#708090;padding-right:7px;border-right:1px solid #ffb44c;}.search-results a:hover,.search-results a:focus{color:#fff !important;background-color:#3c3c3c;}.search-results a{color:#0096cf;}.search-results a div.desc{color:#c5c5c5;}.result-name .primitive>i,.result-name .keyword>i{color:#788797;}#search-tabs>button.selected{border-bottom:1px solid #ffb44c !important;border-top:none;}#search-tabs>button:not(.selected){border:none;background-color:transparent !important;}#search-tabs>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}#settings-menu>a img{filter:invert(100);} \ No newline at end of file diff --git a/docs/doc/clipboard.svg b/docs/doc/static.files/clipboard-7571035ce49a181d.svg similarity index 100% rename from docs/doc/clipboard.svg rename to docs/doc/static.files/clipboard-7571035ce49a181d.svg diff --git a/docs/doc/static.files/dark-1097f8e92a01e3cf.css b/docs/doc/static.files/dark-1097f8e92a01e3cf.css new file mode 100644 index 0000000..1e5e7d1 --- /dev/null +++ b/docs/doc/static.files/dark-1097f8e92a01e3cf.css @@ -0,0 +1 @@ +:root{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--test-arrow-color:#dedede;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#dedede;--test-arrow-hover-background-color:#4e8bca;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--source-sidebar-background-selected:#333;--source-sidebar-background-hover:#444;--table-alt-row-background-color:#2A2A2A;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:rgb(91,59,1);--scrape-example-code-line-highlight-focus:rgb(124,75,15);--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);} \ No newline at end of file diff --git a/docs/doc/favicon-16x16.png b/docs/doc/static.files/favicon-16x16-8b506e7a72182f1c.png similarity index 100% rename from docs/doc/favicon-16x16.png rename to docs/doc/static.files/favicon-16x16-8b506e7a72182f1c.png diff --git a/docs/doc/favicon.svg b/docs/doc/static.files/favicon-2c020d218678b618.svg similarity index 100% rename from docs/doc/favicon.svg rename to docs/doc/static.files/favicon-2c020d218678b618.svg diff --git a/docs/doc/favicon-32x32.png b/docs/doc/static.files/favicon-32x32-422f7d1d52889060.png similarity index 100% rename from docs/doc/favicon-32x32.png rename to docs/doc/static.files/favicon-32x32-422f7d1d52889060.png diff --git a/docs/doc/static.files/light-0f8c037637f9eb3e.css b/docs/doc/static.files/light-0f8c037637f9eb3e.css new file mode 100644 index 0000000..21c3a85 --- /dev/null +++ b/docs/doc/static.files/light-0f8c037637f9eb3e.css @@ -0,0 +1 @@ +:root{--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#F5F5F5;--sidebar-background-color-hover:#E0E0E0;--code-block-background-color:#F5F5F5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#ffffff;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--test-arrow-color:#f5f5f5;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#f5f5f5;--test-arrow-hover-background-color:#4e8bca;--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--source-sidebar-background-selected:#fff;--source-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#F5F5F5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);} \ No newline at end of file diff --git a/docs/doc/static.files/main-0795b7d26be81095.js b/docs/doc/static.files/main-0795b7d26be81095.js new file mode 100644 index 0000000..87b4338 --- /dev/null +++ b/docs/doc/static.files/main-0795b7d26be81095.js @@ -0,0 +1,12 @@ +"use strict";window.RUSTDOC_TOOLTIP_HOVER_MS=300;window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS=450;function resourcePath(basename,extension){return getVar("root-path")+basename+getVar("resource-suffix")+extension}function hideMain(){addClass(document.getElementById(MAIN_ID),"hidden")}function showMain(){removeClass(document.getElementById(MAIN_ID),"hidden")}function elemIsInParent(elem,parent){while(elem&&elem!==document.body){if(elem===parent){return true}elem=elem.parentElement}return false}function blurHandler(event,parentElem,hideCallback){if(!elemIsInParent(document.activeElement,parentElem)&&!elemIsInParent(event.relatedTarget,parentElem)){hideCallback()}}window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate");function setMobileTopbar(){const mobileLocationTitle=document.querySelector(".mobile-topbar h2");const locationTitle=document.querySelector(".sidebar h2.location");if(mobileLocationTitle&&locationTitle){mobileLocationTitle.innerHTML=locationTitle.innerHTML}}function getVirtualKey(ev){if("key"in ev&&typeof ev.key!=="undefined"){return ev.key}const c=ev.charCode||ev.keyCode;if(c===27){return"Escape"}return String.fromCharCode(c)}const MAIN_ID="main-content";const SETTINGS_BUTTON_ID="settings-menu";const ALTERNATIVE_DISPLAY_ID="alternative-display";const NOT_DISPLAYED_ID="not-displayed";const HELP_BUTTON_ID="help-button";function getSettingsButton(){return document.getElementById(SETTINGS_BUTTON_ID)}function getHelpButton(){return document.getElementById(HELP_BUTTON_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function insertAfter(newNode,referenceNode){referenceNode.parentNode.insertBefore(newNode,referenceNode.nextSibling)}function getOrCreateSection(id,classes){let el=document.getElementById(id);if(!el){el=document.createElement("section");el.id=id;el.className=classes;insertAfter(el,document.getElementById(MAIN_ID))}return el}function getAlternativeDisplayElem(){return getOrCreateSection(ALTERNATIVE_DISPLAY_ID,"content hidden")}function getNotDisplayedElem(){return getOrCreateSection(NOT_DISPLAYED_ID,"hidden")}function switchDisplayedElement(elemToDisplay){const el=getAlternativeDisplayElem();if(el.children.length>0){getNotDisplayedElem().appendChild(el.firstElementChild)}if(elemToDisplay===null){addClass(el,"hidden");showMain();return}el.appendChild(elemToDisplay);hideMain();removeClass(el,"hidden")}function browserSupportsHistoryApi(){return window.history&&typeof window.history.pushState==="function"}function loadCss(cssUrl){const link=document.createElement("link");link.href=cssUrl;link.rel="stylesheet";document.getElementsByTagName("head")[0].appendChild(link)}function preLoadCss(cssUrl){const link=document.createElement("link");link.href=cssUrl;link.rel="preload";link.as="style";document.getElementsByTagName("head")[0].appendChild(link)}(function(){const isHelpPage=window.location.pathname.endsWith("/help.html");function loadScript(url){const script=document.createElement("script");script.src=url;document.head.append(script)}getSettingsButton().onclick=event=>{if(event.ctrlKey||event.altKey||event.metaKey){return}window.hideAllModals(false);addClass(getSettingsButton(),"rotate");event.preventDefault();loadCss(getVar("static-root-path")+getVar("settings-css"));loadScript(getVar("static-root-path")+getVar("settings-js"));preLoadCss(getVar("static-root-path")+getVar("theme-light-css"));preLoadCss(getVar("static-root-path")+getVar("theme-dark-css"));preLoadCss(getVar("static-root-path")+getVar("theme-ayu-css"));setTimeout(()=>{const themes=getVar("themes").split(",");for(const theme of themes){if(theme!==""){preLoadCss(getVar("root-path")+theme+".css")}}},0)};window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:()=>{let el=document.getElementById("search");if(!el){el=document.createElement("section");el.id="search";getNotDisplayedElem().appendChild(el)}return el},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:()=>{if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},isDisplayed:()=>searchState.outputElement().parentElement.id===ALTERNATIVE_DISPLAY_ID,focus:()=>{searchState.input.focus()},defocus:()=>{searchState.input.blur()},showResults:search=>{if(search===null||typeof search==="undefined"){search=searchState.outputElement()}switchDisplayedElement(search);searchState.mouseMovedAfterSearch=false;document.title=searchState.title},removeQueryParameters:()=>{document.title=searchState.titleBeforeSearch;if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.hash)}},hideResults:()=>{switchDisplayedElement(null);searchState.removeQueryParameters()},getQueryStringParams:()=>{const params={};window.location.search.substring(1).split("&").map(s=>{const pair=s.split("=");params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},setup:()=>{const search_input=searchState.input;if(!searchState.input){return}let searchLoaded=false;function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(getVar("static-root-path")+getVar("search-js"));loadScript(resourcePath("search-index",".js"))}}search_input.addEventListener("focus",()=>{search_input.origPlaceholder=search_input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});if(search_input.value!==""){loadSearch()}const params=searchState.getQueryStringParams();if(params.search!==undefined){searchState.setLoadingSearch();loadSearch()}},setLoadingSearch:()=>{const search=searchState.outputElement();search.innerHTML="

"+searchState.loadingText+"

";searchState.showResults(search)},};const toggleAllDocsId="toggle-all-docs";let savedHash="";function handleHashes(ev){if(ev!==null&&searchState.isDisplayed()&&ev.newURL){switchDisplayedElement(null);const hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.search+"#"+hash)}const elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}const pageId=window.location.hash.replace(/^#/,"");if(savedHash!==pageId){savedHash=pageId;if(pageId!==""){expandSection(pageId)}}}function onHashChange(ev){hideSidebar();handleHashes(ev)}function openParentDetails(elem){while(elem){if(elem.tagName==="DETAILS"){elem.open=true}elem=elem.parentNode}}function expandSection(id){openParentDetails(document.getElementById(id))}function handleEscape(ev){searchState.clearInputTimeout();searchState.hideResults();ev.preventDefault();searchState.defocus();window.hideAllModals(true)}function handleShortcut(ev){const disableShortcuts=getSettingValue("disable-shortcuts")==="true";if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts){return}if(document.activeElement.tagName==="INPUT"&&document.activeElement.type!=="checkbox"&&document.activeElement.type!=="radio"){switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break}}else{switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;case"s":case"S":ev.preventDefault();searchState.focus();break;case"+":ev.preventDefault();expandAllDocs();break;case"-":ev.preventDefault();collapseAllDocs();break;case"?":showHelp();break;default:break}}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);function addSidebarItems(){if(!window.SIDEBAR_ITEMS){return}const sidebar=document.getElementsByClassName("sidebar-elems")[0];function block(shortty,id,longty){const filtered=window.SIDEBAR_ITEMS[shortty];if(!filtered){return}const h3=document.createElement("h3");h3.innerHTML=`${longty}`;const ul=document.createElement("ul");ul.className="block "+shortty;for(const name of filtered){let path;if(shortty==="mod"){path=name+"/index.html"}else{path=shortty+"."+name+".html"}const current_page=document.location.href.split("/").pop();const link=document.createElement("a");link.href=path;if(path===current_page){link.className="current"}link.textContent=name;const li=document.createElement("li");li.appendChild(link);ul.appendChild(li)}sidebar.appendChild(h3);sidebar.appendChild(ul)}if(sidebar){block("primitive","primitives","Primitive Types");block("mod","modules","Modules");block("macro","macros","Macros");block("struct","structs","Structs");block("enum","enums","Enums");block("union","unions","Unions");block("constant","constants","Constants");block("static","static","Statics");block("trait","traits","Traits");block("fn","functions","Functions");block("type","types","Type Definitions");block("foreigntype","foreign-types","Foreign Types");block("keyword","keywords","Keywords");block("traitalias","trait-aliases","Trait Aliases")}}window.register_implementors=imp=>{const implementors=document.getElementById("implementors-list");const synthetic_implementors=document.getElementById("synthetic-implementors-list");const inlined_types=new Set();const TEXT_IDX=0;const SYNTHETIC_IDX=1;const TYPES_IDX=2;if(synthetic_implementors){onEachLazy(synthetic_implementors.getElementsByClassName("impl"),el=>{const aliases=el.getAttribute("data-aliases");if(!aliases){return}aliases.split(",").forEach(alias=>{inlined_types.add(alias)})})}let currentNbImpls=implementors.getElementsByClassName("impl").length;const traitName=document.querySelector(".main-heading h1 > .trait").textContent;const baseIdName="impl-"+traitName+"-";const libs=Object.getOwnPropertyNames(imp);const script=document.querySelector("script[data-ignore-extern-crates]");const ignoreExternCrates=new Set((script?script.getAttribute("data-ignore-extern-crates"):"").split(","));for(const lib of libs){if(lib===window.currentCrate||ignoreExternCrates.has(lib)){continue}const structs=imp[lib];struct_loop:for(const struct of structs){const list=struct[SYNTHETIC_IDX]?synthetic_implementors:implementors;if(struct[SYNTHETIC_IDX]){for(const struct_type of struct[TYPES_IDX]){if(inlined_types.has(struct_type)){continue struct_loop}inlined_types.add(struct_type)}}const code=document.createElement("h3");code.innerHTML=struct[TEXT_IDX];addClass(code,"code-header");onEachLazy(code.getElementsByTagName("a"),elem=>{const href=elem.getAttribute("href");if(href&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});const currentId=baseIdName+currentNbImpls;const anchor=document.createElement("a");anchor.href="#"+currentId;addClass(anchor,"anchor");const display=document.createElement("div");display.id=currentId;addClass(display,"impl");display.appendChild(anchor);display.appendChild(code);list.appendChild(display);currentNbImpls+=1}}};if(window.pending_implementors){window.register_implementors(window.pending_implementors)}function addSidebarCrates(){if(!window.ALL_CRATES){return}const sidebarElems=document.getElementsByClassName("sidebar-elems")[0];if(!sidebarElems){return}const h3=document.createElement("h3");h3.innerHTML="Crates";const ul=document.createElement("ul");ul.className="block crate";for(const crate of window.ALL_CRATES){const link=document.createElement("a");link.href=window.rootPath+crate+"/index.html";if(window.rootPath!=="./"&&crate===window.currentCrate){link.className="current"}link.textContent=crate;const li=document.createElement("li");li.appendChild(link);ul.appendChild(li)}sidebarElems.appendChild(h3);sidebarElems.appendChild(ul)}function expandAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);removeClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hasClass(e,"type-contents-toggle")&&!hasClass(e,"more-examples-toggle")){e.open=true}});innerToggle.title="collapse all docs";innerToggle.children[0].innerText="\u2212"}function collapseAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);addClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(e.parentNode.id!=="implementations-list"||(!hasClass(e,"implementors-toggle")&&!hasClass(e,"type-contents-toggle"))){e.open=false}});innerToggle.title="expand all docs";innerToggle.children[0].innerText="+"}function toggleAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);if(!innerToggle){return}if(hasClass(innerToggle,"will-expand")){expandAllDocs()}else{collapseAllDocs()}}(function(){const toggles=document.getElementById(toggleAllDocsId);if(toggles){toggles.onclick=toggleAllDocs}const hideMethodDocs=getSettingValue("auto-hide-method-docs")==="true";const hideImplementations=getSettingValue("auto-hide-trait-implementations")==="true";const hideLargeItemContents=getSettingValue("auto-hide-large-items")!=="false";function setImplementorsTogglesOpen(id,open){const list=document.getElementById(id);if(list!==null){onEachLazy(list.getElementsByClassName("implementors-toggle"),e=>{e.open=open})}}if(hideImplementations){setImplementorsTogglesOpen("trait-implementations-list",false);setImplementorsTogglesOpen("blanket-implementations-list",false)}onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hideLargeItemContents&&hasClass(e,"type-contents-toggle")){e.open=true}if(hideMethodDocs&&hasClass(e,"method-toggle")){e.open=false}})}());window.rustdoc_add_line_numbers_to_examples=()=>{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");if(line_numbers.length>0){return}const count=x.textContent.split("\n").length;const elems=[];for(let i=0;i{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");for(const node of line_numbers){parent.removeChild(node)}})};if(getSettingValue("line-numbers")==="true"){window.rustdoc_add_line_numbers_to_examples()}function showSidebar(){window.hideAllModals(false);const sidebar=document.getElementsByClassName("sidebar")[0];addClass(sidebar,"shown")}function hideSidebar(){const sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown")}window.addEventListener("resize",()=>{if(window.CURRENT_TOOLTIP_ELEMENT){const base=window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE;const force_visible=base.TOOLTIP_FORCE_VISIBLE;hideTooltip(false);if(force_visible){showTooltip(base);base.TOOLTIP_FORCE_VISIBLE=true}}});const mainElem=document.getElementById(MAIN_ID);if(mainElem){mainElem.addEventListener("click",hideSidebar)}onEachLazy(document.querySelectorAll("a[href^='#']"),el=>{el.addEventListener("click",()=>{expandSection(el.hash.slice(1));hideSidebar()})});onEachLazy(document.querySelectorAll(".toggle > summary:not(.hideme)"),el=>{el.addEventListener("click",e=>{if(e.target.tagName!=="SUMMARY"&&e.target.tagName!=="A"){e.preventDefault()}})});function showTooltip(e){const notable_ty=e.getAttribute("data-notable-ty");if(!window.NOTABLE_TRAITS&¬able_ty){const data=document.getElementById("notable-traits-data");if(data){window.NOTABLE_TRAITS=JSON.parse(data.innerText)}else{throw new Error("showTooltip() called with notable without any notable traits!")}}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE===e){clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);return}window.hideAllModals(false);const wrapper=document.createElement("div");if(notable_ty){wrapper.innerHTML="
"+window.NOTABLE_TRAITS[notable_ty]+"
"}else{if(e.getAttribute("title")!==null){e.setAttribute("data-title",e.getAttribute("title"));e.removeAttribute("title")}if(e.getAttribute("data-title")!==null){const titleContent=document.createElement("div");titleContent.className="content";titleContent.appendChild(document.createTextNode(e.getAttribute("data-title")));wrapper.appendChild(titleContent)}}wrapper.className="tooltip popover";const focusCatcher=document.createElement("div");focusCatcher.setAttribute("tabindex","0");focusCatcher.onfocus=hideTooltip;wrapper.appendChild(focusCatcher);const pos=e.getBoundingClientRect();wrapper.style.top=(pos.top+window.scrollY+pos.height)+"px";wrapper.style.left=0;wrapper.style.right="auto";wrapper.style.visibility="hidden";const body=document.getElementsByTagName("body")[0];body.appendChild(wrapper);const wrapperPos=wrapper.getBoundingClientRect();const finalPos=pos.left+window.scrollX-wrapperPos.width+24;if(finalPos>0){wrapper.style.left=finalPos+"px"}else{wrapper.style.setProperty("--popover-arrow-offset",(wrapperPos.right-pos.right+4)+"px")}wrapper.style.visibility="";window.CURRENT_TOOLTIP_ELEMENT=wrapper;window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE=e;clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);wrapper.onpointerenter=function(ev){if(ev.pointerType!=="mouse"){return}clearTooltipHoverTimeout(e)};wrapper.onpointerleave=function(ev){if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!elemIsInParent(ev.relatedTarget,e)){setTooltipHoverTimeout(e,false);addClass(wrapper,"fade-out")}}}function setTooltipHoverTimeout(element,show){clearTooltipHoverTimeout(element);if(!show&&!window.CURRENT_TOOLTIP_ELEMENT){return}if(show&&window.CURRENT_TOOLTIP_ELEMENT){return}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE!==element){return}element.TOOLTIP_HOVER_TIMEOUT=setTimeout(()=>{if(show){showTooltip(element)}else if(!element.TOOLTIP_FORCE_VISIBLE){hideTooltip(false)}},show?window.RUSTDOC_TOOLTIP_HOVER_MS:window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS)}function clearTooltipHoverTimeout(element){if(element.TOOLTIP_HOVER_TIMEOUT!==undefined){removeClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out");clearTimeout(element.TOOLTIP_HOVER_TIMEOUT);delete element.TOOLTIP_HOVER_TIMEOUT}}function tooltipBlurHandler(event){if(window.CURRENT_TOOLTIP_ELEMENT&&!elemIsInParent(document.activeElement,window.CURRENT_TOOLTIP_ELEMENT)&&!elemIsInParent(event.relatedTarget,window.CURRENT_TOOLTIP_ELEMENT)&&!elemIsInParent(document.activeElement,window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE)&&!elemIsInParent(event.relatedTarget,window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE)){setTimeout(()=>hideTooltip(false),0)}}function hideTooltip(focus){if(window.CURRENT_TOOLTIP_ELEMENT){if(window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE){if(focus){window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.focus()}window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE=false}const body=document.getElementsByTagName("body")[0];body.removeChild(window.CURRENT_TOOLTIP_ELEMENT);clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);window.CURRENT_TOOLTIP_ELEMENT=null}}onEachLazy(document.getElementsByClassName("tooltip"),e=>{e.onclick=function(){this.TOOLTIP_FORCE_VISIBLE=this.TOOLTIP_FORCE_VISIBLE?false:true;if(window.CURRENT_TOOLTIP_ELEMENT&&!this.TOOLTIP_FORCE_VISIBLE){hideTooltip(true)}else{showTooltip(this);window.CURRENT_TOOLTIP_ELEMENT.setAttribute("tabindex","0");window.CURRENT_TOOLTIP_ELEMENT.focus();window.CURRENT_TOOLTIP_ELEMENT.onblur=tooltipBlurHandler}return false};e.onpointerenter=function(ev){if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(this,true)};e.onpointermove=function(ev){if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(this,true)};e.onpointerleave=function(ev){if(ev.pointerType!=="mouse"){return}if(!this.TOOLTIP_FORCE_VISIBLE&&!elemIsInParent(ev.relatedTarget,window.CURRENT_TOOLTIP_ELEMENT)){setTooltipHoverTimeout(e,false);addClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out")}}});const sidebar_menu_toggle=document.getElementsByClassName("sidebar-menu-toggle")[0];if(sidebar_menu_toggle){sidebar_menu_toggle.addEventListener("click",()=>{const sidebar=document.getElementsByClassName("sidebar")[0];if(!hasClass(sidebar,"shown")){showSidebar()}else{hideSidebar()}})}function helpBlurHandler(event){blurHandler(event,getHelpButton(),window.hidePopoverMenus)}function buildHelpMenu(){const book_info=document.createElement("span");const channel=getVar("channel");book_info.className="top";book_info.innerHTML=`You can find more information in \ +the rustdoc book.`;const shortcuts=[["?","Show this help dialog"],["S","Focus the search field"],["↑","Move up in search results"],["↓","Move down in search results"],["← / →","Switch result tab (when results focused)"],["⏎","Go to active search result"],["+","Expand all sections"],["-","Collapse all sections"],].map(x=>"
"+x[0].split(" ").map((y,index)=>((index&1)===0?""+y+"":" "+y+" ")).join("")+"
"+x[1]+"
").join("");const div_shortcuts=document.createElement("div");addClass(div_shortcuts,"shortcuts");div_shortcuts.innerHTML="

Keyboard Shortcuts

"+shortcuts+"
";const infos=[`For a full list of all search features, take a look here.`,"Prefix searches with a type followed by a colon (e.g., fn:) to \ + restrict the search to a given item kind.","Accepted kinds are: fn, mod, struct, \ + enum, trait, type, macro, \ + and const.","Search functions by type signature (e.g., vec -> usize or \ + -> vec or String, enum:Cow -> bool)","You can look for items with an exact name by putting double quotes around \ + your request: \"string\"","Look for functions that accept or return \ + slices and \ + arrays by writing \ + square brackets (e.g., -> [u8] or [] -> Option)","Look for items inside another one by searching for a path: vec::Vec",].map(x=>"

"+x+"

").join("");const div_infos=document.createElement("div");addClass(div_infos,"infos");div_infos.innerHTML="

Search Tricks

"+infos;const rustdoc_version=document.createElement("span");rustdoc_version.className="bottom";const rustdoc_version_code=document.createElement("code");rustdoc_version_code.innerText="rustdoc "+getVar("rustdoc-version");rustdoc_version.appendChild(rustdoc_version_code);const container=document.createElement("div");if(!isHelpPage){container.className="popover"}container.id="help";container.style.display="none";const side_by_side=document.createElement("div");side_by_side.className="side-by-side";side_by_side.appendChild(div_shortcuts);side_by_side.appendChild(div_infos);container.appendChild(book_info);container.appendChild(side_by_side);container.appendChild(rustdoc_version);if(isHelpPage){const help_section=document.createElement("section");help_section.appendChild(container);document.getElementById("main-content").appendChild(help_section);container.style.display="block"}else{const help_button=getHelpButton();help_button.appendChild(container);container.onblur=helpBlurHandler;help_button.onblur=helpBlurHandler;help_button.children[0].onblur=helpBlurHandler}return container}window.hideAllModals=function(switchFocus){hideSidebar();window.hidePopoverMenus();hideTooltip(switchFocus)};window.hidePopoverMenus=function(){onEachLazy(document.querySelectorAll(".search-form .popover"),elem=>{elem.style.display="none"})};function getHelpMenu(buildNeeded){let menu=getHelpButton().querySelector(".popover");if(!menu&&buildNeeded){menu=buildHelpMenu()}return menu}function showHelp(){getHelpButton().querySelector("a").focus();const menu=getHelpMenu(true);if(menu.style.display==="none"){window.hideAllModals();menu.style.display=""}}if(isHelpPage){showHelp();document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault()})}else{document.querySelector(`#${HELP_BUTTON_ID} > a`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="A"||target.parentElement.id!==HELP_BUTTON_ID||event.ctrlKey||event.altKey||event.metaKey){return}event.preventDefault();const menu=getHelpMenu(true);const shouldShowHelp=menu.style.display==="none";if(shouldShowHelp){showHelp()}else{window.hidePopoverMenus()}})}setMobileTopbar();addSidebarItems();addSidebarCrates();onHashChange(null);window.addEventListener("hashchange",onHashChange);searchState.setup()}());(function(){let reset_button_timeout=null;const but=document.getElementById("copy-path");if(!but){return}but.onclick=()=>{const parent=but.parentElement;const path=[];onEach(parent.childNodes,child=>{if(child.tagName==="A"){path.push(child.textContent)}});const el=document.createElement("textarea");el.value=path.join("::");el.setAttribute("readonly","");el.style.position="absolute";el.style.left="-9999px";document.body.appendChild(el);el.select();document.execCommand("copy");document.body.removeChild(el);but.children[0].style.display="none";let tmp;if(but.childNodes.length<2){tmp=document.createTextNode("✓");but.appendChild(tmp)}else{onEachLazy(but.childNodes,e=>{if(e.nodeType===Node.TEXT_NODE){tmp=e;return true}});tmp.textContent="✓"}if(reset_button_timeout!==null){window.clearTimeout(reset_button_timeout)}function reset_button(){tmp.textContent="";reset_button_timeout=null;but.children[0].style.display=""}reset_button_timeout=window.setTimeout(reset_button,1000)}}()) \ No newline at end of file diff --git a/docs/doc/normalize.css b/docs/doc/static.files/normalize-76eba96aa4d2e634.css similarity index 100% rename from docs/doc/normalize.css rename to docs/doc/static.files/normalize-76eba96aa4d2e634.css diff --git a/docs/doc/static.files/noscript-13285aec31fa243e.css b/docs/doc/static.files/noscript-13285aec31fa243e.css new file mode 100644 index 0000000..c32e0cb --- /dev/null +++ b/docs/doc/static.files/noscript-13285aec31fa243e.css @@ -0,0 +1 @@ + #main-content .attributes{margin-left:0 !important;}#copy-path{display:none;}nav.sub{display:none;}.source .sidebar{display:none;}.notable-traits{display:none;} \ No newline at end of file diff --git a/docs/doc/rust-logo.svg b/docs/doc/static.files/rust-logo-151179464ae7ed46.svg similarity index 100% rename from docs/doc/rust-logo.svg rename to docs/doc/static.files/rust-logo-151179464ae7ed46.svg diff --git a/docs/doc/static.files/rustdoc-9bb858ba049f1f21.css b/docs/doc/static.files/rustdoc-9bb858ba049f1f21.css new file mode 100644 index 0000000..73eacd8 --- /dev/null +++ b/docs/doc/static.files/rustdoc-9bb858ba049f1f21.css @@ -0,0 +1,8 @@ + :root{--nav-sub-mobile-padding:8px;--search-typename-width:6.75rem;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular-018c141bf0843ffd.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium-8f9a781e4970d388.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular-46f98efaafac5295.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2") format("woff2");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{box-sizing:border-box;}body{font:1rem/1.5 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;font-feature-settings:"kern","liga";background-color:var(--main-background-color);color:var(--main-color);}h1{font-size:1.5rem;}h2{font-size:1.375rem;}h3{font-size:1.25rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:25px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}.docblock>h2:first-child,.docblock>h3:first-child,.docblock>h4:first-child,.docblock>h5:first-child,.docblock>h6:first-child{margin-top:0;}.main-heading h1{margin:0;padding:0;flex-grow:1;overflow-wrap:break-word;overflow-wrap:anywhere;}.main-heading{display:flex;flex-wrap:wrap;padding-bottom:6px;margin-bottom:15px;}.content h2,.top-doc .docblock>h3,.top-doc .docblock>h4{border-bottom:1px solid var(--headings-border-bottom-color);}h1,h2{line-height:1.25;padding-top:3px;padding-bottom:9px;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;margin:0;padding:0;white-space:pre-wrap;}#crate-search,h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,.search-input,.search-results .result-name,.item-name>a,.out-of-band,span.since,a.srclink,#help-button>a,summary.hideme,.scraped-example-list,ul.all-items{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}#toggle-all-docs,a.anchor,.small-section-header a,#source-sidebar a,.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,h1 a,.search-results a,.stab,.result-name i{color:var(--main-color);}span.enum,a.enum,span.struct,a.struct,span.union,a.union,span.primitive,a.primitive,span.type,a.type,span.foreigntype,a.foreigntype{color:var(--type-link-color);}span.trait,a.trait,span.traitalias,a.traitalias{color:var(--trait-link-color);}span.associatedtype,a.associatedtype,span.constant,a.constant,span.static,a.static{color:var(--assoc-item-link-color);}span.fn,a.fn,span.method,a.method,span.tymethod,a.tymethod{color:var(--function-link-color);}span.attr,a.attr,span.derive,a.derive,span.macro,a.macro{color:var(--macro-link-color);}span.mod,a.mod{color:var(--mod-link-color);}span.keyword,a.keyword{color:var(--keyword-link-color);}a{color:var(--link-color);text-decoration:none;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p{margin:0 0 .75em 0;}p:last-child{margin:0;}button{padding:1px 6px;cursor:pointer;}button#toggle-all-docs{padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.source main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}details:not(.toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;line-height:1.5;}pre.item-decl{overflow-x:auto;}.item-decl .type-contents-toggle{contain:initial;}.source .content pre{padding:20px;}.rustdoc.source .example-wrap pre.src-line-numbers{padding:20px 0 20px 4px;}img{max-width:100%;}.sub-logo-container,.logo-container{line-height:0;display:block;}.sub-logo-container{margin-right:32px;}.sub-logo-container>img{height:60px;width:60px;object-fit:contain;}.rust-logo{filter:var(--rust-logo-filter);}.sidebar{font-size:0.875rem;flex:0 0 200px;overflow-y:scroll;overscroll-behavior:contain;position:sticky;height:100vh;top:0;left:0;}.rustdoc.source .sidebar{flex-basis:50px;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;z-index:1;}.sidebar,.mobile-topbar,.sidebar-menu-toggle,#src-sidebar-toggle,#source-sidebar{background-color:var(--sidebar-background-color);}#src-sidebar-toggle>button:hover,#src-sidebar-toggle>button:focus{background-color:var(--sidebar-background-color-hover);}.source .sidebar>*:not(#src-sidebar-toggle){visibility:hidden;}.source-sidebar-expanded .source .sidebar{overflow-y:auto;flex-basis:300px;}.source-sidebar-expanded .source .sidebar>*:not(#src-sidebar-toggle){visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;scrollbar-color:var(--scrollbar-color);}.sidebar{scrollbar-width:thin;scrollbar-color:var(--scrollbar-color);}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;background-color:var(--scrollbar-track-background-color);}.sidebar::-webkit-scrollbar-track{background-color:var(--scrollbar-track-background-color);}::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-background-color);}.hidden{display:none !important;}.sidebar .logo-container{margin-top:10px;margin-bottom:10px;text-align:center;}.version{overflow-wrap:break-word;}.logo-container>img{height:100px;width:100px;}ul.block,.block li{padding:0;margin:0;list-style:none;}.sidebar-elems a,.sidebar>h2 a{display:block;padding:0.25rem;margin-left:-0.25rem;}.sidebar h2{overflow-wrap:anywhere;padding:0;margin:0.7rem 0;}.sidebar h3{font-size:1.125rem;padding:0;margin:0;}.sidebar-elems,.sidebar>h2{padding-left:24px;}.sidebar a{color:var(--sidebar-link-color);}.sidebar .current,.sidebar a:hover:not(.logo-container){background-color:var(--sidebar-current-link-background-color);}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}.mobile-topbar{display:none;}.rustdoc .example-wrap{display:flex;position:relative;margin-bottom:10px;}.rustdoc .example-wrap:last-child{margin-bottom:0px;}.rustdoc .example-wrap pre{margin:0;flex-grow:1;}.rustdoc:not(.source) .example-wrap pre{overflow:auto hidden;}.rustdoc .example-wrap pre.example-line-numbers,.rustdoc .example-wrap pre.src-line-numbers{flex-grow:0;min-width:fit-content;overflow:initial;text-align:right;-webkit-user-select:none;user-select:none;padding:14px 8px;color:var(--src-line-numbers-span-color);}.rustdoc .example-wrap pre.src-line-numbers{padding:14px 0;}.src-line-numbers a,.src-line-numbers span{color:var(--src-line-numbers-span-color);padding:0 8px;}.src-line-numbers :target{background-color:transparent;border-right:none;padding:0 8px;}.src-line-numbers .line-highlighted{background-color:var(--src-line-number-highlighted-background-color);}.search-loading{text-align:center;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock :not(pre)>code,.docblock-short code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25rem;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.125rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.875rem;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.more-examples-toggle):not(.example-wrap){max-width:100%;overflow-x:auto;}.out-of-band{flex-grow:0;font-size:1.125rem;}.docblock code,.docblock-short code,pre,.rustdoc.source .example-wrap{background-color:var(--code-block-background-color);}#main-content{position:relative;}.docblock table{margin:.5em 0;border-collapse:collapse;}.docblock table td,.docblock table th{padding:.5em;border:1px solid var(--border-color);}.docblock table tbody tr:nth-child(2n){background:var(--table-alt-row-background-color);}.method .where,.fn .where,.where.fmt-newline{display:block;white-space:pre-wrap;font-size:0.875rem;}.item-info{display:block;margin-left:24px;}.item-info code{font-size:0.875rem;}#main-content>.item-info{margin-left:0;}nav.sub{flex-grow:1;flex-flow:row nowrap;margin:4px 0 25px 0;display:flex;align-items:center;}.search-form{position:relative;display:flex;height:34px;flex-grow:1;}.source nav.sub{margin:0 0 15px 0;}.small-section-header{display:block;position:relative;}.small-section-header:hover>.anchor,.impl:hover>.anchor,.trait-impl:hover>.anchor,.variant:hover>.anchor{display:initial;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.small-section-header>.anchor{left:-15px;padding-right:8px;}h2.small-section-header>.anchor{padding-right:6px;}.main-heading a:hover,.example-wrap .rust a:hover,.all-items a:hover,.docblock a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover,.docblock-short a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover,.item-info a{text-decoration:underline;}.crate.block a.current{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{display:table;padding:0;margin:0;}.item-table>li{display:table-row;}.item-table>li>div{display:table-cell;}.item-table>li>.item-name{padding-right:1.25rem;}.search-results-title{margin-top:0;white-space:nowrap;display:flex;align-items:baseline;}#crate-search-div{position:relative;min-width:5em;}#crate-search{min-width:115px;padding:0 23px 0 4px;max-width:100%;text-overflow:ellipsis;border:1px solid var(--border-color);border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;background-color:var(--main-background-color);color:inherit;line-height:1.5;font-weight:500;}#crate-search:hover,#crate-search:focus{border-color:var(--crate-search-hover-border);}@-moz-document url-prefix(){#crate-search{padding-left:0px;padding-right:19px;}}#crate-search-div::after{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;content:"";background-repeat:no-repeat;background-size:20px;background-position:calc(100% - 2px) 56%;background-image:url('data:image/svg+xml, \ + ');filter:var(--crate-search-div-filter);}#crate-search-div:hover::after,#crate-search-div:focus-within::after{filter:var(--crate-search-div-hover-filter);}#crate-search>option{font-size:1rem;}.search-input{-webkit-appearance:none;outline:none;border:1px solid var(--border-color);border-radius:2px;padding:8px;font-size:1rem;flex-grow:1;background-color:var(--button-background-color);color:var(--search-color);}.search-input:focus{border-color:var(--search-input-focused-border-color);}.search-results{display:none;}.search-results.active{display:block;}.search-results>a{display:flex;margin-left:2px;margin-right:2px;border-bottom:1px solid var(--search-result-border-color);gap:1em;}.search-results>a>div.desc{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:2;}.search-results a:hover,.search-results a:focus{background-color:var(--search-result-link-focus-background-color);}.search-results .result-name{display:flex;align-items:center;justify-content:start;flex:3;}.search-results .result-name span.alias{color:var(--search-results-alias-color);}.search-results .result-name .grey{color:var(--search-results-grey-color);}.search-results .result-name .typename{color:var(--search-results-grey-color);font-size:0.875rem;width:var(--search-typename-width);}.search-results .result-name .path{word-break:break-all;max-width:calc(100% - var(--search-typename-width));display:inline-block;}.popover{position:absolute;top:100%;right:0;z-index:2;margin-top:7px;border-radius:3px;border:1px solid var(--border-color);background-color:var(--main-background-color);color:var(--main-color);--popover-arrow-offset:11px;}.popover::before{content:'';position:absolute;right:var(--popover-arrow-offset);border:solid var(--border-color);border-width:1px 1px 0 0;background-color:var(--main-background-color);padding:4px;transform:rotate(-45deg);top:-5px;}#help.popover{max-width:600px;--popover-arrow-offset:48px;}#help dt{float:left;clear:left;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;}#help span.top{margin:10px 0;border-bottom:1px solid var(--border-color);padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid var(--border-color);}.side-by-side>div{width:50%;float:left;padding:0 20px 20px 17px;}.item-info .stab{min-height:36px;display:flex;padding:3px;margin-bottom:5px;align-items:center;vertical-align:text-bottom;}.item-name .stab{margin-left:0.3125em;}.stab{padding:0 2px;font-size:0.875rem;font-weight:normal;color:var(--main-color);background-color:var(--stab-background-color);width:fit-content;white-space:pre-wrap;border-radius:3px;display:inline;}.stab.portability>code{background:none;color:var(--stab-code-color);}.stab .emoji{font-size:1.25rem;margin-right:0.3rem;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;float:right;}.rightside:not(a),.out-of-band{color:var(--right-side-color);}pre.rust{tab-size:4;-moz-tab-size:4;}pre.rust .kw{color:var(--code-highlight-kw-color);}pre.rust .kw-2{color:var(--code-highlight-kw-2-color);}pre.rust .lifetime{color:var(--code-highlight-lifetime-color);}pre.rust .prelude-ty{color:var(--code-highlight-prelude-color);}pre.rust .prelude-val{color:var(--code-highlight-prelude-val-color);}pre.rust .string{color:var(--code-highlight-string-color);}pre.rust .number{color:var(--code-highlight-number-color);}pre.rust .bool-val{color:var(--code-highlight-literal-color);}pre.rust .self{color:var(--code-highlight-self-color);}pre.rust .attr{color:var(--code-highlight-attribute-color);}pre.rust .macro,pre.rust .macro-nonterminal{color:var(--code-highlight-macro-color);}pre.rust .question-mark{font-weight:bold;color:var(--code-highlight-question-mark-color);}pre.rust .comment{color:var(--code-highlight-comment-color);}pre.rust .doccomment{color:var(--code-highlight-doc-comment-color);}.rustdoc.source .example-wrap pre.rust a{background:var(--codeblock-link-background);}.example-wrap.compile_fail,.example-wrap.should_panic{border-left:2px solid var(--codeblock-error-color);}.ignore.example-wrap{border-left:2px solid var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover,.example-wrap.should_panic:hover{border-left:2px solid var(--codeblock-error-hover-color);}.example-wrap.ignore:hover{border-left:2px solid var(--codeblock-ignore-hover-color);}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip{color:var(--codeblock-error-color);}.example-wrap.ignore .tooltip{color:var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover .tooltip,.example-wrap.should_panic:hover .tooltip{color:var(--codeblock-error-hover-color);}.example-wrap.ignore:hover .tooltip{color:var(--codeblock-ignore-hover-color);}.example-wrap .tooltip{position:absolute;display:block;left:-25px;top:5px;margin:0;line-height:1;}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip,.example-wrap.ignore .tooltip{font-weight:bold;font-size:1.25rem;}a.test-arrow{visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.375rem;top:5px;right:5px;z-index:1;color:var(--test-arrow-color);background-color:var(--test-arrow-background-color);}a.test-arrow:hover{color:var(--test-arrow-hover-color);background-color:var(--test-arrow-hover-background-color);}.example-wrap:hover .test-arrow{visibility:visible;}.code-attribute{font-weight:300;color:var(--code-attribute-color);}.item-spacer{width:100%;height:12px;display:block;}.out-of-band>span.since{font-size:1.25rem;}.sub-variant h4{font-size:1rem;font-weight:400;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}:target{padding-right:3px;background-color:var(--target-background-color);border-right:3px solid var(--target-border-color);}.code-header a.tooltip{color:inherit;margin-right:15px;position:relative;}.code-header a.tooltip:hover{color:var(--link-color);}a.tooltip:hover::after{position:absolute;top:calc(100% - 10px);left:-15px;right:-15px;height:20px;content:"\00a0";}.fade-out{opacity:0;transition:opacity 0.45s cubic-bezier(0,0,0.1,1.0);}.popover.tooltip .content{margin:0.25em 0.5em;}.popover.tooltip .content pre,.popover.tooltip .content code{background:transparent;margin:0;padding:0;font-size:1.25rem;white-space:pre-wrap;}.popover.tooltip .content>h3:first-child{margin:0 0 5px 0;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#search-tabs{display:flex;flex-direction:row;gap:1px;margin-bottom:4px;}#search-tabs button{text-align:center;font-size:1.125rem;border:0;border-top:2px solid;flex:1;line-height:1.5;color:inherit;}#search-tabs button:not(.selected){background-color:var(--search-tab-button-not-selected-background);border-top-color:var(--search-tab-button-not-selected-border-top-color);}#search-tabs button:hover,#search-tabs button.selected{background-color:var(--search-tab-button-selected-background);border-top-color:var(--search-tab-button-selected-border-top-color);}#search-tabs .count{font-size:1rem;color:var(--search-tab-title-count-color);}#search .error code{border-radius:3px;background-color:var(--search-error-code-background-color);}.search-corrections{font-weight:normal;}#src-sidebar-toggle{position:sticky;top:0;left:0;font-size:1.25rem;border-bottom:1px solid;display:flex;height:40px;justify-content:stretch;align-items:stretch;z-index:10;}#source-sidebar{width:100%;overflow:auto;}#source-sidebar>.title{font-size:1.5rem;text-align:center;border-bottom:1px solid var(--border-color);margin-bottom:6px;}#source-sidebar div.files>a:hover,details.dir-entry summary:hover,#source-sidebar div.files>a:focus,details.dir-entry summary:focus{background-color:var(--source-sidebar-background-hover);}#source-sidebar div.files>a.selected{background-color:var(--source-sidebar-background-selected);}#src-sidebar-toggle>button{font-size:inherit;font-weight:bold;background:none;color:inherit;text-align:center;border:none;outline:none;flex:1 1;-webkit-appearance:none;opacity:1;}#settings-menu,#help-button{margin-left:4px;display:flex;}#settings-menu>a,#help-button>a{display:flex;align-items:center;justify-content:center;background-color:var(--button-background-color);border:1px solid var(--border-color);border-radius:2px;color:var(--settings-button-color);font-size:20px;width:33px;}#settings-menu>a:hover,#settings-menu>a:focus,#help-button>a:hover,#help-button>a:focus{border-color:var(--settings-button-border-focus);}#copy-path{color:var(--copy-path-button-color);background:var(--main-background-color);height:34px;margin-left:10px;padding:0;padding-left:2px;border:0;width:33px;}#copy-path>img{filter:var(--copy-path-img-filter);}#copy-path:hover>img{filter:var(--copy-path-img-hover-filter);}@keyframes rotating{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}#settings-menu.rotate>a img{animation:rotating 2s linear infinite;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px var(--border-color);border-radius:3px;color:var(--kbd-color);background-color:var(--kbd-background);box-shadow:inset 0 -1px 0 var(--kbd-box-shadow-color);}ul.all-items>li{list-style:none;}details.dir-entry{padding-left:4px;}details.dir-entry>summary{margin:0 0 0 -4px;padding:0 0 0 4px;cursor:pointer;}details.dir-entry div.folders,details.dir-entry div.files{padding-left:23px;}details.dir-entry a{display:block;}details.toggle{contain:layout;position:relative;}details.toggle>summary.hideme{cursor:pointer;font-size:1rem;}details.toggle>summary{list-style:none;outline:none;}details.toggle>summary::-webkit-details-marker,details.toggle>summary::marker{display:none;}details.toggle>summary.hideme>span{margin-left:9px;}details.toggle>summary::before{background:url('data:image/svg+xml,') no-repeat top left;content:"";cursor:pointer;width:16px;height:16px;display:inline-block;vertical-align:middle;opacity:.5;filter:var(--toggle-filter);}details.toggle>summary.hideme>span,.more-examples-toggle summary,.more-examples-toggle .hide-more{color:var(--toggles-color);}details.toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.toggle>summary.hideme::after{content:"";}details.toggle>summary:focus::before,details.toggle>summary:hover::before{opacity:1;}details.toggle>summary:focus-visible::before{outline:1px dotted #000;outline-offset:1px;}details.non-exhaustive{margin-bottom:8px;}details.toggle>summary.hideme::before{position:relative;}details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:4px;}.impl-items>details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.toggle[open] >summary.hideme{position:absolute;}details.toggle[open] >summary.hideme>span{display:none;}details.toggle[open] >summary::before{background:url('data:image/svg+xml,') no-repeat top left;}details.toggle[open] >summary::after{content:"Collapse";}.docblock summary>*{display:inline-block;}.docblock>.example-wrap:first-child .tooltip{margin-top:16px;}@media (max-width:700px){*[id]{scroll-margin-top:45px;}.rustdoc{display:block;}main{padding-left:15px;padding-top:0px;}.main-heading{flex-direction:column;}.out-of-band{text-align:left;margin-left:initial;padding:initial;}.out-of-band .since::before{content:"Since ";}.sidebar .logo-container,.sidebar .location{display:none;}.sidebar{position:fixed;top:45px;left:-1000px;z-index:11;height:calc(100vh - 45px);width:200px;}.source main,.rustdoc.source .sidebar{top:0;padding:0;height:100vh;border:0;}.sidebar.shown,.source-sidebar-expanded .source .sidebar,.rustdoc:not(.source) .sidebar:focus-within{left:0;}.mobile-topbar h2{padding-bottom:0;margin:auto 0.5em auto auto;overflow:hidden;font-size:24px;}.mobile-topbar h2 a{display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;}.mobile-topbar .logo-container>img{max-width:35px;max-height:35px;margin:5px 0 5px 20px;}.mobile-topbar{display:flex;flex-direction:row;position:sticky;z-index:10;font-size:2rem;height:45px;width:100%;left:0;top:0;}.sidebar-menu-toggle{width:45px;font-size:32px;border:none;color:var(--main-color);}.sidebar-elems{margin-top:1em;}.anchor{display:none !important;}#search-tabs .count{display:block;}#main-content>details.toggle>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}#src-sidebar-toggle{position:fixed;left:1px;top:100px;width:30px;font-size:1.5rem;padding:0;z-index:10;border-top-right-radius:3px;border-bottom-right-radius:3px;border:1px solid;border-left:0;}.source-sidebar-expanded #src-sidebar-toggle{left:unset;top:unset;width:unset;border-top-right-radius:unset;border-bottom-right-radius:unset;position:sticky;border:0;border-bottom:1px solid;}#copy-path,#help-button{display:none;}.item-table,.item-row,.item-table>li,.item-table>li>div,.search-results>a,.search-results>a>div{display:block;}.search-results>a{padding:5px 0px;}.search-results>a>div.desc,.item-table>li>div.desc{padding-left:2em;}.search-results .result-name{display:block;}.search-results .result-name .typename{width:initial;margin-right:0;}.search-results .result-name .typename,.search-results .result-name .path{display:inline;}.source-sidebar-expanded .source .sidebar{max-width:100vw;width:100vw;}details.toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.toggle>summary:not(.hideme)::before,#main-content>details.toggle:not(.top-doc)>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}.impl-items>.item-info{margin-left:34px;}.source nav.sub{margin:0;padding:var(--nav-sub-mobile-padding);}}@media (min-width:701px){.scraped-example-title{position:absolute;z-index:10;background:var(--main-background-color);bottom:8px;right:5px;padding:2px 4px;box-shadow:0 0 4px var(--main-background-color);}}@media print{nav.sidebar,nav.sub,.out-of-band,a.srclink,#copy-path,details.toggle[open] >summary::before,details.toggle>summary::before,details.toggle.top-doc>summary{display:none;}.docblock{margin-left:0;}main{padding:10px;}}@media (max-width:464px){.docblock{margin-left:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}nav.sub{flex-direction:column;}.search-form{align-self:stretch;}.sub-logo-container>img{height:35px;width:35px;margin-bottom:var(--nav-sub-mobile-padding);}}.variant,.implementors-toggle>summary,.impl,#implementors-list>.docblock,.impl-items>section,.impl-items>.toggle>summary,.methods>section,.methods>.toggle>summary{margin-bottom:0.75em;}.variants>.docblock,.implementors-toggle>.docblock,.impl-items>.toggle[open]:not(:last-child),.methods>.toggle[open]:not(:last-child),.implementors-toggle[open]:not(:last-child){margin-bottom:2em;}#trait-implementations-list .impl-items>.toggle:not(:last-child),#synthetic-implementations-list .impl-items>.toggle:not(:last-child),#blanket-implementations-list .impl-items>.toggle:not(:last-child){margin-bottom:1em;}.scraped-example-list .scrape-help{margin-left:10px;padding:0 4px;font-weight:normal;font-size:12px;position:relative;bottom:1px;border:1px solid var(--scrape-example-help-border-color);border-radius:50px;color:var(--scrape-example-help-color);}.scraped-example-list .scrape-help:hover{border-color:var(--scrape-example-help-hover-border-color);color:var(--scrape-example-help-hover-color);}.scraped-example{position:relative;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper{max-height:calc(1.5em * 5 + 10px);}.scraped-example:not(.expanded) .code-wrapper pre{overflow-y:hidden;padding-bottom:0;max-height:calc(1.5em * 5 + 10px);}.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper,.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper pre{max-height:calc(1.5em * 10 + 10px);}.scraped-example .code-wrapper .next,.scraped-example .code-wrapper .prev,.scraped-example .code-wrapper .expand{color:var(--main-color);position:absolute;top:0.25em;z-index:1;padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.scraped-example .code-wrapper .prev{right:2.25em;}.scraped-example .code-wrapper .next{right:1.25em;}.scraped-example .code-wrapper .expand{right:0.25em;}.scraped-example:not(.expanded) .code-wrapper::before,.scraped-example:not(.expanded) .code-wrapper::after{content:" ";width:100%;height:5px;position:absolute;z-index:1;}.scraped-example:not(.expanded) .code-wrapper::before{top:0;background:linear-gradient(to bottom,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example:not(.expanded) .code-wrapper::after{bottom:0;background:linear-gradient(to top,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example .code-wrapper .example-wrap{width:100%;overflow-y:hidden;margin-bottom:0;}.scraped-example:not(.expanded) .code-wrapper .example-wrap{overflow-x:hidden;}.scraped-example .example-wrap .rust span.highlight{background:var(--scrape-example-code-line-highlight);}.scraped-example .example-wrap .rust span.highlight.focus{background:var(--scrape-example-code-line-highlight-focus);}.more-examples-toggle{max-width:calc(100% + 25px);margin-top:10px;margin-left:-25px;}.more-examples-toggle .hide-more{margin-left:25px;cursor:pointer;}.more-scraped-examples{margin-left:25px;position:relative;}.toggle-line{position:absolute;top:5px;bottom:0;right:calc(100% + 10px);padding:0 4px;cursor:pointer;}.toggle-line-inner{min-width:2px;height:100%;background:var(--scrape-example-toggle-line-background);}.toggle-line:hover .toggle-line-inner{background:var(--scrape-example-toggle-line-hover-background);}.more-scraped-examples .scraped-example,.example-links{margin-top:20px;}.more-scraped-examples .scraped-example:first-child{margin-top:5px;}.example-links ul{margin-bottom:0;} \ No newline at end of file diff --git a/docs/doc/static.files/scrape-examples-ef1e698c1d417c0c.js b/docs/doc/static.files/scrape-examples-ef1e698c1d417c0c.js new file mode 100644 index 0000000..ba830e3 --- /dev/null +++ b/docs/doc/static.files/scrape-examples-ef1e698c1d417c0c.js @@ -0,0 +1 @@ +"use strict";(function(){const DEFAULT_MAX_LINES=5;const HIDDEN_MAX_LINES=10;function scrollToLoc(elt,loc,isHidden){const lines=elt.querySelector(".src-line-numbers");let scrollOffset;const maxLines=isHidden?HIDDEN_MAX_LINES:DEFAULT_MAX_LINES;if(loc[1]-loc[0]>maxLines){const line=Math.max(0,loc[0]-1);scrollOffset=lines.children[line].offsetTop}else{const wrapper=elt.querySelector(".code-wrapper");const halfHeight=wrapper.offsetHeight/2;const offsetTop=lines.children[loc[0]].offsetTop;const lastLine=lines.children[loc[1]];const offsetBot=lastLine.offsetTop+lastLine.offsetHeight;const offsetMid=(offsetTop+offsetBot)/2;scrollOffset=offsetMid-halfHeight}lines.scrollTo(0,scrollOffset);elt.querySelector(".rust").scrollTo(0,scrollOffset)}function updateScrapedExample(example,isHidden){const locs=JSON.parse(example.attributes.getNamedItem("data-locs").textContent);let locIndex=0;const highlights=Array.prototype.slice.call(example.querySelectorAll(".highlight"));const link=example.querySelector(".scraped-example-title a");if(locs.length>1){const onChangeLoc=changeIndex=>{removeClass(highlights[locIndex],"focus");changeIndex();scrollToLoc(example,locs[locIndex][0],isHidden);addClass(highlights[locIndex],"focus");const url=locs[locIndex][1];const title=locs[locIndex][2];link.href=url;link.innerHTML=title};example.querySelector(".prev").addEventListener("click",()=>{onChangeLoc(()=>{locIndex=(locIndex-1+locs.length)%locs.length})});example.querySelector(".next").addEventListener("click",()=>{onChangeLoc(()=>{locIndex=(locIndex+1)%locs.length})})}const expandButton=example.querySelector(".expand");if(expandButton){expandButton.addEventListener("click",()=>{if(hasClass(example,"expanded")){removeClass(example,"expanded");scrollToLoc(example,locs[0][0],isHidden)}else{addClass(example,"expanded")}})}scrollToLoc(example,locs[0][0],isHidden)}const firstExamples=document.querySelectorAll(".scraped-example-list > .scraped-example");onEachLazy(firstExamples,el=>updateScrapedExample(el,false));onEachLazy(document.querySelectorAll(".more-examples-toggle"),toggle=>{onEachLazy(toggle.querySelectorAll(".toggle-line, .hide-more"),button=>{button.addEventListener("click",()=>{toggle.open=false})});const moreExamples=toggle.querySelectorAll(".scraped-example");toggle.querySelector("summary").addEventListener("click",()=>{setTimeout(()=>{onEachLazy(moreExamples,el=>updateScrapedExample(el,true))})},{once:true})})})() \ No newline at end of file diff --git a/docs/doc/static.files/search-f6292fe389d70017.js b/docs/doc/static.files/search-f6292fe389d70017.js new file mode 100644 index 0000000..c91355a --- /dev/null +++ b/docs/doc/static.files/search-f6292fe389d70017.js @@ -0,0 +1,5 @@ +"use strict";(function(){const itemTypes=["mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","primitive","associatedtype","constant","associatedconstant","union","foreigntype","keyword","existential","attr","derive","traitalias",];const longItemTypes=["module","extern crate","re-export","struct","enum","function","type alias","static","trait","","trait method","method","struct field","enum variant","macro","primitive type","assoc type","constant","assoc const","union","foreign type","keyword","existential type","attribute macro","derive macro","trait alias",];const TY_PRIMITIVE=itemTypes.indexOf("primitive");const TY_KEYWORD=itemTypes.indexOf("keyword");const ROOT_PATH=typeof window!=="undefined"?window.rootPath:"../";function hasOwnPropertyRustdoc(obj,property){return Object.prototype.hasOwnProperty.call(obj,property)}function printTab(nb){let iter=0;let foundCurrentTab=false;let foundCurrentResultSet=false;onEachLazy(document.getElementById("search-tabs").childNodes,elem=>{if(nb===iter){addClass(elem,"selected");foundCurrentTab=true}else{removeClass(elem,"selected")}iter+=1});const isTypeSearch=(nb>0||iter===1);iter=0;onEachLazy(document.getElementById("results").childNodes,elem=>{if(nb===iter){addClass(elem,"active");foundCurrentResultSet=true}else{removeClass(elem,"active")}iter+=1});if(foundCurrentTab&&foundCurrentResultSet){searchState.currentTab=nb;const correctionsElem=document.getElementsByClassName("search-corrections");if(isTypeSearch){removeClass(correctionsElem[0],"hidden")}else{addClass(correctionsElem[0],"hidden")}}else if(nb!==0){printTab(0)}}const editDistanceState={current:[],prev:[],prevPrev:[],calculate:function calculate(a,b,limit){if(a.lengthlimit){return limit+1}while(b.length>0&&b[0]===a[0]){a=a.substring(1);b=b.substring(1)}while(b.length>0&&b[b.length-1]===a[a.length-1]){a=a.substring(0,a.length-1);b=b.substring(0,b.length-1)}if(b.length===0){return minDist}const aLength=a.length;const bLength=b.length;for(let i=0;i<=bLength;++i){this.current[i]=0;this.prev[i]=i;this.prevPrev[i]=Number.MAX_VALUE}for(let i=1;i<=aLength;++i){this.current[0]=i;const aIdx=i-1;for(let j=1;j<=bLength;++j){const bIdx=j-1;const substitutionCost=a[aIdx]===b[bIdx]?0:1;this.current[j]=Math.min(this.prev[j]+1,this.current[j-1]+1,this.prev[j-1]+substitutionCost);if((i>1)&&(j>1)&&(a[aIdx]===b[bIdx-1])&&(a[aIdx-1]===b[bIdx])){this.current[j]=Math.min(this.current[j],this.prevPrev[j-2]+1)}}const prevPrevTmp=this.prevPrev;this.prevPrev=this.prev;this.prev=this.current;this.current=prevPrevTmp}const distance=this.prev[bLength];return distance<=limit?distance:(limit+1)},};function editDistance(a,b,limit){return editDistanceState.calculate(a,b,limit)}function initSearch(rawSearchIndex){const MAX_RESULTS=200;const NO_TYPE_FILTER=-1;let searchIndex;let currentResults;let typeNameIdMap;const ALIASES=new Map();let typeNameIdOfArray;let typeNameIdOfSlice;let typeNameIdOfArrayOrSlice;function buildTypeMapIndex(name){if(name===""||name===null){return-1}if(typeNameIdMap.has(name)){return typeNameIdMap.get(name)}else{const id=typeNameIdMap.size;typeNameIdMap.set(name,id);return id}}function isWhitespace(c){return" \t\n\r".indexOf(c)!==-1}function isSpecialStartCharacter(c){return"<\"".indexOf(c)!==-1}function isEndCharacter(c){return",>-]".indexOf(c)!==-1}function isStopCharacter(c){return isEndCharacter(c)}function isErrorCharacter(c){return"()".indexOf(c)!==-1}function itemTypeFromName(typename){const index=itemTypes.findIndex(i=>i===typename);if(index<0){throw["Unknown type filter ",typename]}return index}function getStringElem(query,parserState,isInGenerics){if(isInGenerics){throw["Unexpected ","\""," in generics"]}else if(query.literalSearch){throw["Cannot have more than one literal search element"]}else if(parserState.totalElems-parserState.genericsElems>0){throw["Cannot use literal search when there is more than one element"]}parserState.pos+=1;const start=parserState.pos;const end=getIdentEndPosition(parserState);if(parserState.pos>=parserState.length){throw["Unclosed ","\""]}else if(parserState.userQuery[end]!=="\""){throw["Unexpected ",parserState.userQuery[end]," in a string element"]}else if(start===end){throw["Cannot have empty string element"]}parserState.pos+=1;query.literalSearch=true}function isPathStart(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="::"}function isReturnArrow(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="->"}function isIdentCharacter(c){return(c==="_"||(c>="0"&&c<="9")||(c>="a"&&c<="z")||(c>="A"&&c<="Z"))}function isSeparatorCharacter(c){return c===","}function isPathSeparator(c){return c===":"||isWhitespace(c)}function prevIs(parserState,lookingFor){let pos=parserState.pos;while(pos>0){const c=parserState.userQuery[pos-1];if(c===lookingFor){return true}else if(!isWhitespace(c)){break}pos-=1}return false}function isLastElemGeneric(elems,parserState){return(elems.length>0&&elems[elems.length-1].generics.length>0)||prevIs(parserState,">")}function skipWhitespace(parserState){while(parserState.pos0){throw["Cannot have more than one element if you use quotes"]}const typeFilter=parserState.typeFilter;parserState.typeFilter=null;if(name==="!"){if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive never type ","!"," and ",typeFilter," both specified",]}if(generics.length!==0){throw["Never type ","!"," does not accept generic parameters",]}return{name:"never",id:-1,fullPath:["never"],pathWithoutLast:[],pathLast:"never",generics:[],typeFilter:"primitive",}}if(path.startsWith("::")){throw["Paths cannot start with ","::"]}else if(path.endsWith("::")){throw["Paths cannot end with ","::"]}else if(path.includes("::::")){throw["Unexpected ","::::"]}else if(path.includes(" ::")){throw["Unexpected "," ::"]}else if(path.includes(":: ")){throw["Unexpected ",":: "]}const pathSegments=path.split(/::|\s+/);if(pathSegments.length===0||(pathSegments.length===1&&pathSegments[0]==="")){if(generics.length>0||prevIs(parserState,">")){throw["Found generics without a path"]}else{throw["Unexpected ",parserState.userQuery[parserState.pos]]}}for(const[i,pathSegment]of pathSegments.entries()){if(pathSegment==="!"){if(i!==0){throw["Never type ","!"," is not associated item"]}pathSegments[i]="never"}}parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}return{name:name.trim(),id:-1,fullPath:pathSegments,pathWithoutLast:pathSegments.slice(0,pathSegments.length-1),pathLast:pathSegments[pathSegments.length-1],generics:generics,typeFilter,}}function getIdentEndPosition(parserState){const start=parserState.pos;let end=parserState.pos;let foundExclamation=-1;while(parserState.pos=end){throw["Found generics without a path"]}parserState.pos+=1;getItemsBefore(query,parserState,generics,">")}if(isStringElem){skipWhitespace(parserState)}if(start>=end&&generics.length===0){return}elems.push(createQueryElement(query,parserState,parserState.userQuery.slice(start,end),generics,isInGenerics))}}function getItemsBefore(query,parserState,elems,endChar){let foundStopChar=true;let start=parserState.pos;const oldTypeFilter=parserState.typeFilter;parserState.typeFilter=null;let extra="";if(endChar===">"){extra="<"}else if(endChar==="]"){extra="["}else if(endChar===""){extra="->"}else{extra=endChar}while(parserState.pos"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(endChar!==""){throw["Expected ",","," or ",endChar,...extra,", found ",c,]}throw["Expected ",",",...extra,", found ",c,]}const posBefore=parserState.pos;start=parserState.pos;getNextElem(query,parserState,elems,endChar!=="");if(endChar!==""&&parserState.pos>=parserState.length){throw["Unclosed ",extra]}if(posBefore===parserState.pos){parserState.pos+=1}foundStopChar=false}if(parserState.pos>=parserState.length&&endChar!==""){throw["Unclosed ",extra]}parserState.pos+=1;parserState.typeFilter=oldTypeFilter}function checkExtraTypeFilterCharacters(start,parserState){const query=parserState.userQuery.slice(start,parserState.pos).trim();for(const c in query){if(!isIdentCharacter(query[c])){throw["Unexpected ",query[c]," in type filter (before ",":",")",]}}}function parseInput(query,parserState){let foundStopChar=true;let start=parserState.pos;while(parserState.pos"){if(isReturnArrow(parserState)){break}throw["Unexpected ",c," (did you mean ","->","?)"]}throw["Unexpected ",c]}else if(c===":"&&!isPathStart(parserState)){if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}else if(query.elems.length===0){throw["Expected type filter before ",":"]}else if(query.literalSearch){throw["Cannot use quotes on type filter"]}const typeFilterElem=query.elems.pop();checkExtraTypeFilterCharacters(start,parserState);parserState.typeFilter=typeFilterElem.name;parserState.pos+=1;parserState.totalElems-=1;query.literalSearch=false;foundStopChar=true;continue}else if(isWhitespace(c)){skipWhitespace(parserState);continue}if(!foundStopChar){let extra="";if(isLastElemGeneric(query.elems,parserState)){extra=[" after ",">"]}else if(prevIs(parserState,"\"")){throw["Cannot have more than one element if you use quotes"]}if(parserState.typeFilter!==null){throw["Expected ",","," or ","->",...extra,", found ",c,]}throw["Expected ",",",", ",":"," or ","->",...extra,", found ",c,]}const before=query.elems.length;start=parserState.pos;getNextElem(query,parserState,query.elems,false);if(query.elems.length===before){parserState.pos+=1}foundStopChar=false}if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}while(parserState.pos"]}break}else{parserState.pos+=1}}}function newParsedQuery(userQuery){return{original:userQuery,userQuery:userQuery.toLowerCase(),elems:[],returned:[],foundElems:0,literalSearch:false,error:null,correction:null,}}function buildUrl(search,filterCrates){let extra="?search="+encodeURIComponent(search);if(filterCrates!==null){extra+="&filter-crate="+encodeURIComponent(filterCrates)}return getNakedUrl()+extra+window.location.hash}function getFilterCrates(){const elem=document.getElementById("crate-search");if(elem&&elem.value!=="all crates"&&hasOwnPropertyRustdoc(rawSearchIndex,elem.value)){return elem.value}return null}function parseQuery(userQuery){function convertTypeFilterOnElem(elem){if(elem.typeFilter!==null){let typeFilter=elem.typeFilter;if(typeFilter==="const"){typeFilter="constant"}elem.typeFilter=itemTypeFromName(typeFilter)}else{elem.typeFilter=NO_TYPE_FILTER}for(const elem2 of elem.generics){convertTypeFilterOnElem(elem2)}}userQuery=userQuery.trim();const parserState={length:userQuery.length,pos:0,totalElems:0,genericsElems:0,typeFilter:null,userQuery:userQuery.toLowerCase(),};let query=newParsedQuery(userQuery);try{parseInput(query,parserState);for(const elem of query.elems){convertTypeFilterOnElem(elem)}for(const elem of query.returned){convertTypeFilterOnElem(elem)}}catch(err){query=newParsedQuery(userQuery);query.error=err;return query}if(!query.literalSearch){query.literalSearch=parserState.totalElems>1}query.foundElems=query.elems.length+query.returned.length;return query}function createQueryResults(results_in_args,results_returned,results_others,parsedQuery){return{"in_args":results_in_args,"returned":results_returned,"others":results_others,"query":parsedQuery,}}function execQuery(parsedQuery,searchWords,filterCrates,currentCrate){const results_others=new Map(),results_in_args=new Map(),results_returned=new Map();function transformResults(results){const duplicates=new Set();const out=[];for(const result of results){if(result.id>-1){const obj=searchIndex[result.id];obj.dist=result.dist;const res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=obj.displayPath+obj.name;obj.fullPath+="|"+obj.ty;if(duplicates.has(obj.fullPath)){continue}duplicates.add(obj.fullPath);obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break}}}return out}function sortResults(results,isType,preferredCrate){if(results.size===0){return[]}const userQuery=parsedQuery.userQuery;const result_list=[];for(const result of results.values()){result.word=searchWords[result.id];result.item=searchIndex[result.id]||{};result_list.push(result)}result_list.sort((aaa,bbb)=>{let a,b;a=(aaa.word!==userQuery);b=(bbb.word!==userQuery);if(a!==b){return a-b}a=(aaa.index<0);b=(bbb.index<0);if(a!==b){return a-b}a=aaa.path_dist;b=bbb.path_dist;if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}a=(aaa.dist);b=(bbb.dist);if(a!==b){return a-b}a=aaa.item.deprecated;b=bbb.item.deprecated;if(a!==b){return a-b}a=(aaa.item.crate!==preferredCrate);b=(bbb.item.crate!==preferredCrate);if(a!==b){return a-b}a=aaa.word.length;b=bbb.word.length;if(a!==b){return a-b}a=aaa.word;b=bbb.word;if(a!==b){return(a>b?+1:-1)}if((aaa.item.ty===TY_PRIMITIVE&&bbb.item.ty!==TY_KEYWORD)||(aaa.item.ty===TY_KEYWORD&&bbb.item.ty!==TY_PRIMITIVE)){return-1}if((bbb.item.ty===TY_PRIMITIVE&&aaa.item.ty!==TY_PRIMITIVE)||(bbb.item.ty===TY_KEYWORD&&aaa.item.ty!==TY_KEYWORD)){return 1}a=(aaa.item.desc==="");b=(bbb.item.desc==="");if(a!==b){return a-b}a=aaa.item.ty;b=bbb.item.ty;if(a!==b){return a-b}a=aaa.item.path;b=bbb.item.path;if(a!==b){return(a>b?+1:-1)}return 0});let nameSplit=null;if(parsedQuery.elems.length===1){const hasPath=typeof parsedQuery.elems[0].path==="undefined";nameSplit=hasPath?null:parsedQuery.elems[0].path}for(const result of result_list){if(result.dontValidate){continue}const name=result.item.name.toLowerCase(),path=result.item.path.toLowerCase(),parent=result.item.parent;if(!isType&&!validateResult(name,path,nameSplit,parent)){result.id=-1}}return transformResults(result_list)}function checkGenerics(fnType,queryElem){return unifyFunctionTypes(fnType.generics,queryElem.generics)}function unifyFunctionTypes(fnTypes,queryElems){if(queryElems.length===0){return true}if(!fnTypes||fnTypes.length===0){return false}const queryElemSet=new Map();const addQueryElemToQueryElemSet=function addQueryElemToQueryElemSet(queryElem){let currentQueryElemList;if(queryElemSet.has(queryElem.id)){currentQueryElemList=queryElemSet.get(queryElem.id)}else{currentQueryElemList=[];queryElemSet.set(queryElem.id,currentQueryElemList)}currentQueryElemList.push(queryElem)};for(const queryElem of queryElems){addQueryElemToQueryElemSet(queryElem)}const fnTypeSet=new Map();const addFnTypeToFnTypeSet=function addFnTypeToFnTypeSet(fnType){const queryContainsArrayOrSliceElem=queryElemSet.has(typeNameIdOfArrayOrSlice);if(fnType.id===-1||!(queryElemSet.has(fnType.id)||(fnType.id===typeNameIdOfSlice&&queryContainsArrayOrSliceElem)||(fnType.id===typeNameIdOfArray&&queryContainsArrayOrSliceElem))){for(const innerFnType of fnType.generics){addFnTypeToFnTypeSet(innerFnType)}return}let currentQueryElemList=queryElemSet.get(fnType.id)||[];let matchIdx=currentQueryElemList.findIndex(queryElem=>{return typePassesFilter(queryElem.typeFilter,fnType.ty)&&checkGenerics(fnType,queryElem)});if(matchIdx===-1&&(fnType.id===typeNameIdOfSlice||fnType.id===typeNameIdOfArray)&&queryContainsArrayOrSliceElem){currentQueryElemList=queryElemSet.get(typeNameIdOfArrayOrSlice)||[];matchIdx=currentQueryElemList.findIndex(queryElem=>{return typePassesFilter(queryElem.typeFilter,fnType.ty)&&checkGenerics(fnType,queryElem)})}if(matchIdx===-1){for(const innerFnType of fnType.generics){addFnTypeToFnTypeSet(innerFnType)}return}let currentFnTypeList;if(fnTypeSet.has(fnType.id)){currentFnTypeList=fnTypeSet.get(fnType.id)}else{currentFnTypeList=[];fnTypeSet.set(fnType.id,currentFnTypeList)}currentFnTypeList.push(fnType)};for(const fnType of fnTypes){addFnTypeToFnTypeSet(fnType)}const doHandleQueryElemList=(currentFnTypeList,queryElemList)=>{if(queryElemList.length===0){return true}const queryElem=queryElemList.pop();const l=currentFnTypeList.length;for(let i=0;i{if(!fnTypeSet.has(id)){if(id===typeNameIdOfArrayOrSlice){return handleQueryElemList(typeNameIdOfSlice,queryElemList)||handleQueryElemList(typeNameIdOfArray,queryElemList)}return false}const currentFnTypeList=fnTypeSet.get(id);if(currentFnTypeList.length0?checkIfInList(row.generics,elem):false}const matchesExact=row.id===elem.id;const matchesArrayOrSlice=elem.id===typeNameIdOfArrayOrSlice&&(row.id===typeNameIdOfSlice||row.id===typeNameIdOfArray);if((matchesExact||matchesArrayOrSlice)&&typePassesFilter(elem.typeFilter,row.ty)){if(elem.generics.length>0){return checkGenerics(row,elem)}return true}return checkIfInList(row.generics,elem)}function checkPath(contains,ty,maxEditDistance){if(contains.length===0){return 0}let ret_dist=maxEditDistance+1;const path=ty.path.split("::");if(ty.parent&&ty.parent.name){path.push(ty.parent.name.toLowerCase())}const length=path.length;const clength=contains.length;if(clength>length){return maxEditDistance+1}for(let i=0;ilength){break}let dist_total=0;let aborted=false;for(let x=0;xmaxEditDistance){aborted=true;break}dist_total+=dist}if(!aborted){ret_dist=Math.min(ret_dist,Math.round(dist_total/clength))}}return ret_dist}function typePassesFilter(filter,type){if(filter<=NO_TYPE_FILTER||filter===type)return true;const name=itemTypes[type];switch(itemTypes[filter]){case"constant":return name==="associatedconstant";case"fn":return name==="method"||name==="tymethod";case"type":return name==="primitive"||name==="associatedtype";case"trait":return name==="traitalias"}return false}function createAliasFromItem(item){return{crate:item.crate,name:item.name,path:item.path,desc:item.desc,ty:item.ty,parent:item.parent,type:item.type,is_alias:true,deprecated:item.deprecated,}}function handleAliases(ret,query,filterCrates,currentCrate){const lowerQuery=query.toLowerCase();const aliases=[];const crateAliases=[];if(filterCrates!==null){if(ALIASES.has(filterCrates)&&ALIASES.get(filterCrates).has(lowerQuery)){const query_aliases=ALIASES.get(filterCrates).get(lowerQuery);for(const alias of query_aliases){aliases.push(createAliasFromItem(searchIndex[alias]))}}}else{for(const[crate,crateAliasesIndex]of ALIASES){if(crateAliasesIndex.has(lowerQuery)){const pushTo=crate===currentCrate?crateAliases:aliases;const query_aliases=crateAliasesIndex.get(lowerQuery);for(const alias of query_aliases){pushTo.push(createAliasFromItem(searchIndex[alias]))}}}}const sortFunc=(aaa,bbb)=>{if(aaa.path{alias.alias=query;const res=buildHrefAndPath(alias);alias.displayPath=pathSplitter(res[0]);alias.fullPath=alias.displayPath+alias.name;alias.href=res[1];ret.others.unshift(alias);if(ret.others.length>MAX_RESULTS){ret.others.pop()}};aliases.forEach(pushFunc);crateAliases.forEach(pushFunc)}function addIntoResults(results,fullId,id,index,dist,path_dist,maxEditDistance){const inBounds=dist<=maxEditDistance||index!==-1;if(dist===0||(!parsedQuery.literalSearch&&inBounds)){if(results.has(fullId)){const result=results.get(fullId);if(result.dontValidate||result.dist<=dist){return}}results.set(fullId,{id:id,index:index,dontValidate:parsedQuery.literalSearch,dist:dist,path_dist:path_dist,})}}function handleSingleArg(row,pos,elem,results_others,results_in_args,results_returned,maxEditDistance){if(!row||(filterCrates!==null&&row.crate!==filterCrates)){return}let index=-1,path_dist=0;const fullId=row.id;const searchWord=searchWords[pos];const in_args=row.type&&row.type.inputs&&checkIfInList(row.type.inputs,elem);if(in_args){addIntoResults(results_in_args,fullId,pos,-1,0,0,maxEditDistance)}const returned=row.type&&row.type.output&&checkIfInList(row.type.output,elem);if(returned){addIntoResults(results_returned,fullId,pos,-1,0,0,maxEditDistance)}if(!typePassesFilter(elem.typeFilter,row.ty)){return}const row_index=row.normalizedName.indexOf(elem.pathLast);const word_index=searchWord.indexOf(elem.pathLast);if(row_index===-1){index=word_index}else if(word_index===-1){index=row_index}else if(word_index1){path_dist=checkPath(elem.pathWithoutLast,row,maxEditDistance);if(path_dist>maxEditDistance){return}}if(parsedQuery.literalSearch){if(searchWord===elem.name){addIntoResults(results_others,fullId,pos,index,0,path_dist)}return}const dist=editDistance(searchWord,elem.pathLast,maxEditDistance);if(index===-1&&dist+path_dist>maxEditDistance){return}addIntoResults(results_others,fullId,pos,index,dist,path_dist,maxEditDistance)}function handleArgs(row,pos,results){if(!row||(filterCrates!==null&&row.crate!==filterCrates)||!row.type){return}if(!unifyFunctionTypes(row.type.inputs,parsedQuery.elems)){return}if(!unifyFunctionTypes(row.type.output,parsedQuery.returned)){return}addIntoResults(results,row.id,pos,0,0,0,Number.MAX_VALUE)}function innerRunQuery(){let elem,i,nSearchWords,in_returned,row;let queryLen=0;for(const elem of parsedQuery.elems){queryLen+=elem.name.length}for(const elem of parsedQuery.returned){queryLen+=elem.name.length}const maxEditDistance=Math.floor(queryLen/3);function convertNameToId(elem){if(typeNameIdMap.has(elem.name)){elem.id=typeNameIdMap.get(elem.name)}else if(!parsedQuery.literalSearch){let match=-1;let matchDist=maxEditDistance+1;let matchName="";for(const[name,id]of typeNameIdMap){const dist=editDistance(name,elem.name,maxEditDistance);if(dist<=matchDist&&dist<=maxEditDistance){if(dist===matchDist&&matchName>name){continue}match=id;matchDist=dist;matchName=name}}if(match!==-1){parsedQuery.correction=matchName}elem.id=match}for(const elem2 of elem.generics){convertNameToId(elem2)}}for(const elem of parsedQuery.elems){convertNameToId(elem)}for(const elem of parsedQuery.returned){convertNameToId(elem)}if(parsedQuery.foundElems===1){if(parsedQuery.elems.length===1){elem=parsedQuery.elems[0];for(i=0,nSearchWords=searchWords.length;i0){for(i=0,nSearchWords=searchWords.length;i-1||path.indexOf(key)>-1||(parent!==undefined&&parent.name!==undefined&&parent.name.toLowerCase().indexOf(key)>-1)||editDistance(name,key,maxEditDistance)<=maxEditDistance)){return false}}return true}function nextTab(direction){const next=(searchState.currentTab+direction+3)%searchState.focusedByTab.length;searchState.focusedByTab[searchState.currentTab]=document.activeElement;printTab(next);focusSearchResult()}function focusSearchResult(){const target=searchState.focusedByTab[searchState.currentTab]||document.querySelectorAll(".search-results.active a").item(0)||document.querySelectorAll("#search-tabs button").item(searchState.currentTab);searchState.focusedByTab[searchState.currentTab]=null;if(target){target.focus()}}function buildHrefAndPath(item){let displayPath;let href;const type=itemTypes[item.ty];const name=item.name;let path=item.path;if(type==="mod"){displayPath=path+"::";href=ROOT_PATH+path.replace(/::/g,"/")+"/"+name+"/index.html"}else if(type==="import"){displayPath=item.path+"::";href=ROOT_PATH+item.path.replace(/::/g,"/")+"/index.html#reexport."+name}else if(type==="primitive"||type==="keyword"){displayPath="";href=ROOT_PATH+path.replace(/::/g,"/")+"/"+type+"."+name+".html"}else if(type==="externcrate"){displayPath="";href=ROOT_PATH+name+"/index.html"}else if(item.parent!==undefined){const myparent=item.parent;let anchor="#"+type+"."+name;const parentType=itemTypes[myparent.ty];let pageType=parentType;let pageName=myparent.name;if(parentType==="primitive"){displayPath=myparent.name+"::"}else if(type==="structfield"&&parentType==="variant"){const enumNameIdx=item.path.lastIndexOf("::");const enumName=item.path.substr(enumNameIdx+2);path=item.path.substr(0,enumNameIdx);displayPath=path+"::"+enumName+"::"+myparent.name+"::";anchor="#variant."+myparent.name+".field."+name;pageType="enum";pageName=enumName}else{displayPath=path+"::"+myparent.name+"::"}href=ROOT_PATH+path.replace(/::/g,"/")+"/"+pageType+"."+pageName+".html"+anchor}else{displayPath=item.path+"::";href=ROOT_PATH+item.path.replace(/::/g,"/")+"/"+type+"."+name+".html"}return[displayPath,href]}function pathSplitter(path){const tmp=""+path.replace(/::/g,"::");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}function addTab(array,query,display){let extraClass="";if(display===true){extraClass=" active"}const output=document.createElement("div");let length=0;if(array.length>0){output.className="search-results "+extraClass;array.forEach(item=>{const name=item.name;const type=itemTypes[item.ty];const longType=longItemTypes[item.ty];const typeName=longType.length!==0?`${longType}`:"?";length+=1;const link=document.createElement("a");link.className="result-"+type;link.href=item.href;const resultName=document.createElement("div");resultName.className="result-name";if(item.is_alias){const alias=document.createElement("span");alias.className="alias";const bold=document.createElement("b");bold.innerText=item.alias;alias.appendChild(bold);alias.insertAdjacentHTML("beforeend"," - see ");resultName.appendChild(alias)}resultName.insertAdjacentHTML("beforeend",`\ +${typeName}\ +
\ + ${item.displayPath}${name}\ +
`);link.appendChild(resultName);const description=document.createElement("div");description.className="desc";description.insertAdjacentHTML("beforeend",item.desc);link.appendChild(description);output.appendChild(link)})}else if(query.error===null){output.className="search-failed"+extraClass;output.innerHTML="No results :(
"+"Try on DuckDuckGo?

"+"Or try looking in one of these:"}return[output,length]}function makeTabHeader(tabNb,text,nbElems){if(searchState.currentTab===tabNb){return""}return""}function showResults(results,go_to_first,filterCrates){const search=searchState.outputElement();if(go_to_first||(results.others.length===1&&getSettingValue("go-to-only-result")==="true")){window.onunload=()=>{};searchState.removeQueryParameters();const elem=document.createElement("a");elem.href=results.others[0].href;removeClass(elem,"active");document.body.appendChild(elem);elem.click();return}if(results.query===undefined){results.query=parseQuery(searchState.input.value)}currentResults=results.query.userQuery;const ret_others=addTab(results.others,results.query,true);const ret_in_args=addTab(results.in_args,results.query,false);const ret_returned=addTab(results.returned,results.query,false);let currentTab=searchState.currentTab;if((currentTab===0&&ret_others[1]===0)||(currentTab===1&&ret_in_args[1]===0)||(currentTab===2&&ret_returned[1]===0)){if(ret_others[1]!==0){currentTab=0}else if(ret_in_args[1]!==0){currentTab=1}else if(ret_returned[1]!==0){currentTab=2}}let crates="";const crates_list=Object.keys(rawSearchIndex);if(crates_list.length>1){crates=" in 
"}let output=`

Results${crates}

`;if(results.query.error!==null){const error=results.query.error;error.forEach((value,index)=>{value=value.split("<").join("<").split(">").join(">");if(index%2!==0){error[index]=`${value.replaceAll(" ", " ")}`}else{error[index]=value}});output+=`

Query parser error: "${error.join("")}".

`;output+="
"+makeTabHeader(0,"In Names",ret_others[1])+"
";currentTab=0}else if(results.query.foundElems<=1&&results.query.returned.length===0){output+="
"+makeTabHeader(0,"In Names",ret_others[1])+makeTabHeader(1,"In Parameters",ret_in_args[1])+makeTabHeader(2,"In Return Types",ret_returned[1])+"
"}else{const signatureTabTitle=results.query.elems.length===0?"In Function Return Types":results.query.returned.length===0?"In Function Parameters":"In Function Signatures";output+="
"+makeTabHeader(0,signatureTabTitle,ret_others[1])+"
";currentTab=0}if(results.query.correction!==null){const orig=results.query.returned.length>0?results.query.returned[0].name:results.query.elems[0].name;output+="

"+`Type "${orig}" not found. `+"Showing results for closest type name "+`"${results.query.correction}" instead.

`}const resultsElem=document.createElement("div");resultsElem.id="results";resultsElem.appendChild(ret_others[0]);resultsElem.appendChild(ret_in_args[0]);resultsElem.appendChild(ret_returned[0]);search.innerHTML=output;const crateSearch=document.getElementById("crate-search");if(crateSearch){crateSearch.addEventListener("input",updateCrate)}search.appendChild(resultsElem);searchState.showResults(search);const elems=document.getElementById("search-tabs").childNodes;searchState.focusedByTab=[];let i=0;for(const elem of elems){const j=i;elem.onclick=()=>printTab(j);searchState.focusedByTab.push(null);i+=1}printTab(currentTab)}function updateSearchHistory(url){if(!browserSupportsHistoryApi()){return}const params=searchState.getQueryStringParams();if(!history.state&&!params.search){history.pushState(null,"",url)}else{history.replaceState(null,"",url)}}function search(e,forced){if(e){e.preventDefault()}const query=parseQuery(searchState.input.value.trim());let filterCrates=getFilterCrates();if(!forced&&query.userQuery===currentResults){if(query.userQuery.length>0){putBackSearch()}return}searchState.setLoadingSearch();const params=searchState.getQueryStringParams();if(filterCrates===null&¶ms["filter-crate"]!==undefined){filterCrates=params["filter-crate"]}searchState.title="Results for "+query.original+" - Rust";updateSearchHistory(buildUrl(query.original,filterCrates));showResults(execQuery(query,searchWords,filterCrates,window.currentCrate),params.go_to_first,filterCrates)}function buildItemSearchTypeAll(types,lowercasePaths){const PATH_INDEX_DATA=0;const GENERICS_DATA=1;return types.map(type=>{let pathIndex,generics;if(typeof type==="number"){pathIndex=type;generics=[]}else{pathIndex=type[PATH_INDEX_DATA];generics=buildItemSearchTypeAll(type[GENERICS_DATA],lowercasePaths)}return{id:pathIndex===0?-1:buildTypeMapIndex(lowercasePaths[pathIndex-1].name),ty:pathIndex===0?null:lowercasePaths[pathIndex-1].ty,generics:generics,}})}function buildFunctionSearchType(functionSearchType,lowercasePaths){const INPUTS_DATA=0;const OUTPUT_DATA=1;if(functionSearchType===0){return null}let inputs,output;if(typeof functionSearchType[INPUTS_DATA]==="number"){const pathIndex=functionSearchType[INPUTS_DATA];inputs=[{id:pathIndex===0?-1:buildTypeMapIndex(lowercasePaths[pathIndex-1].name),ty:pathIndex===0?null:lowercasePaths[pathIndex-1].ty,generics:[],}]}else{inputs=buildItemSearchTypeAll(functionSearchType[INPUTS_DATA],lowercasePaths)}if(functionSearchType.length>1){if(typeof functionSearchType[OUTPUT_DATA]==="number"){const pathIndex=functionSearchType[OUTPUT_DATA];output=[{id:pathIndex===0?-1:buildTypeMapIndex(lowercasePaths[pathIndex-1].name),ty:pathIndex===0?null:lowercasePaths[pathIndex-1].ty,generics:[],}]}else{output=buildItemSearchTypeAll(functionSearchType[OUTPUT_DATA],lowercasePaths)}}else{output=[]}return{inputs,output,}}function buildIndex(rawSearchIndex){searchIndex=[];const searchWords=[];typeNameIdMap=new Map();const charA="A".charCodeAt(0);let currentIndex=0;let id=0;typeNameIdOfArray=buildTypeMapIndex("array");typeNameIdOfSlice=buildTypeMapIndex("slice");typeNameIdOfArrayOrSlice=buildTypeMapIndex("[]");for(const crate in rawSearchIndex){if(!hasOwnPropertyRustdoc(rawSearchIndex,crate)){continue}let crateSize=0;const crateCorpus=rawSearchIndex[crate];searchWords.push(crate);const crateRow={crate:crate,ty:1,name:crate,path:"",desc:crateCorpus.doc,parent:undefined,type:null,id:id,normalizedName:crate.indexOf("_")===-1?crate:crate.replace(/_/g,""),deprecated:null,};id+=1;searchIndex.push(crateRow);currentIndex+=1;const itemTypes=crateCorpus.t;const itemNames=crateCorpus.n;const itemPaths=new Map(crateCorpus.q);const itemDescs=crateCorpus.d;const itemParentIdxs=crateCorpus.i;const itemFunctionSearchTypes=crateCorpus.f;const deprecatedItems=new Set(crateCorpus.c);const paths=crateCorpus.p;const aliases=crateCorpus.a;const lowercasePaths=[];let len=paths.length;for(let i=0;i0?paths[itemParentIdxs[i]-1]:undefined,type:buildFunctionSearchType(itemFunctionSearchTypes[i],lowercasePaths),id:id,normalizedName:word.indexOf("_")===-1?word:word.replace(/_/g,""),deprecated:deprecatedItems.has(i),};id+=1;searchIndex.push(row);lastPath=row.path;crateSize+=1}if(aliases){const currentCrateAliases=new Map();ALIASES.set(crate,currentCrateAliases);for(const alias_name in aliases){if(!hasOwnPropertyRustdoc(aliases,alias_name)){continue}let currentNameAliases;if(currentCrateAliases.has(alias_name)){currentNameAliases=currentCrateAliases.get(alias_name)}else{currentNameAliases=[];currentCrateAliases.set(alias_name,currentNameAliases)}for(const local_alias of aliases[alias_name]){currentNameAliases.push(local_alias+currentIndex)}}}currentIndex+=crateSize}return searchWords}function onSearchSubmit(e){e.preventDefault();searchState.clearInputTimeout();search()}function putBackSearch(){const search_input=searchState.input;if(!searchState.input){return}if(search_input.value!==""&&!searchState.isDisplayed()){searchState.showResults();if(browserSupportsHistoryApi()){history.replaceState(null,"",buildUrl(search_input.value,getFilterCrates()))}document.title=searchState.title}}function registerSearchEvents(){const params=searchState.getQueryStringParams();if(searchState.input.value===""){searchState.input.value=params.search||""}const searchAfter500ms=()=>{searchState.clearInputTimeout();if(searchState.input.value.length===0){searchState.hideResults()}else{searchState.timeout=setTimeout(search,500)}};searchState.input.onkeyup=searchAfter500ms;searchState.input.oninput=searchAfter500ms;document.getElementsByClassName("search-form")[0].onsubmit=onSearchSubmit;searchState.input.onchange=e=>{if(e.target!==document.activeElement){return}searchState.clearInputTimeout();setTimeout(search,0)};searchState.input.onpaste=searchState.input.onchange;searchState.outputElement().addEventListener("keydown",e=>{if(e.altKey||e.ctrlKey||e.shiftKey||e.metaKey){return}if(e.which===38){const previous=document.activeElement.previousElementSibling;if(previous){previous.focus()}else{searchState.focus()}e.preventDefault()}else if(e.which===40){const next=document.activeElement.nextElementSibling;if(next){next.focus()}const rect=document.activeElement.getBoundingClientRect();if(window.innerHeight-rect.bottom{if(e.which===40){focusSearchResult();e.preventDefault()}});searchState.input.addEventListener("focus",()=>{putBackSearch()});searchState.input.addEventListener("blur",()=>{searchState.input.placeholder=searchState.input.origPlaceholder});if(browserSupportsHistoryApi()){const previousTitle=document.title;window.addEventListener("popstate",e=>{const params=searchState.getQueryStringParams();document.title=previousTitle;currentResults=null;if(params.search&¶ms.search.length>0){searchState.input.value=params.search;search(e)}else{searchState.input.value="";searchState.hideResults()}})}window.onpageshow=()=>{const qSearch=searchState.getQueryStringParams().search;if(searchState.input.value===""&&qSearch){searchState.input.value=qSearch}search()}}function updateCrate(ev){if(ev.target.value==="all crates"){const query=searchState.input.value.trim();updateSearchHistory(buildUrl(query,null))}currentResults=null;search(undefined,true)}const searchWords=buildIndex(rawSearchIndex);if(typeof window!=="undefined"){registerSearchEvents();if(window.searchState.getQueryStringParams().search){search()}}if(typeof exports!=="undefined"){exports.initSearch=initSearch;exports.execQuery=execQuery;exports.parseQuery=parseQuery}return searchWords}if(typeof window!=="undefined"){window.initSearch=initSearch;if(window.searchIndex!==undefined){initSearch(window.searchIndex)}}else{initSearch({})}})() \ No newline at end of file diff --git a/docs/doc/static.files/settings-8c76f75bfb6bd192.css b/docs/doc/static.files/settings-8c76f75bfb6bd192.css new file mode 100644 index 0000000..5241bb8 --- /dev/null +++ b/docs/doc/static.files/settings-8c76f75bfb6bd192.css @@ -0,0 +1,3 @@ +.setting-line{margin:1.2em 0.6em;}.setting-radio input,.setting-check input{margin-right:0.3em;height:1.2rem;width:1.2rem;border:2px solid var(--settings-input-border-color);outline:none;-webkit-appearance:none;cursor:pointer;}.setting-radio input{border-radius:50%;}.setting-radio span,.setting-check span{padding-bottom:1px;}.setting-radio{margin-top:0.1em;margin-bottom:0.1em;min-width:3.8em;padding:0.3em;display:inline-flex;align-items:center;cursor:pointer;}.setting-radio+.setting-radio{margin-left:0.5em;}.setting-check{margin-right:20px;display:flex;align-items:center;cursor:pointer;}.setting-radio input:checked{box-shadow:inset 0 0 0 3px var(--main-background-color);background-color:var(--settings-input-color);}.setting-check input:checked{background-color:var(--settings-input-color);border-width:1px;content:url('data:image/svg+xml,\ + \ + ');}.setting-radio input:focus,.setting-check input:focus{box-shadow:0 0 1px 1px var(--settings-input-color);}.setting-radio input:checked:focus{box-shadow:inset 0 0 0 3px var(--main-background-color),0 0 2px 2px var(--settings-input-color);}.setting-radio input:hover,.setting-check input:hover{border-color:var(--settings-input-color) !important;} \ No newline at end of file diff --git a/docs/doc/static.files/settings-de11bff964e9d4e5.js b/docs/doc/static.files/settings-de11bff964e9d4e5.js new file mode 100644 index 0000000..cc508a8 --- /dev/null +++ b/docs/doc/static.files/settings-de11bff964e9d4e5.js @@ -0,0 +1,17 @@ +"use strict";(function(){const isSettingsPage=window.location.pathname.endsWith("/settings.html");function changeSetting(settingName,value){if(settingName==="theme"){const useSystem=value==="system preference"?"true":"false";updateLocalStorage("use-system-theme",useSystem)}updateLocalStorage(settingName,value);switch(settingName){case"theme":case"preferred-dark-theme":case"preferred-light-theme":updateTheme();updateLightAndDark();break;case"line-numbers":if(value===true){window.rustdoc_add_line_numbers_to_examples()}else{window.rustdoc_remove_line_numbers_from_examples()}break}}function showLightAndDark(){removeClass(document.getElementById("preferred-light-theme"),"hidden");removeClass(document.getElementById("preferred-dark-theme"),"hidden")}function hideLightAndDark(){addClass(document.getElementById("preferred-light-theme"),"hidden");addClass(document.getElementById("preferred-dark-theme"),"hidden")}function updateLightAndDark(){const useSystem=getSettingValue("use-system-theme");if(useSystem==="true"||(useSystem===null&&getSettingValue("theme")===null)){showLightAndDark()}else{hideLightAndDark()}}function setEvents(settingsElement){updateLightAndDark();onEachLazy(settingsElement.querySelectorAll("input[type=\"checkbox\"]"),toggle=>{const settingId=toggle.id;const settingValue=getSettingValue(settingId);if(settingValue!==null){toggle.checked=settingValue==="true"}toggle.onchange=function(){changeSetting(this.id,this.checked)}});onEachLazy(settingsElement.querySelectorAll("input[type=\"radio\"]"),elem=>{const settingId=elem.name;let settingValue=getSettingValue(settingId);if(settingId==="theme"){const useSystem=getSettingValue("use-system-theme");if(useSystem==="true"||settingValue===null){settingValue=useSystem==="false"?"light":"system preference"}}if(settingValue!==null&&settingValue!=="null"){elem.checked=settingValue===elem.value}elem.addEventListener("change",ev=>{changeSetting(ev.target.name,ev.target.value)})})}function buildSettingsPageSections(settings){let output="";for(const setting of settings){const js_data_name=setting["js_name"];const setting_name=setting["name"];if(setting["options"]!==undefined){output+=`\ +
+
${setting_name}
+
`;onEach(setting["options"],option=>{const checked=option===setting["default"]?" checked":"";const full=`${js_data_name}-${option.replace(/ /g,"-")}`;output+=`\ + `});output+=`\ +
+
`}else{const checked=setting["default"]===true?" checked":"";output+=`\ +
\ + \ +
`}}return output}function buildSettingsPage(){const theme_names=getVar("themes").split(",").filter(t=>t);theme_names.push("light","dark","ayu");const settings=[{"name":"Theme","js_name":"theme","default":"system preference","options":theme_names.concat("system preference"),},{"name":"Preferred light theme","js_name":"preferred-light-theme","default":"light","options":theme_names,},{"name":"Preferred dark theme","js_name":"preferred-dark-theme","default":"dark","options":theme_names,},{"name":"Auto-hide item contents for large items","js_name":"auto-hide-large-items","default":true,},{"name":"Auto-hide item methods' documentation","js_name":"auto-hide-method-docs","default":false,},{"name":"Auto-hide trait implementation documentation","js_name":"auto-hide-trait-implementations","default":false,},{"name":"Directly go to item in search if there is only one result","js_name":"go-to-only-result","default":false,},{"name":"Show line numbers on code examples","js_name":"line-numbers","default":false,},{"name":"Disable keyboard shortcuts","js_name":"disable-shortcuts","default":false,},];const elementKind=isSettingsPage?"section":"div";const innerHTML=`
${buildSettingsPageSections(settings)}
`;const el=document.createElement(elementKind);el.id="settings";if(!isSettingsPage){el.className="popover"}el.innerHTML=innerHTML;if(isSettingsPage){document.getElementById(MAIN_ID).appendChild(el)}else{el.setAttribute("tabindex","-1");getSettingsButton().appendChild(el)}return el}const settingsMenu=buildSettingsPage();function displaySettings(){settingsMenu.style.display=""}function settingsBlurHandler(event){blurHandler(event,getSettingsButton(),window.hidePopoverMenus)}if(isSettingsPage){getSettingsButton().onclick=function(event){event.preventDefault()}}else{const settingsButton=getSettingsButton();const settingsMenu=document.getElementById("settings");settingsButton.onclick=function(event){if(elemIsInParent(event.target,settingsMenu)){return}event.preventDefault();const shouldDisplaySettings=settingsMenu.style.display==="none";window.hideAllModals();if(shouldDisplaySettings){displaySettings()}};settingsButton.onblur=settingsBlurHandler;settingsButton.querySelector("a").onblur=settingsBlurHandler;onEachLazy(settingsMenu.querySelectorAll("input"),el=>{el.onblur=settingsBlurHandler});settingsMenu.onblur=settingsBlurHandler}setTimeout(()=>{setEvents(settingsMenu);if(!isSettingsPage){displaySettings()}removeClass(getSettingsButton(),"rotate")},0)})() \ No newline at end of file diff --git a/docs/doc/static.files/source-script-106908c7a7964ba4.js b/docs/doc/static.files/source-script-106908c7a7964ba4.js new file mode 100644 index 0000000..191bf6d --- /dev/null +++ b/docs/doc/static.files/source-script-106908c7a7964ba4.js @@ -0,0 +1 @@ +"use strict";(function(){const rootPath=getVar("root-path");const NAME_OFFSET=0;const DIRS_OFFSET=1;const FILES_OFFSET=2;const RUSTDOC_MOBILE_BREAKPOINT=700;function closeSidebarIfMobile(){if(window.innerWidth"){addClass(document.documentElement,"source-sidebar-expanded");child.innerText="<";updateLocalStorage("source-sidebar-show","true")}else{removeClass(document.documentElement,"source-sidebar-expanded");child.innerText=">";updateLocalStorage("source-sidebar-show","false")}}function createSidebarToggle(){const sidebarToggle=document.createElement("div");sidebarToggle.id="src-sidebar-toggle";const inner=document.createElement("button");if(getCurrentValue("source-sidebar-show")==="true"){inner.innerText="<"}else{inner.innerText=">"}inner.onclick=toggleSidebar;sidebarToggle.appendChild(inner);return sidebarToggle}function createSourceSidebar(){const container=document.querySelector("nav.sidebar");const sidebarToggle=createSidebarToggle();container.insertBefore(sidebarToggle,container.firstChild);const sidebar=document.createElement("div");sidebar.id="source-sidebar";let hasFoundFile=false;const title=document.createElement("div");title.className="title";title.innerText="Files";sidebar.appendChild(title);Object.keys(sourcesIndex).forEach(key=>{sourcesIndex[key][NAME_OFFSET]=key;hasFoundFile=createDirEntry(sourcesIndex[key],sidebar,"",hasFoundFile)});container.appendChild(sidebar);const selected_elem=sidebar.getElementsByClassName("selected")[0];if(typeof selected_elem!=="undefined"){selected_elem.focus()}}const lineNumbersRegex=/^#?(\d+)(?:-(\d+))?$/;function highlightSourceLines(match){if(typeof match==="undefined"){match=window.location.hash.match(lineNumbersRegex)}if(!match){return}let from=parseInt(match[1],10);let to=from;if(typeof match[2]!=="undefined"){to=parseInt(match[2],10)}if(to{onEachLazy(e.getElementsByTagName("a"),i_e=>{removeClass(i_e,"line-highlighted")})});for(let i=from;i<=to;++i){elem=document.getElementById(i);if(!elem){break}addClass(elem,"line-highlighted")}}const handleSourceHighlight=(function(){let prev_line_id=0;const set_fragment=name=>{const x=window.scrollX,y=window.scrollY;if(browserSupportsHistoryApi()){history.replaceState(null,null,"#"+name);highlightSourceLines()}else{location.replace("#"+name)}window.scrollTo(x,y)};return ev=>{let cur_line_id=parseInt(ev.target.id,10);if(isNaN(cur_line_id)||ev.ctrlKey||ev.altKey||ev.metaKey){return}ev.preventDefault();if(ev.shiftKey&&prev_line_id){if(prev_line_id>cur_line_id){const tmp=prev_line_id;prev_line_id=cur_line_id;cur_line_id=tmp}set_fragment(prev_line_id+"-"+cur_line_id)}else{prev_line_id=cur_line_id;set_fragment(cur_line_id)}}}());window.addEventListener("hashchange",()=>{const match=window.location.hash.match(lineNumbersRegex);if(match){return highlightSourceLines(match)}});onEachLazy(document.getElementsByClassName("src-line-numbers"),el=>{el.addEventListener("click",handleSourceHighlight)});highlightSourceLines();window.createSourceSidebar=createSourceSidebar})() \ No newline at end of file diff --git a/docs/doc/static.files/storage-59fd9b8ccb335783.js b/docs/doc/static.files/storage-59fd9b8ccb335783.js new file mode 100644 index 0000000..ca5481a --- /dev/null +++ b/docs/doc/static.files/storage-59fd9b8ccb335783.js @@ -0,0 +1 @@ +"use strict";const darkThemes=["dark","ayu"];window.currentTheme=document.getElementById("themeStyle");const settingsDataset=(function(){const settingsElement=document.getElementById("default-settings");return settingsElement&&settingsElement.dataset?settingsElement.dataset:null})();function getSettingValue(settingName){const current=getCurrentValue(settingName);if(current===null&&settingsDataset!==null){const def=settingsDataset[settingName.replace(/-/g,"_")];if(def!==undefined){return def}}return current}const localStoredTheme=getSettingValue("theme");function hasClass(elem,className){return elem&&elem.classList&&elem.classList.contains(className)}function addClass(elem,className){if(elem&&elem.classList){elem.classList.add(className)}}function removeClass(elem,className){if(elem&&elem.classList){elem.classList.remove(className)}}function onEach(arr,func,reversed){if(arr&&arr.length>0){if(reversed){for(let i=arr.length-1;i>=0;--i){if(func(arr[i])){return true}}}else{for(const elem of arr){if(func(elem)){return true}}}}return false}function onEachLazy(lazyArray,func,reversed){return onEach(Array.prototype.slice.call(lazyArray),func,reversed)}function updateLocalStorage(name,value){try{window.localStorage.setItem("rustdoc-"+name,value)}catch(e){}}function getCurrentValue(name){try{return window.localStorage.getItem("rustdoc-"+name)}catch(e){return null}}const getVar=(function getVar(name){const el=document.querySelector("head > meta[name='rustdoc-vars']");return el?el.attributes["data-"+name].value:null});function switchTheme(newThemeName,saveTheme){if(saveTheme){updateLocalStorage("theme",newThemeName)}let newHref;if(newThemeName==="light"||newThemeName==="dark"||newThemeName==="ayu"){newHref=getVar("static-root-path")+getVar("theme-"+newThemeName+"-css")}else{newHref=getVar("root-path")+newThemeName+getVar("resource-suffix")+".css"}if(!window.currentTheme){document.write(``);window.currentTheme=document.getElementById("themeStyle")}else if(newHref!==window.currentTheme.href){window.currentTheme.href=newHref}}const updateTheme=(function(){const mql=window.matchMedia("(prefers-color-scheme: dark)");function updateTheme(){if(getSettingValue("use-system-theme")!=="false"){const lightTheme=getSettingValue("preferred-light-theme")||"light";const darkTheme=getSettingValue("preferred-dark-theme")||"dark";updateLocalStorage("use-system-theme","true");switchTheme(mql.matches?darkTheme:lightTheme,true)}else{switchTheme(getSettingValue("theme"),false)}}mql.addEventListener("change",updateTheme);return updateTheme})();if(getSettingValue("use-system-theme")!=="false"&&window.matchMedia){if(getSettingValue("use-system-theme")===null&&getSettingValue("preferred-dark-theme")===null&&darkThemes.indexOf(localStoredTheme)>=0){updateLocalStorage("preferred-dark-theme",localStoredTheme)}}updateTheme();if(getSettingValue("source-sidebar-show")==="true"){addClass(document.documentElement,"source-sidebar-expanded")}window.addEventListener("pageshow",ev=>{if(ev.persisted){setTimeout(updateTheme,0)}}) \ No newline at end of file diff --git a/docs/doc/static.files/wheel-7b819b6101059cd0.svg b/docs/doc/static.files/wheel-7b819b6101059cd0.svg new file mode 100644 index 0000000..83c07f6 --- /dev/null +++ b/docs/doc/static.files/wheel-7b819b6101059cd0.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/doc/storage.js b/docs/doc/storage.js deleted file mode 100644 index c6d070d..0000000 --- a/docs/doc/storage.js +++ /dev/null @@ -1 +0,0 @@ -var darkThemes=["dark","ayu"];window.currentTheme=document.getElementById("themeStyle");window.mainTheme=document.getElementById("mainThemeStyle");var settingsDataset=(function(){var settingsElement=document.getElementById("default-settings");if(settingsElement===null){return null}var dataset=settingsElement.dataset;if(dataset===undefined){return null}return dataset})();function getSettingValue(settingName){var current=getCurrentValue(settingName);if(current!==null){return current}if(settingsDataset!==null){var def=settingsDataset[settingName.replace(/-/g,'_')];if(def!==undefined){return def}}return null}var localStoredTheme=getSettingValue("theme");var savedHref=[];function hasClass(elem,className){return elem&&elem.classList&&elem.classList.contains(className)}function addClass(elem,className){if(!elem||!elem.classList){return}elem.classList.add(className)}function removeClass(elem,className){if(!elem||!elem.classList){return}elem.classList.remove(className)}function onEach(arr,func,reversed){if(arr&&arr.length>0&&func){var length=arr.length;var i;if(reversed){for(i=length-1;i>=0;--i){if(func(arr[i])){return true}}}else{for(i=0;i=0){updateLocalStorage("preferred-dark-theme",localStoredTheme)}updateSystemTheme()}else{switchToSavedTheme()}window.addEventListener("pageshow",function(ev){if(ev.persisted){setTimeout(switchToSavedTheme,0)}}) \ No newline at end of file diff --git a/docs/doc/toggle-minus.svg b/docs/doc/toggle-minus.svg deleted file mode 100644 index 7315478..0000000 --- a/docs/doc/toggle-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/doc/toggle-plus.svg b/docs/doc/toggle-plus.svg deleted file mode 100644 index 08b1703..0000000 --- a/docs/doc/toggle-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/doc/ubits/all.html b/docs/doc/ubits/all.html index e74c104..46dae22 100644 --- a/docs/doc/ubits/all.html +++ b/docs/doc/ubits/all.html @@ -1,7 +1 @@ -List of all items in this crate - -
- \ No newline at end of file +List of all items in this crate
\ No newline at end of file diff --git a/docs/doc/ubits/examples/flagless_example/index.html b/docs/doc/ubits/examples/flagless_example/index.html index 41c5fc6..5367925 100644 --- a/docs/doc/ubits/examples/flagless_example/index.html +++ b/docs/doc/ubits/examples/flagless_example/index.html @@ -1,14 +1,5 @@ -ubits::examples::flagless_example - Rust - -
Expand description

Example of generated output, using only a bit field without a flag enum.

+ubits::examples::flagless_example - Rust
Expand description

Example of generated output, using only a bit field without a flag enum.

This module is only compiled with documentation builds and will not be available for import.

-

use the bitfield macro to generate a field struct and flag enum.

-

Structs

-

Optional docstring for my example bit field.

-
- \ No newline at end of file +

use the bitfield macro to generate a field struct and flag enum.

+

Structs

\ No newline at end of file diff --git a/docs/doc/ubits/examples/flagless_example/sidebar-items.js b/docs/doc/ubits/examples/flagless_example/sidebar-items.js index 58a03cd..68b7549 100644 --- a/docs/doc/ubits/examples/flagless_example/sidebar-items.js +++ b/docs/doc/ubits/examples/flagless_example/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"struct":[["ExampleField","Optional docstring for my example bit field."]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"struct":["ExampleField"]}; \ No newline at end of file diff --git a/docs/doc/ubits/examples/flagless_example/struct.ExampleField.html b/docs/doc/ubits/examples/flagless_example/struct.ExampleField.html index 848d545..50f1166 100644 --- a/docs/doc/ubits/examples/flagless_example/struct.ExampleField.html +++ b/docs/doc/ubits/examples/flagless_example/struct.ExampleField.html @@ -1,75 +1,44 @@ -ExampleField in ubits::examples::flagless_example - Rust - -
pub struct ExampleField(_);
Expand description

Optional docstring for my example bit field.

-

Implementations

Constant values describing ExampleField.

-

Number of bits in an instance of ExampleField.

-

Number of bytes used by an instance of ExampleField.

-

Maximum valid integer for ExampleField.

-

Constructors for creating instances of ExampleField.

-

Create a new instance of ExampleField from a u8 value.

-

Create a new instance of ExampleField from 0.

-

Create a new instance of ExampleField from the maximum possible integer value.

-

Create a new instance of ExampleField from a binary string.

-

Create a new instance of ExampleField from a binary string.

-

Current state of this bitfield.

-

Returns the current field value as a u8

-

Returns the current field value as a binary formatted string.

-

Field accessors by index for ExampleField.

-

Returns the value of the bit at the supplied index as a boolean.

-

Sets the value of the bit at the supplied index to 1.

-

Sets the value of the bit at the supplied index to 0.

-

Flips the value of the bit at the supplied index.

-

Combinators for ExampleField.

-

Returns a new ExampleFieldwith ones for flags that do not match. Does not consume self.

-

Returns a new ExampleFieldwith ones for flags that were set on either input. Does not consume self.

-

Returns a new ExampleFieldwith ones for flags that were set on both inputs. Does not consume self.

-

Conversion methods.

-

Returns a new ExampleFieldwith ones for flags that do not match. Consumes self.

-

Returns a new ExampleFieldwith ones for flags that were set on either input. Consumes self.

-

Returns a new ExampleFieldwith ones for flags that were set on both inputs. Consumes self.

-

Trait Implementations

Formats the value using the given formatter.

-

The resulting type after applying the & operator.

-

Performs the & operation. Read more

-

Performs the &= operation. Read more

-

The resulting type after applying the | operator.

-

Performs the | operation. Read more

-

Performs the |= operation. Read more

-

The resulting type after applying the ^ operator.

-

Performs the ^ operation. Read more

-

Performs the ^= operation. Read more

-

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Returns a field instance from value of its underlying type.

-

Performs the conversion.

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

-

Calls U::from(self).

+ExampleField in ubits::examples::flagless_example - Rust
pub struct ExampleField(_);
Expand description

Optional docstring for my example bit field.

+

Implementations§

source§

impl ExampleField

Constant values describing ExampleField.

+
source

pub const BITS: usize = 8usize

Number of bits in an instance of ExampleField.

+
source

pub const BYTES: usize = 1usize

Number of bytes used by an instance of ExampleField.

+
source

pub const MAX: u8 = 255u8

Maximum valid integer for ExampleField.

+
source§

impl ExampleField

Constructors for creating instances of ExampleField.

+
source

pub fn new(value: u8) -> Self

Create a new instance of ExampleField from a u8 value.

+
source

pub fn zeros() -> Self

Create a new instance of ExampleField from 0.

+
source

pub fn ones() -> Self

Create a new instance of ExampleField from the maximum possible integer value.

+
source

pub fn from_binary_str(value: &str) -> Self

Create a new instance of ExampleField from a binary string.

+
source

pub fn from_binary_string(value: String) -> Self

Create a new instance of ExampleField from a binary string.

+
source§

impl ExampleField

Current state of this bitfield.

+
source

pub fn as_integer(&self) -> u8

Returns the current field value as a u8

+
source

pub fn as_binary(&self) -> String

Returns the current field value as a binary formatted string.

+
source§

impl ExampleField

Field accessors by index for ExampleField.

+
source

pub fn get_index(&self, index: u8) -> bool

Returns the value of the bit at the supplied index as a boolean.

+
source

pub fn set_index(&mut self, index: u8)

Sets the value of the bit at the supplied index to 1.

+
source

pub fn clear_index(&mut self, index: u8)

Sets the value of the bit at the supplied index to 0.

+
source

pub fn toggle_index(&mut self, index: u8)

Flips the value of the bit at the supplied index.

+
source§

impl ExampleField

Combinators for ExampleField.

+
source

pub fn diff(&self, other: Self) -> Self

Returns a new ExampleFieldwith ones for flags that do not match. Does not consume self.

+
source

pub fn combine(&self, other: Self) -> Self

Returns a new ExampleFieldwith ones for flags that were set on either input. Does not consume self.

+
source

pub fn intersect(&self, other: Self) -> Self

Returns a new ExampleFieldwith ones for flags that were set on both inputs. Does not consume self.

+
source§

impl ExampleField

Conversion methods.

+
source

pub fn into_diff(self, other: Self) -> Self

Returns a new ExampleFieldwith ones for flags that do not match. Consumes self.

+
source

pub fn into_combined(self, other: Self) -> Self

Returns a new ExampleFieldwith ones for flags that were set on either input. Consumes self.

+
source

pub fn into_intersection(self, other: Self) -> Self

Returns a new ExampleFieldwith ones for flags that were set on both inputs. Consumes self.

+

Trait Implementations§

source§

impl Binary for ExampleField

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl BitAnd<ExampleField> for ExampleField

§

type Output = ExampleField

The resulting type after applying the & operator.
source§

fn bitand(self, rhs: Self) -> Self::Output

Performs the & operation. Read more
source§

impl BitAndAssign<ExampleField> for ExampleField

source§

fn bitand_assign(&mut self, rhs: Self)

Performs the &= operation. Read more
source§

impl BitOr<ExampleField> for ExampleField

§

type Output = ExampleField

The resulting type after applying the | operator.
source§

fn bitor(self, rhs: Self) -> Self::Output

Performs the | operation. Read more
source§

impl BitOrAssign<ExampleField> for ExampleField

source§

fn bitor_assign(&mut self, rhs: Self)

Performs the |= operation. Read more
source§

impl BitXor<ExampleField> for ExampleField

§

type Output = ExampleField

The resulting type after applying the ^ operator.
source§

fn bitxor(self, rhs: Self) -> Self::Output

Performs the ^ operation. Read more
source§

impl BitXorAssign<ExampleField> for ExampleField

source§

fn bitxor_assign(&mut self, rhs: Self)

Performs the ^= operation. Read more
source§

impl Clone for ExampleField

source§

fn clone(&self) -> ExampleField

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ExampleField

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ExampleField

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl From<u8> for ExampleField

Returns a field instance from value of its underlying type.

+
source§

fn from(value: u8) -> ExampleField

Converts to this type from the input type.
source§

impl PartialEq<ExampleField> for ExampleField

source§

fn eq(&self, other: &ExampleField) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd<ExampleField> for ExampleField

source§

fn partial_cmp(&self, other: &ExampleField) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= +operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= +operator. Read more
source§

impl Copy for ExampleField

source§

impl StructuralPartialEq for ExampleField

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file diff --git a/docs/doc/ubits/examples/full_example/enum.ExampleFlags.html b/docs/doc/ubits/examples/full_example/enum.ExampleFlags.html index b188b74..d8b04aa 100644 --- a/docs/doc/ubits/examples/full_example/enum.ExampleFlags.html +++ b/docs/doc/ubits/examples/full_example/enum.ExampleFlags.html @@ -1,11 +1,4 @@ -ExampleFlags in ubits::examples::full_example - Rust - -
#[repr(u8)]
-pub enum ExampleFlags {
+ExampleFlags in ubits::examples::full_example - Rust
#[repr(u8)]
pub enum ExampleFlags { Flag0, Flag1, Flag2, @@ -14,78 +7,35 @@

Enum ubits: Flag5, Flag6, Flag7, -}

Expand description

Optional docstring for my flag enum.

-

Variants

Flag0

Optional docstring for Flag0

-

Flag1

Optional docstring for Flag1

-

Flag2

Optional docstring for Flag2

-

Flag3

Optional docstring for Flag3

-

Flag4

Optional docstring for Flag4

-

Flag5

Optional docstring for Flag5

-

Flag6

Optional docstring for Flag6

-

Flag7

Optional docstring for Flag7

-

Trait Implementations

The resulting type after applying the & operator.

-

Performs the & operation. Read more

-

The resulting type after applying the & operator.

-

Performs the & operation. Read more

-

The resulting type after applying the & operator.

-

Performs the & operation. Read more

-

The resulting type after applying the & operator.

-

Performs the & operation. Read more

-

Performs the &= operation. Read more

-

The resulting type after applying the | operator.

-

Performs the | operation. Read more

-

The resulting type after applying the | operator.

-

Performs the | operation. Read more

-

The resulting type after applying the | operator.

-

Performs the | operation. Read more

-

The resulting type after applying the | operator.

-

Performs the | operation. Read more

-

Performs the |= operation. Read more

-

The resulting type after applying the ^ operator.

-

Performs the ^ operation. Read more

-

The resulting type after applying the ^ operator.

-

Performs the ^ operation. Read more

-

The resulting type after applying the ^ operator.

-

Performs the ^ operation. Read more

-

The resulting type after applying the ^ operator.

-

Performs the ^ operation. Read more

-

Performs the ^= operation. Read more

-

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns a flag as its corresponding u8 value.

-

Performs the conversion.

-

Returns a field instance from a flag.

-

Performs the conversion.

-

Converts a u8 to a flag

+}
Expand description

Optional docstring for my flag enum.

+

Variants§

§

Flag0

Optional docstring for Flag0

+
§

Flag1

Optional docstring for Flag1

+
§

Flag2

Optional docstring for Flag2

+
§

Flag3

Optional docstring for Flag3

+
§

Flag4

Optional docstring for Flag4

+
§

Flag5

Optional docstring for Flag5

+
§

Flag6

Optional docstring for Flag6

+
§

Flag7

Optional docstring for Flag7

+

Trait Implementations§

source§

impl BitAnd<ExampleFlags> for &ExampleField

§

type Output = ExampleField

The resulting type after applying the & operator.
source§

fn bitand(self, rhs: ExampleFlags) -> Self::Output

Performs the & operation. Read more
source§

impl BitAnd<ExampleFlags> for &mut ExampleField

§

type Output = ExampleField

The resulting type after applying the & operator.
source§

fn bitand(self, rhs: ExampleFlags) -> Self::Output

Performs the & operation. Read more
source§

impl BitAnd<ExampleFlags> for ExampleField

§

type Output = ExampleField

The resulting type after applying the & operator.
source§

fn bitand(self, rhs: ExampleFlags) -> Self::Output

Performs the & operation. Read more
source§

impl BitAnd<ExampleFlags> for ExampleFlags

§

type Output = ExampleField

The resulting type after applying the & operator.
source§

fn bitand(self, rhs: Self) -> Self::Output

Performs the & operation. Read more
source§

impl BitAndAssign<ExampleFlags> for ExampleField

source§

fn bitand_assign(&mut self, rhs: ExampleFlags)

Performs the &= operation. Read more
source§

impl BitOr<ExampleFlags> for &ExampleField

§

type Output = ExampleField

The resulting type after applying the | operator.
source§

fn bitor(self, rhs: ExampleFlags) -> Self::Output

Performs the | operation. Read more
source§

impl BitOr<ExampleFlags> for &mut ExampleField

§

type Output = ExampleField

The resulting type after applying the | operator.
source§

fn bitor(self, rhs: ExampleFlags) -> Self::Output

Performs the | operation. Read more
source§

impl BitOr<ExampleFlags> for ExampleField

§

type Output = ExampleField

The resulting type after applying the | operator.
source§

fn bitor(self, rhs: ExampleFlags) -> Self::Output

Performs the | operation. Read more
source§

impl BitOr<ExampleFlags> for ExampleFlags

§

type Output = ExampleField

The resulting type after applying the | operator.
source§

fn bitor(self, rhs: Self) -> Self::Output

Performs the | operation. Read more
source§

impl BitOrAssign<ExampleFlags> for ExampleField

source§

fn bitor_assign(&mut self, rhs: ExampleFlags)

Performs the |= operation. Read more
source§

impl BitXor<ExampleFlags> for &ExampleField

§

type Output = ExampleField

The resulting type after applying the ^ operator.
source§

fn bitxor(self, rhs: ExampleFlags) -> Self::Output

Performs the ^ operation. Read more
source§

impl BitXor<ExampleFlags> for &mut ExampleField

§

type Output = ExampleField

The resulting type after applying the ^ operator.
source§

fn bitxor(self, rhs: ExampleFlags) -> Self::Output

Performs the ^ operation. Read more
source§

impl BitXor<ExampleFlags> for ExampleField

§

type Output = ExampleField

The resulting type after applying the ^ operator.
source§

fn bitxor(self, rhs: ExampleFlags) -> Self::Output

Performs the ^ operation. Read more
source§

impl BitXor<ExampleFlags> for ExampleFlags

§

type Output = ExampleField

The resulting type after applying the ^ operator.
source§

fn bitxor(self, rhs: Self) -> Self::Output

Performs the ^ operation. Read more
source§

impl BitXorAssign<ExampleFlags> for ExampleField

source§

fn bitxor_assign(&mut self, rhs: ExampleFlags)

Performs the ^= operation. Read more
source§

impl Clone for ExampleFlags

source§

fn clone(&self) -> ExampleFlags

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ExampleFlags

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<ExampleFlags> for ExampleField

Returns a field instance from a flag.

+
source§

fn from(value: ExampleFlags) -> ExampleField

Converts to this type from the input type.
source§

impl From<ExampleFlags> for u8

Returns a flag as its corresponding u8 value.

+
source§

fn from(value: ExampleFlags) -> u8

Converts to this type from the input type.
source§

impl From<u8> for ExampleFlags

Converts a u8 to a flag

Errors

-

Panics if the supplied u8 is out of range for fields base type. -eg: for a 16-bit field (using u16), +

Panics if the supplied u8 is out of range for fields base type. +eg: for a 16-bit field (using u16), providing an index of 20 will cause a panic.

-

Performs the conversion.

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

-

Calls U::from(self).

+
source§

fn from(value: u8) -> ExampleFlags

Converts to this type from the input type.
source§

impl PartialEq<ExampleFlags> for ExampleFlags

source§

fn eq(&self, other: &ExampleFlags) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd<ExampleFlags> for ExampleFlags

source§

fn partial_cmp(&self, other: &ExampleFlags) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= +operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= +operator. Read more
source§

impl Copy for ExampleFlags

source§

impl StructuralPartialEq for ExampleFlags

source§

impl TriviallyTransmutable for ExampleFlags

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file diff --git a/docs/doc/ubits/examples/full_example/index.html b/docs/doc/ubits/examples/full_example/index.html index 4a0a741..e369261 100644 --- a/docs/doc/ubits/examples/full_example/index.html +++ b/docs/doc/ubits/examples/full_example/index.html @@ -1,16 +1,5 @@ -ubits::examples::full_example - Rust - -
Expand description

Example of generated output, using both a bit field and a flag enum.

+ubits::examples::full_example - Rust
Expand description

Example of generated output, using both a bit field and a flag enum.

This module is only compiled with documentation builds and will not be available for import.

-

use the bitfield macro to generate a field struct and flag enum.

-

Structs

-

Optional docstring for my example bit field.

-

Enums

-

Optional docstring for my flag enum.

-
- \ No newline at end of file +

use the bitfield macro to generate a field struct and flag enum.

+

Structs

Enums

\ No newline at end of file diff --git a/docs/doc/ubits/examples/full_example/sidebar-items.js b/docs/doc/ubits/examples/full_example/sidebar-items.js index a361450..38daf07 100644 --- a/docs/doc/ubits/examples/full_example/sidebar-items.js +++ b/docs/doc/ubits/examples/full_example/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"enum":[["ExampleFlags","Optional docstring for my flag enum."]],"struct":[["ExampleField","Optional docstring for my example bit field."]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"enum":["ExampleFlags"],"struct":["ExampleField"]}; \ No newline at end of file diff --git a/docs/doc/ubits/examples/full_example/struct.ExampleField.html b/docs/doc/ubits/examples/full_example/struct.ExampleField.html index 5431b34..4df22c8 100644 --- a/docs/doc/ubits/examples/full_example/struct.ExampleField.html +++ b/docs/doc/ubits/examples/full_example/struct.ExampleField.html @@ -1,103 +1,50 @@ -ExampleField in ubits::examples::full_example - Rust - -
pub struct ExampleField(_);
Expand description

Optional docstring for my example bit field.

-

Implementations

Constant values describing ExampleField.

-

Number of bits in an instance of ExampleField.

-

Number of bytes used by an instance of ExampleField.

-

Maximum valid integer for ExampleField.

-

Constructors for creating instances of ExampleField.

-

Create a new instance of ExampleField from a u8 value.

-

Create a new instance of ExampleField from 0.

-

Create a new instance of ExampleField from the maximum possible integer value.

-

Create a new instance of ExampleField from a binary string.

-

Create a new instance of ExampleField from a binary string.

-

Current state of this bitfield.

-

Returns the current field value as a u8

-

Returns the current field value as a binary formatted string.

-

Field accessors by index for ExampleField.

-

Returns the value of the bit at the supplied index as a boolean.

-

Sets the value of the bit at the supplied index to 1.

-

Sets the value of the bit at the supplied index to 0.

-

Flips the value of the bit at the supplied index.

-

Named field accessors by ExampleFlags for ExampleField.

-

Returns the value of the bit at the supplied flag as a boolean.

-

Sets the value of the bit at the supplied flag to 1.

-

Sets the value of the bit at the supplied flag to 0.

-

Flips the value of the bit at the supplied flag.

-

Combinators for ExampleField.

-

Returns a new ExampleFieldwith ones for flags that do not match. Does not consume self.

-

Returns a new ExampleFieldwith ones for flags that were set on either input. Does not consume self.

-

Returns a new ExampleFieldwith ones for flags that were set on both inputs. Does not consume self.

-

Conversion methods.

-

Returns a new ExampleFieldwith ones for flags that do not match. Consumes self.

-

Returns a new ExampleFieldwith ones for flags that were set on either input. Consumes self.

-

Returns a new ExampleFieldwith ones for flags that were set on both inputs. Consumes self.

-

Trait Implementations

Formats the value using the given formatter.

-

The resulting type after applying the & operator.

-

Performs the & operation. Read more

-

The resulting type after applying the & operator.

-

Performs the & operation. Read more

-

The resulting type after applying the & operator.

-

Performs the & operation. Read more

-

The resulting type after applying the & operator.

-

Performs the & operation. Read more

-

Performs the &= operation. Read more

-

Performs the &= operation. Read more

-

The resulting type after applying the | operator.

-

Performs the | operation. Read more

-

The resulting type after applying the | operator.

-

Performs the | operation. Read more

-

The resulting type after applying the | operator.

-

Performs the | operation. Read more

-

The resulting type after applying the | operator.

-

Performs the | operation. Read more

-

Performs the |= operation. Read more

-

Performs the |= operation. Read more

-

The resulting type after applying the ^ operator.

-

Performs the ^ operation. Read more

-

The resulting type after applying the ^ operator.

-

Performs the ^ operation. Read more

-

The resulting type after applying the ^ operator.

-

Performs the ^ operation. Read more

-

The resulting type after applying the ^ operator.

-

Performs the ^ operation. Read more

-

Performs the ^= operation. Read more

-

Performs the ^= operation. Read more

-

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Returns a field instance from a flag.

-

Performs the conversion.

-

Returns a field instance from value of its underlying type.

-

Performs the conversion.

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= -operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

-

Calls U::from(self).

+ExampleField in ubits::examples::full_example - Rust
pub struct ExampleField(_);
Expand description

Optional docstring for my example bit field.

+

Implementations§

source§

impl ExampleField

Constant values describing ExampleField.

+
source

pub const BITS: usize = 8usize

Number of bits in an instance of ExampleField.

+
source

pub const BYTES: usize = 1usize

Number of bytes used by an instance of ExampleField.

+
source

pub const MAX: u8 = 255u8

Maximum valid integer for ExampleField.

+
source§

impl ExampleField

Constructors for creating instances of ExampleField.

+
source

pub fn new(value: u8) -> Self

Create a new instance of ExampleField from a u8 value.

+
source

pub fn zeros() -> Self

Create a new instance of ExampleField from 0.

+
source

pub fn ones() -> Self

Create a new instance of ExampleField from the maximum possible integer value.

+
source

pub fn from_binary_str(value: &str) -> Self

Create a new instance of ExampleField from a binary string.

+
source

pub fn from_binary_string(value: String) -> Self

Create a new instance of ExampleField from a binary string.

+
source§

impl ExampleField

Current state of this bitfield.

+
source

pub fn as_integer(&self) -> u8

Returns the current field value as a u8

+
source

pub fn as_binary(&self) -> String

Returns the current field value as a binary formatted string.

+
source§

impl ExampleField

Field accessors by index for ExampleField.

+
source

pub fn get_index(&self, index: u8) -> bool

Returns the value of the bit at the supplied index as a boolean.

+
source

pub fn set_index(&mut self, index: u8)

Sets the value of the bit at the supplied index to 1.

+
source

pub fn clear_index(&mut self, index: u8)

Sets the value of the bit at the supplied index to 0.

+
source

pub fn toggle_index(&mut self, index: u8)

Flips the value of the bit at the supplied index.

+
source§

impl ExampleField

Named field accessors by ExampleFlags for ExampleField.

+
source

pub fn get(&self, flag: ExampleFlags) -> bool

Returns the value of the bit at the supplied flag as a boolean.

+
source

pub fn set(&mut self, flag: ExampleFlags) -> &mut Self

Sets the value of the bit at the supplied flag to 1.

+
source

pub fn clear(&mut self, flag: ExampleFlags) -> &mut Self

Sets the value of the bit at the supplied flag to 0.

+
source

pub fn toggle(&mut self, flag: ExampleFlags) -> &mut Self

Flips the value of the bit at the supplied flag.

+
source§

impl ExampleField

Combinators for ExampleField.

+
source

pub fn diff(&self, other: Self) -> Self

Returns a new ExampleFieldwith ones for flags that do not match. Does not consume self.

+
source

pub fn combine(&self, other: Self) -> Self

Returns a new ExampleFieldwith ones for flags that were set on either input. Does not consume self.

+
source

pub fn intersect(&self, other: Self) -> Self

Returns a new ExampleFieldwith ones for flags that were set on both inputs. Does not consume self.

+
source§

impl ExampleField

Conversion methods.

+
source

pub fn into_diff(self, other: Self) -> Self

Returns a new ExampleFieldwith ones for flags that do not match. Consumes self.

+
source

pub fn into_combined(self, other: Self) -> Self

Returns a new ExampleFieldwith ones for flags that were set on either input. Consumes self.

+
source

pub fn into_intersection(self, other: Self) -> Self

Returns a new ExampleFieldwith ones for flags that were set on both inputs. Consumes self.

+

Trait Implementations§

source§

impl Binary for ExampleField

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl BitAnd<ExampleField> for ExampleField

§

type Output = ExampleField

The resulting type after applying the & operator.
source§

fn bitand(self, rhs: Self) -> Self::Output

Performs the & operation. Read more
source§

impl BitAnd<ExampleFlags> for &ExampleField

§

type Output = ExampleField

The resulting type after applying the & operator.
source§

fn bitand(self, rhs: ExampleFlags) -> Self::Output

Performs the & operation. Read more
source§

impl BitAnd<ExampleFlags> for &mut ExampleField

§

type Output = ExampleField

The resulting type after applying the & operator.
source§

fn bitand(self, rhs: ExampleFlags) -> Self::Output

Performs the & operation. Read more
source§

impl BitAnd<ExampleFlags> for ExampleField

§

type Output = ExampleField

The resulting type after applying the & operator.
source§

fn bitand(self, rhs: ExampleFlags) -> Self::Output

Performs the & operation. Read more
source§

impl BitAndAssign<ExampleField> for ExampleField

source§

fn bitand_assign(&mut self, rhs: Self)

Performs the &= operation. Read more
source§

impl BitAndAssign<ExampleFlags> for ExampleField

source§

fn bitand_assign(&mut self, rhs: ExampleFlags)

Performs the &= operation. Read more
source§

impl BitOr<ExampleField> for ExampleField

§

type Output = ExampleField

The resulting type after applying the | operator.
source§

fn bitor(self, rhs: Self) -> Self::Output

Performs the | operation. Read more
source§

impl BitOr<ExampleFlags> for &ExampleField

§

type Output = ExampleField

The resulting type after applying the | operator.
source§

fn bitor(self, rhs: ExampleFlags) -> Self::Output

Performs the | operation. Read more
source§

impl BitOr<ExampleFlags> for &mut ExampleField

§

type Output = ExampleField

The resulting type after applying the | operator.
source§

fn bitor(self, rhs: ExampleFlags) -> Self::Output

Performs the | operation. Read more
source§

impl BitOr<ExampleFlags> for ExampleField

§

type Output = ExampleField

The resulting type after applying the | operator.
source§

fn bitor(self, rhs: ExampleFlags) -> Self::Output

Performs the | operation. Read more
source§

impl BitOrAssign<ExampleField> for ExampleField

source§

fn bitor_assign(&mut self, rhs: Self)

Performs the |= operation. Read more
source§

impl BitOrAssign<ExampleFlags> for ExampleField

source§

fn bitor_assign(&mut self, rhs: ExampleFlags)

Performs the |= operation. Read more
source§

impl BitXor<ExampleField> for ExampleField

§

type Output = ExampleField

The resulting type after applying the ^ operator.
source§

fn bitxor(self, rhs: Self) -> Self::Output

Performs the ^ operation. Read more
source§

impl BitXor<ExampleFlags> for &ExampleField

§

type Output = ExampleField

The resulting type after applying the ^ operator.
source§

fn bitxor(self, rhs: ExampleFlags) -> Self::Output

Performs the ^ operation. Read more
source§

impl BitXor<ExampleFlags> for &mut ExampleField

§

type Output = ExampleField

The resulting type after applying the ^ operator.
source§

fn bitxor(self, rhs: ExampleFlags) -> Self::Output

Performs the ^ operation. Read more
source§

impl BitXor<ExampleFlags> for ExampleField

§

type Output = ExampleField

The resulting type after applying the ^ operator.
source§

fn bitxor(self, rhs: ExampleFlags) -> Self::Output

Performs the ^ operation. Read more
source§

impl BitXorAssign<ExampleField> for ExampleField

source§

fn bitxor_assign(&mut self, rhs: Self)

Performs the ^= operation. Read more
source§

impl BitXorAssign<ExampleFlags> for ExampleField

source§

fn bitxor_assign(&mut self, rhs: ExampleFlags)

Performs the ^= operation. Read more
source§

impl Clone for ExampleField

source§

fn clone(&self) -> ExampleField

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ExampleField

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ExampleField

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl From<ExampleFlags> for ExampleField

Returns a field instance from a flag.

+
source§

fn from(value: ExampleFlags) -> ExampleField

Converts to this type from the input type.
source§

impl From<u8> for ExampleField

Returns a field instance from value of its underlying type.

+
source§

fn from(value: u8) -> ExampleField

Converts to this type from the input type.
source§

impl PartialEq<ExampleField> for ExampleField

source§

fn eq(&self, other: &ExampleField) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd<ExampleField> for ExampleField

source§

fn partial_cmp(&self, other: &ExampleField) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= +operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= +operator. Read more
source§

impl Copy for ExampleField

source§

impl StructuralPartialEq for ExampleField

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for Twhere + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-
- \ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> ToOwned for Twhere + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
\ No newline at end of file diff --git a/docs/doc/ubits/examples/index.html b/docs/doc/ubits/examples/index.html index c4c6653..e03ed68 100644 --- a/docs/doc/ubits/examples/index.html +++ b/docs/doc/ubits/examples/index.html @@ -1,15 +1,5 @@ -ubits::examples - Rust - -
-

Module ubits::examples

source · []
Expand description

Examples of generated output using different configurations.

+ubits::examples - Rust

Module ubits::examples

source ·
Expand description

Examples of generated output using different configurations.

This module is only compiled with documentation builds and will not be available for import.

-

use the bitfield macro to generate a field struct and flag enum.

-

Modules

-

Example of generated output, using only a bit field without a flag enum.

-

Example of generated output, using both a bit field and a flag enum.

-
- \ No newline at end of file +

use the bitfield macro to generate a field struct and flag enum.

+

Modules

  • Example of generated output, using only a bit field without a flag enum.
  • Example of generated output, using both a bit field and a flag enum.
\ No newline at end of file diff --git a/docs/doc/ubits/examples/sidebar-items.js b/docs/doc/ubits/examples/sidebar-items.js index 0b9c9fe..345dea4 100644 --- a/docs/doc/ubits/examples/sidebar-items.js +++ b/docs/doc/ubits/examples/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"mod":[["flagless_example","Example of generated output, using only a bit field without a flag enum."],["full_example","Example of generated output, using both a bit field and a flag enum."]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"mod":["flagless_example","full_example"]}; \ No newline at end of file diff --git a/docs/doc/ubits/index.html b/docs/doc/ubits/index.html index 202c253..83d0c55 100644 --- a/docs/doc/ubits/index.html +++ b/docs/doc/ubits/index.html @@ -1,10 +1,4 @@ -ubits - Rust - -
-

Crate ubits

source · []
Expand description

crates.io +ubits - Rust

Crate ubits

source ·
Expand description

crates.io Downloads Build Docs @@ -14,8 +8,8 @@

Crate ubits

Supports field widths of 8, 16, 32, 64 and 128 bits.

Note: the example module is only complied with documentation builds and is not available for importing in the wild.

@@ -23,193 +17,194 @@

Usage

Generate a bitfield struct with a flag enum… (The following examples all use this as a definition.)

-
use ubits::bitfield;
-
-    bitfield! {
-        pub u8 ExampleField
-        ExampleFlags {
-            0 : Flag0,
-            1 : Flag1,
-            2 : Flag2,
-            3 : Flag3,
-            4 : Flag4,
-            5 : Flag5,
-            6 : Flag6,
-            7 : Flag7,
+
use ubits::bitfield;
+
+    bitfield! {
+        pub u8 ExampleField
+        ExampleFlags {
+            0 : Flag0,
+            1 : Flag1,
+            2 : Flag2,
+            3 : Flag3,
+            4 : Flag4,
+            5 : Flag5,
+            6 : Flag6,
+            7 : Flag7,
         }
     }

Instances

From integer:


-let from_integer = ExampleField(123);
-assert_eq!(ExampleField(123), from_integer);
+let from_integer = ExampleField(123); +assert_eq!(ExampleField(123), from_integer);

From a binary string:


-let from_binary = ExampleField::from_binary_str("01111011");
-assert_eq!(ExampleField(123), from_binary)
+let from_binary = ExampleField::from_binary_str("01111011"); +assert_eq!(ExampleField(123), from_binary)

From ones:


-let from_ones = ExampleField::ones();
-assert_eq!("11111111", from_ones.as_binary());
-assert_eq!(255, from_ones.as_integer());
+let from_ones = ExampleField::ones(); +assert_eq!("11111111", from_ones.as_binary()); +assert_eq!(255, from_ones.as_integer());

From zeros:


-let from_zeros = ExampleField::zeros();
-assert_eq!("00000000", from_zeros.as_binary());
-assert_eq!(0, from_zeros.as_integer());
+let from_zeros = ExampleField::zeros(); +assert_eq!("00000000", from_zeros.as_binary()); +assert_eq!(0, from_zeros.as_integer());

Field Access

Get bit value by field:


-let field = ExampleField::from_binary_str("01010101");
-assert!(field.get(ExampleFlags::Flag0));
-assert!(!field.get(ExampleFlags::Flag1));
+let field = ExampleField::from_binary_str("01010101"); +assert!(field.get(ExampleFlags::Flag0)); +assert!(!field.get(ExampleFlags::Flag1));

Get bit value by index:


-let field = ExampleField::from_binary_str("01010101");
-assert!(field.get_index(0));
-assert!(!field.get_index(1));
+let field = ExampleField::from_binary_str("01010101"); +assert!(field.get_index(0)); +assert!(!field.get_index(1));

Set bit value by field:


-let mut field = ExampleField::from_binary_str("01010101");
-field.set(ExampleFlags::Flag1);
-field.set(ExampleFlags::Flag3);
-assert_eq!("01011111", field.as_binary());
+let mut field = ExampleField::from_binary_str("01010101"); +field.set(ExampleFlags::Flag1); +field.set(ExampleFlags::Flag3); +assert_eq!("01011111", field.as_binary());

Set bit value by index:


-let mut field = ExampleField::from_binary_str("01010101");
-field.set_index(1);
-field.set_index(3);
-assert_eq!("01011111", field.as_binary());
+let mut field = ExampleField::from_binary_str("01010101"); +field.set_index(1); +field.set_index(3); +assert_eq!("01011111", field.as_binary());

Clear bit value by field:


-let mut field = ExampleField::from_binary_str("01010101");
-field.clear(ExampleFlags::Flag0);
-field.clear(ExampleFlags::Flag2);
-assert_eq!("01010000", field.as_binary());
+let mut field = ExampleField::from_binary_str("01010101"); +field.clear(ExampleFlags::Flag0); +field.clear(ExampleFlags::Flag2); +assert_eq!("01010000", field.as_binary());

Clear bit value by index:


-let mut field = ExampleField::from_binary_str("01010101");
-field.clear_index(0);
-field.clear_index(2);
-assert_eq!("01010000", field.as_binary());
+let mut field = ExampleField::from_binary_str("01010101"); +field.clear_index(0); +field.clear_index(2); +assert_eq!("01010000", field.as_binary());

Toggle bit value by field:


-let mut field = ExampleField::from_binary_str("01010101");
-field.toggle(ExampleFlags::Flag0);
-assert_eq!("01010100", field.as_binary());
-field.toggle(ExampleFlags::Flag0);
-assert_eq!("01010101", field.as_binary());
+let mut field = ExampleField::from_binary_str("01010101"); +field.toggle(ExampleFlags::Flag0); +assert_eq!("01010100", field.as_binary()); +field.toggle(ExampleFlags::Flag0); +assert_eq!("01010101", field.as_binary());

Toggle bit value by index:


-let mut field = ExampleField::from_binary_str("01010101");
-field.toggle_index(0);
-assert_eq!("01010100", field.as_binary());
-field.toggle_index(0);
-assert_eq!("01010101", field.as_binary());
+let mut field = ExampleField::from_binary_str("01010101"); +field.toggle_index(0); +assert_eq!("01010100", field.as_binary()); +field.toggle_index(0); +assert_eq!("01010101", field.as_binary());

Named Getters and Setters

Ubits can generate getter and setter methods for zero or more fields, if a name is provided.

-
use ubits::bitfield;
-   bitfield! {
-       pub u8 ExampleField
-       ExampleFlags {
-           0 : Flag0 : (field_0),  // is_field_0 & set_field_0 & clear_field_0 & toggle_field_0
-           1 : Flag1 : (field_1),  // is_field_1 & set_field_1 & clear_field_1 & toggle_field_1
-           2 : Flag2,
-           3 : Flag3,
-           4 : Flag4,
-           5 : Flag5,
-           6 : Flag6,
-           7 : Flag7,
+
use ubits::bitfield;
+   bitfield! {
+       pub u8 ExampleField
+       ExampleFlags {
+           0 : Flag0 : (field_0),  // is_field_0 & set_field_0 & clear_field_0 & toggle_field_0
+           1 : Flag1 : (field_1),  // is_field_1 & set_field_1 & clear_field_1 & toggle_field_1
+           2 : Flag2,
+           3 : Flag3,
+           4 : Flag4,
+           5 : Flag5,
+           6 : Flag6,
+           7 : Flag7,
        }
    }
 
-let mut field = ExampleField::from_binary_str("01010101");
-assert_eq!(true, field.is_field_0());
-assert_eq!(false, field.is_field_1());
+let mut field = ExampleField::from_binary_str("01010101");
+assert_eq!(true, field.is_field_0());
+assert_eq!(false, field.is_field_1());
 
-field.set_field_1();
-assert_eq!(true, field.is_field_1());
+field.set_field_1();
+assert_eq!(true, field.is_field_1());
 
-field.clear_field_1();
-assert_eq!(false, field.is_field_1());
+field.clear_field_1();
+assert_eq!(false, field.is_field_1());
 
-field.toggle_field_1();
-assert_eq!(true, field.is_field_1());
+field.toggle_field_1(); +assert_eq!(true, field.is_field_1());

Combinations

Combine bit fields:
(use into_combined to consume self)


-let mut a = ExampleField::from_binary_str("01010101");
-let b = ExampleField::from_binary_str("10101010");
-assert_eq!("11111111", a.combine(b).as_binary());
+let mut a = ExampleField::from_binary_str("01010101"); +let b = ExampleField::from_binary_str("10101010"); +assert_eq!("11111111", a.combine(b).as_binary());

Get the intersection of two bitfields:
(use into_intersection to consume self)


-let mut a = ExampleField::from_binary_str("11000011");
-let b = ExampleField::from_binary_str("01111110");
-assert_eq!("01000010", a.intersect(b).as_binary());
+let mut a = ExampleField::from_binary_str("11000011"); +let b = ExampleField::from_binary_str("01111110"); +assert_eq!("01000010", a.intersect(b).as_binary());

Get the diff of two bitfields:
(use into_diff to consume self)


-let mut a = ExampleField::from_binary_str("11000011");
-let b = ExampleField::from_binary_str("01100110");
-assert_eq!("10100101", a.diff(b).as_binary());
+let mut a = ExampleField::from_binary_str("11000011"); +let b = ExampleField::from_binary_str("01100110"); +assert_eq!("10100101", a.diff(b).as_binary());

Bitwise

Both bit field instances and flags use bitwise operators to change bit values.


-let mut from_zeros = ExampleField::zeros();
-assert_eq!("00000000", from_zeros.as_binary());
+let mut from_zeros = ExampleField::zeros();
+assert_eq!("00000000", from_zeros.as_binary());
 
-// set bit to 1
-from_zeros |= ExampleFlags::Flag1;
-assert_eq!("00000010", from_zeros.as_binary());
+// set bit to 1
+from_zeros |= ExampleFlags::Flag1;
+assert_eq!("00000010", from_zeros.as_binary());
 
-// set bit back to 0
-from_zeros &= ExampleFlags::Flag1;
-assert_eq!("00000000", from_zeros.as_binary());
+// set bit back to 0
+from_zeros &= ExampleFlags::Flag1;
+assert_eq!("00000000", from_zeros.as_binary());
 
-// toggle a bit
-from_zeros ^= ExampleFlags::Flag1;
-assert_eq!("00000010", from_zeros.as_binary());
+// toggle a bit
+from_zeros ^= ExampleFlags::Flag1;
+assert_eq!("00000010", from_zeros.as_binary());
 
-from_zeros ^= ExampleFlags::Flag1;
-assert_eq!("00000000", from_zeros.as_binary());
+from_zeros ^= ExampleFlags::Flag1; +assert_eq!("00000000", from_zeros.as_binary());

Operations can also be chained together:


-let mut from_zeros = ExampleField::zeros() | ExampleFlags::Flag1 | ExampleFlags::Flag3;
-assert_eq!("00001010", from_zeros.as_binary());
+let mut from_zeros = ExampleField::zeros() | ExampleFlags::Flag1 | ExampleFlags::Flag3;
+assert_eq!("00001010", from_zeros.as_binary());
 

Bitfield instances can also be created from combining flags:


-let mut from_zeros = ExampleFlags::Flag1 | ExampleFlags::Flag3;
-assert_eq!("00001010", from_zeros.as_binary());
+let mut from_zeros = ExampleFlags::Flag1 | ExampleFlags::Flag3;
+assert_eq!("00001010", from_zeros.as_binary());
 

Fields named with flags

The generated flags enum allows you to access bits by name. -The flag has an associated u8 value, +The flag has an associated u8 value, which determines the index its target bit. -(See bitfield for more info)

+(See bitfield for more info)

With the following input…

-
1 0 1 0 0 1 1 0
+
1 0 1 0 0 1 1 0
+

and the following flags…

0 : f1
 1 : f1
@@ -218,7 +213,8 @@ 

Fields named 4 : f4 5 : f5 6 : f6 -7 : f7

+7 : f7 +

we end up with this layout.

Modules

-

Examples of generated output using different configurations.

-

Macros

-

Generates a bitfield struct and a corresponding flag enum.

-
- \ No newline at end of file +

Modules

  • Examples of generated output using different configurations.

Macros

  • Generates a bitfield struct and a corresponding flag enum.
\ No newline at end of file diff --git a/docs/doc/ubits/macro.bitfield.html b/docs/doc/ubits/macro.bitfield.html index faf3f84..f0225c9 100644 --- a/docs/doc/ubits/macro.bitfield.html +++ b/docs/doc/ubits/macro.bitfield.html @@ -1,93 +1,86 @@ -bitfield in ubits - Rust - -
macro_rules! bitfield {
+bitfield in ubits - Rust

Macro ubits::bitfield

source ·
macro_rules! bitfield {
     (
-        $(#[$doc:meta])*
-        $access:vis u8 $name:ident
+        $(#[$doc:meta])*
+        $access:vis u8 $name:ident
         $(
-            $(#[$flag_doc:meta])*
-            $flag:ident {
+            $(#[$flag_doc:meta])*
+            $flag:ident {
                 $(
-                    $(#[$member_doc:meta])*
-                    $idx:literal : $field:ident $( : ( $named_getter:ident ) )?,
-                )*
+                    $(#[$member_doc:meta])*
+                    $idx:literal : $field:ident $( : ( $named_getter:ident ) )?,
+                )*
             }
-        )?
-    ) => { ... };
+        )?
+    ) => { ... };
     (
-        $(#[$doc:meta])*
-        $access:vis u16 $name:ident
+        $(#[$doc:meta])*
+        $access:vis u16 $name:ident
         $(
-            $(#[$flag_doc:meta])*
-            $flag:ident {
+            $(#[$flag_doc:meta])*
+            $flag:ident {
                 $(
-                    $(#[$member_doc:meta])*
-                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
-                )*
+                    $(#[$member_doc:meta])*
+                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
+                )*
             }
-        )?
-    ) => { ... };
+        )?
+    ) => { ... };
     (
-        $(#[$doc:meta])*
-        $access:vis u32 $name:ident
+        $(#[$doc:meta])*
+        $access:vis u32 $name:ident
         $(
-            $(#[$flag_doc:meta])*
-            $flag:ident {
+            $(#[$flag_doc:meta])*
+            $flag:ident {
                 $(
-                    $(#[$member_doc:meta])*
-                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
-                )*
+                    $(#[$member_doc:meta])*
+                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
+                )*
             }
-        )?
-    ) => { ... };
+        )?
+    ) => { ... };
     (
-        $(#[$doc:meta])*
-        $access:vis u64 $name:ident
+        $(#[$doc:meta])*
+        $access:vis u64 $name:ident
         $(
-            $(#[$flag_doc:meta])*
-            $flag:ident {
+            $(#[$flag_doc:meta])*
+            $flag:ident {
                 $(
-                    $(#[$member_doc:meta])*
-                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
-                )*
+                    $(#[$member_doc:meta])*
+                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
+                )*
             }
-        )?
-    ) => { ... };
+        )?
+    ) => { ... };
     (
-        $(#[$doc:meta])*
-        $access:vis u128 $name:ident
+        $(#[$doc:meta])*
+        $access:vis u128 $name:ident
         $(
-            $(#[$flag_doc:meta])*
-            $flag:ident {
+            $(#[$flag_doc:meta])*
+            $flag:ident {
                 $(
-                    $(#[$member_doc:meta])*
-                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
-                )*
+                    $(#[$member_doc:meta])*
+                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
+                )*
             }
-        )?
-    ) => { ... };
+        )?
+    ) => { ... };
     (
-        $(#[$doc:meta])*
-        $access:vis usize $name:ident
+        $(#[$doc:meta])*
+        $access:vis usize $name:ident
         $(
-            $(#[$flag_doc:meta])*
-            $flag:ident {
+            $(#[$flag_doc:meta])*
+            $flag:ident {
                 $(
-                    $(#[$member_doc:meta])*
-                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
-                )*
+                    $(#[$member_doc:meta])*
+                    $idx:literal : $field:ident $( ( $named_getter:ident ) )?,
+                )*
             }
-        )?
-    ) => { ... };
-}
-
Expand description

Generates a bitfield struct and a corresponding flag enum.

+ )? + ) => { ... }; +}
Expand description

Generates a bitfield struct and a corresponding flag enum.

Can be used multiple times in a single codebase as long as the identifiers are unique or are isolated so as not to clash.

-

See the examples module for examples of the generated output.

+

See the examples module for examples of the generated output.

Args

  • @@ -105,11 +98,11 @@

    Args

  • u8 - unsigned integer type to use as a bit array. Must be an unsigned integer
    -valid options are: u8,u16, u32, u64, u128, usize

    +valid options are: u8,u16, u32, u64, u128, usize

  • 0 : Flag0 - defines each member of the flag enum.
    -The left hand side must be a u8 (0..=254) +The left hand side must be a u8 (0..=254) and must be less than the number of bits in the underlying unsigned type. This value determines the index of the target bit within the field.
    The right hand side can be any valid identifier (unique to this enum). @@ -118,87 +111,86 @@

    Args

  • /// docstrings - Each element can take optional docstrings. This includes the bit field struct, the flag enum, and each member within the flag enum. -See examples for more information.

    +See examples for more information.

Examples:

Full Example - (see below for explanation for each parameter):

-
use ubits::bitfield;
+
use ubits::bitfield;
 
-    bitfield! {
-        /// Optional docstring
-        /// for [`ExampleField`] struct
-        pub u8 ExampleField
-        /// Optional docstring
-        /// for [`ExampleFlags`] enum
-        ExampleFlags {
-            /// Optional docstring for [`ExampleFlags::Flag0`]
-            0 : Flag0,
-            /// Optional docstring for [`ExampleFlags::Flag1`]
-            1 : Flag1,
-            /// Optional docstring for [`ExampleFlags::Flag2`]
-            2 : Flag2,
-            /// Optional docstring for [`ExampleFlags::Flag3`]
-            3 : Flag3,
-            /// Optional docstring for [`ExampleFlags::Flag4`]
-            4 : Flag4,
-            /// Optional docstring for [`ExampleFlags::Flag5`]
-            5 : Flag5,
-            /// Optional docstring for [`ExampleFlags::Flag6`]
-            6 : Flag6,
-            /// Optional docstring for [`ExampleFlags::Flag7`]
-            7 : Flag7,
+    bitfield! {
+        /// Optional docstring
+        /// for [`ExampleField`] struct
+        pub u8 ExampleField
+        /// Optional docstring
+        /// for [`ExampleFlags`] enum
+        ExampleFlags {
+            /// Optional docstring for [`ExampleFlags::Flag0`]
+            0 : Flag0,
+            /// Optional docstring for [`ExampleFlags::Flag1`]
+            1 : Flag1,
+            /// Optional docstring for [`ExampleFlags::Flag2`]
+            2 : Flag2,
+            /// Optional docstring for [`ExampleFlags::Flag3`]
+            3 : Flag3,
+            /// Optional docstring for [`ExampleFlags::Flag4`]
+            4 : Flag4,
+            /// Optional docstring for [`ExampleFlags::Flag5`]
+            5 : Flag5,
+            /// Optional docstring for [`ExampleFlags::Flag6`]
+            6 : Flag6,
+            /// Optional docstring for [`ExampleFlags::Flag7`]
+            7 : Flag7,
         }
     }

You don’t have to name all the fields if you don’t need them…

You can use just a few from the front:

-
use ubits::bitfield;
+
use ubits::bitfield;
 
-    bitfield! {
-        /// Optional docstring
-        /// for [`ExampleField`] struct
-        pub u8 ExampleField
-        /// Optional docstring
-        /// for [`ExampleFlags`] enum
-        ExampleFlags {
-            /// Optional docstring for [`ExampleFlags::Flag0`]
-            0 : Flag0,
-            /// Optional docstring for [`ExampleFlags::Flag1`]
-            1 : Flag1,
-            /// Optional docstring for [`ExampleFlags::Flag2`]
-            2 : Flag2,
+    bitfield! {
+        /// Optional docstring
+        /// for [`ExampleField`] struct
+        pub u8 ExampleField
+        /// Optional docstring
+        /// for [`ExampleFlags`] enum
+        ExampleFlags {
+            /// Optional docstring for [`ExampleFlags::Flag0`]
+            0 : Flag0,
+            /// Optional docstring for [`ExampleFlags::Flag1`]
+            1 : Flag1,
+            /// Optional docstring for [`ExampleFlags::Flag2`]
+            2 : Flag2,
         }
     }

… or any valid indices:

-
use ubits::bitfield;
+
use ubits::bitfield;
 
-    bitfield! {
-        /// Optional docstring
-        /// for [`ExampleField`] struct
-        pub u8 ExampleField
-        /// Optional docstring
-        /// for [`ExampleFlags`] enum
-        ExampleFlags {
-            /// Optional docstring for [`ExampleFlags::Flag0`]
-            0 : Flag0,
-            /// Optional docstring for [`ExampleFlags::Flag1`]
-            3 : Flag1,
-            /// Optional docstring for [`ExampleFlags::Flag2`]
-            6 : Flag2,
+    bitfield! {
+        /// Optional docstring
+        /// for [`ExampleField`] struct
+        pub u8 ExampleField
+        /// Optional docstring
+        /// for [`ExampleFlags`] enum
+        ExampleFlags {
+            /// Optional docstring for [`ExampleFlags::Flag0`]
+            0 : Flag0,
+            /// Optional docstring for [`ExampleFlags::Flag1`]
+            3 : Flag1,
+            /// Optional docstring for [`ExampleFlags::Flag2`]
+            6 : Flag2,
         }
     }

… or just omit the flags altogether and use indices only.:

-
use ubits::bitfield;
-    bitfield! {
-        /// Optional docstring
-        /// for [`ExampleField`] struct
-        pub u8 ExampleField
+
use ubits::bitfield;
+    bitfield! {
+        /// Optional docstring
+        /// for [`ExampleField`] struct
+        pub u8 ExampleField
     }

Note: if you omit flags, no flag enum will be generated and no methods for the bitfield struct that rely on flags will be generated.

-
- \ No newline at end of file + \ No newline at end of file diff --git a/docs/doc/ubits/sidebar-items.js b/docs/doc/ubits/sidebar-items.js index c9b01ef..d0d32fc 100644 --- a/docs/doc/ubits/sidebar-items.js +++ b/docs/doc/ubits/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"macro":[["bitfield","Generates a bitfield struct and a corresponding flag enum."]],"mod":[["examples","Examples of generated output using different configurations."]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"macro":["bitfield"],"mod":["examples"]}; \ No newline at end of file diff --git a/docs/doc/wheel.svg b/docs/doc/wheel.svg deleted file mode 100644 index 01da3b2..0000000 --- a/docs/doc/wheel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file