diff --git a/.lock b/.lock new file mode 100755 index 0000000..e69de29 diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/0.13.0/.lock b/0.13.0/.lock new file mode 100644 index 0000000..e69de29 diff --git a/0.13.0/crates.js b/0.13.0/crates.js new file mode 100644 index 0000000..7d9c1db --- /dev/null +++ b/0.13.0/crates.js @@ -0,0 +1 @@ +window.ALL_CRATES = ["soa_derive_example"]; \ No newline at end of file diff --git a/0.13.0/help.html b/0.13.0/help.html new file mode 100644 index 0000000..1e0988b --- /dev/null +++ b/0.13.0/help.html @@ -0,0 +1 @@ +Rustdoc help

Rustdoc help

Back
\ No newline at end of file diff --git a/0.13.0/implementors/core/clone/trait.Clone.js b/0.13.0/implementors/core/clone/trait.Clone.js new file mode 100644 index 0000000..f66544c --- /dev/null +++ b/0.13.0/implementors/core/clone/trait.Clone.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl Clone for ParticlePtr"],["impl<'a> Clone for ParticleRef<'a>"],["impl Clone for ParticlePtrMut"],["impl<'a> Clone for ParticleSlice<'a>"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/0.13.0/implementors/core/cmp/trait.PartialEq.js b/0.13.0/implementors/core/cmp/trait.PartialEq.js new file mode 100644 index 0000000..40da378 --- /dev/null +++ b/0.13.0/implementors/core/cmp/trait.PartialEq.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl<'a> PartialEq<ParticleRef<'a>> for ParticleRef<'a>"],["impl PartialEq<Particle> for Particle"],["impl PartialEq<ParticlePtr> for ParticlePtr"],["impl PartialEq<ParticleVec> for ParticleVec"],["impl<'a> PartialEq<ParticleSlice<'a>> for ParticleSlice<'a>"],["impl<'a> PartialEq<ParticleSliceMut<'a>> for ParticleSliceMut<'a>"],["impl<'a> PartialEq<ParticleRefMut<'a>> for ParticleRefMut<'a>"],["impl PartialEq<ParticlePtrMut> for ParticlePtrMut"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/0.13.0/implementors/core/fmt/trait.Debug.js b/0.13.0/implementors/core/fmt/trait.Debug.js new file mode 100644 index 0000000..e4c5257 --- /dev/null +++ b/0.13.0/implementors/core/fmt/trait.Debug.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl<'a> Debug for ParticleRef<'a>"],["impl Debug for Particle"],["impl Debug for ParticlePtrMut"],["impl Debug for ParticlePtr"],["impl<'a> Debug for ParticleSlice<'a>"],["impl<'a> Debug for ParticleRefMut<'a>"],["impl Debug for ParticleVec"],["impl<'a> Debug for ParticleSliceMut<'a>"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/0.13.0/implementors/core/iter/traits/collect/trait.FromIterator.js b/0.13.0/implementors/core/iter/traits/collect/trait.FromIterator.js new file mode 100644 index 0000000..dd7a8a2 --- /dev/null +++ b/0.13.0/implementors/core/iter/traits/collect/trait.FromIterator.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl FromIterator<Particle> for ParticleVec"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/0.13.0/implementors/core/iter/traits/collect/trait.IntoIterator.js b/0.13.0/implementors/core/iter/traits/collect/trait.IntoIterator.js new file mode 100644 index 0000000..3a774de --- /dev/null +++ b/0.13.0/implementors/core/iter/traits/collect/trait.IntoIterator.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl<'a> IntoIterator for ParticleSlice<'a>"],["impl<'a> IntoIterator for &'a ParticleVec"],["impl<'a> IntoIterator for ParticleSliceMut<'a>"],["impl<'a, 'b> IntoIterator for &'a ParticleSlice<'b>"],["impl<'a> IntoIterator for &'a mut ParticleVec"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/0.13.0/implementors/core/marker/trait.Copy.js b/0.13.0/implementors/core/marker/trait.Copy.js new file mode 100644 index 0000000..44b148b --- /dev/null +++ b/0.13.0/implementors/core/marker/trait.Copy.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl Copy for ParticlePtr"],["impl<'a> Copy for ParticleSlice<'a>"],["impl Copy for ParticlePtrMut"],["impl<'a> Copy for ParticleRef<'a>"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/0.13.0/implementors/core/marker/trait.Freeze.js b/0.13.0/implementors/core/marker/trait.Freeze.js new file mode 100644 index 0000000..8cea55d --- /dev/null +++ b/0.13.0/implementors/core/marker/trait.Freeze.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl Freeze for Particle",1,["soa_derive_example::Particle"]],["impl Freeze for ParticleVec",1,["soa_derive_example::ParticleVec"]],["impl<'a> Freeze for ParticleRef<'a>",1,["soa_derive_example::ParticleRef"]],["impl<'a> Freeze for ParticleRefMut<'a>",1,["soa_derive_example::ParticleRefMut"]],["impl Freeze for ParticlePtr",1,["soa_derive_example::ParticlePtr"]],["impl Freeze for ParticlePtrMut",1,["soa_derive_example::ParticlePtrMut"]],["impl<'a> Freeze for ParticleSlice<'a>",1,["soa_derive_example::ParticleSlice"]],["impl<'a> Freeze for ParticleSliceMut<'a>",1,["soa_derive_example::ParticleSliceMut"]]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/0.13.0/implementors/core/marker/trait.Send.js b/0.13.0/implementors/core/marker/trait.Send.js new file mode 100644 index 0000000..e44de00 --- /dev/null +++ b/0.13.0/implementors/core/marker/trait.Send.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl Send for Particle",1,["soa_derive_example::Particle"]],["impl Send for ParticleVec",1,["soa_derive_example::ParticleVec"]],["impl<'a> Send for ParticleRef<'a>",1,["soa_derive_example::ParticleRef"]],["impl<'a> Send for ParticleRefMut<'a>",1,["soa_derive_example::ParticleRefMut"]],["impl !Send for ParticlePtr",1,["soa_derive_example::ParticlePtr"]],["impl !Send for ParticlePtrMut",1,["soa_derive_example::ParticlePtrMut"]],["impl<'a> Send for ParticleSlice<'a>",1,["soa_derive_example::ParticleSlice"]],["impl<'a> Send for ParticleSliceMut<'a>",1,["soa_derive_example::ParticleSliceMut"]]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/0.13.0/implementors/core/marker/trait.StructuralPartialEq.js b/0.13.0/implementors/core/marker/trait.StructuralPartialEq.js new file mode 100644 index 0000000..7311f14 --- /dev/null +++ b/0.13.0/implementors/core/marker/trait.StructuralPartialEq.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl<'a> StructuralPartialEq for ParticleRefMut<'a>"],["impl<'a> StructuralPartialEq for ParticleRef<'a>"],["impl StructuralPartialEq for ParticlePtr"],["impl<'a> StructuralPartialEq for ParticleSliceMut<'a>"],["impl StructuralPartialEq for ParticleVec"],["impl<'a> StructuralPartialEq for ParticleSlice<'a>"],["impl StructuralPartialEq for ParticlePtrMut"],["impl StructuralPartialEq for Particle"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/0.13.0/implementors/core/marker/trait.Sync.js b/0.13.0/implementors/core/marker/trait.Sync.js new file mode 100644 index 0000000..f3aae58 --- /dev/null +++ b/0.13.0/implementors/core/marker/trait.Sync.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl Sync for Particle",1,["soa_derive_example::Particle"]],["impl Sync for ParticleVec",1,["soa_derive_example::ParticleVec"]],["impl<'a> Sync for ParticleRef<'a>",1,["soa_derive_example::ParticleRef"]],["impl<'a> Sync for ParticleRefMut<'a>",1,["soa_derive_example::ParticleRefMut"]],["impl !Sync for ParticlePtr",1,["soa_derive_example::ParticlePtr"]],["impl !Sync for ParticlePtrMut",1,["soa_derive_example::ParticlePtrMut"]],["impl<'a> Sync for ParticleSlice<'a>",1,["soa_derive_example::ParticleSlice"]],["impl<'a> Sync for ParticleSliceMut<'a>",1,["soa_derive_example::ParticleSliceMut"]]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/0.13.0/implementors/core/marker/trait.Unpin.js b/0.13.0/implementors/core/marker/trait.Unpin.js new file mode 100644 index 0000000..a945cfe --- /dev/null +++ b/0.13.0/implementors/core/marker/trait.Unpin.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl Unpin for Particle",1,["soa_derive_example::Particle"]],["impl Unpin for ParticleVec",1,["soa_derive_example::ParticleVec"]],["impl<'a> Unpin for ParticleRef<'a>",1,["soa_derive_example::ParticleRef"]],["impl<'a> Unpin for ParticleRefMut<'a>",1,["soa_derive_example::ParticleRefMut"]],["impl Unpin for ParticlePtr",1,["soa_derive_example::ParticlePtr"]],["impl Unpin for ParticlePtrMut",1,["soa_derive_example::ParticlePtrMut"]],["impl<'a> Unpin for ParticleSlice<'a>",1,["soa_derive_example::ParticleSlice"]],["impl<'a> Unpin for ParticleSliceMut<'a>",1,["soa_derive_example::ParticleSliceMut"]]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/0.13.0/implementors/core/ops/drop/trait.Drop.js b/0.13.0/implementors/core/ops/drop/trait.Drop.js new file mode 100644 index 0000000..1a4761a --- /dev/null +++ b/0.13.0/implementors/core/ops/drop/trait.Drop.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl Drop for ParticleVec"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/0.13.0/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js b/0.13.0/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js new file mode 100644 index 0000000..0f76dd0 --- /dev/null +++ b/0.13.0/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl RefUnwindSafe for Particle",1,["soa_derive_example::Particle"]],["impl RefUnwindSafe for ParticleVec",1,["soa_derive_example::ParticleVec"]],["impl<'a> RefUnwindSafe for ParticleRef<'a>",1,["soa_derive_example::ParticleRef"]],["impl<'a> RefUnwindSafe for ParticleRefMut<'a>",1,["soa_derive_example::ParticleRefMut"]],["impl RefUnwindSafe for ParticlePtr",1,["soa_derive_example::ParticlePtr"]],["impl RefUnwindSafe for ParticlePtrMut",1,["soa_derive_example::ParticlePtrMut"]],["impl<'a> RefUnwindSafe for ParticleSlice<'a>",1,["soa_derive_example::ParticleSlice"]],["impl<'a> RefUnwindSafe for ParticleSliceMut<'a>",1,["soa_derive_example::ParticleSliceMut"]]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/0.13.0/implementors/core/panic/unwind_safe/trait.UnwindSafe.js b/0.13.0/implementors/core/panic/unwind_safe/trait.UnwindSafe.js new file mode 100644 index 0000000..dca5444 --- /dev/null +++ b/0.13.0/implementors/core/panic/unwind_safe/trait.UnwindSafe.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl UnwindSafe for Particle",1,["soa_derive_example::Particle"]],["impl UnwindSafe for ParticleVec",1,["soa_derive_example::ParticleVec"]],["impl<'a> UnwindSafe for ParticleRef<'a>",1,["soa_derive_example::ParticleRef"]],["impl<'a> !UnwindSafe for ParticleRefMut<'a>",1,["soa_derive_example::ParticleRefMut"]],["impl UnwindSafe for ParticlePtr",1,["soa_derive_example::ParticlePtr"]],["impl UnwindSafe for ParticlePtrMut",1,["soa_derive_example::ParticlePtrMut"]],["impl<'a> UnwindSafe for ParticleSlice<'a>",1,["soa_derive_example::ParticleSlice"]],["impl<'a> !UnwindSafe for ParticleSliceMut<'a>",1,["soa_derive_example::ParticleSliceMut"]]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/0.13.0/implementors/soa_derive/trait.SoAIndex.js b/0.13.0/implementors/soa_derive/trait.SoAIndex.js new file mode 100644 index 0000000..40a2390 --- /dev/null +++ b/0.13.0/implementors/soa_derive/trait.SoAIndex.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl<'a> SoAIndex<ParticleSlice<'a>> for usize"],["impl<'a> SoAIndex<&'a ParticleVec> for RangeFull"],["impl<'a> SoAIndex<&'a ParticleVec> for RangeInclusive<usize>"],["impl<'a> SoAIndex<&'a ParticleVec> for usize"],["impl<'a> SoAIndex<ParticleSlice<'a>> for RangeTo<usize>"],["impl<'a> SoAIndex<&'a ParticleVec> for RangeToInclusive<usize>"],["impl<'a> SoAIndex<ParticleSlice<'a>> for RangeFull"],["impl<'a> SoAIndex<ParticleSlice<'a>> for Range<usize>"],["impl<'a> SoAIndex<ParticleSlice<'a>> for RangeToInclusive<usize>"],["impl<'a> SoAIndex<ParticleSlice<'a>> for RangeFrom<usize>"],["impl<'a> SoAIndex<&'a ParticleVec> for RangeTo<usize>"],["impl<'a> SoAIndex<ParticleSlice<'a>> for RangeInclusive<usize>"],["impl<'a> SoAIndex<&'a ParticleVec> for Range<usize>"],["impl<'a> SoAIndex<&'a ParticleVec> for RangeFrom<usize>"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/0.13.0/implementors/soa_derive/trait.SoAIndexMut.js b/0.13.0/implementors/soa_derive/trait.SoAIndexMut.js new file mode 100644 index 0000000..81e6f71 --- /dev/null +++ b/0.13.0/implementors/soa_derive/trait.SoAIndexMut.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeFrom<usize>"],["impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeToInclusive<usize>"],["impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeInclusive<usize>"],["impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for Range<usize>"],["impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeInclusive<usize>"],["impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeTo<usize>"],["impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeFull"],["impl<'a> SoAIndexMut<&'a mut ParticleVec> for Range<usize>"],["impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeToInclusive<usize>"],["impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeTo<usize>"],["impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeFull"],["impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for usize"],["impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeFrom<usize>"],["impl<'a> SoAIndexMut<&'a mut ParticleVec> for usize"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/0.13.0/implementors/soa_derive/trait.SoAIter.js b/0.13.0/implementors/soa_derive/trait.SoAIter.js new file mode 100644 index 0000000..82bac03 --- /dev/null +++ b/0.13.0/implementors/soa_derive/trait.SoAIter.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl<'a> SoAIter<'a> for Particle"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/0.13.0/implementors/soa_derive/trait.StructOfArray.js b/0.13.0/implementors/soa_derive/trait.StructOfArray.js new file mode 100644 index 0000000..7855717 --- /dev/null +++ b/0.13.0/implementors/soa_derive/trait.StructOfArray.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl StructOfArray for Particle"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/0.13.0/index.html b/0.13.0/index.html new file mode 100644 index 0000000..e6062ee --- /dev/null +++ b/0.13.0/index.html @@ -0,0 +1 @@ + diff --git a/0.13.0/search-index.js b/0.13.0/search-index.js new file mode 100644 index 0000000..1c5aa8d --- /dev/null +++ b/0.13.0/search-index.js @@ -0,0 +1,5 @@ +var searchIndex = JSON.parse('{\ +"soa_derive_example":{"doc":"This crate is an example for the soa_derive crate …","t":"DDDDDDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMLLLLLMMMMMMMMMMMMMMMMLLLLMMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL","n":["Particle","ParticlePtr","ParticlePtrMut","ParticleRef","ParticleRefMut","ParticleSlice","ParticleSliceMut","ParticleVec","add","add","append","as_mut","as_mut","as_mut_ptr","as_mut_ptr","as_mut_ptr","as_mut_ptr","as_mut_slice","as_ptr","as_ptr","as_ptr","as_ptr","as_ptr","as_ptr","as_ref","as_ref","as_ref","as_ref","as_slice","as_slice","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","capacity","clear","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","drop","eq","eq","eq","eq","eq","eq","eq","eq","first","first_mut","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_iter","from_raw_parts","from_raw_parts","from_raw_parts_mut","get","get","get","get_mut","get_mut","get_unchecked","get_unchecked","get_unchecked","get_unchecked_mut","get_unchecked_mut","index","index","index","index_mut","index_mut","insert","into","into","into","into","into","into","into","into","into_iter","into_iter","into_iter","into_iter","into_iter","into_iter","into_iter","is_empty","is_empty","is_empty","is_null","is_null","iter","iter","iter","iter_mut","iter_mut","kind","kind","kind","kind","kind","kind","kind","kind","last","last_mut","len","len","len","mass","mass","mass","mass","mass","mass","mass","mass","name","name","name","name","name","name","name","name","new","offset","offset","pop","position","position","position","position","position","position","position","position","push","read","read","read_unaligned","read_unaligned","read_volatile","read_volatile","reborrow","reborrow","remove","reserve","reserve_exact","retain","shrink_to_fit","slice","slice_mut","sort","sort_by","sort_by_key","split_at","split_at_mut","split_first","split_first_mut","split_last","split_last_mut","split_off","sub","sub","swap","swap_remove","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","truncate","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","with_capacity","wrapping_add","wrapping_add","wrapping_offset","wrapping_offset","wrapping_sub","wrapping_sub","write","write_unaligned","write_volatile"],"q":["soa_derive_example","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["A basic Particle type","An analog of a pointer to Particle with struct of array …","An analog of a mutable pointer to Particle with struct of …","A reference to a Particle with struct of array layout.","A mutable reference to a Particle with struct of array …","A slice of Particle inside a ParticleVec .","A mutable slice of Particle inside a ParticleVec .","An analog to Vec<Particle>\\n with Struct of Array (SoA) …","Similar to *const T::add(), with the same safety caveats.","Similar to *mut T::add(), with the same safety caveats.","Similar to Vec<Particle> ::append().","Similar to *mut T::as_mut(), with the same safety caveats.","Create a ParticleRefMut from a mutably borrowed Particle .","Similar to Vec<Particle> ::as_mut_ptr().","Convert a ParticleRefMut to a ParticlePtrMut ; i.e. do a …","Convert a ParticlePtr to a ParticlePtrMut ; i.e. do a …","Similar to &mut [Particle] ::as_mut_ptr().","Similar to Vec<Particle> ::as_mut_slice().","Similar to Vec<Particle> ::as_ptr().","Convert a ParticleRef to a ParticlePtr ; i.e. do a …","Convert a ParticleRefMut to a ParticlePtr ; i.e. do a …","Convert a ParticlePtrMut to a ParticlePtr ; i.e. do a …","Similar to & [Particle] ::as_ptr().","Similar to & [Particle] ::as_ptr().","Similar to *const T::as_ref(), with the same safety …","Similar to *mut T::as_ref(), with the same safety caveats.","Convert a ParticleSliceMut to a ParticleSlice in order to …","Create a ParticleRef from a borrowed Particle .","Similar to Vec<Particle> ::as_slice().","Returns a non-mutable slice from this mutable slice.","","","","","","","","","","","","","","","","","Similar to Vec<Particle> ::capacity(), the capacity of …","Similar to Vec<Particle> ::clear().","","","","","","","","","","","","","","","","","","Similar to & [Particle] ::first().","Similar to &mut [Particle] ::first_mut().","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Similar to Vec<Particle> ::from_raw_parts().","Similar to std::slice::from_raw_parts().","Similar to std::slice::from_raw_parts_mut().","Similar to Vec<Particle> ::get<I>().","Similar to & [Particle] ::get().","Similar to & [Particle] ::get().","Similar to Vec<Particle> ::get_mut<I>().","Similar to &mut [Particle] ::get_mut().","Similar to Vec<Particle> ::get_unchecked<I>().","Similar to & [Particle] ::get_unchecked().","Similar to & [Particle] ::get_unchecked().","Similar to Vec<Particle> ::get_unchecked_mut<I>().","Similar to &mut [Particle] ::get_unchecked_mut().","Similar to Vec<Particle> ::index<I>().","Similar to the std::ops::Index trait for & [Particle] . …","Similar to the std::ops::Index trait for & [Particle] . …","Similar to Vec<Particle> ::index_mut<I>().","Similar to the std::ops::IndexMut trait for …","Similar to Vec<Particle> ::insert().","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","Get an iterator over the ParticleRef in this slice.","","","Get a mutable iterator over the ParticleRefMut in this …","Similar to Vec<Particle> ::is_empty(), all the fields …","Similar to & [Particle] ::is_empty(), the length of all …","Similar to & [Particle] ::is_empty(), the length of all …","Similar to *const T::is_null().","Similar to *mut T::is_null().","Get an iterator over the ParticleRef in this vector","Get an iterator over the ParticleRef in this slice.","Get an iterator over the ParticleRef in this vector","Get a mutable iterator over the ParticleRefMut in this …","Get a mutable iterator over the ParticleRefMut in this …","a vector of kind from a Particle","reference to the kind field of a single Particle inside a …","reference to the kind field of a single Particle inside a …","pointer to the kind field of a single Particle inside a …","pointer to the kind field of a single Particle inside a …","slice of kind inside a ParticleVec","slice of kind inside a ParticleVec","Kind of the particle","Similar to & [Particle] ::last().","Similar to &mut [Particle] ::last_mut().","Similar to Vec<Particle> ::len(), all the fields should …","Similar to & [Particle] ::len(), the length of all fields …","Similar to & [Particle] ::len(), the length of all fields …","a vector of mass from a Particle","reference to the mass field of a single Particle inside a …","reference to the mass field of a single Particle inside a …","pointer to the mass field of a single Particle inside a …","pointer to the mass field of a single Particle inside a …","slice of mass inside a ParticleVec","slice of mass inside a ParticleVec","Mass of the particle","a vector of name from a Particle","reference to the name field of a single Particle inside a …","reference to the name field of a single Particle inside a …","pointer to the name field of a single Particle inside a …","pointer to the name field of a single Particle inside a …","slice of name inside a ParticleVec","slice of name inside a ParticleVec","Name of the particle","Similar to Vec<Particle> ::new()","Similar to *const T::offset(), with the same safety …","Similar to *mut T::offset(), with the same safety caveats.","Similar to Vec<Particle> ::pop().","a vector of position from a Particle","reference to the position field of a single Particle …","reference to the position field of a single Particle …","pointer to the position field of a single Particle inside a","pointer to the position field of a single Particle inside a","slice of position inside a ParticleVec","slice of position inside a ParticleVec","Position of the particle","Similar to Vec<Particle> ::push().","Similar to *const T::read(), with the same safety caveats.","Similar to *mut T::read(), with the same safety caveats.","Similar to *const T::read_unaligned(), with the same …","Similar to *mut T::read_unaligned(), with the same safety …","Similar to *const T::read_volatile(), with the same safety …","Similar to *mut T::read_volatile(), with the same safety …","Reborrows the slices in a narrower lifetime","Reborrows the slices in a narrower lifetime","Similar to Vec<Particle> ::remove().","Similar to Vec<Particle> ::reserve(), reserving the same …","Similar to Vec<Particle> ::reserve_exact() reserving the …","Similar to Vec<Particle> ::retain().","Similar to Vec<Particle> ::shrink_to_fit() shrinking all …","Create a slice of this vector matching the given range. …","Create a mutable slice of this vector matching the given …","Similar to &mut [Particle] ::sort().","Similar to &mut [Particle] ::sort_by().","Similar to &mut [Particle] ::sort_by_key().","Similar to & [Particle] ::split_at().","Similar to &mut [Particle] ::split_at_mut().","Similar to & [Particle] ::split_first().","Similar to &mut [Particle] ::split_first_mut().","Similar to & [Particle] ::split_last().","Similar to &mut [Particle] ::last_mut().","Similar to Vec<Particle> ::split_off().","Similar to *const T::sub(), with the same safety caveats.","Similar to *mut T::sub(), with the same safety caveats.","Similar to &mut [Particle] ::swap().","Similar to Vec<Particle> ::swap_remove().","","Convert a reference to Particle into an owned value. This …","Convert a mutable reference to Particle into an owned …","","","","Similar to Vec<Particle> ::truncate() truncating all …","","","","","","","","","","","","","","","","","","","","","","","","","Similar to Vec<Particle> ::with_capacity(), initializing …","Similar to *const T::wrapping_add().","Similar to *mut T::wrapping_add(), with the same safety …","Similar to *const T::offset().","Similar to *mut T::wrapping_offset()","Similar to *const T::wrapping_sub().","Similar to *mut T::wrapping_sub(), with the same safety …","Similar to *mut T::write(), with the same safety caveats.","Similar to *mut T::write_unaligned(), with the same safety …","Similar to *mut T::write_volatile(), with the same safety …"],"i":[0,0,0,0,0,0,0,0,1,3,4,3,7,4,5,1,8,4,4,9,5,3,10,8,1,3,8,7,4,8,4,9,5,1,3,10,8,7,4,9,5,1,3,10,8,7,4,4,9,1,3,10,9,1,3,10,4,4,9,5,1,3,10,8,7,10,8,4,9,5,1,3,10,8,7,4,9,5,1,3,10,8,7,4,4,10,8,4,10,8,4,8,4,10,8,4,8,4,10,8,4,8,4,4,9,5,1,3,10,8,7,4,4,10,10,10,8,8,4,10,8,1,3,4,10,8,4,8,4,9,5,1,3,10,8,7,10,8,4,10,8,4,9,5,1,3,10,8,7,4,9,5,1,3,10,8,7,4,1,3,4,4,9,5,1,3,10,8,7,4,1,3,1,3,1,3,10,8,4,4,4,4,4,4,4,8,8,8,10,8,10,8,10,8,4,1,3,8,4,9,9,5,1,3,10,4,4,9,5,1,3,10,8,7,4,9,5,1,3,10,8,7,4,9,5,1,3,10,8,7,4,1,3,1,3,1,3,3,3,3],"f":[0,0,0,0,0,0,0,0,[[1,2],1],[[3,2],3],[[4,4]],[3,[[6,[5]]]],[7,5],[4,3],[5,3],[1,3],[8,3],[4,8],[4,1],[9,1],[5,1],[3,1],[10,1],[8,1],[1,[[6,[9]]]],[3,[[6,[9]]]],[8,10],[7,9],[4,10],[8,10],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[4,2],[4],[9,9],[1,1],[3,3],[10,10],[[]],[[]],[[]],[[]],[4],[[4,4],11],[[9,9],11],[[5,5],11],[[1,1],11],[[3,3],11],[[10,10],11],[[8,8],11],[[7,7],11],[10,[[6,[9]]]],[8,[[6,[5]]]],[[4,12],13],[[9,12],13],[[5,12],13],[[1,12],13],[[3,12],13],[[10,12],13],[[8,12],13],[[7,12],13],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[14,4],[[3,2,2],4],[[1,2],10],[[3,2],8],[4,6],[10,6],[8,6],[4,6],[8,6],[4],[10],[8],[4],[8],[4],[10],[8],[4],[8],[[4,2,7]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[4],[4],[10],0,[10],[8],0,[4,11],[10,11],[8,11],[1,11],[3,11],0,0,0,0,0,0,0,0,0,0,0,0,0,[10,[[6,[9]]]],[8,[[6,[5]]]],[4,2],[10,2],[8,2],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],4],[[1,15],1],[[3,15],3],[4,[[6,[7]]]],0,0,0,0,0,0,0,0,[[4,7]],[1,7],[3,7],[1,7],[3,7],[1,7],[3,7],[10,10],[8,8],[[4,2],7],[[4,2]],[[4,2]],[4],[4],[[4,[16,[2]]],10],[[4,[16,[2]]],8],[8],[8],[8],[[10,2]],[[8,2]],[10,6],[8,6],[10,6],[8,6],[[4,2],4],[[1,2],1],[[3,2],3],[[8,2,2]],[[4,2],7],[[]],[9,7],[5,7],[[]],[[]],[[]],[[4,2]],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[2,4],[[1,2],1],[[3,2],3],[[1,15],1],[[3,15],3],[[1,2],1],[[3,2],3],[[3,7]],[[3,7]],[[3,7]]],"p":[[3,"ParticlePtr"],[15,"usize"],[3,"ParticlePtrMut"],[3,"ParticleVec"],[3,"ParticleRefMut"],[4,"Option"],[3,"Particle"],[3,"ParticleSliceMut"],[3,"ParticleRef"],[3,"ParticleSlice"],[15,"bool"],[3,"Formatter"],[6,"Result"],[8,"IntoIterator"],[15,"isize"],[3,"Range"],[4,"Result"],[3,"TypeId"]]}\ +}'); +if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)}; +if (typeof exports !== 'undefined') {exports.searchIndex = searchIndex}; diff --git a/0.13.0/settings.html b/0.13.0/settings.html new file mode 100644 index 0000000..4f9161c --- /dev/null +++ b/0.13.0/settings.html @@ -0,0 +1 @@ +Rustdoc settings

Rustdoc settings

Back
\ No newline at end of file diff --git a/0.13.0/soa_derive_example/all.html b/0.13.0/soa_derive_example/all.html new file mode 100644 index 0000000..5e6ed66 --- /dev/null +++ b/0.13.0/soa_derive_example/all.html @@ -0,0 +1 @@ +List of all items in this crate

List of all items

Structs

\ No newline at end of file diff --git a/0.13.0/soa_derive_example/index.html b/0.13.0/soa_derive_example/index.html new file mode 100644 index 0000000..fed71d2 --- /dev/null +++ b/0.13.0/soa_derive_example/index.html @@ -0,0 +1,38 @@ +soa_derive_example - Rust
Expand description

This crate is an example for the soa_derive crate functionalities. All +the code is generated by a single file:

+ +
extern crate soa_derive;
+#[macro_use]
+use soa_derive::StructOfArray;
+
+/// A basic Particle type
+#[derive(Debug, PartialEq, StructOfArray)]
+#[soa_derive(Debug, PartialEq)]
+pub struct Particle {
+    /// Mass of the particle
+    pub mass: f64,
+    /// Position of the particle
+    pub position: [f64; 3],
+    /// Kind of the particle
+    pub kind: usize,
+    /// Name of the particle
+    pub name: String,
+}
+

Structs

\ No newline at end of file diff --git a/0.13.0/soa_derive_example/sidebar-items.js b/0.13.0/soa_derive_example/sidebar-items.js new file mode 100644 index 0000000..f8897f5 --- /dev/null +++ b/0.13.0/soa_derive_example/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"struct":["Particle","ParticlePtr","ParticlePtrMut","ParticleRef","ParticleRefMut","ParticleSlice","ParticleSliceMut","ParticleVec"]}; \ No newline at end of file diff --git a/0.13.0/soa_derive_example/struct.Particle.html b/0.13.0/soa_derive_example/struct.Particle.html new file mode 100644 index 0000000..56d1884 --- /dev/null +++ b/0.13.0/soa_derive_example/struct.Particle.html @@ -0,0 +1,33 @@ +Particle in soa_derive_example - Rust
pub struct Particle {
+    pub mass: f64,
+    pub position: [f64; 3],
+    pub kind: usize,
+    pub name: String,
+}
Expand description

A basic Particle type

+

Fields§

§mass: f64

Mass of the particle

+
§position: [f64; 3]

Position of the particle

+
§kind: usize

Kind of the particle

+
§name: String

Name of the particle

+

Implementations§

source§

impl Particle

source

pub fn as_ref(&self) -> ParticleRef<'_>

Create a +ParticleRef +from a borrowed +Particle +.

+
source

pub fn as_mut(&mut self) -> ParticleRefMut<'_>

Create a +ParticleRefMut +from a mutably borrowed +Particle +.

+

Trait Implementations§

source§

impl Debug for Particle

source§

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

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

impl FromIterator<Particle> for ParticleVec

source§

fn from_iter<T: IntoIterator<Item = Particle>>(iter: T) -> Self

Creates a value from an iterator. Read more
source§

impl PartialEq<Particle> for Particle

source§

fn eq(&self, other: &Particle) -> 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<'a> SoAIter<'a> for Particle

§

type Iter = Iter<'a>

§

type IterMut = IterMut<'a>

source§

impl StructOfArray for Particle

source§

impl StructuralPartialEq for Particle

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,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

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

const: unstable · 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.

+
source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · 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.
const: unstable · source§

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

Performs the conversion.
\ No newline at end of file diff --git a/0.13.0/soa_derive_example/struct.ParticlePtr.html b/0.13.0/soa_derive_example/struct.ParticlePtr.html new file mode 100644 index 0000000..4c2330f --- /dev/null +++ b/0.13.0/soa_derive_example/struct.ParticlePtr.html @@ -0,0 +1,61 @@ +ParticlePtr in soa_derive_example - Rust
pub struct ParticlePtr {
+    pub mass: *const f64,
+    pub position: *const [f64; 3],
+    pub kind: *const usize,
+    pub name: *const String,
+}
Expand description

An analog of a pointer to +Particle +with struct of array layout.

+

Fields§

§mass: *const f64

pointer to the mass field of a single +Particle +inside a +ParticleVec

+
§position: *const [f64; 3]

pointer to the position field of a single +Particle +inside a +ParticleVec

+
§kind: *const usize

pointer to the kind field of a single +Particle +inside a +ParticleVec

+
§name: *const String

pointer to the name field of a single +Particle +inside a +ParticleVec

+

Implementations§

source§

impl ParticlePtr

source

pub fn as_mut_ptr(&self) -> ParticlePtrMut

Convert a +ParticlePtr +to a +ParticlePtrMut +; i.e. do a *const T as *mut T transformation.

+
source

pub fn is_null(self) -> bool

Similar to *const T::is_null().

+
source

pub unsafe fn as_ref<'a>(self) -> Option<ParticleRef<'a>>

Similar to *const T::as_ref(), +with the same safety caveats.

+
source

pub unsafe fn offset(self, count: isize) -> ParticlePtr

Similar to *const T::offset(), +with the same safety caveats.

+
source

pub fn wrapping_offset(self, count: isize) -> ParticlePtr

Similar to *const T::offset().

+
source

pub unsafe fn add(self, count: usize) -> ParticlePtr

Similar to *const T::add(), +with the same safety caveats.

+
source

pub unsafe fn sub(self, count: usize) -> ParticlePtr

Similar to *const T::sub(), +with the same safety caveats.

+
source

pub fn wrapping_add(self, count: usize) -> ParticlePtr

source

pub fn wrapping_sub(self, count: usize) -> ParticlePtr

source

pub unsafe fn read(self) -> Particle

Similar to *const T::read(), +with the same safety caveats.

+
source

pub unsafe fn read_volatile(self) -> Particle

Similar to *const T::read_volatile(), +with the same safety caveats.

+
source

pub unsafe fn read_unaligned(self) -> Particle

Similar to *const T::read_unaligned(), +with the same safety caveats.

+

Trait Implementations§

source§

impl Clone for ParticlePtr

source§

fn clone(&self) -> ParticlePtr

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 ParticlePtr

source§

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

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

impl PartialEq<ParticlePtr> for ParticlePtr

source§

fn eq(&self, other: &ParticlePtr) -> 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 Copy for ParticlePtr

source§

impl StructuralPartialEq for ParticlePtr

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,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

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

const: unstable · 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.

+
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.
const: unstable · 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.
const: unstable · source§

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

Performs the conversion.
\ No newline at end of file diff --git a/0.13.0/soa_derive_example/struct.ParticlePtrMut.html b/0.13.0/soa_derive_example/struct.ParticlePtrMut.html new file mode 100644 index 0000000..f6a4870 --- /dev/null +++ b/0.13.0/soa_derive_example/struct.ParticlePtrMut.html @@ -0,0 +1,71 @@ +ParticlePtrMut in soa_derive_example - Rust
pub struct ParticlePtrMut {
+    pub mass: *mut f64,
+    pub position: *mut [f64; 3],
+    pub kind: *mut usize,
+    pub name: *mut String,
+}
Expand description

An analog of a mutable pointer to +Particle +with struct of array layout.

+

Fields§

§mass: *mut f64

pointer to the mass field of a single +Particle +inside a +ParticleVec

+
§position: *mut [f64; 3]

pointer to the position field of a single +Particle +inside a +ParticleVec

+
§kind: *mut usize

pointer to the kind field of a single +Particle +inside a +ParticleVec

+
§name: *mut String

pointer to the name field of a single +Particle +inside a +ParticleVec

+

Implementations§

source§

impl ParticlePtrMut

source

pub fn as_ptr(&self) -> ParticlePtr

Convert a +ParticlePtrMut +to a +ParticlePtr +; i.e. do a *mut T as *const T transformation

+
source

pub fn is_null(self) -> bool

Similar to *mut T::is_null().

+
source

pub unsafe fn as_ref<'a>(self) -> Option<ParticleRef<'a>>

Similar to *mut T::as_ref(), +with the same safety caveats.

+
source

pub unsafe fn as_mut<'a>(self) -> Option<ParticleRefMut<'a>>

Similar to *mut T::as_mut(), +with the same safety caveats.

+
source

pub unsafe fn offset(self, count: isize) -> ParticlePtrMut

Similar to *mut T::offset(), +with the same safety caveats.

+
source

pub fn wrapping_offset(self, count: isize) -> ParticlePtrMut

source

pub unsafe fn add(self, count: usize) -> ParticlePtrMut

Similar to *mut T::add(), +with the same safety caveats.

+
source

pub unsafe fn sub(self, count: usize) -> ParticlePtrMut

Similar to *mut T::sub(), +with the same safety caveats.

+
source

pub fn wrapping_add(self, count: usize) -> ParticlePtrMut

Similar to *mut T::wrapping_add(), +with the same safety caveats.

+
source

pub fn wrapping_sub(self, count: usize) -> ParticlePtrMut

Similar to *mut T::wrapping_sub(), +with the same safety caveats.

+
source

pub unsafe fn read(self) -> Particle

Similar to *mut T::read(), +with the same safety caveats.

+
source

pub unsafe fn read_volatile(self) -> Particle

Similar to *mut T::read_volatile(), +with the same safety caveats.

+
source

pub unsafe fn read_unaligned(self) -> Particle

Similar to *mut T::read_unaligned(), +with the same safety caveats.

+
source

pub unsafe fn write(self, val: Particle)

Similar to *mut T::write(), +with the same safety caveats.

+
source

pub unsafe fn write_volatile(self, val: Particle)

Similar to *mut T::write_volatile(), +with the same safety caveats.

+
source

pub unsafe fn write_unaligned(self, val: Particle)

Similar to *mut T::write_unaligned(), +with the same safety caveats.

+

Trait Implementations§

source§

impl Clone for ParticlePtrMut

source§

fn clone(&self) -> ParticlePtrMut

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 ParticlePtrMut

source§

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

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

impl PartialEq<ParticlePtrMut> for ParticlePtrMut

source§

fn eq(&self, other: &ParticlePtrMut) -> 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 Copy for ParticlePtrMut

source§

impl StructuralPartialEq for ParticlePtrMut

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,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

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

const: unstable · 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.

+
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.
const: unstable · 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.
const: unstable · source§

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

Performs the conversion.
\ No newline at end of file diff --git a/0.13.0/soa_derive_example/struct.ParticleRef.html b/0.13.0/soa_derive_example/struct.ParticleRef.html new file mode 100644 index 0000000..adb33c8 --- /dev/null +++ b/0.13.0/soa_derive_example/struct.ParticleRef.html @@ -0,0 +1,51 @@ +ParticleRef in soa_derive_example - Rust
pub struct ParticleRef<'a> {
+    pub mass: &'a f64,
+    pub position: &'a [f64; 3],
+    pub kind: &'a usize,
+    pub name: &'a String,
+}
Expand description

A reference to a +Particle +with struct of array layout.

+

Fields§

§mass: &'a f64

reference to the mass field of a single +Particle +inside a +ParticleVec

+
§position: &'a [f64; 3]

reference to the position field of a single +Particle +inside a +ParticleVec

+
§kind: &'a usize

reference to the kind field of a single +Particle +inside a +ParticleVec

+
§name: &'a String

reference to the name field of a single +Particle +inside a +ParticleVec

+

Implementations§

source§

impl<'a> ParticleRef<'a>

source

pub fn to_owned(&self) -> Particlewhere + for<'b> f64: Clone, + for<'b> [f64; 3]: Clone, + for<'b> usize: Clone, + for<'b> String: Clone,

Convert a reference to +Particle +into an owned value. This is only available if all fields +implement Clone.

+
source§

impl<'a> ParticleRef<'a>

source

pub fn as_ptr(&self) -> ParticlePtr

Convert a +ParticleRef +to a +ParticlePtr +; i.e. do a &T as *const T transformation

+

Trait Implementations§

source§

impl<'a> Clone for ParticleRef<'a>

source§

fn clone(&self) -> ParticleRef<'a>

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<'a> Debug for ParticleRef<'a>

source§

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

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

impl<'a> PartialEq<ParticleRef<'a>> for ParticleRef<'a>

source§

fn eq(&self, other: &ParticleRef<'a>) -> 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<'a> Copy for ParticleRef<'a>

source§

impl<'a> StructuralPartialEq for ParticleRef<'a>

Auto Trait Implementations§

§

impl<'a> RefUnwindSafe for ParticleRef<'a>

§

impl<'a> Send for ParticleRef<'a>

§

impl<'a> Sync for ParticleRef<'a>

§

impl<'a> Unpin for ParticleRef<'a>

§

impl<'a> UnwindSafe for ParticleRef<'a>

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,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

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

const: unstable · 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.

+
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.
const: unstable · 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.
const: unstable · source§

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

Performs the conversion.
\ No newline at end of file diff --git a/0.13.0/soa_derive_example/struct.ParticleRefMut.html b/0.13.0/soa_derive_example/struct.ParticleRefMut.html new file mode 100644 index 0000000..6369668 --- /dev/null +++ b/0.13.0/soa_derive_example/struct.ParticleRefMut.html @@ -0,0 +1,55 @@ +ParticleRefMut in soa_derive_example - Rust
pub struct ParticleRefMut<'a> {
+    pub mass: &'a mut f64,
+    pub position: &'a mut [f64; 3],
+    pub kind: &'a mut usize,
+    pub name: &'a mut String,
+}
Expand description

A mutable reference to a +Particle +with struct of array layout.

+

Fields§

§mass: &'a mut f64

reference to the mass field of a single +Particle +inside a +ParticleVec

+
§position: &'a mut [f64; 3]

reference to the position field of a single +Particle +inside a +ParticleVec

+
§kind: &'a mut usize

reference to the kind field of a single +Particle +inside a +ParticleVec

+
§name: &'a mut String

reference to the name field of a single +Particle +inside a +ParticleVec

+

Implementations§

source§

impl<'a> ParticleRefMut<'a>

source

pub fn to_owned(&self) -> Particlewhere + for<'b> f64: Clone, + for<'b> [f64; 3]: Clone, + for<'b> usize: Clone, + for<'b> String: Clone,

Convert a mutable reference to +Particle +into an owned value. This is only available if all fields +implement Clone.

+
source§

impl<'a> ParticleRefMut<'a>

source

pub fn as_ptr(&self) -> ParticlePtr

Convert a +ParticleRefMut +to a +ParticlePtr +; i.e. do a &mut T as *const T transformation

+
source

pub fn as_mut_ptr(&mut self) -> ParticlePtrMut

Convert a +ParticleRefMut +to a +ParticlePtrMut +; i.e. do a &mut T as *mut T transformation

+

Trait Implementations§

source§

impl<'a> Debug for ParticleRefMut<'a>

source§

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

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

impl<'a> PartialEq<ParticleRefMut<'a>> for ParticleRefMut<'a>

source§

fn eq(&self, other: &ParticleRefMut<'a>) -> 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<'a> StructuralPartialEq for ParticleRefMut<'a>

Auto Trait Implementations§

§

impl<'a> RefUnwindSafe for ParticleRefMut<'a>

§

impl<'a> Send for ParticleRefMut<'a>

§

impl<'a> Sync for ParticleRefMut<'a>

§

impl<'a> Unpin for ParticleRefMut<'a>

§

impl<'a> !UnwindSafe for ParticleRefMut<'a>

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,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

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

const: unstable · 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.

+
source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · 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.
const: unstable · source§

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

Performs the conversion.
\ No newline at end of file diff --git a/0.13.0/soa_derive_example/struct.ParticleSlice.html b/0.13.0/soa_derive_example/struct.ParticleSlice.html new file mode 100644 index 0000000..68a9e27 --- /dev/null +++ b/0.13.0/soa_derive_example/struct.ParticleSlice.html @@ -0,0 +1,87 @@ +ParticleSlice in soa_derive_example - Rust
pub struct ParticleSlice<'a> {
+    pub mass: &'a [f64],
+    pub position: &'a [[f64; 3]],
+    pub kind: &'a [usize],
+    pub name: &'a [String],
+}
Expand description

A slice of +Particle +inside a +ParticleVec +.

+

Fields§

§mass: &'a [f64]

slice of mass inside a +ParticleVec

+
§position: &'a [[f64; 3]]

slice of position inside a +ParticleVec

+
§kind: &'a [usize]

slice of kind inside a +ParticleVec

+
§name: &'a [String]

slice of name inside a +ParticleVec

+

Implementations§

source§

impl<'a> ParticleSlice<'a>

source

pub fn iter(&self) -> Iter<'_>

Get an iterator over the +ParticleRef +in this slice.

+
source

pub fn into_iter(self) -> Iter<'a>

Get an iterator over the +ParticleRef +in this slice.

+
source§

impl<'a> ParticleSlice<'a>

source

pub fn len(&self) -> usize

Similar to & [Particle] ::len(), +the length of all fields should be the same.

+
source

pub fn is_empty(&self) -> bool

Similar to & [Particle] ::is_empty(), +the length of all fields should be the same.

+
source

pub fn first(&self) -> Option<ParticleRef<'a>>

source

pub fn split_first(&self) -> Option<(ParticleRef<'a>, ParticleSlice<'a>)>

source

pub fn last(&self) -> Option<ParticleRef<'a>>

Similar to & [Particle] ::last().

+
source

pub fn split_last(&self) -> Option<(ParticleRef<'a>, ParticleSlice<'a>)>

source

pub fn split_at(&self, mid: usize) -> (ParticleSlice<'a>, ParticleSlice<'a>)

source

pub fn get<'b, I>(&'b self, index: I) -> Option<I::RefOutput>where + I: SoAIndex<ParticleSlice<'b>>, + 'a: 'b,

Similar to & [Particle] ::get().

+
source

pub unsafe fn get_unchecked<'b, I>(&'b self, index: I) -> I::RefOutputwhere + I: SoAIndex<ParticleSlice<'b>>, + 'a: 'b,

source

pub fn index<'b, I>(&'b self, index: I) -> I::RefOutputwhere + I: SoAIndex<ParticleSlice<'b>>, + 'a: 'b,

Similar to the +std::ops::Index +trait for & [Particle] . +This is required because we cannot implement std::ops::Index directly since it requires returning a reference.

+
source

pub fn reborrow<'b>(&'b self) -> ParticleSlice<'b>where + 'a: 'b,

Reborrows the slices in a narrower lifetime

+
source

pub fn as_ptr(&self) -> ParticlePtr

source

pub unsafe fn from_raw_parts<'b>( + data: ParticlePtr, + len: usize +) -> ParticleSlice<'b>

Trait Implementations§

source§

impl<'a> Clone for ParticleSlice<'a>

source§

fn clone(&self) -> ParticleSlice<'a>

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<'a> Debug for ParticleSlice<'a>

source§

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

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

impl<'a, 'b> IntoIterator for &'a ParticleSlice<'b>

§

type Item = ParticleRef<'a>

The type of the elements being iterated over.
§

type IntoIter = Iter<'a>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<'a> IntoIterator for ParticleSlice<'a>

§

type Item = ParticleRef<'a>

The type of the elements being iterated over.
§

type IntoIter = Iter<'a>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<'a> PartialEq<ParticleSlice<'a>> for ParticleSlice<'a>

source§

fn eq(&self, other: &ParticleSlice<'a>) -> 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<'a> SoAIndex<ParticleSlice<'a>> for Range<usize>

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, slice: ParticleSlice<'a>) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<ParticleSlice<'a>> for RangeFrom<usize>

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, slice: ParticleSlice<'a>) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<ParticleSlice<'a>> for RangeFull

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, slice: ParticleSlice<'a>) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<ParticleSlice<'a>> for RangeInclusive<usize>

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, slice: ParticleSlice<'a>) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<ParticleSlice<'a>> for RangeTo<usize>

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, slice: ParticleSlice<'a>) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<ParticleSlice<'a>> for RangeToInclusive<usize>

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, slice: ParticleSlice<'a>) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<ParticleSlice<'a>> for usize

§

type RefOutput = ParticleRef<'a>

The output for the non-mutable functions
source§

fn get(self, slice: ParticleSlice<'a>) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> Copy for ParticleSlice<'a>

source§

impl<'a> StructuralPartialEq for ParticleSlice<'a>

Auto Trait Implementations§

§

impl<'a> RefUnwindSafe for ParticleSlice<'a>

§

impl<'a> Send for ParticleSlice<'a>

§

impl<'a> Sync for ParticleSlice<'a>

§

impl<'a> Unpin for ParticleSlice<'a>

§

impl<'a> UnwindSafe for ParticleSlice<'a>

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,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

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

const: unstable · 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.

+
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.
const: unstable · 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.
const: unstable · source§

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

Performs the conversion.
\ No newline at end of file diff --git a/0.13.0/soa_derive_example/struct.ParticleSliceMut.html b/0.13.0/soa_derive_example/struct.ParticleSliceMut.html new file mode 100644 index 0000000..c3ebed6 --- /dev/null +++ b/0.13.0/soa_derive_example/struct.ParticleSliceMut.html @@ -0,0 +1,134 @@ +ParticleSliceMut in soa_derive_example - Rust
pub struct ParticleSliceMut<'a> {
+    pub mass: &'a mut [f64],
+    pub position: &'a mut [[f64; 3]],
+    pub kind: &'a mut [usize],
+    pub name: &'a mut [String],
+}
Expand description

A mutable slice of +Particle +inside a +ParticleVec +.

+

Fields§

§mass: &'a mut [f64]

slice of mass inside a +ParticleVec

+
§position: &'a mut [[f64; 3]]

slice of position inside a +ParticleVec

+
§kind: &'a mut [usize]

slice of kind inside a +ParticleVec

+
§name: &'a mut [String]

slice of name inside a +ParticleVec

+

Implementations§

source§

impl<'a> ParticleSliceMut<'a>

source

pub fn iter(&mut self) -> Iter<'_>

Get an iterator over the +ParticleRef +in this vector

+
source

pub fn iter_mut(&mut self) -> IterMut<'_>

Get a mutable iterator over the +ParticleRefMut +in this vector

+
source

pub fn into_iter(self) -> IterMut<'a>

Get a mutable iterator over the +ParticleRefMut +in this vector

+
source§

impl<'a> ParticleSliceMut<'a>

source

pub fn as_ref(&self) -> ParticleSlice<'_>

Convert a +ParticleSliceMut +to a +ParticleSlice +in order to be able to use the methods on the non mutable +version of the slices.

+
source

pub fn len(&self) -> usize

Similar to & [Particle] ::len(), +the length of all fields should be the same.

+
source

pub fn is_empty(&self) -> bool

Similar to & [Particle] ::is_empty(), +the length of all fields should be the same.

+
source

pub fn first_mut(&mut self) -> Option<ParticleRefMut<'_>>

source

pub fn split_first_mut( + self +) -> Option<(ParticleRefMut<'a>, ParticleSliceMut<'a>)>

Similar to &mut [Particle] ::split_first_mut().

+

The main difference is that this function consumes the slice. +You should use Self::reborrow() first if you want the +returned values to have a shorter lifetime.

+
source

pub fn last_mut(&mut self) -> Option<ParticleRefMut<'_>>

source

pub fn split_last_mut( + self +) -> Option<(ParticleRefMut<'a>, ParticleSliceMut<'a>)>

Similar to &mut [Particle] ::last_mut().

+

The main difference is that this function consumes the slice. +You should use Self::reborrow() first if you want the +returned values to have a shorter lifetime.

+
source

pub fn split_at_mut( + self, + mid: usize +) -> (ParticleSliceMut<'a>, ParticleSliceMut<'a>)

Similar to &mut [Particle] ::split_at_mut().

+

The main difference is that this function consumes the slice. +You should use Self::reborrow() first if you want the +returned values to have a shorter lifetime.

+
source

pub fn swap(&mut self, a: usize, b: usize)

source

pub fn get<'b, I>(&'b self, index: I) -> Option<I::RefOutput>where + I: SoAIndex<ParticleSlice<'b>>, + 'a: 'b,

Similar to & [Particle] ::get().

+
source

pub unsafe fn get_unchecked<'b, I>(&'b self, index: I) -> I::RefOutputwhere + I: SoAIndex<ParticleSlice<'b>>, + 'a: 'b,

source

pub fn index<'b, I>(&'b self, index: I) -> I::RefOutputwhere + I: SoAIndex<ParticleSlice<'b>>, + 'a: 'b,

Similar to the +std::ops::Index +trait for & [Particle] . +This is required because we cannot implement that trait.

+
source

pub fn get_mut<'b, I>(&'b mut self, index: I) -> Option<I::MutOutput>where + I: SoAIndexMut<ParticleSliceMut<'b>>, + 'a: 'b,

source

pub unsafe fn get_unchecked_mut<'b, I>(&'b mut self, index: I) -> I::MutOutputwhere + I: SoAIndexMut<ParticleSliceMut<'b>>, + 'a: 'b,

source

pub fn index_mut<'b, I>(&'b mut self, index: I) -> I::MutOutputwhere + I: SoAIndexMut<ParticleSliceMut<'b>>, + 'a: 'b,

Similar to the +std::ops::IndexMut +trait for &mut [Particle] . +This is required because we cannot implement std::ops::IndexMut directly since it requires returning a mutable reference.

+
source

pub fn as_slice<'b>(&'b self) -> ParticleSlice<'b>where + 'a: 'b,

Returns a non-mutable slice from this mutable slice.

+
source

pub fn reborrow<'b>(&'b mut self) -> ParticleSliceMut<'b>where + 'a: 'b,

Reborrows the slices in a narrower lifetime

+
source

pub fn as_ptr(&self) -> ParticlePtr

source

pub fn as_mut_ptr(&mut self) -> ParticlePtrMut

source

pub unsafe fn from_raw_parts_mut<'b>( + data: ParticlePtrMut, + len: usize +) -> ParticleSliceMut<'b>

source

pub fn sort_by<F>(&mut self, f: F)where + F: FnMut(ParticleRef<'_>, ParticleRef<'_>) -> Ordering,

source

pub fn sort_by_key<F, K>(&mut self, f: F)where + F: FnMut(ParticleRef<'_>) -> K, + K: Ord,

source§

impl<'a> ParticleSliceMut<'a>where + for<'b> ParticleRef<'b>: Ord,

source

pub fn sort(&mut self)

Trait Implementations§

source§

impl<'a> Debug for ParticleSliceMut<'a>

source§

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

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

impl<'a> IntoIterator for ParticleSliceMut<'a>

§

type Item = ParticleRefMut<'a>

The type of the elements being iterated over.
§

type IntoIter = IterMut<'a>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<'a> PartialEq<ParticleSliceMut<'a>> for ParticleSliceMut<'a>

source§

fn eq(&self, other: &ParticleSliceMut<'a>) -> 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<'a> SoAIndexMut<ParticleSliceMut<'a>> for Range<usize>

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, slice: ParticleSliceMut<'a>) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut(self, slice: ParticleSliceMut<'a>) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, slice: ParticleSliceMut<'a>) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeFrom<usize>

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, slice: ParticleSliceMut<'a>) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut(self, slice: ParticleSliceMut<'a>) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, slice: ParticleSliceMut<'a>) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeFull

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, slice: ParticleSliceMut<'a>) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut(self, slice: ParticleSliceMut<'a>) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, slice: ParticleSliceMut<'a>) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeInclusive<usize>

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, slice: ParticleSliceMut<'a>) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut(self, slice: ParticleSliceMut<'a>) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, slice: ParticleSliceMut<'a>) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeTo<usize>

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, slice: ParticleSliceMut<'a>) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut(self, slice: ParticleSliceMut<'a>) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, slice: ParticleSliceMut<'a>) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeToInclusive<usize>

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, slice: ParticleSliceMut<'a>) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut(self, slice: ParticleSliceMut<'a>) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, slice: ParticleSliceMut<'a>) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for usize

§

type MutOutput = ParticleRefMut<'a>

The output for the mutable functions
source§

fn get_mut(self, slice: ParticleSliceMut<'a>) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut(self, slice: ParticleSliceMut<'a>) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, slice: ParticleSliceMut<'a>) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> StructuralPartialEq for ParticleSliceMut<'a>

Auto Trait Implementations§

§

impl<'a> RefUnwindSafe for ParticleSliceMut<'a>

§

impl<'a> Send for ParticleSliceMut<'a>

§

impl<'a> Sync for ParticleSliceMut<'a>

§

impl<'a> Unpin for ParticleSliceMut<'a>

§

impl<'a> !UnwindSafe for ParticleSliceMut<'a>

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,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

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

const: unstable · 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.

+
source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · 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.
const: unstable · source§

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

Performs the conversion.
\ No newline at end of file diff --git a/0.13.0/soa_derive_example/struct.ParticleVec.html b/0.13.0/soa_derive_example/struct.ParticleVec.html new file mode 100644 index 0000000..0e75ae1 --- /dev/null +++ b/0.13.0/soa_derive_example/struct.ParticleVec.html @@ -0,0 +1,129 @@ +ParticleVec in soa_derive_example - Rust
pub struct ParticleVec {
+    pub mass: Vec<f64>,
+    pub position: Vec<[f64; 3]>,
+    pub kind: Vec<usize>,
+    pub name: Vec<String>,
+}
Expand description

An analog to Vec<Particle> + with Struct of Array (SoA) layout

+

Fields§

§mass: Vec<f64>

a vector of mass from a +Particle

+
§position: Vec<[f64; 3]>

a vector of position from a +Particle

+
§kind: Vec<usize>

a vector of kind from a +Particle

+
§name: Vec<String>

a vector of name from a +Particle

+

Implementations§

source§

impl ParticleVec

source

pub fn iter(&self) -> Iter<'_>

Get an iterator over the +ParticleRef +in this vector

+
source§

impl ParticleVec

source

pub fn iter_mut(&mut self) -> IterMut<'_>

Get a mutable iterator over the +ParticleRefMut +in this vector

+
source§

impl ParticleVec

source

pub fn new() -> ParticleVec

source

pub fn with_capacity(capacity: usize) -> ParticleVec

Similar to Vec<Particle> ::with_capacity(), +initializing all fields with the given capacity.

+
source

pub fn capacity(&self) -> usize

Similar to Vec<Particle> ::capacity(), +the capacity of all fields should be the same.

+
source

pub fn reserve(&mut self, additional: usize)

Similar to Vec<Particle> ::reserve(), +reserving the same additional space for all fields.

+
source

pub fn reserve_exact(&mut self, additional: usize)

Similar to Vec<Particle> ::reserve_exact() +reserving the same additional space for all fields.

+
source

pub fn shrink_to_fit(&mut self)

Similar to Vec<Particle> ::shrink_to_fit() +shrinking all fields.

+
source

pub fn truncate(&mut self, len: usize)

Similar to Vec<Particle> ::truncate() +truncating all fields.

+
source

pub fn push(&mut self, value: Particle)

source

pub fn len(&self) -> usize

Similar to Vec<Particle> ::len(), +all the fields should have the same length.

+
source

pub fn is_empty(&self) -> bool

Similar to Vec<Particle> ::is_empty(), +all the fields should have the same length.

+
source

pub fn swap_remove(&mut self, index: usize) -> Particle

source

pub fn insert(&mut self, index: usize, element: Particle)

source

pub fn remove(&mut self, index: usize) -> Particle

source

pub fn pop(&mut self) -> Option<Particle>

source

pub fn append(&mut self, other: &mut ParticleVec)

source

pub fn clear(&mut self)

source

pub fn split_off(&mut self, at: usize) -> ParticleVec

source

pub fn as_slice(&self) -> ParticleSlice<'_>

source

pub fn as_mut_slice(&mut self) -> ParticleSliceMut<'_>

source

pub fn slice(&self, range: Range<usize>) -> ParticleSlice<'_>

Create a slice of this vector matching the given range. This +is analogous to Index<Range<usize>>.

+
source

pub fn slice_mut(&mut self, range: Range<usize>) -> ParticleSliceMut<'_>

Create a mutable slice of this vector matching the given +range. This is analogous to IndexMut<Range<usize>>.

+
source

pub fn retain<F>(&mut self, f: F)where + F: FnMut(ParticleRef<'_>) -> bool,

source

pub fn get<'a, I>(&'a self, index: I) -> Option<I::RefOutput>where + I: SoAIndex<&'a ParticleVec>,

source

pub unsafe fn get_unchecked<'a, I>(&'a self, index: I) -> I::RefOutputwhere + I: SoAIndex<&'a ParticleVec>,

source

pub fn index<'a, I>(&'a self, index: I) -> I::RefOutputwhere + I: SoAIndex<&'a ParticleVec>,

source

pub fn get_mut<'a, I>(&'a mut self, index: I) -> Option<I::MutOutput>where + I: SoAIndexMut<&'a mut ParticleVec>,

source

pub unsafe fn get_unchecked_mut<'a, I>(&'a mut self, index: I) -> I::MutOutputwhere + I: SoAIndexMut<&'a mut ParticleVec>,

source

pub fn index_mut<'a, I>(&'a mut self, index: I) -> I::MutOutputwhere + I: SoAIndexMut<&'a mut ParticleVec>,

source

pub fn as_ptr(&self) -> ParticlePtr

source

pub fn as_mut_ptr(&mut self) -> ParticlePtrMut

source

pub unsafe fn from_raw_parts( + data: ParticlePtrMut, + len: usize, + capacity: usize +) -> ParticleVec

Trait Implementations§

source§

impl Debug for ParticleVec

source§

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

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

impl Drop for ParticleVec

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl FromIterator<Particle> for ParticleVec

source§

fn from_iter<T: IntoIterator<Item = Particle>>(iter: T) -> Self

Creates a value from an iterator. Read more
source§

impl<'a> IntoIterator for &'a ParticleVec

§

type Item = ParticleRef<'a>

The type of the elements being iterated over.
§

type IntoIter = Iter<'a>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<'a> IntoIterator for &'a mut ParticleVec

§

type Item = ParticleRefMut<'a>

The type of the elements being iterated over.
§

type IntoIter = IterMut<'a>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl PartialEq<ParticleVec> for ParticleVec

source§

fn eq(&self, other: &ParticleVec) -> 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<'a> SoAIndex<&'a ParticleVec> for Range<usize>

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, soa: &'a ParticleVec) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<&'a ParticleVec> for RangeFrom<usize>

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, soa: &'a ParticleVec) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<&'a ParticleVec> for RangeFull

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, soa: &'a ParticleVec) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<&'a ParticleVec> for RangeInclusive<usize>

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, soa: &'a ParticleVec) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<&'a ParticleVec> for RangeTo<usize>

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, soa: &'a ParticleVec) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<&'a ParticleVec> for RangeToInclusive<usize>

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, soa: &'a ParticleVec) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<&'a ParticleVec> for usize

§

type RefOutput = ParticleRef<'a>

The output for the non-mutable functions
source§

fn get(self, soa: &'a ParticleVec) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndexMut<&'a mut ParticleVec> for Range<usize>

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, soa: &'a mut ParticleVec) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeFrom<usize>

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, soa: &'a mut ParticleVec) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeFull

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, soa: &'a mut ParticleVec) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeInclusive<usize>

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, soa: &'a mut ParticleVec) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeTo<usize>

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, soa: &'a mut ParticleVec) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeToInclusive<usize>

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, soa: &'a mut ParticleVec) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<&'a mut ParticleVec> for usize

§

type MutOutput = ParticleRefMut<'a>

The output for the mutable functions
source§

fn get_mut(self, soa: &'a mut ParticleVec) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl StructuralPartialEq for ParticleVec

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,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

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

const: unstable · 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.

+
source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · 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.
const: unstable · source§

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

Performs the conversion.
\ No newline at end of file diff --git a/0.13.0/source-files.js b/0.13.0/source-files.js new file mode 100644 index 0000000..7db4a84 --- /dev/null +++ b/0.13.0/source-files.js @@ -0,0 +1,4 @@ +var sourcesIndex = JSON.parse('{\ +"soa_derive_example":["",[],["lib.rs"]]\ +}'); +createSourceSidebar(); diff --git a/0.13.0/src/soa_derive_example/lib.rs.html b/0.13.0/src/soa_derive_example/lib.rs.html new file mode 100644 index 0000000..e240372 --- /dev/null +++ b/0.13.0/src/soa_derive_example/lib.rs.html @@ -0,0 +1,114 @@ +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
+
//! This crate is an example for the [`soa_derive`] crate functionalities. All
+//! the code is generated by a single file:
+//!
+//! ```no_run
+//! extern crate soa_derive;
+//! # mod particle {
+//! #[macro_use]
+//! use soa_derive::StructOfArray;
+//!
+//! /// A basic Particle type
+//! #[derive(Debug, PartialEq, StructOfArray)]
+//! #[soa_derive(Debug, PartialEq)]
+//! pub struct Particle {
+//!     /// Mass of the particle
+//!     pub mass: f64,
+//!     /// Position of the particle
+//!     pub position: [f64; 3],
+//!     /// Kind of the particle
+//!     pub kind: usize,
+//!     /// Name of the particle
+//!     pub name: String,
+//! }
+//! # }
+//! ```
+//!
+//! [`soa_derive`]: https://github.com/lumol-org/soa-derive/
+
+// Deny most of allow by default lints, just to be sure we don't create warning in user code.
+// They are to be selectively allowed in the implementation
+#![deny(absolute_paths_not_starting_with_crate, anonymous_parameters, bare_trait_objects)]
+#![deny(box_pointers, missing_copy_implementations, missing_debug_implementations)]
+#![deny(missing_docs, trivial_casts, trivial_numeric_casts, unreachable_pub)]
+#![deny(unstable_features, unused_extern_crates, unused_import_braces, unused_labels)]
+#![deny(unused_lifetimes, unused_qualifications, unused_results, variant_size_differences)]
+
+// Other allow by default lints that need to stay allowed
+#![allow(unsafe_code, single_use_lifetimes, elided_lifetimes_in_paths)]
+
+#![deny(warnings)]
+
+#[macro_use]
+extern crate soa_derive;
+
+/// A basic Particle type
+#[derive(Debug, PartialEq, StructOfArray)]
+#[soa_derive(Debug, PartialEq)]
+pub struct Particle {
+    /// Mass of the particle
+    pub mass: f64,
+    /// Position of the particle
+    pub position: [f64; 3],
+    /// Kind of the particle
+    pub kind: usize,
+    /// Name of the particle
+    pub name: String,
+}
+
+
\ No newline at end of file diff --git a/0.13.0/static.files/COPYRIGHT-002d5dd09d9a4f50.txt b/0.13.0/static.files/COPYRIGHT-002d5dd09d9a4f50.txt new file mode 100644 index 0000000..34e4813 --- /dev/null +++ b/0.13.0/static.files/COPYRIGHT-002d5dd09d9a4f50.txt @@ -0,0 +1,46 @@ +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): + + Copyright (c) 2014, Mozilla Foundation https://mozilla.org/ + with Reserved Font Name Fira Sans. + + Copyright (c) 2014, Telefonica S.A. + + Licensed under the SIL Open Font License, Version 1.1. + See FiraSans-LICENSE.txt. + +* rustdoc.css, main.js, and playpen.js: + + Copyright 2015 The Rust Developers. + Licensed under the Apache License, Version 2.0 (see LICENSE-APACHE.txt) or + the MIT license (LICENSE-MIT.txt) at your option. + +* normalize.css: + + Copyright (c) Nicolas Gallagher and Jonathan Neal. + Licensed under the MIT license (see LICENSE-MIT.txt). + +* Source Code Pro (SourceCodePro-Regular.ttf.woff2, + 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 + of Adobe Systems Incorporated in the United States and/or other countries. + + Licensed under the SIL Open Font License, Version 1.1. + See SourceCodePro-LICENSE.txt. + +* Source Serif 4 (SourceSerif4-Regular.ttf.woff2, SourceSerif4-Bold.ttf.woff2, + 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 + States and/or other countries. + + Licensed under the SIL Open Font License, Version 1.1. + See SourceSerif4-LICENSE.md. + +This copyright file is intended to be distributed with rustdoc output. diff --git a/0.13.0/static.files/FiraSans-LICENSE-1761dca11ffc8f19.txt b/0.13.0/static.files/FiraSans-LICENSE-1761dca11ffc8f19.txt new file mode 100644 index 0000000..ff9afab --- /dev/null +++ b/0.13.0/static.files/FiraSans-LICENSE-1761dca11ffc8f19.txt @@ -0,0 +1,94 @@ +Digitized data copyright (c) 2012-2015, The Mozilla Foundation and Telefonica S.A. +with Reserved Font Name < Fira >, + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +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/0.13.0/static.files/FiraSans-Medium-8f9a781e4970d388.woff2 b/0.13.0/static.files/FiraSans-Medium-8f9a781e4970d388.woff2 new file mode 100644 index 0000000..7a1e5fc Binary files /dev/null and b/0.13.0/static.files/FiraSans-Medium-8f9a781e4970d388.woff2 differ diff --git a/0.13.0/static.files/FiraSans-Regular-018c141bf0843ffd.woff2 b/0.13.0/static.files/FiraSans-Regular-018c141bf0843ffd.woff2 new file mode 100644 index 0000000..e766e06 Binary files /dev/null and b/0.13.0/static.files/FiraSans-Regular-018c141bf0843ffd.woff2 differ diff --git a/0.13.0/static.files/LICENSE-APACHE-b91fa81cba47b86a.txt b/0.13.0/static.files/LICENSE-APACHE-b91fa81cba47b86a.txt new file mode 100644 index 0000000..16fe87b --- /dev/null +++ b/0.13.0/static.files/LICENSE-APACHE-b91fa81cba47b86a.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/0.13.0/static.files/LICENSE-MIT-65090b722b3f6c56.txt b/0.13.0/static.files/LICENSE-MIT-65090b722b3f6c56.txt new file mode 100644 index 0000000..31aa793 --- /dev/null +++ b/0.13.0/static.files/LICENSE-MIT-65090b722b3f6c56.txt @@ -0,0 +1,23 @@ +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/0.13.0/static.files/NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2 b/0.13.0/static.files/NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2 new file mode 100644 index 0000000..1866ad4 Binary files /dev/null and b/0.13.0/static.files/NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2 differ diff --git a/0.13.0/static.files/NanumBarunGothic-LICENSE-2fe9ce67ec95245d.txt b/0.13.0/static.files/NanumBarunGothic-LICENSE-2fe9ce67ec95245d.txt new file mode 100644 index 0000000..0bf4668 --- /dev/null +++ b/0.13.0/static.files/NanumBarunGothic-LICENSE-2fe9ce67ec95245d.txt @@ -0,0 +1,99 @@ +Copyright (c) 2010, NAVER Corporation (https://www.navercorp.com/), + +with Reserved Font Name Nanum, Naver Nanum, NanumGothic, Naver NanumGothic, +NanumMyeongjo, Naver NanumMyeongjo, NanumBrush, Naver NanumBrush, NanumPen, +Naver NanumPen, Naver NanumGothicEco, NanumGothicEco, Naver NanumMyeongjoEco, +NanumMyeongjoEco, Naver NanumGothicLight, NanumGothicLight, NanumBarunGothic, +Naver NanumBarunGothic, NanumSquareRound, NanumBarunPen, MaruBuri + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +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/0.13.0/static.files/SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2 b/0.13.0/static.files/SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2 new file mode 100644 index 0000000..462c34e Binary files /dev/null and b/0.13.0/static.files/SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2 differ diff --git a/0.13.0/static.files/SourceCodePro-LICENSE-f554967dca0cf1dd.txt b/0.13.0/static.files/SourceCodePro-LICENSE-f554967dca0cf1dd.txt new file mode 100644 index 0000000..0754257 --- /dev/null +++ b/0.13.0/static.files/SourceCodePro-LICENSE-f554967dca0cf1dd.txt @@ -0,0 +1,93 @@ +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. + +This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +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/0.13.0/static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2 b/0.13.0/static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2 new file mode 100644 index 0000000..10b558e Binary files /dev/null and b/0.13.0/static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2 differ diff --git a/0.13.0/static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2 b/0.13.0/static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2 new file mode 100644 index 0000000..5ec64ee Binary files /dev/null and b/0.13.0/static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2 differ diff --git a/0.13.0/static.files/SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2 b/0.13.0/static.files/SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2 new file mode 100644 index 0000000..181a07f Binary files /dev/null and b/0.13.0/static.files/SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2 differ diff --git a/0.13.0/static.files/SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2 b/0.13.0/static.files/SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2 new file mode 100644 index 0000000..2ae08a7 Binary files /dev/null and b/0.13.0/static.files/SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2 differ diff --git a/0.13.0/static.files/SourceSerif4-LICENSE-971e190366a5901b.md b/0.13.0/static.files/SourceSerif4-LICENSE-971e190366a5901b.md new file mode 100644 index 0000000..5871e1f --- /dev/null +++ b/0.13.0/static.files/SourceSerif4-LICENSE-971e190366a5901b.md @@ -0,0 +1,93 @@ +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. + +This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +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/0.13.0/static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2 b/0.13.0/static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2 new file mode 100644 index 0000000..0263fc3 Binary files /dev/null and b/0.13.0/static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2 differ diff --git a/0.13.0/static.files/ayu-be46fdc453a55015.css b/0.13.0/static.files/ayu-be46fdc453a55015.css new file mode 100644 index 0000000..1cad903 --- /dev/null +++ b/0.13.0/static.files/ayu-be46fdc453a55015.css @@ -0,0 +1 @@ + :root{--main-background-color:#0f1419;--main-color:#c5c5c5;--settings-input-color:#ffb454;--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/0.13.0/static.files/clipboard-7571035ce49a181d.svg b/0.13.0/static.files/clipboard-7571035ce49a181d.svg new file mode 100644 index 0000000..8adbd99 --- /dev/null +++ b/0.13.0/static.files/clipboard-7571035ce49a181d.svg @@ -0,0 +1 @@ + diff --git a/0.13.0/static.files/dark-cf923f49f397b216.css b/0.13.0/static.files/dark-cf923f49f397b216.css new file mode 100644 index 0000000..70f9f11 --- /dev/null +++ b/0.13.0/static.files/dark-cf923f49f397b216.css @@ -0,0 +1 @@ +:root{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--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/0.13.0/static.files/favicon-16x16-8b506e7a72182f1c.png b/0.13.0/static.files/favicon-16x16-8b506e7a72182f1c.png new file mode 100644 index 0000000..ea4b45c Binary files /dev/null and b/0.13.0/static.files/favicon-16x16-8b506e7a72182f1c.png differ diff --git a/0.13.0/static.files/favicon-2c020d218678b618.svg b/0.13.0/static.files/favicon-2c020d218678b618.svg new file mode 100644 index 0000000..8b34b51 --- /dev/null +++ b/0.13.0/static.files/favicon-2c020d218678b618.svg @@ -0,0 +1,24 @@ + + + + + diff --git a/0.13.0/static.files/favicon-32x32-422f7d1d52889060.png b/0.13.0/static.files/favicon-32x32-422f7d1d52889060.png new file mode 100644 index 0000000..69b8613 Binary files /dev/null and b/0.13.0/static.files/favicon-32x32-422f7d1d52889060.png differ diff --git a/0.13.0/static.files/light-db279b6232be9c13.css b/0.13.0/static.files/light-db279b6232be9c13.css new file mode 100644 index 0000000..f0080db --- /dev/null +++ b/0.13.0/static.files/light-db279b6232be9c13.css @@ -0,0 +1 @@ +:root{--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--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/0.13.0/static.files/main-98a684e84ae5b08b.js b/0.13.0/static.files/main-98a684e84ae5b08b.js new file mode 100644 index 0000000..1a1db3b --- /dev/null +++ b/0.13.0/static.files/main-98a684e84ae5b08b.js @@ -0,0 +1,8 @@ +"use strict";function getVar(name){const 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 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(){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"))};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},hideResults:()=>{switchDisplayedElement(null);document.title=searchState.titleBeforeSearch;if(browserSupportsHistoryApi()){history.replaceState(null,window.currentCrate+" - Rust",getNakedUrl()+window.location.hash)}},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)},};function getPageId(){if(window.location.hash){const tmp=window.location.hash.replace(/^#/,"");if(tmp.length>0){return tmp}}return null}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()}}if(savedHash!==window.location.hash){savedHash=window.location.hash;if(savedHash.length===0){return}expandSection(savedHash.slice(1))}}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();switchDisplayedElement(null);if(browserSupportsHistoryApi()){history.replaceState(null,window.currentCrate+" - Rust",getNakedUrl()+window.location.hash)}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=script?script.getAttribute("data-ignore-extern-crates"):"";for(const lib of libs){if(lib===window.currentCrate||ignoreExternCrates.indexOf(lib)!==-1){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}});const pageId=getPageId();if(pageId!==null){expandSection(pageId)}}());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()}let oldSidebarScrollPosition=null;window.rustdocMobileScrollLock=function(){const mobile_topbar=document.querySelector(".mobile-topbar");if(window.innerWidth<=window.RUSTDOC_MOBILE_BREAKPOINT){oldSidebarScrollPosition=window.scrollY;document.body.style.width=`${document.body.offsetWidth}px`;document.body.style.position="fixed";document.body.style.top=`-${oldSidebarScrollPosition}px`;if(mobile_topbar){mobile_topbar.style.top=`${oldSidebarScrollPosition}px`;mobile_topbar.style.position="relative"}}else{oldSidebarScrollPosition=null}};window.rustdocMobileScrollUnlock=function(){const mobile_topbar=document.querySelector(".mobile-topbar");if(oldSidebarScrollPosition!==null){document.body.style.width="";document.body.style.position="";document.body.style.top="";if(mobile_topbar){mobile_topbar.style.top="";mobile_topbar.style.position=""}window.scrollTo(0,oldSidebarScrollPosition);oldSidebarScrollPosition=null}};function showSidebar(){window.hideAllModals(false);window.rustdocMobileScrollLock();const sidebar=document.getElementsByClassName("sidebar")[0];addClass(sidebar,"shown")}function hideSidebar(){window.rustdocMobileScrollUnlock();const sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown")}window.addEventListener("resize",()=>{if(window.innerWidth>window.RUSTDOC_MOBILE_BREAKPOINT&&oldSidebarScrollPosition!==null){hideSidebar()}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){return}window.hideAllModals(false);const wrapper=document.createElement("div");if(notable_ty){wrapper.innerHTML="
"+window.NOTABLE_TRAITS[notable_ty]+"
"}else if(e.getAttribute("title")!==undefined){const titleContent=document.createElement("div");titleContent.className="content";titleContent.appendChild(document.createTextNode(e.getAttribute("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;wrapper.onpointerleave=function(ev){if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!elemIsInParent(event.relatedTarget,e)){hideTooltip(true)}}}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);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}showTooltip(this)};e.onpointerleave=function(ev){if(ev.pointerType!=="mouse"){return}if(!this.TOOLTIP_FORCE_VISIBLE&&!elemIsInParent(ev.relatedTarget,window.CURRENT_TOOLTIP_ELEMENT)){hideTooltip(true)}}});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");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=["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(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/0.13.0/static.files/normalize-76eba96aa4d2e634.css b/0.13.0/static.files/normalize-76eba96aa4d2e634.css new file mode 100644 index 0000000..469959f --- /dev/null +++ b/0.13.0/static.files/normalize-76eba96aa4d2e634.css @@ -0,0 +1,2 @@ + /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ +html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type="button"],[type="reset"],[type="submit"],button{-webkit-appearance:button}[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none} \ No newline at end of file diff --git a/0.13.0/static.files/noscript-13285aec31fa243e.css b/0.13.0/static.files/noscript-13285aec31fa243e.css new file mode 100644 index 0000000..c32e0cb --- /dev/null +++ b/0.13.0/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/0.13.0/static.files/rust-logo-151179464ae7ed46.svg b/0.13.0/static.files/rust-logo-151179464ae7ed46.svg new file mode 100644 index 0000000..62424d8 --- /dev/null +++ b/0.13.0/static.files/rust-logo-151179464ae7ed46.svg @@ -0,0 +1,61 @@ + + + diff --git a/0.13.0/static.files/rustdoc-c4dbdcde0fbd8430.css b/0.13.0/static.files/rustdoc-c4dbdcde0fbd8430.css new file mode 100644 index 0000000..afd98f0 --- /dev/null +++ b/0.13.0/static.files/rustdoc-c4dbdcde0fbd8430.css @@ -0,0 +1,8 @@ + @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;}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;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,pre.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,h1 a,.search-results a,.stab,.result-name .primitive>i,.result-name .keyword>i{color:var(--main-color);}.content span.enum,.content a.enum,.content span.struct,.content a.struct,.content span.union,.content a.union,.content span.primitive,.content a.primitive,.content span.type,.content a.type,.content span.foreigntype,.content a.foreigntype{color:var(--type-link-color);}.content span.trait,.content a.trait,.content span.traitalias,.content a.traitalias{color:var(--trait-link-color);}.content span.associatedtype,.content a.associatedtype,.content span.constant,.content a.constant,.content span.static,.content a.static{color:var(--assoc-item-link-color);}.content span.fn,.content a.fn,.content span.method,.content a.method,.content span.tymethod,.content a.tymethod{color:var(--function-link-color);}.content span.attr,.content a.attr,.content span.derive,.content a.derive,.content span.macro,.content a.macro{color:var(--macro-link-color);}.content span.mod,.content a.mod{color:var(--mod-link-color);}.content span.keyword,.content 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;position:sticky;height:100vh;top:0;left:0;}.rustdoc.source .sidebar{flex-basis:50px;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.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;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>pre.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{flex:1;}.search-results>a>div.desc{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}.search-results a:hover,.search-results a:focus{background-color:var(--search-result-link-focus-background-color);}.search-results .result-name span.alias{color:var(--search-results-alias-color);}.search-results .result-name span.grey{color:var(--search-results-grey-color);}.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;}.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;align-items:center;white-space:pre-wrap;border-radius:3px;display:inline-flex;vertical-align:text-bottom;}.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;}a.tooltip:hover::after{position:absolute;top:calc(100% - 10px);left:-15px;right:-15px;height:20px;content:"\00a0";}.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);}#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;}.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:8px;}}@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;}}.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/0.13.0/static.files/scrape-examples-ef1e698c1d417c0c.js b/0.13.0/static.files/scrape-examples-ef1e698c1d417c0c.js new file mode 100644 index 0000000..ba830e3 --- /dev/null +++ b/0.13.0/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/0.13.0/static.files/search-8a59a8356673ec1f.js b/0.13.0/static.files/search-8a59a8356673ec1f.js new file mode 100644 index 0000000..c8963b3 --- /dev/null +++ b/0.13.0/static.files/search-8a59a8356673ec1f.js @@ -0,0 +1 @@ +"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 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});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}else if(nb!==0){printTab(0)}}const levenshtein_row2=[];function levenshtein(s1,s2){if(s1===s2){return 0}const s1_len=s1.length,s2_len=s2.length;if(s1_len&&s2_len){let i1=0,i2=0,a,b,c,c2;const row=levenshtein_row2;while(i1-".indexOf(c)!==-1}function isStopCharacter(c){return isWhitespace(c)||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===","||isWhitespaceCharacter(c)}function isWhitespaceCharacter(c){return c===" "||c==="\t"}function createQueryElement(query,parserState,name,generics,isInGenerics){if(name==="*"||(name.length===0&&generics.length===0)){return}if(query.literalSearch&&parserState.totalElems-parserState.genericsElems>0){throw["You cannot have more than one element if you use quotes"]}const pathSegments=name.split("::");if(pathSegments.length>1){for(let i=0,len=pathSegments.length;i=end){throw["Found generics without a path"]}parserState.pos+=1;getItemsBefore(query,parserState,generics,">")}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;while(parserState.pos"){extra="<"}else if(endChar===""){extra="->"}else{extra=endChar}throw["Unexpected ",c," after ",extra]}if(!foundStopChar){if(endChar!==""){throw["Expected ",",",", "," "," or ",endChar,", found ",c,]}throw["Expected ",","," or "," ",", found ",c,]}const posBefore=parserState.pos;getNextElem(query,parserState,elems,endChar===">");if(endChar!==""){if(parserState.pos>=parserState.length){throw["Unclosed ","<"]}const c2=parserState.userQuery[parserState.pos];if(!isSeparatorCharacter(c2)&&c2!==endChar){throw["Expected ",endChar,", found ",c2]}}if(posBefore===parserState.pos){parserState.pos+=1}foundStopChar=false}if(parserState.pos>=parserState.length&&endChar!==""){throw["Unclosed ","<"]}parserState.pos+=1}function checkExtraTypeFilterCharacters(parserState){const query=parserState.userQuery;for(let pos=0;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 ",":"]}if(query.elems.length===0){throw["Expected type filter before ",":"]}else if(query.elems.length!==1||parserState.totalElems!==1){throw["Unexpected ",":"]}else if(query.literalSearch){throw["You cannot use quotes on type filter"]}checkExtraTypeFilterCharacters(parserState);parserState.typeFilter=query.elems.pop().name;parserState.pos+=1;parserState.totalElems=0;query.literalSearch=false;foundStopChar=true;continue}if(!foundStopChar){if(parserState.typeFilter!==null){throw["Expected ",",",", "," "," or ","->",", found ",c,]}throw["Expected ",",",", "," ",", ",":"," or ","->",", found ",c,]}const before=query.elems.length;getNextElem(query,parserState,query.elems,false);if(query.elems.length===before){parserState.pos+=1}foundStopChar=false}while(parserState.pos"]}break}else{parserState.pos+=1}}}function newParsedQuery(userQuery){return{original:userQuery,userQuery:userQuery.toLowerCase(),typeFilter:NO_TYPE_FILTER,elems:[],returned:[],foundElems:0,literalSearch:false,error: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){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);if(parserState.typeFilter!==null){let typeFilter=parserState.typeFilter;if(typeFilter==="const"){typeFilter="constant"}query.typeFilter=itemTypeFromName(typeFilter)}}catch(err){query=newParsedQuery(userQuery);query.error=err;query.typeFilter=-1;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={},results_in_args={},results_returned={};function transformResults(results){const duplicates={};const out=[];for(const result of results){if(result.id>-1){const obj=searchIndex[result.id];obj.lev=result.lev;const 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,preferredCrate){const userQuery=parsedQuery.userQuery;const ar=[];for(const entry in results){if(hasOwnPropertyRustdoc(results,entry)){const 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((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_lev;b=bbb.path_lev;if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}a=(aaa.lev);b=(bbb.lev);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 results){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(results)}function checkGenerics(row,elem,defaultLev,maxLevDistance){if(row.generics.length===0){return elem.generics.length===0?defaultLev:maxLevDistance+1}else if(row.generics.length>0&&row.generics[0].name===null){return checkGenerics(row.generics[0],elem,defaultLev,maxLevDistance)}let elem_name;if(elem.generics.length>0&&row.generics.length>=elem.generics.length){const elems=Object.create(null);for(const entry of row.generics){elem_name=entry.name;if(elem_name===""){if(checkGenerics(entry,elem,maxLevDistance+1,maxLevDistance)!==0){return maxLevDistance+1}continue}if(elems[elem_name]===undefined){elems[elem_name]=0}elems[elem_name]+=1}for(const generic of elem.generics){let match=null;if(elems[generic.name]){match=generic.name}else{for(elem_name in elems){if(!hasOwnPropertyRustdoc(elems,elem_name)){continue}if(elem_name===generic){match=elem_name;break}}}if(match===null){return maxLevDistance+1}elems[match]-=1;if(elems[match]===0){delete elems[match]}}return 0}return maxLevDistance+1}function checkIfInGenerics(row,elem,maxLevDistance){let lev=maxLevDistance+1;for(const entry of row.generics){lev=Math.min(checkType(entry,elem,true,maxLevDistance),lev);if(lev===0){break}}return lev}function checkType(row,elem,literalSearch,maxLevDistance){if(row.name===null){if(row.generics.length>0){return checkIfInGenerics(row,elem,maxLevDistance)}return maxLevDistance+1}let lev=levenshtein(row.name,elem.name);if(literalSearch){if(lev!==0){if(elem.generics.length===0){const checkGeneric=row.generics.length>0;if(checkGeneric&&row.generics.findIndex(tmp_elem=>tmp_elem.name===elem.name)!==-1){return 0}}return maxLevDistance+1}else if(elem.generics.length>0){return checkGenerics(row,elem,maxLevDistance+1,maxLevDistance)}return 0}else if(row.generics.length>0){if(elem.generics.length===0){if(lev===0){return 0}lev=Math.min(lev,checkIfInGenerics(row,elem,maxLevDistance));return lev}else if(lev>maxLevDistance){return checkIfInGenerics(row,elem,maxLevDistance)}else{const tmp_lev=checkGenerics(row,elem,lev,maxLevDistance);if(tmp_lev>maxLevDistance){return maxLevDistance+1}return(tmp_lev+lev)/2}}else if(elem.generics.length>0){return maxLevDistance+1}return lev}function findArg(row,elem,typeFilter,maxLevDistance){let lev=maxLevDistance+1;if(row&&row.type&&row.type.inputs&&row.type.inputs.length>0){for(const input of row.type.inputs){if(!typePassesFilter(typeFilter,input.ty)){continue}lev=Math.min(lev,checkType(input,elem,parsedQuery.literalSearch,maxLevDistance));if(lev===0){return 0}}}return parsedQuery.literalSearch?maxLevDistance+1:lev}function checkReturned(row,elem,typeFilter,maxLevDistance){let lev=maxLevDistance+1;if(row&&row.type&&row.type.output.length>0){const ret=row.type.output;for(const ret_ty of ret){if(!typePassesFilter(typeFilter,ret_ty.ty)){continue}lev=Math.min(lev,checkType(ret_ty,elem,parsedQuery.literalSearch,maxLevDistance));if(lev===0){return 0}}}return parsedQuery.literalSearch?maxLevDistance+1:lev}function checkPath(contains,ty,maxLevDistance){if(contains.length===0){return 0}let ret_lev=maxLevDistance+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 maxLevDistance+1}for(let i=0;ilength){break}let lev_total=0;let aborted=false;for(let x=0;xmaxLevDistance){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;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,}}function handleAliases(ret,query,filterCrates,currentCrate){const lowerQuery=query.toLowerCase();const aliases=[];const crateAliases=[];if(filterCrates!==null){if(ALIASES[filterCrates]&&ALIASES[filterCrates][lowerQuery]){const query_aliases=ALIASES[filterCrates][lowerQuery];for(const alias of query_aliases){aliases.push(createAliasFromItem(searchIndex[alias]))}}}else{Object.keys(ALIASES).forEach(crate=>{if(ALIASES[crate][lowerQuery]){const pushTo=crate===currentCrate?crateAliases:aliases;const query_aliases=ALIASES[crate][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,lev,path_lev,maxLevDistance){const inBounds=lev<=maxLevDistance||index!==-1;if(lev===0||(!parsedQuery.literalSearch&&inBounds)){if(results[fullId]!==undefined){const result=results[fullId];if(result.dontValidate||result.lev<=lev){return}}results[fullId]={id:id,index:index,dontValidate:parsedQuery.literalSearch,lev:lev,path_lev:path_lev,}}}function handleSingleArg(row,pos,elem,results_others,results_in_args,results_returned,maxLevDistance){if(!row||(filterCrates!==null&&row.crate!==filterCrates)){return}let lev,index=-1,path_lev=0;const fullId=row.id;const searchWord=searchWords[pos];const in_args=findArg(row,elem,parsedQuery.typeFilter,maxLevDistance);const returned=checkReturned(row,elem,parsedQuery.typeFilter,maxLevDistance);addIntoResults(results_in_args,fullId,pos,-1,in_args,0,maxLevDistance);addIntoResults(results_returned,fullId,pos,-1,returned,0,maxLevDistance);if(!typePassesFilter(parsedQuery.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_lev=checkPath(elem.pathWithoutLast,row,maxLevDistance);if(path_lev>maxLevDistance){return}}if(parsedQuery.literalSearch){if(searchWord===elem.name){addIntoResults(results_others,fullId,pos,index,0,path_lev)}return}lev=levenshtein(searchWord,elem.pathLast);if(index===-1&&lev+path_lev>maxLevDistance){return}addIntoResults(results_others,fullId,pos,index,lev,path_lev,maxLevDistance)}function handleArgs(row,pos,results,maxLevDistance){if(!row||(filterCrates!==null&&row.crate!==filterCrates)){return}let totalLev=0;let nbLev=0;function checkArgs(elems,callback){for(const elem of elems){const lev=callback(row,elem,NO_TYPE_FILTER,maxLevDistance);if(lev<=1){nbLev+=1;totalLev+=lev}else{return false}}return true}if(!checkArgs(parsedQuery.elems,findArg)){return}if(!checkArgs(parsedQuery.returned,checkReturned)){return}if(nbLev===0){return}const lev=Math.round(totalLev/nbLev);addIntoResults(results,row.id,pos,0,lev,0,maxLevDistance)}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 maxLevDistance=Math.floor(queryLen/3);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)||levenshtein(name,key)<=maxLevDistance)){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];length+=1;let extra="";if(type==="primitive"){extra=" (primitive type)"}else if(type==="keyword"){extra=" (keyword)"}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",item.displayPath+""+name+extra+"");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"&&(!search.firstChild||search.firstChild.innerText!==searchState.loadingText))){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}`}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}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 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";if(browserSupportsHistoryApi()){const newURL=buildUrl(query.original,filterCrates);if(!history.state&&!params.search){history.pushState(null,"",newURL)}else{history.replaceState(null,"",newURL)}}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{name:pathIndex===0?null: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=[{name:pathIndex===0?null: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=[{name:pathIndex===0?null: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=[];const charA="A".charCodeAt(0);let currentIndex=0;let id=0;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,""),};id+=1;searchIndex.push(crateRow);currentIndex+=1;const itemTypes=crateCorpus.t;const itemNames=crateCorpus.n;const itemPaths=crateCorpus.q;const itemDescs=crateCorpus.d;const itemParentIdxs=crateCorpus.i;const itemFunctionSearchTypes=crateCorpus.f;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,""),};id+=1;searchIndex.push(row);lastPath=row.path;crateSize+=1}if(aliases){ALIASES[crate]=Object.create(null);for(const alias_name in aliases){if(!hasOwnPropertyRustdoc(aliases,alias_name)){continue}if(!hasOwnPropertyRustdoc(ALIASES[crate],alias_name)){ALIASES[crate][alias_name]=[]}for(const local_alias of aliases[alias_name]){ALIASES[crate][alias_name].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){if(browserSupportsHistoryApi()){history.replaceState(null,window.currentCrate+" - Rust",getNakedUrl()+window.location.hash)}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 params=searchState.getQueryStringParams();const 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)}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/0.13.0/static.files/settings-0bcba95ff279c1db.css b/0.13.0/static.files/settings-0bcba95ff279c1db.css new file mode 100644 index 0000000..907d420 --- /dev/null +++ b/0.13.0/static.files/settings-0bcba95ff279c1db.css @@ -0,0 +1,3 @@ +.setting-line{margin:1.2em 0.6em;position:relative;}.setting-radio input,.setting-check input{margin-right:0.3em;height:1.2rem;width:1.2rem;color:inherit;border:1px solid currentColor;outline:none;-webkit-appearance:none;cursor:pointer;}.setting-radio input{border-radius:50%;}.setting-check input:checked{content:url('data:image/svg+xml,\ + \ + ');}.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);}.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/0.13.0/static.files/settings-f0c5c39777a9a2f6.js b/0.13.0/static.files/settings-f0c5c39777a9a2f6.js new file mode 100644 index 0000000..9f78bb9 --- /dev/null +++ b/0.13.0/static.files/settings-f0c5c39777a9a2f6.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 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(){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)};toggle.onkeyup=handleKey;toggle.onkeyrelease=handleKey});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){if(useSystem!=="false"){settingValue="system preference"}else{settingValue="light"}}}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/0.13.0/static.files/source-script-1b95b7cca98b26e5.js b/0.13.0/static.files/source-script-1b95b7cca98b26e5.js new file mode 100644 index 0000000..73a9fcd --- /dev/null +++ b/0.13.0/static.files/source-script-1b95b7cca98b26e5.js @@ -0,0 +1 @@ +"use strict";(function(){const rootPath=document.getElementById("rustdoc-vars").attributes["data-root-path"].value;const NAME_OFFSET=0;const DIRS_OFFSET=1;const FILES_OFFSET=2;function closeSidebarIfMobile(){if(window.innerWidth"){window.rustdocMobileScrollLock();addClass(document.documentElement,"source-sidebar-expanded");child.innerText="<";updateLocalStorage("source-sidebar-show","true")}else{window.rustdocMobileScrollUnlock();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/0.13.0/static.files/storage-3891ce972e3a2bf8.js b/0.13.0/static.files/storage-3891ce972e3a2bf8.js new file mode 100644 index 0000000..d64fa5e --- /dev/null +++ b/0.13.0/static.files/storage-3891ce972e3a2bf8.js @@ -0,0 +1 @@ +"use strict";const darkThemes=["dark","ayu"];window.currentTheme=document.getElementById("themeStyle");window.mainTheme=document.getElementById("mainThemeStyle");window.RUSTDOC_MOBILE_BREAKPOINT=700;const settingsDataset=(function(){const settingsElement=document.getElementById("default-settings");if(settingsElement===null){return null}const dataset=settingsElement.dataset;if(dataset===undefined){return null}return dataset})();function getSettingValue(settingName){const current=getCurrentValue(settingName);if(current!==null){return current}if(settingsDataset!==null){const def=settingsDataset[settingName.replace(/-/g,"_")];if(def!==undefined){return def}}return null}const localStoredTheme=getSettingValue("theme");const 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){if(reversed){const length=arr.length;for(let i=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}}function switchTheme(styleElem,mainStyleElem,newThemeName,saveTheme){if(saveTheme){updateLocalStorage("theme",newThemeName)}if(savedHref.length===0){onEachLazy(document.getElementsByTagName("link"),el=>{savedHref.push(el.href)})}const newHref=savedHref.find(url=>{const m=url.match(/static\.files\/(.*)-[a-f0-9]{16}\.css$/);if(m&&m[1]===newThemeName){return true}const m2=url.match(/\/([^/]*)\.css$/);if(m2&&m2[1].startsWith(newThemeName)){return true}});if(newHref&&newHref!==styleElem.href){styleElem.href=newHref}}const updateTheme=(function(){function updateTheme(){const use=(theme,saveTheme)=>{switchTheme(window.currentTheme,window.mainTheme,theme,saveTheme)};if(getSettingValue("use-system-theme")!=="false"){const lightTheme=getSettingValue("preferred-light-theme")||"light";const darkTheme=getSettingValue("preferred-dark-theme")||"dark";if(isDarkMode()){use(darkTheme,true)}else{use(lightTheme,true)}}else{use(getSettingValue("theme"),false)}}let isDarkMode;if(window.matchMedia){const mql=window.matchMedia("(prefers-color-scheme: dark)");isDarkMode=()=>mql.matches;if(mql.addEventListener){mql.addEventListener("change",updateTheme)}else{mql.addListener(updateTheme)}}else{const cssContent=getComputedStyle(document.documentElement).getPropertyValue("content");const cssColorScheme=cssContent||"\"light\"";isDarkMode=()=>(cssColorScheme==="\"dark\"")}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/0.13.0/static.files/wheel-7b819b6101059cd0.svg b/0.13.0/static.files/wheel-7b819b6101059cd0.svg new file mode 100644 index 0000000..83c07f6 --- /dev/null +++ b/0.13.0/static.files/wheel-7b819b6101059cd0.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/COPYRIGHT.txt b/COPYRIGHT.txt new file mode 100644 index 0000000..af77776 --- /dev/null +++ b/COPYRIGHT.txt @@ -0,0 +1,45 @@ +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.woff, FiraSans-Medium.woff): + + Copyright (c) 2014, Mozilla Foundation https://mozilla.org/ + with Reserved Font Name Fira Sans. + + Copyright (c) 2014, Telefonica S.A. + + Licensed under the SIL Open Font License, Version 1.1. + See FiraSans-LICENSE.txt. + +* rustdoc.css, main.js, and playpen.js: + + Copyright 2015 The Rust Developers. + Licensed under the Apache License, Version 2.0 (see LICENSE-APACHE.txt) or + the MIT license (LICENSE-MIT.txt) at your option. + +* normalize.css: + + Copyright (c) Nicolas Gallagher and Jonathan Neal. + Licensed under the MIT license (see LICENSE-MIT.txt). + +* Source Code Pro (SourceCodePro-Regular.woff, SourceCodePro-Semibold.woff): + + 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. + + Licensed under the SIL Open Font License, Version 1.1. + See SourceCodePro-LICENSE.txt. + +* Source Serif Pro (SourceSerifPro-Regular.ttf.woff, + SourceSerifPro-Bold.ttf.woff, SourceSerifPro-It.ttf.woff): + + Copyright 2014 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. + + Licensed under the SIL Open Font License, Version 1.1. + See SourceSerifPro-LICENSE.txt. + +This copyright file is intended to be distributed with rustdoc output. diff --git a/FiraSans-LICENSE.txt b/FiraSans-LICENSE.txt new file mode 100644 index 0000000..d444ea9 --- /dev/null +++ b/FiraSans-LICENSE.txt @@ -0,0 +1,94 @@ +Digitized data copyright (c) 2012-2015, The Mozilla Foundation and Telefonica S.A. +with Reserved Font Name < Fira >, + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +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/FiraSans-Medium.woff b/FiraSans-Medium.woff new file mode 100644 index 0000000..7d742c5 Binary files /dev/null and b/FiraSans-Medium.woff differ diff --git a/FiraSans-Regular.woff b/FiraSans-Regular.woff new file mode 100644 index 0000000..d8e0363 Binary files /dev/null and b/FiraSans-Regular.woff differ diff --git a/LICENSE-APACHE.txt b/LICENSE-APACHE.txt new file mode 100644 index 0000000..16fe87b --- /dev/null +++ b/LICENSE-APACHE.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/LICENSE-MIT.txt b/LICENSE-MIT.txt new file mode 100644 index 0000000..31aa793 --- /dev/null +++ b/LICENSE-MIT.txt @@ -0,0 +1,23 @@ +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/SourceCodePro-LICENSE.txt b/SourceCodePro-LICENSE.txt new file mode 100644 index 0000000..0754257 --- /dev/null +++ b/SourceCodePro-LICENSE.txt @@ -0,0 +1,93 @@ +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. + +This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +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/SourceCodePro-Regular.woff b/SourceCodePro-Regular.woff new file mode 100644 index 0000000..5576670 Binary files /dev/null and b/SourceCodePro-Regular.woff differ diff --git a/SourceCodePro-Semibold.woff b/SourceCodePro-Semibold.woff new file mode 100644 index 0000000..ca972a1 Binary files /dev/null and b/SourceCodePro-Semibold.woff differ diff --git a/SourceSerifPro-Bold.ttf.woff b/SourceSerifPro-Bold.ttf.woff new file mode 100644 index 0000000..ca25431 Binary files /dev/null and b/SourceSerifPro-Bold.ttf.woff differ diff --git a/SourceSerifPro-It.ttf.woff b/SourceSerifPro-It.ttf.woff new file mode 100644 index 0000000..a287bbe Binary files /dev/null and b/SourceSerifPro-It.ttf.woff differ diff --git a/SourceSerifPro-LICENSE.md b/SourceSerifPro-LICENSE.md new file mode 100644 index 0000000..22cb755 --- /dev/null +++ b/SourceSerifPro-LICENSE.md @@ -0,0 +1,93 @@ +Copyright 2014-2018 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. + +This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +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/SourceSerifPro-Regular.ttf.woff b/SourceSerifPro-Regular.ttf.woff new file mode 100644 index 0000000..a3d55cf Binary files /dev/null and b/SourceSerifPro-Regular.ttf.woff differ diff --git a/ayu.css b/ayu.css new file mode 100644 index 0000000..4e4e89b --- /dev/null +++ b/ayu.css @@ -0,0 +1 @@ + body{background-color:#0f1419;color:#c5c5c5;}h1,h2,h3:not(.impl):not(.method):not(.type):not(.tymethod),h4:not(.method):not(.type):not(.tymethod){color:white;}h1.fqn{border-bottom-color:#5c6773;}h1.fqn a{color:#fff;}h2,h3:not(.impl):not(.method):not(.type):not(.tymethod){border-bottom-color:#5c6773;}h4:not(.method):not(.type):not(.tymethod):not(.associatedconstant){border:none;}.in-band{background-color:#0f1419;}.invisible{background:rgba(0,0,0,0);}code{color:#ffb454;}h3>code,h4>code,h5>code{color:#e6e1cf;}pre>code{color:#e6e1cf;}span code{color:#e6e1cf;}.docblock a>code{color:#39AFD7 !important;}.docblock code,.docblock-short code{background-color:#191f26;}pre{color:#e6e1cf;background-color:#191f26;}.sidebar{background-color:#14191f;}.logo-container.rust-logo>img{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 transparent;}.sidebar{scrollbar-color:#5c6773 transparent;}::-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{background-color:transparent;color:#ffb44c;}.source .sidebar{background-color:#0f1419;}.sidebar .location{border-color:#000;background-color:#0f1419;color:#fff;}.sidebar-elems .location{color:#ff7733;}.sidebar-elems .location a{color:#fff;}.sidebar .version{border-bottom-color:#424c57;}.sidebar-title{border-top-color:#5c6773;border-bottom-color:#5c6773;}.block a:hover{background:transparent;color:#ffb44c;}.line-numbers span{color:#5c6773ab;}.line-numbers .line-highlighted{background-color:rgba(255,236,164,0.06) !important;padding-right:4px;border-right:1px solid #ffb44c;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5{border-bottom-color:#5c6773;}.docblock table,.docblock table td,.docblock table th{border-color:#5c6773;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#c5c5c5;}.content .highlighted{color:#000 !important;background-color:#c6afb3;}.content .highlighted a,.content .highlighted span{color:#000 !important;}.content .highlighted{background-color:#c6afb3;}.search-results a{color:#0096cf;}.search-results a span.desc{color:#c5c5c5;}.content .stability::before{color:#ccc;}.content span.foreigntype,.content a.foreigntype{color:#ef57ff;}.content span.union,.content a.union{color:#98a01c;}.content span.constant,.content a.constant,.content span.static,.content a.static{color:#6380a0;}.content span.primitive,.content a.primitive{color:#32889b;}.content span.traitalias,.content a.traitalias{color:#57d399;}.content span.keyword,.content a.keyword{color:#de5249;}.content span.externcrate,.content span.mod,.content a.mod{color:#acccf9;}.content span.struct,.content a.struct{color:#ffa0a5;}.content span.enum,.content a.enum{color:#99e0c9;}.content span.trait,.content a.trait{color:#39AFD7;}.content span.type,.content a.type{color:#cfbcf5;}.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;}pre.rust .comment{color:#788797;}pre.rust .doccomment{color:#a1ac88;}nav:not(.sidebar){border-bottom-color:#424c57;}nav.main .current{border-top-color:#5c6773;border-bottom-color:#5c6773;}nav.main .separator{border:1px solid #5c6773;}a{color:#c5c5c5;}.docblock:not(.type-decl) a:not(.srclink):not(.test-arrow),.docblock-short a:not(.srclink):not(.test-arrow),.stability a{color:#39AFD7;}.collapse-toggle{color:#999;}#crate-search{color:#c5c5c5;background-color:#141920;box-shadow:0 0 0 1px #424c57,0 0 0 2px transparent;border-color:#424c57;}.search-input{color:#ffffff;background-color:#141920;box-shadow:0 0 0 1px #424c57,0 0 0 2px transparent;transition:box-shadow 150ms ease-in-out;}#crate-search+.search-input:focus{box-shadow:0 0 0 1px #148099,0 0 0 2px transparent;}.search-focus:disabled{color:#929292;}.module-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-color:transparent;}#help>div{background:#14191f;box-shadow:0px 6px 20px 0px black;border:none;border-radius:4px;}.since{color:grey;}tr.result span.primitive::after,tr.result span.keyword::after{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{color:#999;}:target>code,:target>.in-band{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 .tooltiptext{background-color:#314559;color:#c5c5c5;border:1px solid #5c6773;}.tooltip .tooltiptext::after{border-color:transparent #314559 transparent transparent;}.notable-traits-tooltiptext{background-color:#314559;border-color:#5c6773;}#titles>div.selected{background-color:#141920 !important;border-bottom:1px solid #ffb44c !important;border-top:none;}#titles>div:not(.selected){background-color:transparent !important;border:none;}#titles>div:hover{border-bottom:1px solid rgba(242,151,24,0.3);}#titles>div>div.count{color:#888;}.content .highlighted.mod,.content .highlighted.externcrate{}.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 .highlighted.trait{}.content span.struct,.content a.struct,.block a.current.struct{}#titles>div:hover,#titles>div.selected{}.content .highlighted.traitalias{}.content span.type,.content a.type,.block a.current.type{}.content span.union,.content a.union,.block a.current.union{}.content .highlighted.foreigntype{}pre.rust .lifetime{}.content .highlighted.primitive{}.content .highlighted.constant,.content .highlighted.static{}.stab.unstable{}.content .highlighted.fn,.content .highlighted.method,.content .highlighted.tymethod{}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 .highlighted.enum{}.content .highlighted.struct{}.content .highlighted.keyword{}.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 .highlighted.attr,.content .highlighted.derive,.content .highlighted.macro{}.stab.portability{}.content .highlighted.union{}.content span.primitive,.content a.primitive,.block a.current.primitive{}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{}.content .highlighted.type{}pre.rust .kw-2,pre.rust .prelude-ty{}.content span.trait,.content a.trait,.block a.current.trait{}@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-color:#c6cbd1;}#theme-picker,#settings-menu,.help-button{border-color:#5c6773;background-color:#0f1419;}#theme-picker>img,#settings-menu>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:#c5c5c5;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:rgba(70,70,70,0.33);}@media (max-width:700px){#theme-picker{background:#0f1419;}}#all-types{background-color:#14191f;}#all-types:hover{background-color:rgba(70,70,70,0.33);}.search-results td span.alias{color:#c5c5c5;}.search-results td 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;} \ No newline at end of file diff --git a/brush.svg b/brush.svg new file mode 100644 index 0000000..ea266e8 --- /dev/null +++ b/brush.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dark.css b/dark.css new file mode 100644 index 0000000..382d878 --- /dev/null +++ b/dark.css @@ -0,0 +1 @@ +body{background-color:#353535;color:#ddd;}h1,h2,h3:not(.impl):not(.method):not(.type):not(.tymethod),h4:not(.method):not(.type):not(.tymethod){color:#ddd;}h1.fqn{border-bottom-color:#d2d2d2;}h2,h3:not(.impl):not(.method):not(.type):not(.tymethod),h4:not(.method):not(.type):not(.tymethod){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{background-color:#2A2A2A;}.sidebar{background-color:#505050;}.logo-container.rust-logo>img{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) transparent;}::-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{background-color:#333;}.source .sidebar{background-color:#353535;}.sidebar .location{border-color:#fff;background:#575757;color:#DDD;}.sidebar .version{border-bottom-color:#DDD;}.sidebar-title{border-top-color:#777;border-bottom-color:#777;}.block a:hover{background:#444;}.line-numbers span{color:#3B91E2;}.line-numbers .line-highlighted{background-color:#0a042f !important;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5{border-bottom-color:#DDD;}.docblock table,.docblock table td,.docblock table th{border-color:#ddd;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#ddd;}.content .highlighted{color:#eee !important;background-color:#616161;}.content .highlighted a,.content .highlighted span{color:#eee !important;}.content .highlighted.trait{background-color:#013191;}.content .highlighted.traitalias{background-color:#013191;}.content .highlighted.mod,.content .highlighted.externcrate{background-color:#afc6e4;}.content .highlighted.mod{background-color:#803a1b;}.content .highlighted.externcrate{background-color:#396bac;}.content .highlighted.enum{background-color:#5b4e68;}.content .highlighted.struct{background-color:#194e9f;}.content .highlighted.union{background-color:#b7bd49;}.content .highlighted.fn,.content .highlighted.method,.content .highlighted.tymethod{background-color:#4950ed;}.content .highlighted.type{background-color:#38902c;}.content .highlighted.foreigntype{background-color:#b200d6;}.content .highlighted.attr,.content .highlighted.derive,.content .highlighted.macro{background-color:#217d1c;}.content .highlighted.constant,.content .highlighted.static{background-color:#0063cc;}.content .highlighted.primitive{background-color:#00708a;}.content .highlighted.keyword{background-color:#884719;}.content .stability::before{color:#ccc;}.content span.enum,.content a.enum,.block a.current.enum{color:#82b089;}.content span.struct,.content a.struct,.block a.current.struct{color:#2dbfb8;}.content span.type,.content a.type,.block a.current.type{color:#ff7f00;}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{color:#dd7de8;}.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:#a6ae37;}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{color:#82a5c9;}.content span.primitive,.content a.primitive,.block a.current.primitive{color:#43aec7;}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{color:#bda000;}.content span.trait,.content a.trait,.block a.current.trait{color:#b78cf2;}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{color:#b397da;}.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:#de5249;}pre.rust .comment{color:#8d8d8b;}pre.rust .doccomment{color:#8ca375;}nav:not(.sidebar){border-bottom-color:#4e4e4e;}nav.main .current{border-top-color:#eee;border-bottom-color:#eee;}nav.main .separator{border-color:#eee;}a{color:#ddd;}.docblock:not(.type-decl) a:not(.srclink):not(.test-arrow),.docblock-short a:not(.srclink):not(.test-arrow),.stability a{color:#D2991D;}a.test-arrow{color:#dedede;}.collapse-toggle{color:#999;}#crate-search{color:#111;background-color:#f0f0f0;border-color:#000;box-shadow:0 0 0 1px #000,0 0 0 2px transparent;}.search-input{color:#111;background-color:#f0f0f0;box-shadow:0 0 0 1px #000,0 0 0 2px transparent;}.search-input:focus{border-color:#008dfd;}.search-focus:disabled{background-color:#c5c4c4;}#crate-search+.search-input:focus{box-shadow:0 0 8px 4px #078dd8;}.module-item .stab{color:#ddd;}.stab.unstable{background:#FFF5D6;border-color:#FFC600;color:#2f2f2f;}.stab.deprecated{background:#F3DFFF;border-color:#7F0087;color:#2f2f2f;}.stab.portability{background:#C4ECFF;border-color:#7BA5DB;color:#2f2f2f;}.stab.portability>code{color:#ddd;}#help>div{background:#4d4d4d;border-color:#bfbfbf;}#help dt{border-color:#bfbfbf;background:rgba(0,0,0,0);color:black;}.since{color:grey;}tr.result span.primitive::after,tr.result span.keyword::after{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{color:#999;}:target>code,:target>.in-band{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 .tooltiptext{background-color:#000;color:#fff;border-color:#000;}.tooltip .tooltiptext::after{border-color:transparent black transparent transparent;}.notable-traits-tooltiptext{background-color:#111;border-color:#777;}#titles>div:not(.selected){background-color:#252525;border-top-color:#252525;}#titles>div:hover,#titles>div.selected{border-top-color:#0089ff;}#titles>div>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-color:#c6cbd1;}#theme-picker,#settings-menu,.help-button{border-color:#e0e0e0;background:#f0f0f0;}#theme-picker:hover,#theme-picker:focus,#settings-menu:hover,#settings-menu:focus,.help-button:hover,.help-button:focus{border-color:#ffb900;}#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;}}#all-types{background-color:#505050;}#all-types:hover{background-color:#606060;}.search-results td span.alias{color:#fff;}.search-results td 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;} \ No newline at end of file diff --git a/down-arrow.svg b/down-arrow.svg new file mode 100644 index 0000000..35437e7 --- /dev/null +++ b/down-arrow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000..b8ad237 Binary files /dev/null and b/favicon.ico differ diff --git a/implementors/core/clone/trait.Clone.js b/implementors/core/clone/trait.Clone.js new file mode 100644 index 0000000..68c4a37 --- /dev/null +++ b/implementors/core/clone/trait.Clone.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["soa_derive_example"] = [{"text":"impl<'a> Clone for ParticleRef<'a>","synthetic":false,"types":[]},{"text":"impl Clone for ParticlePtr","synthetic":false,"types":[]},{"text":"impl Clone for ParticlePtrMut","synthetic":false,"types":[]},{"text":"impl<'a> Clone for ParticleSlice<'a>","synthetic":false,"types":[]}]; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/cmp/trait.PartialEq.js b/implementors/core/cmp/trait.PartialEq.js new file mode 100644 index 0000000..bba72af --- /dev/null +++ b/implementors/core/cmp/trait.PartialEq.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["soa_derive_example"] = [{"text":"impl PartialEq<Particle> for Particle","synthetic":false,"types":[]},{"text":"impl PartialEq<ParticleVec> for ParticleVec","synthetic":false,"types":[]},{"text":"impl<'a> PartialEq<ParticleRef<'a>> for ParticleRef<'a>","synthetic":false,"types":[]},{"text":"impl<'a> PartialEq<ParticleRefMut<'a>> for ParticleRefMut<'a>","synthetic":false,"types":[]},{"text":"impl PartialEq<ParticlePtr> for ParticlePtr","synthetic":false,"types":[]},{"text":"impl PartialEq<ParticlePtrMut> for ParticlePtrMut","synthetic":false,"types":[]},{"text":"impl<'a> PartialEq<ParticleSlice<'a>> for ParticleSlice<'a>","synthetic":false,"types":[]},{"text":"impl<'a> PartialEq<ParticleSliceMut<'a>> for ParticleSliceMut<'a>","synthetic":false,"types":[]}]; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/fmt/trait.Debug.js b/implementors/core/fmt/trait.Debug.js new file mode 100644 index 0000000..8b5ba8f --- /dev/null +++ b/implementors/core/fmt/trait.Debug.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["soa_derive_example"] = [{"text":"impl Debug for Particle","synthetic":false,"types":[]},{"text":"impl Debug for ParticleVec","synthetic":false,"types":[]},{"text":"impl<'a> Debug for ParticleRef<'a>","synthetic":false,"types":[]},{"text":"impl<'a> Debug for ParticleRefMut<'a>","synthetic":false,"types":[]},{"text":"impl Debug for ParticlePtr","synthetic":false,"types":[]},{"text":"impl Debug for ParticlePtrMut","synthetic":false,"types":[]},{"text":"impl<'a> Debug for ParticleSlice<'a>","synthetic":false,"types":[]},{"text":"impl<'a> Debug for ParticleSliceMut<'a>","synthetic":false,"types":[]}]; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/iter/traits/collect/trait.FromIterator.js b/implementors/core/iter/traits/collect/trait.FromIterator.js new file mode 100644 index 0000000..7023493 --- /dev/null +++ b/implementors/core/iter/traits/collect/trait.FromIterator.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["soa_derive_example"] = [{"text":"impl FromIterator<Particle> for ParticleVec","synthetic":false,"types":[]}]; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/iter/traits/collect/trait.IntoIterator.js b/implementors/core/iter/traits/collect/trait.IntoIterator.js new file mode 100644 index 0000000..e05c7ac --- /dev/null +++ b/implementors/core/iter/traits/collect/trait.IntoIterator.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["soa_derive_example"] = [{"text":"impl<'a> IntoIterator for ParticleSlice<'a>","synthetic":false,"types":[]},{"text":"impl<'a, 'b> IntoIterator for &'a ParticleSlice<'b>","synthetic":false,"types":[]},{"text":"impl<'a> IntoIterator for &'a ParticleVec","synthetic":false,"types":[]},{"text":"impl<'a> IntoIterator for ParticleSliceMut<'a>","synthetic":false,"types":[]},{"text":"impl<'a> IntoIterator for &'a mut ParticleVec","synthetic":false,"types":[]}]; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Copy.js b/implementors/core/marker/trait.Copy.js new file mode 100644 index 0000000..99f001f --- /dev/null +++ b/implementors/core/marker/trait.Copy.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["soa_derive_example"] = [{"text":"impl<'a> Copy for ParticleRef<'a>","synthetic":false,"types":[]},{"text":"impl Copy for ParticlePtr","synthetic":false,"types":[]},{"text":"impl Copy for ParticlePtrMut","synthetic":false,"types":[]},{"text":"impl<'a> Copy for ParticleSlice<'a>","synthetic":false,"types":[]}]; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Freeze.js b/implementors/core/marker/trait.Freeze.js new file mode 100644 index 0000000..f65ea96 --- /dev/null +++ b/implementors/core/marker/trait.Freeze.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["soa_derive_example"] = [{"text":"impl Freeze for Particle","synthetic":true,"types":[]},{"text":"impl Freeze for ParticleVec","synthetic":true,"types":[]},{"text":"impl<'a> Freeze for ParticleRef<'a>","synthetic":true,"types":[]},{"text":"impl<'a> Freeze for ParticleRefMut<'a>","synthetic":true,"types":[]},{"text":"impl Freeze for ParticlePtr","synthetic":true,"types":[]},{"text":"impl Freeze for ParticlePtrMut","synthetic":true,"types":[]},{"text":"impl<'a> Freeze for ParticleSlice<'a>","synthetic":true,"types":[]},{"text":"impl<'a> Freeze for ParticleSliceMut<'a>","synthetic":true,"types":[]}]; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Send.js b/implementors/core/marker/trait.Send.js new file mode 100644 index 0000000..4ca3de2 --- /dev/null +++ b/implementors/core/marker/trait.Send.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["soa_derive_example"] = [{"text":"impl Send for Particle","synthetic":true,"types":[]},{"text":"impl Send for ParticleVec","synthetic":true,"types":[]},{"text":"impl<'a> Send for ParticleRef<'a>","synthetic":true,"types":[]},{"text":"impl<'a> Send for ParticleRefMut<'a>","synthetic":true,"types":[]},{"text":"impl !Send for ParticlePtr","synthetic":true,"types":[]},{"text":"impl !Send for ParticlePtrMut","synthetic":true,"types":[]},{"text":"impl<'a> Send for ParticleSlice<'a>","synthetic":true,"types":[]},{"text":"impl<'a> Send for ParticleSliceMut<'a>","synthetic":true,"types":[]}]; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.StructuralPartialEq.js b/implementors/core/marker/trait.StructuralPartialEq.js new file mode 100644 index 0000000..6485ed2 --- /dev/null +++ b/implementors/core/marker/trait.StructuralPartialEq.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["soa_derive_example"] = [{"text":"impl StructuralPartialEq for Particle","synthetic":false,"types":[]},{"text":"impl StructuralPartialEq for ParticleVec","synthetic":false,"types":[]},{"text":"impl<'a> StructuralPartialEq for ParticleRef<'a>","synthetic":false,"types":[]},{"text":"impl<'a> StructuralPartialEq for ParticleRefMut<'a>","synthetic":false,"types":[]},{"text":"impl StructuralPartialEq for ParticlePtr","synthetic":false,"types":[]},{"text":"impl StructuralPartialEq for ParticlePtrMut","synthetic":false,"types":[]},{"text":"impl<'a> StructuralPartialEq for ParticleSlice<'a>","synthetic":false,"types":[]},{"text":"impl<'a> StructuralPartialEq for ParticleSliceMut<'a>","synthetic":false,"types":[]}]; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Sync.js b/implementors/core/marker/trait.Sync.js new file mode 100644 index 0000000..f38fba7 --- /dev/null +++ b/implementors/core/marker/trait.Sync.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["soa_derive_example"] = [{"text":"impl Sync for Particle","synthetic":true,"types":[]},{"text":"impl Sync for ParticleVec","synthetic":true,"types":[]},{"text":"impl<'a> Sync for ParticleRef<'a>","synthetic":true,"types":[]},{"text":"impl<'a> Sync for ParticleRefMut<'a>","synthetic":true,"types":[]},{"text":"impl !Sync for ParticlePtr","synthetic":true,"types":[]},{"text":"impl !Sync for ParticlePtrMut","synthetic":true,"types":[]},{"text":"impl<'a> Sync for ParticleSlice<'a>","synthetic":true,"types":[]},{"text":"impl<'a> Sync for ParticleSliceMut<'a>","synthetic":true,"types":[]}]; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Unpin.js b/implementors/core/marker/trait.Unpin.js new file mode 100644 index 0000000..3a1fe1c --- /dev/null +++ b/implementors/core/marker/trait.Unpin.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["soa_derive_example"] = [{"text":"impl Unpin for Particle","synthetic":true,"types":[]},{"text":"impl Unpin for ParticleVec","synthetic":true,"types":[]},{"text":"impl<'a> Unpin for ParticleRef<'a>","synthetic":true,"types":[]},{"text":"impl<'a> Unpin for ParticleRefMut<'a>","synthetic":true,"types":[]},{"text":"impl Unpin for ParticlePtr","synthetic":true,"types":[]},{"text":"impl Unpin for ParticlePtrMut","synthetic":true,"types":[]},{"text":"impl<'a> Unpin for ParticleSlice<'a>","synthetic":true,"types":[]},{"text":"impl<'a> Unpin for ParticleSliceMut<'a>","synthetic":true,"types":[]}]; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/soa_derive/trait.SoAIndex.js b/implementors/soa_derive/trait.SoAIndex.js new file mode 100644 index 0000000..f79f9f5 --- /dev/null +++ b/implementors/soa_derive/trait.SoAIndex.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["soa_derive_example"] = [{"text":"impl<'a> SoAIndex<&'a ParticleVec> for usize","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndex<&'a ParticleVec> for Range<usize>","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndex<&'a ParticleVec> for RangeTo<usize>","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndex<&'a ParticleVec> for RangeFrom<usize>","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndex<&'a ParticleVec> for RangeFull","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndex<&'a ParticleVec> for RangeInclusive<usize>","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndex<&'a ParticleVec> for RangeToInclusive<usize>","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndex<ParticleSlice<'a>> for usize","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndex<ParticleSlice<'a>> for Range<usize>","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndex<ParticleSlice<'a>> for RangeTo<usize>","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndex<ParticleSlice<'a>> for RangeFrom<usize>","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndex<ParticleSlice<'a>> for RangeFull","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndex<ParticleSlice<'a>> for RangeInclusive<usize>","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndex<ParticleSlice<'a>> for RangeToInclusive<usize>","synthetic":false,"types":[]}]; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/soa_derive/trait.SoAIndexMut.js b/implementors/soa_derive/trait.SoAIndexMut.js new file mode 100644 index 0000000..cf48043 --- /dev/null +++ b/implementors/soa_derive/trait.SoAIndexMut.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["soa_derive_example"] = [{"text":"impl<'a> SoAIndexMut<&'a mut ParticleVec> for usize","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndexMut<&'a mut ParticleVec> for Range<usize>","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeTo<usize>","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeFrom<usize>","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeFull","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeInclusive<usize>","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeToInclusive<usize>","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for usize","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for Range<usize>","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeTo<usize>","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeFrom<usize>","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeFull","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeInclusive<usize>","synthetic":false,"types":[]},{"text":"impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeToInclusive<usize>","synthetic":false,"types":[]}]; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/soa_derive/trait.StructOfArray.js b/implementors/soa_derive/trait.StructOfArray.js new file mode 100644 index 0000000..09feed1 --- /dev/null +++ b/implementors/soa_derive/trait.StructOfArray.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["soa_derive_example"] = [{"text":"impl StructOfArray for Particle","synthetic":false,"types":[]}]; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/std/panic/trait.RefUnwindSafe.js b/implementors/std/panic/trait.RefUnwindSafe.js new file mode 100644 index 0000000..2e7f24b --- /dev/null +++ b/implementors/std/panic/trait.RefUnwindSafe.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["soa_derive_example"] = [{"text":"impl RefUnwindSafe for Particle","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for ParticleVec","synthetic":true,"types":[]},{"text":"impl<'a> RefUnwindSafe for ParticleRef<'a>","synthetic":true,"types":[]},{"text":"impl<'a> RefUnwindSafe for ParticleRefMut<'a>","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for ParticlePtr","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for ParticlePtrMut","synthetic":true,"types":[]},{"text":"impl<'a> RefUnwindSafe for ParticleSlice<'a>","synthetic":true,"types":[]},{"text":"impl<'a> RefUnwindSafe for ParticleSliceMut<'a>","synthetic":true,"types":[]}]; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/std/panic/trait.UnwindSafe.js b/implementors/std/panic/trait.UnwindSafe.js new file mode 100644 index 0000000..26c3479 --- /dev/null +++ b/implementors/std/panic/trait.UnwindSafe.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["soa_derive_example"] = [{"text":"impl UnwindSafe for Particle","synthetic":true,"types":[]},{"text":"impl UnwindSafe for ParticleVec","synthetic":true,"types":[]},{"text":"impl<'a> UnwindSafe for ParticleRef<'a>","synthetic":true,"types":[]},{"text":"impl<'a> !UnwindSafe for ParticleRefMut<'a>","synthetic":true,"types":[]},{"text":"impl UnwindSafe for ParticlePtr","synthetic":true,"types":[]},{"text":"impl UnwindSafe for ParticlePtrMut","synthetic":true,"types":[]},{"text":"impl<'a> UnwindSafe for ParticleSlice<'a>","synthetic":true,"types":[]},{"text":"impl<'a> !UnwindSafe for ParticleSliceMut<'a>","synthetic":true,"types":[]}]; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..e6062ee --- /dev/null +++ b/index.html @@ -0,0 +1 @@ + diff --git a/latest/.lock b/latest/.lock new file mode 100644 index 0000000..e69de29 diff --git a/latest/crates.js b/latest/crates.js new file mode 100644 index 0000000..7d9c1db --- /dev/null +++ b/latest/crates.js @@ -0,0 +1 @@ +window.ALL_CRATES = ["soa_derive_example"]; \ No newline at end of file diff --git a/latest/help.html b/latest/help.html new file mode 100644 index 0000000..1884ad4 --- /dev/null +++ b/latest/help.html @@ -0,0 +1,2 @@ +Help +

Rustdoc help

Back
\ No newline at end of file diff --git a/latest/index.html b/latest/index.html new file mode 100644 index 0000000..e6062ee --- /dev/null +++ b/latest/index.html @@ -0,0 +1 @@ + diff --git a/latest/search-index.js b/latest/search-index.js new file mode 100644 index 0000000..6893fb7 --- /dev/null +++ b/latest/search-index.js @@ -0,0 +1,5 @@ +var searchIndex = new Map(JSON.parse('[\ +["soa_derive_example",{"doc":"This crate is an example for the soa_derive crate …","t":"FFFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOONNNNNOOOOOOOOOOOOOOOONNNNOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Particle","ParticlePtr","ParticlePtrMut","ParticleRef","ParticleRefMut","ParticleSlice","ParticleSliceMut","ParticleVec","add","add","append","as_mut","as_mut","as_mut_ptr","as_mut_ptr","as_mut_ptr","as_mut_ptr","as_mut_slice","as_ptr","as_ptr","as_ptr","as_ptr","as_ptr","as_ptr","as_ref","as_ref","as_ref","as_ref","as_slice","as_slice","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","capacity","clear","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","default","default","default","drop","eq","eq","eq","eq","eq","eq","eq","eq","extend","extend","first","first_mut","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_iter","from_raw_parts","from_raw_parts","from_raw_parts_mut","get","get","get","get_mut","get_mut","get_unchecked","get_unchecked","get_unchecked","get_unchecked_mut","get_unchecked_mut","index","index","index","index_mut","index_mut","insert","into","into","into","into","into","into","into","into","into_iter","into_iter","into_iter","into_iter","into_iter","into_iter","into_iter","is_empty","is_empty","is_empty","is_null","is_null","iter","iter","iter","iter_mut","iter_mut","kind","kind","kind","kind","kind","kind","kind","kind","last","last_mut","len","len","len","mass","mass","mass","mass","mass","mass","mass","mass","name","name","name","name","name","name","name","name","new","offset","offset","pop","position","position","position","position","position","position","position","position","push","read","read","read_unaligned","read_unaligned","read_volatile","read_volatile","reborrow","reborrow","remove","replace","replace","reserve","reserve_exact","retain","retain_mut","shrink_to_fit","slice","slice_mut","sort","sort_by","sort_by_key","split_at","split_at_mut","split_first","split_first_mut","split_last","split_last_mut","split_off","sub","sub","swap","swap_remove","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","truncate","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","with_capacity","wrapping_add","wrapping_add","wrapping_offset","wrapping_offset","wrapping_sub","wrapping_sub","write","write_unaligned","write_volatile"],"q":[[0,"soa_derive_example"],[248,"core::option"],[249,"core::iter::traits::collect"],[250,"core::fmt"],[251,"core::fmt"],[252,"soa_derive"],[253,"core::ops::range"],[254,"core::cmp"],[255,"core::cmp"],[256,"core::any"]],"d":["A basic Particle type","An analog of a pointer to Particle with struct of array …","An analog of a mutable pointer to Particle with struct of …","A reference to a Particle with struct of array layout.","A mutable reference to a Particle with struct of array …","A slice of Particle inside a ParticleVec .","A mutable slice of Particle inside a ParticleVec .","An analog to Vec<Particle>\\n with Struct of Array (SoA) …","Similar to *const T::add(), with the same safety caveats.","Similar to *mut T::add(), with the same safety caveats.","Similar to Vec<Particle> ::append().","Similar to *mut T::as_mut(), with the same safety caveats.","Create a ParticleRefMut from a mutably borrowed Particle .","Similar to Vec<Particle> ::as_mut_ptr().","Convert a ParticleRefMut to a ParticlePtrMut ; i.e. do a …","Convert a ParticlePtr to a ParticlePtrMut ; i.e. do a …","Similar to &mut [Particle] ::as_mut_ptr().","Similar to Vec<Particle> ::as_mut_slice().","Similar to Vec<Particle> ::as_ptr().","Convert a ParticleRef to a ParticlePtr ; i.e. do a …","Convert a ParticleRefMut to a ParticlePtr ; i.e. do a …","Convert a ParticlePtrMut to a ParticlePtr ; i.e. do a …","Similar to & [Particle] ::as_ptr().","Similar to & [Particle] ::as_ptr().","Similar to *const T::as_ref(), with the same safety …","Similar to *mut T::as_ref(), with the same safety caveats.","Convert a ParticleSliceMut to a ParticleSlice in order to …","Create a ParticleRef from a borrowed Particle .","Similar to Vec<Particle> ::as_slice().","Returns a non-mutable slice from this mutable slice.","","","","","","","","","","","","","","","","","Similar to Vec<Particle> ::capacity(), the capacity of …","Similar to Vec<Particle> ::clear().","","","","","","","","","","","","","","","","","","","","","","","Similar to & [Particle] ::first().","Similar to &mut [Particle] ::first_mut().","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Similar to Vec<Particle> ::from_raw_parts().","Similar to std::slice::from_raw_parts().","Similar to std::slice::from_raw_parts_mut().","Similar to Vec<Particle> ::get<I>().","Similar to & [Particle] ::get().","Similar to & [Particle] ::get().","Similar to Vec<Particle> ::get_mut<I>().","Similar to &mut [Particle] ::get_mut().","Similar to Vec<Particle> ::get_unchecked<I>().","Similar to & [Particle] ::get_unchecked().","Similar to & [Particle] ::get_unchecked().","Similar to Vec<Particle> ::get_unchecked_mut<I>().","Similar to &mut [Particle] ::get_unchecked_mut().","Similar to Vec<Particle> ::index<I>().","Similar to the std::ops::Index trait for & [Particle] . …","Similar to the std::ops::Index trait for & [Particle] . …","Similar to Vec<Particle> ::index_mut<I>().","Similar to the std::ops::IndexMut trait for …","Similar to Vec<Particle> ::insert().","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","Get an iterator over the ParticleRef in this slice.","","Get a mutable iterator over the ParticleRefMut in this …","Similar to Vec<Particle> ::is_empty(), all the fields …","Similar to & [Particle] ::is_empty(), the length of all …","Similar to & [Particle] ::is_empty(), the length of all …","Similar to *const T::is_null().","Similar to *mut T::is_null().","Get an iterator over the ParticleRef in this vector","Get an iterator over the ParticleRef in this slice.","Get an iterator over the ParticleRef in this vector","Get a mutable iterator over the ParticleRefMut in this …","Get a mutable iterator over the ParticleRefMut in this …","a vector of kind from a Particle","reference to the kind field of a single Particle inside a …","reference to the kind field of a single Particle inside a …","pointer to the kind field of a single Particle inside a …","pointer to the kind field of a single Particle inside a …","slice of kind inside a ParticleVec","slice of kind inside a ParticleVec","Kind of the particle","Similar to & [Particle] ::last().","Similar to &mut [Particle] ::last_mut().","Similar to Vec<Particle> ::len(), all the fields should …","Similar to & [Particle] ::len(), the length of all fields …","Similar to & [Particle] ::len(), the length of all fields …","a vector of mass from a Particle","reference to the mass field of a single Particle inside a …","reference to the mass field of a single Particle inside a …","pointer to the mass field of a single Particle inside a …","pointer to the mass field of a single Particle inside a …","slice of mass inside a ParticleVec","slice of mass inside a ParticleVec","Mass of the particle","a vector of name from a Particle","reference to the name field of a single Particle inside a …","reference to the name field of a single Particle inside a …","pointer to the name field of a single Particle inside a …","pointer to the name field of a single Particle inside a …","slice of name inside a ParticleVec","slice of name inside a ParticleVec","Name of the particle","Similar to Vec<Particle> ::new()","Similar to *const T::offset(), with the same safety …","Similar to *mut T::offset(), with the same safety caveats.","Similar to Vec<Particle> ::pop().","a vector of position from a Particle","reference to the position field of a single Particle …","reference to the position field of a single Particle …","pointer to the position field of a single Particle inside a","pointer to the position field of a single Particle inside a","slice of position inside a ParticleVec","slice of position inside a ParticleVec","Position of the particle","Similar to Vec<Particle> ::push().","Similar to *const T::read(), with the same safety caveats.","Similar to *mut T::read(), with the same safety caveats.","Similar to *const T::read_unaligned(), with the same …","Similar to *mut T::read_unaligned(), with the same safety …","Similar to *const T::read_volatile(), with the same safety …","Similar to *mut T::read_volatile(), with the same safety …","Reborrows the slices in a narrower lifetime","Reborrows the slices in a narrower lifetime","Similar to Vec<Particle> ::remove().","Similar to std::mem::replace().","Similar to std::mem::replace().","Similar to Vec<Particle> ::reserve(), reserving the same …","Similar to Vec<Particle> ::reserve_exact() reserving the …","Similar to Vec<Particle> ::retain().","Similar to Vec<Particle> ::retain_mut().","Similar to Vec<Particle> ::shrink_to_fit() shrinking all …","Create a slice of this vector matching the given range. …","Create a mutable slice of this vector matching the given …","Similar to &mut [Particle] ::sort().","Similar to &mut [Particle] ::sort_by().","Similar to &mut [Particle] ::sort_by_key().","Similar to & [Particle] ::split_at().","Similar to &mut [Particle] ::split_at_mut().","Similar to & [Particle] ::split_first().","Similar to &mut [Particle] ::split_first_mut().","Similar to & [Particle] ::split_last().","Similar to &mut [Particle] ::last_mut().","Similar to Vec<Particle> ::split_off().","Similar to *const T::sub(), with the same safety caveats.","Similar to *mut T::sub(), with the same safety caveats.","Similar to &mut [Particle] ::swap().","Similar to Vec<Particle> ::swap_remove().","Convert a reference to Particle into an owned value. This …","","Convert a mutable reference to Particle into an owned …","","","","Similar to Vec<Particle> ::truncate() truncating all …","","","","","","","","","","","","","","","","","","","","","","","","","Similar to Vec<Particle> ::with_capacity(), initializing …","Similar to *const T::wrapping_add().","Similar to *mut T::wrapping_add(), with the same safety …","Similar to *const T::offset().","Similar to *mut T::wrapping_offset()","Similar to *const T::wrapping_sub().","Similar to *mut T::wrapping_sub(), with the same safety …","Similar to *mut T::write(), with the same safety caveats.","Similar to *mut T::write_unaligned(), with the same safety …","Similar to *mut T::write_volatile(), with the same safety …"],"i":[0,0,0,0,0,0,0,0,1,3,4,3,8,4,6,1,9,4,4,10,6,3,11,9,1,3,9,8,4,9,4,10,6,1,3,11,9,8,4,10,6,1,3,11,9,8,4,4,10,1,3,11,10,1,3,11,4,11,9,4,4,10,6,1,3,11,9,8,4,4,11,9,4,10,6,1,3,11,9,8,4,10,6,1,3,11,9,8,4,4,11,9,4,11,9,4,9,4,11,9,4,9,4,11,9,4,9,4,4,10,6,1,3,11,9,8,4,4,11,11,11,9,9,4,11,9,1,3,4,11,9,4,9,4,10,6,1,3,11,9,8,11,9,4,11,9,4,10,6,1,3,11,9,8,4,10,6,1,3,11,9,8,4,1,3,4,4,10,6,1,3,11,9,8,4,1,3,1,3,1,3,11,9,4,4,6,4,4,4,4,4,4,4,9,9,9,11,9,11,9,11,9,4,1,3,9,4,10,10,6,1,3,11,4,4,10,6,1,3,11,9,8,4,10,6,1,3,11,9,8,4,10,6,1,3,11,9,8,4,1,3,1,3,1,3,3,3,3],"f":"````````{{bd}b}{{fd}f}{{hh}j}{f{{n{l}}}}{A`l}{hf}{lf}{bf}{Abf}{hAb}{hb}{Adb}{lb}{fb}{Afb}{Abb}{b{{n{Ad}}}}{f{{n{Ad}}}}{AbAf}{A`Ad}{hAf}2{ce{}{}}000000000000000{hd}{hj}{AdAd}{bb}{ff}{AfAf}{{ce}j{}{}}000{{}h}{{}Af}{{}Ab}8{{hh}Ah}{{AdAd}Ah}{{ll}Ah}{{bb}Ah}{{ff}Ah}{{AfAf}Ah}{{AbAb}Ah}{{A`A`}Ah}{{hc}j{{Al{}{{Aj{Ad}}}}}}{{hc}j{{Al{}{{Aj{A`}}}}}}{Af{{n{Ad}}}}{Ab{{n{l}}}}{{hAn}B`}{{AdAn}B`}{{lAn}B`}{{bAn}B`}{{fAn}B`}{{AfAn}B`}{{AbAn}B`}{{A`An}B`}{cc{}}0000000{ch{{Al{}{{Aj{A`}}}}}}{{fdd}h}{{bd}Af}{{fd}Ab}{{hc}n{{Bb{h}}}}{{Afc}n{{Bb{Af}}}}{{Abc}n{{Bb{Af}}}}{{hc}n{{Bd{h}}}}{{Abc}n{{Bd{Ab}}}}{{hc}{}{{Bb{h}}}}{{Afc}{}{{Bb{Af}}}}{{Abc}{}{{Bb{Af}}}}{{hc}{}{{Bd{h}}}}{{Abc}{}{{Bd{Ab}}}}43210{{hdA`}j}{ce{}{}}0000000{hc{}}0{Afc{}}0`{Abc{}}`{hAh}{AfAh}{AbAh}{bAh}{fAh}`````````````{Af{{n{Ad}}}}{Ab{{n{l}}}}{hd}{Afd}{Abd}````````````````{{}h}{{bBf}b}{{fBf}f}{h{{n{A`}}}}````````{{hA`}j}{bA`}{fA`}1010{AfAf}{AbAb}{{hd}A`}{{hdA`}A`}{{lA`}A`}{{hd}j}0{{hc}j{{Bj{Ad}{{Bh{Ah}}}}}}{{hc}j{{Bj{l}{{Bh{Ah}}}}}}{hj}{{h{Bl{d}}}Af}{{h{Bl{d}}}Ab}{Abj}{{Abc}j{{Bj{AdAd}{{Bh{Bn}}}}}}{{Abe}jC`{{Bj{Ad}{{Bh{c}}}}}}{{Afd}{{Cb{AfAf}}}}{{Abd}{{Cb{AbAb}}}}{Af{{n{{Cb{AdAf}}}}}}{Ab{{n{{Cb{lAb}}}}}}10{{hd}h}{{bd}b}{{fd}f}{{Abdd}j}{{hd}A`}{AdA`}{ce{}{}}{lA`}111{{hd}j}{c{{Cd{e}}}{}{}}000000000000000{cCf{}}0000000{dh}:9{{bBf}b}{{fBf}f}<;{{fA`}j}00","c":[],"p":[[5,"ParticlePtr",0],[1,"usize"],[5,"ParticlePtrMut",0],[5,"ParticleVec",0],[1,"unit"],[5,"ParticleRefMut",0],[6,"Option",248],[5,"Particle",0],[5,"ParticleSliceMut",0],[5,"ParticleRef",0],[5,"ParticleSlice",0],[1,"bool"],[17,"Item"],[10,"IntoIterator",249],[5,"Formatter",250],[8,"Result",250],[10,"SoAIndex",251],[10,"SoAIndexMut",251],[1,"isize"],[17,"Output"],[10,"FnMut",252],[5,"Range",253],[6,"Ordering",254],[10,"Ord",254],[1,"tuple"],[6,"Result",255],[5,"TypeId",256]],"b":[[68,"impl-Extend%3CParticleRef%3C\'a%3E%3E-for-ParticleVec"],[69,"impl-Extend%3CParticle%3E-for-ParticleVec"],[116,"impl-IntoIterator-for-%26ParticleVec"],[117,"impl-IntoIterator-for-%26mut+ParticleVec"],[118,"impl-IntoIterator-for-ParticleSlice%3C\'a%3E"],[119,"impl-IntoIterator-for-%26ParticleSlice%3C\'b%3E"],[120,"impl-ParticleSlice%3C\'a%3E"],[121,"impl-IntoIterator-for-ParticleSliceMut%3C\'a%3E"],[122,"impl-ParticleSliceMut%3C\'a%3E"]]}]\ +]')); +if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; +else if (window.initSearch) window.initSearch(searchIndex); diff --git a/latest/settings.html b/latest/settings.html new file mode 100644 index 0000000..46615e3 --- /dev/null +++ b/latest/settings.html @@ -0,0 +1,2 @@ +Settings +

Rustdoc settings

Back
\ No newline at end of file diff --git a/latest/soa_derive_example/all.html b/latest/soa_derive_example/all.html new file mode 100644 index 0000000..98c2113 --- /dev/null +++ b/latest/soa_derive_example/all.html @@ -0,0 +1,2 @@ +List of all items in this crate +
\ No newline at end of file diff --git a/latest/soa_derive_example/index.html b/latest/soa_derive_example/index.html new file mode 100644 index 0000000..737c48b --- /dev/null +++ b/latest/soa_derive_example/index.html @@ -0,0 +1,40 @@ +soa_derive_example - Rust +
Expand description

This crate is an example for the soa_derive crate functionalities. All +the code is generated by a single file:

+ +
extern crate soa_derive;
+#[macro_use]
+use soa_derive::StructOfArray;
+
+/// A basic Particle type
+#[derive(Debug, PartialEq, StructOfArray)]
+#[soa_derive(Debug, PartialEq)]
+pub struct Particle {
+    /// Mass of the particle
+    pub mass: f64,
+    /// Position of the particle
+    pub position: [f64; 3],
+    /// Kind of the particle
+    pub kind: usize,
+    /// Name of the particle
+    pub name: String,
+}
+

Structs§

\ No newline at end of file diff --git a/latest/soa_derive_example/sidebar-items.js b/latest/soa_derive_example/sidebar-items.js new file mode 100644 index 0000000..f8897f5 --- /dev/null +++ b/latest/soa_derive_example/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"struct":["Particle","ParticlePtr","ParticlePtrMut","ParticleRef","ParticleRefMut","ParticleSlice","ParticleSliceMut","ParticleVec"]}; \ No newline at end of file diff --git a/latest/soa_derive_example/struct.Particle.html b/latest/soa_derive_example/struct.Particle.html new file mode 100644 index 0000000..2e6b5d5 --- /dev/null +++ b/latest/soa_derive_example/struct.Particle.html @@ -0,0 +1,34 @@ +Particle in soa_derive_example - Rust +
pub struct Particle {
+    pub mass: f64,
+    pub position: [f64; 3],
+    pub kind: usize,
+    pub name: String,
+}
Expand description

A basic Particle type

+

Fields§

§mass: f64

Mass of the particle

+
§position: [f64; 3]

Position of the particle

+
§kind: usize

Kind of the particle

+
§name: String

Name of the particle

+

Implementations§

source§

impl Particle

source

pub fn as_ref(&self) -> ParticleRef<'_>

Create a +ParticleRef +from a borrowed +Particle +.

+
source

pub fn as_mut(&mut self) -> ParticleRefMut<'_>

Create a +ParticleRefMut +from a mutably borrowed +Particle +.

+

Trait Implementations§

source§

impl Debug for Particle

source§

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

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

impl Extend<Particle> for ParticleVec

source§

fn extend<I: IntoIterator<Item = Particle>>(&mut self, iter: I)

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
source§

impl FromIterator<Particle> for ParticleVec

source§

fn from_iter<T: IntoIterator<Item = Particle>>(iter: T) -> Self

Creates a value from an iterator. Read more
source§

impl PartialEq for Particle

source§

fn eq(&self, other: &Particle) -> 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<'a> SoAIter<'a> for Particle

§

type Iter = Iter<'a>

§

type IterMut = IterMut<'a>

source§

impl StructOfArray for Particle

source§

impl StructuralPartialEq for Particle

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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 T
where + 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.

+
source§

impl<T, U> TryFrom<U> for T
where + 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 T
where + 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/latest/soa_derive_example/struct.ParticlePtr.html b/latest/soa_derive_example/struct.ParticlePtr.html new file mode 100644 index 0000000..2a56cdc --- /dev/null +++ b/latest/soa_derive_example/struct.ParticlePtr.html @@ -0,0 +1,62 @@ +ParticlePtr in soa_derive_example - Rust +
pub struct ParticlePtr {
+    pub mass: *const f64,
+    pub position: *const [f64; 3],
+    pub kind: *const usize,
+    pub name: *const String,
+}
Expand description

An analog of a pointer to +Particle +with struct of array layout.

+

Fields§

§mass: *const f64

pointer to the mass field of a single +Particle +inside a +ParticleVec

+
§position: *const [f64; 3]

pointer to the position field of a single +Particle +inside a +ParticleVec

+
§kind: *const usize

pointer to the kind field of a single +Particle +inside a +ParticleVec

+
§name: *const String

pointer to the name field of a single +Particle +inside a +ParticleVec

+

Implementations§

source§

impl ParticlePtr

source

pub fn as_mut_ptr(&self) -> ParticlePtrMut

Convert a +ParticlePtr +to a +ParticlePtrMut +; i.e. do a *const T as *mut T transformation.

+
source

pub fn is_null(self) -> bool

Similar to *const T::is_null().

+
source

pub unsafe fn as_ref<'a>(self) -> Option<ParticleRef<'a>>

Similar to *const T::as_ref(), +with the same safety caveats.

+
source

pub unsafe fn offset(self, count: isize) -> ParticlePtr

Similar to *const T::offset(), +with the same safety caveats.

+
source

pub fn wrapping_offset(self, count: isize) -> ParticlePtr

Similar to *const T::offset().

+
source

pub unsafe fn add(self, count: usize) -> ParticlePtr

Similar to *const T::add(), +with the same safety caveats.

+
source

pub unsafe fn sub(self, count: usize) -> ParticlePtr

Similar to *const T::sub(), +with the same safety caveats.

+
source

pub fn wrapping_add(self, count: usize) -> ParticlePtr

source

pub fn wrapping_sub(self, count: usize) -> ParticlePtr

source

pub unsafe fn read(self) -> Particle

Similar to *const T::read(), +with the same safety caveats.

+
source

pub unsafe fn read_volatile(self) -> Particle

Similar to *const T::read_volatile(), +with the same safety caveats.

+
source

pub unsafe fn read_unaligned(self) -> Particle

Similar to *const T::read_unaligned(), +with the same safety caveats.

+

Trait Implementations§

source§

impl Clone for ParticlePtr

source§

fn clone(&self) -> ParticlePtr

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 ParticlePtr

source§

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

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

impl PartialEq for ParticlePtr

source§

fn eq(&self, other: &ParticlePtr) -> 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 Copy for ParticlePtr

source§

impl StructuralPartialEq for ParticlePtr

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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 T
where + 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.

+
source§

impl<T> ToOwned for T
where + 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 T
where + 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 T
where + 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/latest/soa_derive_example/struct.ParticlePtrMut.html b/latest/soa_derive_example/struct.ParticlePtrMut.html new file mode 100644 index 0000000..628491d --- /dev/null +++ b/latest/soa_derive_example/struct.ParticlePtrMut.html @@ -0,0 +1,72 @@ +ParticlePtrMut in soa_derive_example - Rust +
pub struct ParticlePtrMut {
+    pub mass: *mut f64,
+    pub position: *mut [f64; 3],
+    pub kind: *mut usize,
+    pub name: *mut String,
+}
Expand description

An analog of a mutable pointer to +Particle +with struct of array layout.

+

Fields§

§mass: *mut f64

pointer to the mass field of a single +Particle +inside a +ParticleVec

+
§position: *mut [f64; 3]

pointer to the position field of a single +Particle +inside a +ParticleVec

+
§kind: *mut usize

pointer to the kind field of a single +Particle +inside a +ParticleVec

+
§name: *mut String

pointer to the name field of a single +Particle +inside a +ParticleVec

+

Implementations§

source§

impl ParticlePtrMut

source

pub fn as_ptr(&self) -> ParticlePtr

Convert a +ParticlePtrMut +to a +ParticlePtr +; i.e. do a *mut T as *const T transformation

+
source

pub fn is_null(self) -> bool

Similar to *mut T::is_null().

+
source

pub unsafe fn as_ref<'a>(self) -> Option<ParticleRef<'a>>

Similar to *mut T::as_ref(), +with the same safety caveats.

+
source

pub unsafe fn as_mut<'a>(self) -> Option<ParticleRefMut<'a>>

Similar to *mut T::as_mut(), +with the same safety caveats.

+
source

pub unsafe fn offset(self, count: isize) -> ParticlePtrMut

Similar to *mut T::offset(), +with the same safety caveats.

+
source

pub fn wrapping_offset(self, count: isize) -> ParticlePtrMut

source

pub unsafe fn add(self, count: usize) -> ParticlePtrMut

Similar to *mut T::add(), +with the same safety caveats.

+
source

pub unsafe fn sub(self, count: usize) -> ParticlePtrMut

Similar to *mut T::sub(), +with the same safety caveats.

+
source

pub fn wrapping_add(self, count: usize) -> ParticlePtrMut

Similar to *mut T::wrapping_add(), +with the same safety caveats.

+
source

pub fn wrapping_sub(self, count: usize) -> ParticlePtrMut

Similar to *mut T::wrapping_sub(), +with the same safety caveats.

+
source

pub unsafe fn read(self) -> Particle

Similar to *mut T::read(), +with the same safety caveats.

+
source

pub unsafe fn read_volatile(self) -> Particle

Similar to *mut T::read_volatile(), +with the same safety caveats.

+
source

pub unsafe fn read_unaligned(self) -> Particle

Similar to *mut T::read_unaligned(), +with the same safety caveats.

+
source

pub unsafe fn write(self, val: Particle)

Similar to *mut T::write(), +with the same safety caveats.

+
source

pub unsafe fn write_volatile(self, val: Particle)

Similar to *mut T::write_volatile(), +with the same safety caveats.

+
source

pub unsafe fn write_unaligned(self, val: Particle)

Similar to *mut T::write_unaligned(), +with the same safety caveats.

+

Trait Implementations§

source§

impl Clone for ParticlePtrMut

source§

fn clone(&self) -> ParticlePtrMut

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 ParticlePtrMut

source§

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

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

impl PartialEq for ParticlePtrMut

source§

fn eq(&self, other: &ParticlePtrMut) -> 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 Copy for ParticlePtrMut

source§

impl StructuralPartialEq for ParticlePtrMut

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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 T
where + 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.

+
source§

impl<T> ToOwned for T
where + 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 T
where + 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 T
where + 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/latest/soa_derive_example/struct.ParticleRef.html b/latest/soa_derive_example/struct.ParticleRef.html new file mode 100644 index 0000000..513d54f --- /dev/null +++ b/latest/soa_derive_example/struct.ParticleRef.html @@ -0,0 +1,56 @@ +ParticleRef in soa_derive_example - Rust +
pub struct ParticleRef<'a> {
+    pub mass: &'a f64,
+    pub position: &'a [f64; 3],
+    pub kind: &'a usize,
+    pub name: &'a String,
+}
Expand description

A reference to a +Particle +with struct of array layout.

+

Fields§

§mass: &'a f64

reference to the mass field of a single +Particle +inside a +ParticleVec

+
§position: &'a [f64; 3]

reference to the position field of a single +Particle +inside a +ParticleVec

+
§kind: &'a usize

reference to the kind field of a single +Particle +inside a +ParticleVec

+
§name: &'a String

reference to the name field of a single +Particle +inside a +ParticleVec

+

Implementations§

source§

impl<'a> ParticleRef<'a>

source

pub fn to_owned(&self) -> Particle
where + for<'b> f64: Clone, + for<'b> [f64; 3]: Clone, + for<'b> usize: Clone, + for<'b> String: Clone,

Convert a reference to +Particle +into an owned value. This is only available if all fields +implement Clone.

+
source§

impl<'a> ParticleRef<'a>

source

pub fn as_ptr(&self) -> ParticlePtr

Convert a +ParticleRef +to a +ParticlePtr +; i.e. do a &T as *const T transformation

+

Trait Implementations§

source§

impl<'a> Clone for ParticleRef<'a>

source§

fn clone(&self) -> ParticleRef<'a>

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<'a> Debug for ParticleRef<'a>

source§

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

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

impl<'a> Extend<ParticleRef<'a>> for ParticleVec
where + for<'b> f64: Clone, + for<'b> [f64; 3]: Clone, + for<'b> usize: Clone, + for<'b> String: Clone,

source§

fn extend<I: IntoIterator<Item = ParticleRef<'a>>>(&mut self, iter: I)

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
source§

impl<'a> PartialEq for ParticleRef<'a>

source§

fn eq(&self, other: &ParticleRef<'a>) -> 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<'a> Copy for ParticleRef<'a>

source§

impl<'a> StructuralPartialEq for ParticleRef<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for ParticleRef<'a>

§

impl<'a> RefUnwindSafe for ParticleRef<'a>

§

impl<'a> Send for ParticleRef<'a>

§

impl<'a> Sync for ParticleRef<'a>

§

impl<'a> Unpin for ParticleRef<'a>

§

impl<'a> UnwindSafe for ParticleRef<'a>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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 T
where + 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.

+
source§

impl<T> ToOwned for T
where + 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 T
where + 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 T
where + 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/latest/soa_derive_example/struct.ParticleRefMut.html b/latest/soa_derive_example/struct.ParticleRefMut.html new file mode 100644 index 0000000..6f51234 --- /dev/null +++ b/latest/soa_derive_example/struct.ParticleRefMut.html @@ -0,0 +1,57 @@ +ParticleRefMut in soa_derive_example - Rust +
pub struct ParticleRefMut<'a> {
+    pub mass: &'a mut f64,
+    pub position: &'a mut [f64; 3],
+    pub kind: &'a mut usize,
+    pub name: &'a mut String,
+}
Expand description

A mutable reference to a +Particle +with struct of array layout.

+

Fields§

§mass: &'a mut f64

reference to the mass field of a single +Particle +inside a +ParticleVec

+
§position: &'a mut [f64; 3]

reference to the position field of a single +Particle +inside a +ParticleVec

+
§kind: &'a mut usize

reference to the kind field of a single +Particle +inside a +ParticleVec

+
§name: &'a mut String

reference to the name field of a single +Particle +inside a +ParticleVec

+

Implementations§

source§

impl<'a> ParticleRefMut<'a>

source

pub fn to_owned(&self) -> Particle
where + for<'b> f64: Clone, + for<'b> [f64; 3]: Clone, + for<'b> usize: Clone, + for<'b> String: Clone,

Convert a mutable reference to +Particle +into an owned value. This is only available if all fields +implement Clone.

+
source

pub fn replace(&mut self, val: Particle) -> Particle

Similar to std::mem::replace().

+
source§

impl<'a> ParticleRefMut<'a>

source

pub fn as_ptr(&self) -> ParticlePtr

Convert a +ParticleRefMut +to a +ParticlePtr +; i.e. do a &mut T as *const T transformation

+
source

pub fn as_mut_ptr(&mut self) -> ParticlePtrMut

Convert a +ParticleRefMut +to a +ParticlePtrMut +; i.e. do a &mut T as *mut T transformation

+

Trait Implementations§

source§

impl<'a> Debug for ParticleRefMut<'a>

source§

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

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

impl<'a> PartialEq for ParticleRefMut<'a>

source§

fn eq(&self, other: &ParticleRefMut<'a>) -> 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<'a> StructuralPartialEq for ParticleRefMut<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for ParticleRefMut<'a>

§

impl<'a> RefUnwindSafe for ParticleRefMut<'a>

§

impl<'a> Send for ParticleRefMut<'a>

§

impl<'a> Sync for ParticleRefMut<'a>

§

impl<'a> Unpin for ParticleRefMut<'a>

§

impl<'a> !UnwindSafe for ParticleRefMut<'a>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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 T
where + 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.

+
source§

impl<T, U> TryFrom<U> for T
where + 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 T
where + 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/latest/soa_derive_example/struct.ParticleSlice.html b/latest/soa_derive_example/struct.ParticleSlice.html new file mode 100644 index 0000000..767e69e --- /dev/null +++ b/latest/soa_derive_example/struct.ParticleSlice.html @@ -0,0 +1,88 @@ +ParticleSlice in soa_derive_example - Rust +
pub struct ParticleSlice<'a> {
+    pub mass: &'a [f64],
+    pub position: &'a [[f64; 3]],
+    pub kind: &'a [usize],
+    pub name: &'a [String],
+}
Expand description

A slice of +Particle +inside a +ParticleVec +.

+

Fields§

§mass: &'a [f64]

slice of mass inside a +ParticleVec

+
§position: &'a [[f64; 3]]

slice of position inside a +ParticleVec

+
§kind: &'a [usize]

slice of kind inside a +ParticleVec

+
§name: &'a [String]

slice of name inside a +ParticleVec

+

Implementations§

source§

impl<'a> ParticleSlice<'a>

source

pub fn iter(&self) -> Iter<'_>

Get an iterator over the +ParticleRef +in this slice.

+
source

pub fn into_iter(self) -> Iter<'a>

Get an iterator over the +ParticleRef +in this slice.

+
source§

impl<'a> ParticleSlice<'a>

source

pub fn len(&self) -> usize

Similar to & [Particle] ::len(), +the length of all fields should be the same.

+
source

pub fn is_empty(&self) -> bool

Similar to & [Particle] ::is_empty(), +the length of all fields should be the same.

+
source

pub fn first(&self) -> Option<ParticleRef<'a>>

source

pub fn split_first(&self) -> Option<(ParticleRef<'a>, ParticleSlice<'a>)>

source

pub fn last(&self) -> Option<ParticleRef<'a>>

Similar to & [Particle] ::last().

+
source

pub fn split_last(&self) -> Option<(ParticleRef<'a>, ParticleSlice<'a>)>

source

pub fn split_at(&self, mid: usize) -> (ParticleSlice<'a>, ParticleSlice<'a>)

source

pub fn get<'b, I>(&'b self, index: I) -> Option<I::RefOutput>
where + I: SoAIndex<ParticleSlice<'b>>, + 'a: 'b,

Similar to & [Particle] ::get().

+
source

pub unsafe fn get_unchecked<'b, I>(&'b self, index: I) -> I::RefOutput
where + I: SoAIndex<ParticleSlice<'b>>, + 'a: 'b,

source

pub fn index<'b, I>(&'b self, index: I) -> I::RefOutput
where + I: SoAIndex<ParticleSlice<'b>>, + 'a: 'b,

Similar to the +std::ops::Index +trait for & [Particle] . +This is required because we cannot implement std::ops::Index directly since it requires returning a reference.

+
source

pub fn reborrow<'b>(&'b self) -> ParticleSlice<'b>
where + 'a: 'b,

Reborrows the slices in a narrower lifetime

+
source

pub fn as_ptr(&self) -> ParticlePtr

source

pub unsafe fn from_raw_parts<'b>( + data: ParticlePtr, + len: usize +) -> ParticleSlice<'b>

Trait Implementations§

source§

impl<'a> Clone for ParticleSlice<'a>

source§

fn clone(&self) -> ParticleSlice<'a>

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<'a> Debug for ParticleSlice<'a>

source§

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

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

impl<'a> Default for ParticleSlice<'a>

source§

fn default() -> ParticleSlice<'a>

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

impl<'a, 'b> IntoIterator for &'a ParticleSlice<'b>

§

type Item = ParticleRef<'a>

The type of the elements being iterated over.
§

type IntoIter = Iter<'a>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<'a> IntoIterator for ParticleSlice<'a>

§

type Item = ParticleRef<'a>

The type of the elements being iterated over.
§

type IntoIter = Iter<'a>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<'a> PartialEq for ParticleSlice<'a>

source§

fn eq(&self, other: &ParticleSlice<'a>) -> 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<'a> SoAIndex<ParticleSlice<'a>> for Range<usize>

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, slice: ParticleSlice<'a>) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<ParticleSlice<'a>> for RangeFrom<usize>

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, slice: ParticleSlice<'a>) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<ParticleSlice<'a>> for RangeFull

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, slice: ParticleSlice<'a>) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<ParticleSlice<'a>> for RangeInclusive<usize>

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, slice: ParticleSlice<'a>) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<ParticleSlice<'a>> for RangeTo<usize>

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, slice: ParticleSlice<'a>) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<ParticleSlice<'a>> for RangeToInclusive<usize>

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, slice: ParticleSlice<'a>) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<ParticleSlice<'a>> for usize

§

type RefOutput = ParticleRef<'a>

The output for the non-mutable functions
source§

fn get(self, slice: ParticleSlice<'a>) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, slice: ParticleSlice<'a>) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> Copy for ParticleSlice<'a>

source§

impl<'a> StructuralPartialEq for ParticleSlice<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for ParticleSlice<'a>

§

impl<'a> RefUnwindSafe for ParticleSlice<'a>

§

impl<'a> Send for ParticleSlice<'a>

§

impl<'a> Sync for ParticleSlice<'a>

§

impl<'a> Unpin for ParticleSlice<'a>

§

impl<'a> UnwindSafe for ParticleSlice<'a>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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 T
where + 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.

+
source§

impl<T> ToOwned for T
where + 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 T
where + 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 T
where + 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/latest/soa_derive_example/struct.ParticleSliceMut.html b/latest/soa_derive_example/struct.ParticleSliceMut.html new file mode 100644 index 0000000..500482e --- /dev/null +++ b/latest/soa_derive_example/struct.ParticleSliceMut.html @@ -0,0 +1,156 @@ +ParticleSliceMut in soa_derive_example - Rust +
pub struct ParticleSliceMut<'a> {
+    pub mass: &'a mut [f64],
+    pub position: &'a mut [[f64; 3]],
+    pub kind: &'a mut [usize],
+    pub name: &'a mut [String],
+}
Expand description

A mutable slice of +Particle +inside a +ParticleVec +.

+

Fields§

§mass: &'a mut [f64]

slice of mass inside a +ParticleVec

+
§position: &'a mut [[f64; 3]]

slice of position inside a +ParticleVec

+
§kind: &'a mut [usize]

slice of kind inside a +ParticleVec

+
§name: &'a mut [String]

slice of name inside a +ParticleVec

+

Implementations§

source§

impl<'a> ParticleSliceMut<'a>

source

pub fn iter(&mut self) -> Iter<'_>

Get an iterator over the +ParticleRef +in this vector

+
source

pub fn iter_mut(&mut self) -> IterMut<'_>

Get a mutable iterator over the +ParticleRefMut +in this vector

+
source

pub fn into_iter(self) -> IterMut<'a>

Get a mutable iterator over the +ParticleRefMut +in this vector

+
source§

impl<'a> ParticleSliceMut<'a>

source

pub fn as_ref(&self) -> ParticleSlice<'_>

Convert a +ParticleSliceMut +to a +ParticleSlice +in order to be able to use the methods on the non mutable +version of the slices.

+
source

pub fn len(&self) -> usize

Similar to & [Particle] ::len(), +the length of all fields should be the same.

+
source

pub fn is_empty(&self) -> bool

Similar to & [Particle] ::is_empty(), +the length of all fields should be the same.

+
source

pub fn first_mut(&mut self) -> Option<ParticleRefMut<'_>>

source

pub fn split_first_mut( + self +) -> Option<(ParticleRefMut<'a>, ParticleSliceMut<'a>)>

Similar to &mut [Particle] ::split_first_mut().

+

The main difference is that this function consumes the slice. +You should use Self::reborrow() first if you want the +returned values to have a shorter lifetime.

+
source

pub fn last_mut(&mut self) -> Option<ParticleRefMut<'_>>

source

pub fn split_last_mut( + self +) -> Option<(ParticleRefMut<'a>, ParticleSliceMut<'a>)>

Similar to &mut [Particle] ::last_mut().

+

The main difference is that this function consumes the slice. +You should use Self::reborrow() first if you want the +returned values to have a shorter lifetime.

+
source

pub fn split_at_mut( + self, + mid: usize +) -> (ParticleSliceMut<'a>, ParticleSliceMut<'a>)

Similar to &mut [Particle] ::split_at_mut().

+

The main difference is that this function consumes the slice. +You should use Self::reborrow() first if you want the +returned values to have a shorter lifetime.

+
source

pub fn swap(&mut self, a: usize, b: usize)

source

pub fn get<'b, I>(&'b self, index: I) -> Option<I::RefOutput>
where + I: SoAIndex<ParticleSlice<'b>>, + 'a: 'b,

Similar to & [Particle] ::get().

+
source

pub unsafe fn get_unchecked<'b, I>(&'b self, index: I) -> I::RefOutput
where + I: SoAIndex<ParticleSlice<'b>>, + 'a: 'b,

source

pub fn index<'b, I>(&'b self, index: I) -> I::RefOutput
where + I: SoAIndex<ParticleSlice<'b>>, + 'a: 'b,

Similar to the +std::ops::Index +trait for & [Particle] . +This is required because we cannot implement that trait.

+
source

pub fn get_mut<'b, I>(&'b mut self, index: I) -> Option<I::MutOutput>
where + I: SoAIndexMut<ParticleSliceMut<'b>>, + 'a: 'b,

source

pub unsafe fn get_unchecked_mut<'b, I>(&'b mut self, index: I) -> I::MutOutput
where + I: SoAIndexMut<ParticleSliceMut<'b>>, + 'a: 'b,

source

pub fn index_mut<'b, I>(&'b mut self, index: I) -> I::MutOutput
where + I: SoAIndexMut<ParticleSliceMut<'b>>, + 'a: 'b,

Similar to the +std::ops::IndexMut +trait for &mut [Particle] . +This is required because we cannot implement std::ops::IndexMut directly since it requires returning a mutable reference.

+
source

pub fn as_slice<'b>(&'b self) -> ParticleSlice<'b>
where + 'a: 'b,

Returns a non-mutable slice from this mutable slice.

+
source

pub fn reborrow<'b>(&'b mut self) -> ParticleSliceMut<'b>
where + 'a: 'b,

Reborrows the slices in a narrower lifetime

+
source

pub fn as_ptr(&self) -> ParticlePtr

source

pub fn as_mut_ptr(&mut self) -> ParticlePtrMut

source

pub unsafe fn from_raw_parts_mut<'b>( + data: ParticlePtrMut, + len: usize +) -> ParticleSliceMut<'b>

source

pub fn sort_by<F>(&mut self, f: F)
where + F: FnMut(ParticleRef<'_>, ParticleRef<'_>) -> Ordering,

source

pub fn sort_by_key<F, K>(&mut self, f: F)
where + F: FnMut(ParticleRef<'_>) -> K, + K: Ord,

source§

impl<'a> ParticleSliceMut<'a>
where + for<'b> ParticleRef<'b>: Ord,

source

pub fn sort(&mut self)

Trait Implementations§

source§

impl<'a> Debug for ParticleSliceMut<'a>

source§

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

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

impl<'a> Default for ParticleSliceMut<'a>

source§

fn default() -> ParticleSliceMut<'a>

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

impl<'a> IntoIterator for ParticleSliceMut<'a>

§

type Item = ParticleRefMut<'a>

The type of the elements being iterated over.
§

type IntoIter = IterMut<'a>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<'a> PartialEq for ParticleSliceMut<'a>

source§

fn eq(&self, other: &ParticleSliceMut<'a>) -> 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<'a> SoAIndexMut<ParticleSliceMut<'a>> for Range<usize>

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, slice: ParticleSliceMut<'a>) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut( + self, + slice: ParticleSliceMut<'a> +) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, slice: ParticleSliceMut<'a>) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeFrom<usize>

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, slice: ParticleSliceMut<'a>) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut( + self, + slice: ParticleSliceMut<'a> +) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, slice: ParticleSliceMut<'a>) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeFull

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, slice: ParticleSliceMut<'a>) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut( + self, + slice: ParticleSliceMut<'a> +) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, slice: ParticleSliceMut<'a>) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeInclusive<usize>

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, slice: ParticleSliceMut<'a>) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut( + self, + slice: ParticleSliceMut<'a> +) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, slice: ParticleSliceMut<'a>) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeTo<usize>

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, slice: ParticleSliceMut<'a>) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut( + self, + slice: ParticleSliceMut<'a> +) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, slice: ParticleSliceMut<'a>) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeToInclusive<usize>

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, slice: ParticleSliceMut<'a>) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut( + self, + slice: ParticleSliceMut<'a> +) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, slice: ParticleSliceMut<'a>) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for usize

§

type MutOutput = ParticleRefMut<'a>

The output for the mutable functions
source§

fn get_mut(self, slice: ParticleSliceMut<'a>) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut( + self, + slice: ParticleSliceMut<'a> +) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, slice: ParticleSliceMut<'a>) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> StructuralPartialEq for ParticleSliceMut<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for ParticleSliceMut<'a>

§

impl<'a> RefUnwindSafe for ParticleSliceMut<'a>

§

impl<'a> Send for ParticleSliceMut<'a>

§

impl<'a> Sync for ParticleSliceMut<'a>

§

impl<'a> Unpin for ParticleSliceMut<'a>

§

impl<'a> !UnwindSafe for ParticleSliceMut<'a>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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 T
where + 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.

+
source§

impl<T, U> TryFrom<U> for T
where + 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 T
where + 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/latest/soa_derive_example/struct.ParticleVec.html b/latest/soa_derive_example/struct.ParticleVec.html new file mode 100644 index 0000000..55cd192 --- /dev/null +++ b/latest/soa_derive_example/struct.ParticleVec.html @@ -0,0 +1,137 @@ +ParticleVec in soa_derive_example - Rust +
pub struct ParticleVec {
+    pub mass: Vec<f64>,
+    pub position: Vec<[f64; 3]>,
+    pub kind: Vec<usize>,
+    pub name: Vec<String>,
+}
Expand description

An analog to Vec<Particle> + with Struct of Array (SoA) layout

+

Fields§

§mass: Vec<f64>

a vector of mass from a +Particle

+
§position: Vec<[f64; 3]>

a vector of position from a +Particle

+
§kind: Vec<usize>

a vector of kind from a +Particle

+
§name: Vec<String>

a vector of name from a +Particle

+

Implementations§

source§

impl ParticleVec

source

pub fn iter(&self) -> Iter<'_>

Get an iterator over the +ParticleRef +in this vector

+
source§

impl ParticleVec

source

pub fn iter_mut(&mut self) -> IterMut<'_>

Get a mutable iterator over the +ParticleRefMut +in this vector

+
source§

impl ParticleVec

source

pub fn new() -> ParticleVec

source

pub fn with_capacity(capacity: usize) -> ParticleVec

Similar to Vec<Particle> ::with_capacity(), +initializing all fields with the given capacity.

+
source

pub fn capacity(&self) -> usize

Similar to Vec<Particle> ::capacity(), +the capacity of all fields should be the same.

+
source

pub fn reserve(&mut self, additional: usize)

Similar to Vec<Particle> ::reserve(), +reserving the same additional space for all fields.

+
source

pub fn reserve_exact(&mut self, additional: usize)

Similar to Vec<Particle> ::reserve_exact() +reserving the same additional space for all fields.

+
source

pub fn shrink_to_fit(&mut self)

Similar to Vec<Particle> ::shrink_to_fit() +shrinking all fields.

+
source

pub fn truncate(&mut self, len: usize)

Similar to Vec<Particle> ::truncate() +truncating all fields.

+
source

pub fn push(&mut self, value: Particle)

source

pub fn len(&self) -> usize

Similar to Vec<Particle> ::len(), +all the fields should have the same length.

+
source

pub fn is_empty(&self) -> bool

Similar to Vec<Particle> ::is_empty(), +all the fields should have the same length.

+
source

pub fn swap_remove(&mut self, index: usize) -> Particle

source

pub fn insert(&mut self, index: usize, element: Particle)

source

pub fn replace(&mut self, index: usize, element: Particle) -> Particle

Similar to std::mem::replace().

+
source

pub fn remove(&mut self, index: usize) -> Particle

source

pub fn pop(&mut self) -> Option<Particle>

source

pub fn append(&mut self, other: &mut ParticleVec)

source

pub fn clear(&mut self)

source

pub fn split_off(&mut self, at: usize) -> ParticleVec

source

pub fn as_slice(&self) -> ParticleSlice<'_>

source

pub fn as_mut_slice(&mut self) -> ParticleSliceMut<'_>

source

pub fn slice(&self, range: Range<usize>) -> ParticleSlice<'_>

Create a slice of this vector matching the given range. This +is analogous to Index<Range<usize>>.

+
source

pub fn slice_mut(&mut self, range: Range<usize>) -> ParticleSliceMut<'_>

Create a mutable slice of this vector matching the given +range. This is analogous to IndexMut<Range<usize>>.

+
source

pub fn retain<F>(&mut self, f: F)
where + F: FnMut(ParticleRef<'_>) -> bool,

source

pub fn retain_mut<F>(&mut self, f: F)
where + F: FnMut(ParticleRefMut<'_>) -> bool,

source

pub fn get<'a, I>(&'a self, index: I) -> Option<I::RefOutput>
where + I: SoAIndex<&'a ParticleVec>,

source

pub unsafe fn get_unchecked<'a, I>(&'a self, index: I) -> I::RefOutput
where + I: SoAIndex<&'a ParticleVec>,

source

pub fn index<'a, I>(&'a self, index: I) -> I::RefOutput
where + I: SoAIndex<&'a ParticleVec>,

source

pub fn get_mut<'a, I>(&'a mut self, index: I) -> Option<I::MutOutput>
where + I: SoAIndexMut<&'a mut ParticleVec>,

source

pub unsafe fn get_unchecked_mut<'a, I>(&'a mut self, index: I) -> I::MutOutput
where + I: SoAIndexMut<&'a mut ParticleVec>,

source

pub fn index_mut<'a, I>(&'a mut self, index: I) -> I::MutOutput
where + I: SoAIndexMut<&'a mut ParticleVec>,

source

pub fn as_ptr(&self) -> ParticlePtr

source

pub fn as_mut_ptr(&mut self) -> ParticlePtrMut

source

pub unsafe fn from_raw_parts( + data: ParticlePtrMut, + len: usize, + capacity: usize +) -> ParticleVec

Trait Implementations§

source§

impl Debug for ParticleVec

source§

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

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

impl Default for ParticleVec

source§

fn default() -> ParticleVec

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

impl Drop for ParticleVec

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl Extend<Particle> for ParticleVec

source§

fn extend<I: IntoIterator<Item = Particle>>(&mut self, iter: I)

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
source§

impl<'a> Extend<ParticleRef<'a>> for ParticleVec
where + for<'b> f64: Clone, + for<'b> [f64; 3]: Clone, + for<'b> usize: Clone, + for<'b> String: Clone,

source§

fn extend<I: IntoIterator<Item = ParticleRef<'a>>>(&mut self, iter: I)

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
source§

impl FromIterator<Particle> for ParticleVec

source§

fn from_iter<T: IntoIterator<Item = Particle>>(iter: T) -> Self

Creates a value from an iterator. Read more
source§

impl<'a> IntoIterator for &'a ParticleVec

§

type Item = ParticleRef<'a>

The type of the elements being iterated over.
§

type IntoIter = Iter<'a>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<'a> IntoIterator for &'a mut ParticleVec

§

type Item = ParticleRefMut<'a>

The type of the elements being iterated over.
§

type IntoIter = IterMut<'a>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl PartialEq for ParticleVec

source§

fn eq(&self, other: &ParticleVec) -> 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<'a> SoAIndex<&'a ParticleVec> for Range<usize>

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, soa: &'a ParticleVec) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<&'a ParticleVec> for RangeFrom<usize>

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, soa: &'a ParticleVec) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<&'a ParticleVec> for RangeFull

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, soa: &'a ParticleVec) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<&'a ParticleVec> for RangeInclusive<usize>

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, soa: &'a ParticleVec) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<&'a ParticleVec> for RangeTo<usize>

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, soa: &'a ParticleVec) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<&'a ParticleVec> for RangeToInclusive<usize>

§

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions
source§

fn get(self, soa: &'a ParticleVec) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndex<&'a ParticleVec> for usize

§

type RefOutput = ParticleRef<'a>

The output for the non-mutable functions
source§

fn get(self, soa: &'a ParticleVec) -> Option<Self::RefOutput>

Returns the reference output in this location if in bounds, None +otherwise.
source§

unsafe fn get_unchecked(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location without performing any +bounds check. Read more
source§

fn index(self, soa: &'a ParticleVec) -> Self::RefOutput

Returns the reference output in this location. Panics if it is not in +bounds.
source§

impl<'a> SoAIndexMut<&'a mut ParticleVec> for Range<usize>

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, soa: &'a mut ParticleVec) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeFrom<usize>

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, soa: &'a mut ParticleVec) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeFull

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, soa: &'a mut ParticleVec) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeInclusive<usize>

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, soa: &'a mut ParticleVec) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeTo<usize>

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, soa: &'a mut ParticleVec) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeToInclusive<usize>

§

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions
source§

fn get_mut(self, soa: &'a mut ParticleVec) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl<'a> SoAIndexMut<&'a mut ParticleVec> for usize

§

type MutOutput = ParticleRefMut<'a>

The output for the mutable functions
source§

fn get_mut(self, soa: &'a mut ParticleVec) -> Option<Self::MutOutput>

Returns the mutable reference output in this location if in bounds, +None otherwise.
source§

unsafe fn get_unchecked_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location without performing +any bounds check. Read more
source§

fn index_mut(self, soa: &'a mut ParticleVec) -> Self::MutOutput

Returns the mutable reference output in this location. Panics if it is +not in bounds.
source§

impl StructuralPartialEq for ParticleVec

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + 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 T
where + 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.

+
source§

impl<T, U> TryFrom<U> for T
where + 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 T
where + 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/latest/src-files.js b/latest/src-files.js new file mode 100644 index 0000000..2337641 --- /dev/null +++ b/latest/src-files.js @@ -0,0 +1,4 @@ +var srcIndex = new Map(JSON.parse('[\ +["soa_derive_example",["",[],["lib.rs"]]]\ +]')); +createSrcSidebar(); diff --git a/latest/src/soa_derive_example/lib.rs.html b/latest/src/soa_derive_example/lib.rs.html new file mode 100644 index 0000000..53dd22e --- /dev/null +++ b/latest/src/soa_derive_example/lib.rs.html @@ -0,0 +1,115 @@ +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
+
//! This crate is an example for the [`soa_derive`] crate functionalities. All
+//! the code is generated by a single file:
+//!
+//! ```no_run
+//! extern crate soa_derive;
+//! # mod particle {
+//! #[macro_use]
+//! use soa_derive::StructOfArray;
+//!
+//! /// A basic Particle type
+//! #[derive(Debug, PartialEq, StructOfArray)]
+//! #[soa_derive(Debug, PartialEq)]
+//! pub struct Particle {
+//!     /// Mass of the particle
+//!     pub mass: f64,
+//!     /// Position of the particle
+//!     pub position: [f64; 3],
+//!     /// Kind of the particle
+//!     pub kind: usize,
+//!     /// Name of the particle
+//!     pub name: String,
+//! }
+//! # }
+//! ```
+//!
+//! [`soa_derive`]: https://github.com/lumol-org/soa-derive/
+
+// Deny most of allow by default lints, just to be sure we don't create warning in user code.
+// They are to be selectively allowed in the implementation
+#![deny(absolute_paths_not_starting_with_crate, anonymous_parameters, bare_trait_objects)]
+#![deny(box_pointers, missing_copy_implementations, missing_debug_implementations)]
+#![deny(missing_docs, trivial_casts, trivial_numeric_casts, unreachable_pub)]
+#![deny(unstable_features, unused_extern_crates, unused_import_braces, unused_labels)]
+#![deny(unused_lifetimes, unused_qualifications, unused_results, variant_size_differences)]
+
+// Other allow by default lints that need to stay allowed
+#![allow(unsafe_code, single_use_lifetimes, elided_lifetimes_in_paths)]
+
+#![deny(warnings)]
+
+#[macro_use]
+extern crate soa_derive;
+
+/// A basic Particle type
+#[derive(Debug, PartialEq, StructOfArray)]
+#[soa_derive(Debug, PartialEq)]
+pub struct Particle {
+    /// Mass of the particle
+    pub mass: f64,
+    /// Position of the particle
+    pub position: [f64; 3],
+    /// Kind of the particle
+    pub kind: usize,
+    /// Name of the particle
+    pub name: String,
+}
+
\ No newline at end of file diff --git a/latest/static.files/COPYRIGHT-23e9bde6c69aea69.txt b/latest/static.files/COPYRIGHT-23e9bde6c69aea69.txt new file mode 100644 index 0000000..1447df7 --- /dev/null +++ b/latest/static.files/COPYRIGHT-23e9bde6c69aea69.txt @@ -0,0 +1,50 @@ +# 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): + + Copyright (c) 2014, Mozilla Foundation https://mozilla.org/ + with Reserved Font Name Fira Sans. + + Copyright (c) 2014, Telefonica S.A. + + Licensed under the SIL Open Font License, Version 1.1. + See FiraSans-LICENSE.txt. + +* rustdoc.css, main.js, and playpen.js: + + Copyright 2015 The Rust Developers. + Licensed under the Apache License, Version 2.0 (see LICENSE-APACHE.txt) or + the MIT license (LICENSE-MIT.txt) at your option. + +* normalize.css: + + Copyright (c) Nicolas Gallagher and Jonathan Neal. + Licensed under the MIT license (see LICENSE-MIT.txt). + +* Source Code Pro (SourceCodePro-Regular.ttf.woff2, + 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 + of Adobe Systems Incorporated in the United States and/or other countries. + + Licensed under the SIL Open Font License, Version 1.1. + See SourceCodePro-LICENSE.txt. + +* Source Serif 4 (SourceSerif4-Regular.ttf.woff2, SourceSerif4-Bold.ttf.woff2, + 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 + States and/or other countries. + + Licensed under the SIL Open Font License, Version 1.1. + See SourceSerif4-LICENSE.md. + +This copyright file is intended to be distributed with rustdoc output. + +# REUSE-IgnoreEnd diff --git a/latest/static.files/FiraSans-LICENSE-db4b642586e02d97.txt b/latest/static.files/FiraSans-LICENSE-db4b642586e02d97.txt new file mode 100644 index 0000000..d7e9c14 --- /dev/null +++ b/latest/static.files/FiraSans-LICENSE-db4b642586e02d97.txt @@ -0,0 +1,98 @@ +// REUSE-IgnoreStart + +Digitized data copyright (c) 2012-2015, The Mozilla Foundation and Telefonica S.A. +with Reserved Font Name < Fira >, + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +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/latest/static.files/FiraSans-Medium-8f9a781e4970d388.woff2 b/latest/static.files/FiraSans-Medium-8f9a781e4970d388.woff2 new file mode 100644 index 0000000..7a1e5fc Binary files /dev/null and b/latest/static.files/FiraSans-Medium-8f9a781e4970d388.woff2 differ diff --git a/latest/static.files/FiraSans-Regular-018c141bf0843ffd.woff2 b/latest/static.files/FiraSans-Regular-018c141bf0843ffd.woff2 new file mode 100644 index 0000000..e766e06 Binary files /dev/null and b/latest/static.files/FiraSans-Regular-018c141bf0843ffd.woff2 differ diff --git a/latest/static.files/LICENSE-APACHE-b91fa81cba47b86a.txt b/latest/static.files/LICENSE-APACHE-b91fa81cba47b86a.txt new file mode 100644 index 0000000..16fe87b --- /dev/null +++ b/latest/static.files/LICENSE-APACHE-b91fa81cba47b86a.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/latest/static.files/LICENSE-MIT-65090b722b3f6c56.txt b/latest/static.files/LICENSE-MIT-65090b722b3f6c56.txt new file mode 100644 index 0000000..31aa793 --- /dev/null +++ b/latest/static.files/LICENSE-MIT-65090b722b3f6c56.txt @@ -0,0 +1,23 @@ +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/latest/static.files/NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2 b/latest/static.files/NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2 new file mode 100644 index 0000000..1866ad4 Binary files /dev/null and b/latest/static.files/NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2 differ diff --git a/latest/static.files/NanumBarunGothic-LICENSE-18c5adf4b52b4041.txt b/latest/static.files/NanumBarunGothic-LICENSE-18c5adf4b52b4041.txt new file mode 100644 index 0000000..4b3edc2 --- /dev/null +++ b/latest/static.files/NanumBarunGothic-LICENSE-18c5adf4b52b4041.txt @@ -0,0 +1,103 @@ +// REUSE-IgnoreStart + +Copyright (c) 2010, NAVER Corporation (https://www.navercorp.com/), + +with Reserved Font Name Nanum, Naver Nanum, NanumGothic, Naver NanumGothic, +NanumMyeongjo, Naver NanumMyeongjo, NanumBrush, Naver NanumBrush, NanumPen, +Naver NanumPen, Naver NanumGothicEco, NanumGothicEco, Naver NanumMyeongjoEco, +NanumMyeongjoEco, Naver NanumGothicLight, NanumGothicLight, NanumBarunGothic, +Naver NanumBarunGothic, NanumSquareRound, NanumBarunPen, MaruBuri + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +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/latest/static.files/SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2 b/latest/static.files/SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2 new file mode 100644 index 0000000..462c34e Binary files /dev/null and b/latest/static.files/SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2 differ diff --git a/latest/static.files/SourceCodePro-LICENSE-d180d465a756484a.txt b/latest/static.files/SourceCodePro-LICENSE-d180d465a756484a.txt new file mode 100644 index 0000000..0d2941e --- /dev/null +++ b/latest/static.files/SourceCodePro-LICENSE-d180d465a756484a.txt @@ -0,0 +1,97 @@ +// 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. + +This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +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/latest/static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2 b/latest/static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2 new file mode 100644 index 0000000..10b558e Binary files /dev/null and b/latest/static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2 differ diff --git a/latest/static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2 b/latest/static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2 new file mode 100644 index 0000000..5ec64ee Binary files /dev/null and b/latest/static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2 differ diff --git a/latest/static.files/SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2 b/latest/static.files/SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2 new file mode 100644 index 0000000..181a07f Binary files /dev/null and b/latest/static.files/SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2 differ diff --git a/latest/static.files/SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2 b/latest/static.files/SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2 new file mode 100644 index 0000000..2ae08a7 Binary files /dev/null and b/latest/static.files/SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2 differ diff --git a/latest/static.files/SourceSerif4-LICENSE-3bb119e13b1258b7.md b/latest/static.files/SourceSerif4-LICENSE-3bb119e13b1258b7.md new file mode 100644 index 0000000..175fa4f --- /dev/null +++ b/latest/static.files/SourceSerif4-LICENSE-3bb119e13b1258b7.md @@ -0,0 +1,98 @@ + + +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. + +This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +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/latest/static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2 b/latest/static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2 new file mode 100644 index 0000000..0263fc3 Binary files /dev/null and b/latest/static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2 differ diff --git a/latest/static.files/clipboard-7571035ce49a181d.svg b/latest/static.files/clipboard-7571035ce49a181d.svg new file mode 100644 index 0000000..8adbd99 --- /dev/null +++ b/latest/static.files/clipboard-7571035ce49a181d.svg @@ -0,0 +1 @@ + diff --git a/latest/static.files/favicon-16x16-8b506e7a72182f1c.png b/latest/static.files/favicon-16x16-8b506e7a72182f1c.png new file mode 100644 index 0000000..ea4b45c Binary files /dev/null and b/latest/static.files/favicon-16x16-8b506e7a72182f1c.png differ diff --git a/latest/static.files/favicon-2c020d218678b618.svg b/latest/static.files/favicon-2c020d218678b618.svg new file mode 100644 index 0000000..8b34b51 --- /dev/null +++ b/latest/static.files/favicon-2c020d218678b618.svg @@ -0,0 +1,24 @@ + + + + + diff --git a/latest/static.files/favicon-32x32-422f7d1d52889060.png b/latest/static.files/favicon-32x32-422f7d1d52889060.png new file mode 100644 index 0000000..69b8613 Binary files /dev/null and b/latest/static.files/favicon-32x32-422f7d1d52889060.png differ diff --git a/latest/static.files/main-12cf3b4f4f9dc36d.js b/latest/static.files/main-12cf3b4f4f9dc36d.js new file mode 100644 index 0000000..1d8d1cc --- /dev/null +++ b/latest/static.files/main-12cf3b4f4f9dc36d.js @@ -0,0 +1,11 @@ +"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 blurHandler(event,parentElem,hideCallback){if(!parentElem.contains(document.activeElement)&&!parentElem.contains(event.relatedTarget)){hideCallback()}}window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate");function setMobileTopbar(){const mobileTopbar=document.querySelector(".mobile-topbar");const locationTitle=document.querySelector(".sidebar h2.location");if(mobileTopbar){const mobileTitle=document.createElement("h2");mobileTitle.className="location";if(hasClass(document.querySelector(".rustdoc"),"crate")){mobileTitle.innerHTML=`Crate ${window.currentCrate}`}else if(locationTitle){mobileTitle.innerHTML=locationTitle.innerHTML}mobileTopbar.appendChild(mobileTitle)}}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 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,errorCallback){const script=document.createElement("script");script.src=url;if(errorCallback!==undefined){script.onerror=errorCallback}document.head.append(script)}getSettingsButton().onclick=event=>{if(event.ctrlKey||event.altKey||event.metaKey){return}window.hideAllModals(false);addClass(getSettingsButton(),"rotate");event.preventDefault();loadScript(getVar("static-root-path")+getVar("settings-js"));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("=").map(x=>x.replace(/\+/g," "));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 sendSearchForm(){document.getElementsByClassName("search-form")[0].submit()}function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(getVar("static-root-path")+getVar("search-js"),sendSearchForm);loadScript(resourcePath("search-index",".js"),sendSearchForm)}}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)}}if(savedHash.startsWith("impl-")){const splitAt=savedHash.indexOf("/");if(splitAt!==-1){const implId=savedHash.slice(0,splitAt);const assocId=savedHash.slice(splitAt+1);const implElem=document.getElementById(implId);if(implElem&&implElem.parentElement.tagName==="SUMMARY"&&implElem.parentElement.parentElement.tagName==="DETAILS"){onEachLazy(implElem.parentElement.parentElement.querySelectorAll(`[id^="${assocId}"]`),item=>{const numbered=/([^-]+)-([0-9]+)/.exec(item.id);if(item.id===assocId||(numbered&&numbered[1]===assocId)){openParentDetails(item);item.scrollIntoView();setTimeout(()=>{window.location.replace("#"+item.id)},0)}})}}}}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 modpath=hasClass(document.querySelector(".rustdoc"),"mod")?"../":"";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=`${modpath}${name}/index.html`}else{path=`${modpath}${shortty}.${name}.html`}let current_page=document.location.href.toString();if(current_page.endsWith("/")){current_page+="index.html"}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("constant","constants","Constants");block("static","static","Statics");block("trait","traits","Traits");block("fn","functions","Functions");block("type","types","Type Aliases");block("union","unions","Unions");block("foreigntype","foreign-types","Foreign Types");block("keyword","keywords","Keywords");block("opaque","opaque-types","Opaque Types");block("attr","attributes","Attribute Macros");block("derive","derives","Derive Macros");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&&!href.startsWith("#")&&!/^(?:[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)}window.register_type_impls=imp=>{if(!imp||!imp[window.currentCrate]){return}window.pending_type_impls=null;const idMap=new Map();let implementations=document.getElementById("implementations-list");let trait_implementations=document.getElementById("trait-implementations-list");let trait_implementations_header=document.getElementById("trait-implementations");const script=document.querySelector("script[data-self-path]");const selfPath=script?script.getAttribute("data-self-path"):null;const mainContent=document.querySelector("#main-content");const sidebarSection=document.querySelector(".sidebar section");let methods=document.querySelector(".sidebar .block.method");let associatedTypes=document.querySelector(".sidebar .block.associatedtype");let associatedConstants=document.querySelector(".sidebar .block.associatedconstant");let sidebarTraitList=document.querySelector(".sidebar .block.trait-implementation");for(const impList of imp[window.currentCrate]){const types=impList.slice(2);const text=impList[0];const isTrait=impList[1]!==0;const traitName=impList[1];if(types.indexOf(selfPath)===-1){continue}let outputList=isTrait?trait_implementations:implementations;if(outputList===null){const outputListName=isTrait?"Trait Implementations":"Implementations";const outputListId=isTrait?"trait-implementations-list":"implementations-list";const outputListHeaderId=isTrait?"trait-implementations":"implementations";const outputListHeader=document.createElement("h2");outputListHeader.id=outputListHeaderId;outputListHeader.innerText=outputListName;outputList=document.createElement("div");outputList.id=outputListId;if(isTrait){const link=document.createElement("a");link.href=`#${outputListHeaderId}`;link.innerText="Trait Implementations";const h=document.createElement("h3");h.appendChild(link);trait_implementations=outputList;trait_implementations_header=outputListHeader;sidebarSection.appendChild(h);sidebarTraitList=document.createElement("ul");sidebarTraitList.className="block trait-implementation";sidebarSection.appendChild(sidebarTraitList);mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}else{implementations=outputList;if(trait_implementations){mainContent.insertBefore(outputListHeader,trait_implementations_header);mainContent.insertBefore(outputList,trait_implementations_header)}else{const mainContent=document.querySelector("#main-content");mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}}}const template=document.createElement("template");template.innerHTML=text;onEachLazy(template.content.querySelectorAll("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});onEachLazy(template.content.querySelectorAll("[id]"),el=>{let i=0;if(idMap.has(el.id)){i=idMap.get(el.id)}else if(document.getElementById(el.id)){i=1;while(document.getElementById(`${el.id}-${2 * i}`)){i=2*i}while(document.getElementById(`${el.id}-${i}`)){i+=1}}if(i!==0){const oldHref=`#${el.id}`;const newHref=`#${el.id}-${i}`;el.id=`${el.id}-${i}`;onEachLazy(template.content.querySelectorAll("a[href]"),link=>{if(link.getAttribute("href")===oldHref){link.href=newHref}})}idMap.set(el.id,i+1)});const templateAssocItems=template.content.querySelectorAll("section.tymethod, "+"section.method, section.associatedtype, section.associatedconstant");if(isTrait){const li=document.createElement("li");const a=document.createElement("a");a.href=`#${template.content.querySelector(".impl").id}`;a.textContent=traitName;li.appendChild(a);sidebarTraitList.append(li)}else{onEachLazy(templateAssocItems,item=>{let block=hasClass(item,"associatedtype")?associatedTypes:(hasClass(item,"associatedconstant")?associatedConstants:(methods));if(!block){const blockTitle=hasClass(item,"associatedtype")?"Associated Types":(hasClass(item,"associatedconstant")?"Associated Constants":("Methods"));const blockClass=hasClass(item,"associatedtype")?"associatedtype":(hasClass(item,"associatedconstant")?"associatedconstant":("method"));const blockHeader=document.createElement("h3");const blockLink=document.createElement("a");blockLink.href="#implementations";blockLink.innerText=blockTitle;blockHeader.appendChild(blockLink);block=document.createElement("ul");block.className=`block ${blockClass}`;const insertionReference=methods||sidebarTraitList;if(insertionReference){const insertionReferenceH=insertionReference.previousElementSibling;sidebarSection.insertBefore(blockHeader,insertionReferenceH);sidebarSection.insertBefore(block,insertionReferenceH)}else{sidebarSection.appendChild(blockHeader);sidebarSection.appendChild(block)}if(hasClass(item,"associatedtype")){associatedTypes=block}else if(hasClass(item,"associatedconstant")){associatedConstants=block}else{methods=block}}const li=document.createElement("li");const a=document.createElement("a");a.innerText=item.id.split("-")[0].split(".")[1];a.href=`#${item.id}`;li.appendChild(a);block.appendChild(li)})}outputList.appendChild(template.content)}for(const list of[methods,associatedTypes,associatedConstants,sidebarTraitList]){if(!list){continue}const newChildren=Array.prototype.slice.call(list.children);newChildren.sort((a,b)=>{const aI=a.innerText;const bI=b.innerText;return aIbI?1:0});list.replaceChildren(...newChildren)}};if(window.pending_type_impls){window.register_type_impls(window.pending_type_impls)}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";link.textContent=crate;const li=document.createElement("li");if(window.rootPath!=="./"&&crate===window.currentCrate){li.className="current"}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=ev=>{if(ev.pointerType!=="mouse"){return}clearTooltipHoverTimeout(e)};wrapper.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!e.contains(ev.relatedTarget)){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&&!window.CURRENT_TOOLTIP_ELEMENT.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.contains(event.relatedTarget)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(event.relatedTarget)){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=()=>{e.TOOLTIP_FORCE_VISIBLE=e.TOOLTIP_FORCE_VISIBLE?false:true;if(window.CURRENT_TOOLTIP_ELEMENT&&!e.TOOLTIP_FORCE_VISIBLE){hideTooltip(true)}else{showTooltip(e);window.CURRENT_TOOLTIP_ELEMENT.setAttribute("tabindex","0");window.CURRENT_TOOLTIP_ELEMENT.focus();window.CURRENT_TOOLTIP_ELEMENT.onblur=tooltipBlurHandler}return false};e.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointermove=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&window.CURRENT_TOOLTIP_ELEMENT&&!window.CURRENT_TOOLTIP_ELEMENT.contains(ev.relatedTarget)){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=switchFocus=>{hideSidebar();window.hidePopoverMenus();hideTooltip(switchFocus)};window.hidePopoverMenus=()=>{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(){const SIDEBAR_MIN=100;const SIDEBAR_MAX=500;const RUSTDOC_MOBILE_BREAKPOINT=700;const BODY_MIN=400;const SIDEBAR_VANISH_THRESHOLD=SIDEBAR_MIN/2;const sidebarButton=document.getElementById("sidebar-button");if(sidebarButton){sidebarButton.addEventListener("click",e=>{removeClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","false");if(document.querySelector(".rustdoc.src")){window.rustdocToggleSrcSidebar()}e.preventDefault()})}let currentPointerId=null;let desiredSidebarSize=null;let pendingSidebarResizingFrame=false;const resizer=document.querySelector(".sidebar-resizer");const sidebar=document.querySelector(".sidebar");if(!resizer||!sidebar){return}const isSrcPage=hasClass(document.body,"src");function hideSidebar(){if(isSrcPage){window.rustdocCloseSourceSidebar();updateLocalStorage("src-sidebar-width",null);document.documentElement.style.removeProperty("--src-sidebar-width");sidebar.style.removeProperty("--src-sidebar-width");resizer.style.removeProperty("--src-sidebar-width")}else{addClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","true");updateLocalStorage("desktop-sidebar-width",null);document.documentElement.style.removeProperty("--desktop-sidebar-width");sidebar.style.removeProperty("--desktop-sidebar-width");resizer.style.removeProperty("--desktop-sidebar-width")}}function showSidebar(){if(isSrcPage){window.rustdocShowSourceSidebar()}else{removeClass(document.documentElement,"hide-sidebar");updateLocalStorage("hide-sidebar","false")}}function changeSidebarSize(size){if(isSrcPage){updateLocalStorage("src-sidebar-width",size);sidebar.style.setProperty("--src-sidebar-width",size+"px");resizer.style.setProperty("--src-sidebar-width",size+"px")}else{updateLocalStorage("desktop-sidebar-width",size);sidebar.style.setProperty("--desktop-sidebar-width",size+"px");resizer.style.setProperty("--desktop-sidebar-width",size+"px")}}function isSidebarHidden(){return isSrcPage?!hasClass(document.documentElement,"src-sidebar-expanded"):hasClass(document.documentElement,"hide-sidebar")}function resize(e){if(currentPointerId===null||currentPointerId!==e.pointerId){return}e.preventDefault();const pos=e.clientX-3;if(pos=SIDEBAR_MIN){if(isSidebarHidden()){showSidebar()}const constrainedPos=Math.min(pos,window.innerWidth-BODY_MIN,SIDEBAR_MAX);changeSidebarSize(constrainedPos);desiredSidebarSize=constrainedPos;if(pendingSidebarResizingFrame!==false){clearTimeout(pendingSidebarResizingFrame)}pendingSidebarResizingFrame=setTimeout(()=>{if(currentPointerId===null||pendingSidebarResizingFrame===false){return}pendingSidebarResizingFrame=false;document.documentElement.style.setProperty("--resizing-sidebar-width",desiredSidebarSize+"px")},100)}}window.addEventListener("resize",()=>{if(window.innerWidth=(window.innerWidth-BODY_MIN)){changeSidebarSize(window.innerWidth-BODY_MIN)}else if(desiredSidebarSize!==null&&desiredSidebarSize>SIDEBAR_MIN){changeSidebarSize(desiredSidebarSize)}});function stopResize(e){if(currentPointerId===null){return}if(e){e.preventDefault()}desiredSidebarSize=sidebar.getBoundingClientRect().width;removeClass(resizer,"active");window.removeEventListener("pointermove",resize,false);window.removeEventListener("pointerup",stopResize,false);removeClass(document.documentElement,"sidebar-resizing");document.documentElement.style.removeProperty("--resizing-sidebar-width");if(resizer.releasePointerCapture){resizer.releasePointerCapture(currentPointerId);currentPointerId=null}}function initResize(e){if(currentPointerId!==null||e.altKey||e.ctrlKey||e.metaKey||e.button!==0){return}if(resizer.setPointerCapture){resizer.setPointerCapture(e.pointerId);if(!resizer.hasPointerCapture(e.pointerId)){resizer.releasePointerCapture(e.pointerId);return}currentPointerId=e.pointerId}window.hideAllModals(false);e.preventDefault();window.addEventListener("pointermove",resize,false);window.addEventListener("pointercancel",stopResize,false);window.addEventListener("pointerup",stopResize,false);addClass(resizer,"active");addClass(document.documentElement,"sidebar-resizing");const pos=e.clientX-sidebar.offsetLeft-3;document.documentElement.style.setProperty("--resizing-sidebar-width",pos+"px");desiredSidebarSize=null}resizer.addEventListener("pointerdown",initResize,false)}());(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/latest/static.files/normalize-76eba96aa4d2e634.css b/latest/static.files/normalize-76eba96aa4d2e634.css new file mode 100644 index 0000000..469959f --- /dev/null +++ b/latest/static.files/normalize-76eba96aa4d2e634.css @@ -0,0 +1,2 @@ + /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ +html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type="button"],[type="reset"],[type="submit"],button{-webkit-appearance:button}[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none} \ No newline at end of file diff --git a/latest/static.files/noscript-04d5337699b92874.css b/latest/static.files/noscript-04d5337699b92874.css new file mode 100644 index 0000000..fbd55f5 --- /dev/null +++ b/latest/static.files/noscript-04d5337699b92874.css @@ -0,0 +1 @@ + #main-content .attributes{margin-left:0 !important;}#copy-path,#sidebar-button,.sidebar-resizer{display:none !important;}nav.sub{display:none;}.src .sidebar{display:none;}.notable-traits{display:none;}: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;--mobile-sidebar-menu-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);--warning-border-color:#ff8e00;--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:#fff;--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:rgb(78,139,202);--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;--src-sidebar-background-selected:#fff;--src-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);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}@media (prefers-color-scheme:dark){: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%);--mobile-sidebar-menu-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);--warning-border-color:#ff8e00;--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;--src-sidebar-background-selected:#333;--src-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:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--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);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}} \ No newline at end of file diff --git a/latest/static.files/rust-logo-151179464ae7ed46.svg b/latest/static.files/rust-logo-151179464ae7ed46.svg new file mode 100644 index 0000000..62424d8 --- /dev/null +++ b/latest/static.files/rust-logo-151179464ae7ed46.svg @@ -0,0 +1,61 @@ + + + diff --git a/latest/static.files/rustdoc-e935ef01ae1c1829.css b/latest/static.files/rustdoc-e935ef01ae1c1829.css new file mode 100644 index 0000000..37ac48c --- /dev/null +++ b/latest/static.files/rustdoc-e935ef01ae1c1829.css @@ -0,0 +1,24 @@ + :root{--nav-sub-mobile-padding:8px;--search-typename-width:6.75rem;--desktop-sidebar-width:200px;--src-sidebar-width:300px;--desktop-sidebar-z-index:100;}@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.src,#help-button>a,summary.hideme,.scraped-example-list,ul.all-items{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}#toggle-all-docs,a.anchor,.section-header a,#src-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,.docblock>.warning{margin:0 0 .75em 0;}p:last-child,.docblock>.warning: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;}.src 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;}.src .content pre{padding:20px;}.rustdoc.src .example-wrap pre.src-line-numbers{padding:20px 0 20px 4px;}img{max-width:100%;}.logo-container{line-height:0;display:block;}.rust-logo{filter:var(--rust-logo-filter);}.sidebar{font-size:0.875rem;flex:0 0 var(--desktop-sidebar-width);width:var(--desktop-sidebar-width);overflow-y:scroll;overscroll-behavior:contain;position:sticky;height:100vh;top:0;left:0;z-index:var(--desktop-sidebar-z-index);}.rustdoc.src .sidebar{flex-basis:50px;width:50px;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.hide-sidebar .sidebar,.hide-sidebar .sidebar-resizer{display:none;}.sidebar-resizer{touch-action:none;width:9px;cursor:col-resize;z-index:calc(var(--desktop-sidebar-z-index) + 1);position:fixed;height:100%;left:calc(var(--desktop-sidebar-width) + 1px);}.rustdoc.src .sidebar-resizer{left:49px;}.src-sidebar-expanded .src .sidebar-resizer{left:var(--src-sidebar-width);}.sidebar-resizing{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.sidebar-resizing*{cursor:col-resize !important;}.sidebar-resizing .sidebar{position:fixed;}.sidebar-resizing>body{padding-left:var(--resizing-sidebar-width);}.sidebar-resizer:hover,.sidebar-resizer:active,.sidebar-resizer:focus,.sidebar-resizer.active{width:10px;margin:0;left:var(--desktop-sidebar-width);border-left:solid 1px var(--sidebar-resizer-hover);}.src-sidebar-expanded .rustdoc.src .sidebar-resizer:hover,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:active,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:focus,.src-sidebar-expanded .rustdoc.src .sidebar-resizer.active{left:calc(var(--src-sidebar-width) - 1px);}@media (pointer:coarse){.sidebar-resizer{display:none !important;}}.sidebar-resizer.active{padding:0 140px;width:2px;margin-left:-140px;border-left:none;}.sidebar-resizer.active:before{border-left:solid 2px var(--sidebar-resizer-active);display:block;height:100%;content:"";}.sidebar,.mobile-topbar,.sidebar-menu-toggle,#src-sidebar{background-color:var(--sidebar-background-color);}.src .sidebar>*{visibility:hidden;}.src-sidebar-expanded .src .sidebar{overflow-y:auto;flex-basis:var(--src-sidebar-width);width:var(--src-sidebar-width);}.src-sidebar-expanded .src .sidebar>*{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;}.logo-container>img{height:48px;width:48px;}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;margin-right: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>.version,.sidebar>h2{padding-left:24px;}.sidebar a{color:var(--sidebar-link-color);}.sidebar .current,.sidebar .current a,.sidebar-crate a.logo-container:hover+h2 a,.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;}.sidebar-crate{display:flex;align-items:center;justify-content:center;margin:14px 32px 1rem;row-gap:10px;column-gap:32px;flex-wrap:wrap;}.sidebar-crate h2{flex-grow:1;margin:0 -8px;align-self:start;}.sidebar-crate .logo-container{margin:0 -16px 0 -16px;text-align:center;}.sidebar-crate h2 a{display:block;margin:0 calc(-24px + 0.25rem) 0 -0.2rem;padding:calc((16px - 0.57rem ) / 2 ) 0.25rem;padding-left:0.2rem;}.sidebar-crate h2 .version{display:block;font-weight:normal;font-size:1rem;overflow-wrap:break-word;}.sidebar-crate+.version{margin-top:-1rem;margin-bottom:1rem;}.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(.src) .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.src .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);}div.where{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;}.src nav.sub{margin:0 0 15px 0;}.section-header{display:block;position:relative;}.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;}.section-header>.anchor{left:-15px;padding-right:8px;}h2.section-header>.anchor{padding-right:6px;}a.doc-anchor{color:var(--main-color);display:none;position:absolute;left:-17px;padding-right:5px;padding-left:3px;}*:hover>.doc-anchor{display:block;}.top-doc>.docblock>*:first-child>.doc-anchor{display:none !important;}.main-heading a:hover,.example-wrap .rust a:hover,.all-items a:hover,.docblock a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover:not(.doc-anchor),.docblock-short a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover,.item-info a{text-decoration:underline;}.crate.block li.current a{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);}#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 .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;}.search-results .result-name .path>*{display:inline;}.popover{position:absolute;top:100%;right:0;z-index:calc(var(--desktop-sidebar-z-index) + 1);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;}.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;}#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{display:block;padding:3px;margin-bottom:5px;}.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;vertical-align:baseline;}.stab.portability>code{background:none;color:var(--stab-code-color);}.stab .emoji,.item-info .stab::before{font-size:1.25rem;}.stab .emoji{margin-right:0.3rem;}.item-info .stab::before{content:"\0";width:0;display:inline-block;color:transparent;}.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.src .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;}.content .docblock .warning{border-left:2px solid var(--warning-border-color);padding:14px;position:relative;overflow-x:visible !important;}.content .docblock .warning::before{color:var(--warning-border-color);content:"ⓘ";position:absolute;left:-25px;top:5px;font-weight:bold;font-size:1.25rem;}.top-doc>.docblock>.warning:first-child::before{top:20px;}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;font-variant-numeric:tabular-nums;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{width:100%;overflow:auto;}#src-sidebar div.files>a:hover,details.dir-entry summary:hover,#src-sidebar div.files>a:focus,details.dir-entry summary:focus{background-color:var(--src-sidebar-background-hover);}#src-sidebar div.files>a.selected{background-color:var(--src-sidebar-background-selected);}.src-sidebar-title{position:sticky;top:0;display:flex;padding:8px 8px 0 48px;margin-bottom:7px;background:var(--sidebar-background-color);border-bottom:1px solid var(--border-color);}#settings-menu,#help-button{margin-left:4px;display:flex;}#sidebar-button{display:none;line-height:0;}.hide-sidebar #sidebar-button,.src #sidebar-button{display:flex;margin-right:4px;position:fixed;left:6px;height:34px;width:34px;background-color:var(--main-background-color);z-index:1;}.src #sidebar-button{left:8px;z-index:calc(var(--desktop-sidebar-z-index) + 1);}.hide-sidebar .src #sidebar-button{position:static;}#settings-menu>a,#help-button>a,#sidebar-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,#sidebar-button>a:hover,#sidebar-button>a:focus{border-color:var(--settings-button-border-focus);}#sidebar-button>a:before{content:url('data:image/svg+xml,\ + \ + \ + ');width:22px;height:22px;}#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;}.src #sidebar-button>a:before,.sidebar-menu-toggle:before{content:url('data:image/svg+xml,\ + ');opacity:0.75;}.sidebar-menu-toggle:hover:before,.sidebar-menu-toggle:active:before,.sidebar-menu-toggle:focus:before{opacity:1;}.src #sidebar-button>a:before{content:url('data:image/svg+xml,\ + \ + \ + ');opacity:0.75;}@media (max-width:850px){#search-tabs .count{display:block;}}@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,.sidebar-resizer{display:none;}.sidebar{position:fixed;top:45px;left:-1000px;z-index:11;height:calc(100vh - 45px);width:200px;}.src main,.rustdoc.src .sidebar{top:0;padding:0;height:100vh;border:0;}.src .search-form{margin-left:40px;}.hide-sidebar .search-form{margin-left:32px;}.hide-sidebar .src .search-form{margin-left:0;}.sidebar.shown,.src-sidebar-expanded .src .sidebar,.rustdoc:not(.src) .sidebar:focus-within{left:0;}.mobile-topbar h2{padding-bottom:0;margin:auto 0.5em auto auto;overflow:hidden;font-size:24px;white-space:nowrap;text-overflow:ellipsis;}.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;}.hide-sidebar .mobile-topbar{display:none;}.sidebar-menu-toggle{width:45px;border:none;line-height:0;}.hide-sidebar .sidebar-menu-toggle{display:none;}.sidebar-elems{margin-top:1em;}.anchor{display:none !important;}#main-content>details.toggle>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}#copy-path,#help-button{display:none;}#sidebar-button>a:before{content:url('data:image/svg+xml,\ + \ + \ + ');width:22px;height:22px;}.sidebar-menu-toggle:before{filter:var(--mobile-sidebar-menu-filter);}.sidebar-menu-toggle:hover{background:var(--main-background-color);}.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;}.src-sidebar-expanded .src .sidebar{position:fixed;max-width:100vw;width:100vw;}.src .src-sidebar-title{padding-top:0;}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;}.src 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.src,#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;}}.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;}:root[data-theme="light"]{--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;--mobile-sidebar-menu-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);--warning-border-color:#ff8e00;--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:#fff;--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:rgb(78,139,202);--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;--src-sidebar-background-selected:#fff;--src-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);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="dark"]{--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%);--mobile-sidebar-menu-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);--warning-border-color:#ff8e00;--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;--src-sidebar-background-selected:#333;--src-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:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--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);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="ayu"]{--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%);--mobile-sidebar-menu-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);--warning-border-color:#ff8e00;--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;--src-sidebar-background-selected:#14191f;--src-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:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--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);--sidebar-resizer-hover:hsl(34,50%,33%);--sidebar-resizer-active:hsl(34,100%,66%);}:root[data-theme="ayu"] h1,:root[data-theme="ayu"] h2,:root[data-theme="ayu"] h3,:root[data-theme="ayu"] h4,:where(:root[data-theme="ayu"]) h1 a,:root[data-theme="ayu"] .sidebar h2 a,:root[data-theme="ayu"] .sidebar h3 a{color:#fff;}:root[data-theme="ayu"] .docblock code{color:#ffb454;}:root[data-theme="ayu"] .docblock a>code{color:#39AFD7 !important;}:root[data-theme="ayu"] .code-header,:root[data-theme="ayu"] .docblock pre>code,:root[data-theme="ayu"] pre,:root[data-theme="ayu"] pre>code,:root[data-theme="ayu"] .item-info code,:root[data-theme="ayu"] .rustdoc.source .example-wrap{color:#e6e1cf;}:root[data-theme="ayu"] .sidebar .current,:root[data-theme="ayu"] .sidebar .current a,:root[data-theme="ayu"] .sidebar a:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:hover,:root[data-theme="ayu"] details.dir-entry summary:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:focus,:root[data-theme="ayu"] details.dir-entry summary:focus,:root[data-theme="ayu"] #src-sidebar div.files>a.selected{color:#ffb44c;}:root[data-theme="ayu"] .sidebar-elems .location{color:#ff7733;}:root[data-theme="ayu"] .src-line-numbers .line-highlighted{color:#708090;padding-right:7px;border-right:1px solid #ffb44c;}:root[data-theme="ayu"] .search-results a:hover,:root[data-theme="ayu"] .search-results a:focus{color:#fff !important;background-color:#3c3c3c;}:root[data-theme="ayu"] .search-results a{color:#0096cf;}:root[data-theme="ayu"] .search-results a div.desc{color:#c5c5c5;}:root[data-theme="ayu"] .result-name .primitive>i,:root[data-theme="ayu"] .result-name .keyword>i{color:#788797;}:root[data-theme="ayu"] #search-tabs>button.selected{border-bottom:1px solid #ffb44c !important;border-top:none;}:root[data-theme="ayu"] #search-tabs>button:not(.selected){border:none;background-color:transparent !important;}:root[data-theme="ayu"] #search-tabs>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}:root[data-theme="ayu"] #settings-menu>a img,:root[data-theme="ayu"] #sidebar-button>a:before{filter:invert(100);} \ No newline at end of file diff --git a/latest/static.files/scrape-examples-ef1e698c1d417c0c.js b/latest/static.files/scrape-examples-ef1e698c1d417c0c.js new file mode 100644 index 0000000..ba830e3 --- /dev/null +++ b/latest/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/latest/static.files/search-42d8da7a6b9792c2.js b/latest/static.files/search-42d8da7a6b9792c2.js new file mode 100644 index 0000000..1d178d5 --- /dev/null +++ b/latest/static.files/search-42d8da7a6b9792c2.js @@ -0,0 +1,5 @@ +"use strict";if(!Array.prototype.toSpliced){Array.prototype.toSpliced=function(){const me=this.slice();Array.prototype.splice.apply(me,arguments);return me}}(function(){const itemTypes=["keyword","primitive","mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","associatedtype","constant","associatedconstant","union","foreigntype","existential","attr","derive","traitalias","generic",];const longItemTypes=["keyword","primitive type","module","extern crate","re-export","struct","enum","function","type alias","static","trait","","trait method","method","struct field","enum variant","macro","assoc type","constant","assoc const","union","foreign type","existential type","attribute macro","derive macro","trait alias",];const TY_GENERIC=itemTypes.indexOf("generic");const ROOT_PATH=typeof window!=="undefined"?window.rootPath:"../";const UNBOXING_LIMIT=5;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 functionTypeFingerprint;let currentResults;const typeNameIdMap=new Map();const ALIASES=new Map();const typeNameIdOfArray=buildTypeMapIndex("array");const typeNameIdOfSlice=buildTypeMapIndex("slice");const typeNameIdOfArrayOrSlice=buildTypeMapIndex("[]");const typeNameIdOfTuple=buildTypeMapIndex("tuple");const typeNameIdOfUnit=buildTypeMapIndex("unit");const typeNameIdOfTupleOrUnit=buildTypeMapIndex("()");const typeNameIdOfFn=buildTypeMapIndex("fn");const typeNameIdOfFnMut=buildTypeMapIndex("fnmut");const typeNameIdOfFnOnce=buildTypeMapIndex("fnonce");const typeNameIdOfHof=buildTypeMapIndex("->");function buildTypeMapIndex(name,isAssocType){if(name===""||name===null){return null}if(typeNameIdMap.has(name)){const obj=typeNameIdMap.get(name);obj.assocOnly=isAssocType&&obj.assocOnly;return obj.id}else{const id=typeNameIdMap.size;typeNameIdMap.set(name,{id,assocOnly:isAssocType});return id}}function isSpecialStartCharacter(c){return"<\"".indexOf(c)!==-1}function isEndCharacter(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===","||c==="="}function isPathSeparator(c){return c===":"||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(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",]}const bindingName=parserState.isInBinding;parserState.isInBinding=null;return makePrimitiveElement("never",{bindingName})}const quadcolon=/::\s*::/.exec(path);if(path.startsWith("::")){throw["Paths cannot start with ","::"]}else if(path.endsWith("::")){throw["Paths cannot end with ","::"]}else if(quadcolon!==null){throw["Unexpected ",quadcolon[0]]}const pathSegments=path.split(/(?:::\s*)|(?:\s+(?:::\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}const bindingName=parserState.isInBinding;parserState.isInBinding=null;const bindings=new Map();const pathLast=pathSegments[pathSegments.length-1];return{name:name.trim(),id:null,fullPath:pathSegments,pathWithoutLast:pathSegments.slice(0,pathSegments.length-1),pathLast,normalizedPathLast:pathLast.replace(/_/g,""),generics:generics.filter(gen=>{if(gen.bindingName!==null){if(gen.name!==null){gen.bindingName.generics.unshift(gen)}bindings.set(gen.bindingName.name,gen.bindingName.generics);return false}return true}),bindings,typeFilter,bindingName,}}function getIdentEndPosition(parserState){const start=parserState.pos;let end=parserState.pos;let foundExclamation=-1;while(parserState.pos0){throw["Unexpected ",c," after ",parserState.userQuery[parserState.pos-1]]}else{throw["Unexpected ",c]}}parserState.pos+=1;end=parserState.pos}if(foundExclamation!==-1&&foundExclamation!==start&&isIdentCharacter(parserState.userQuery[foundExclamation-1])){if(parserState.typeFilter===null){parserState.typeFilter="macro"}else if(parserState.typeFilter!=="macro"){throw["Invalid search type: macro ","!"," and ",parserState.typeFilter," both specified",]}end=foundExclamation}return end}function getFilteredNextElem(query,parserState,elems,isInGenerics){const start=parserState.pos;if(parserState.userQuery[parserState.pos]===":"&&!isPathStart(parserState)){throw["Expected type filter before ",":"]}getNextElem(query,parserState,elems,isInGenerics);if(parserState.userQuery[parserState.pos]===":"&&!isPathStart(parserState)){if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}if(elems.length===0){throw["Expected type filter before ",":"]}else if(query.literalSearch){throw["Cannot use quotes on type filter"]}const typeFilterElem=elems.pop();checkExtraTypeFilterCharacters(start,parserState);parserState.typeFilter=typeFilterElem.name;parserState.pos+=1;parserState.totalElems-=1;query.literalSearch=false;getNextElem(query,parserState,elems,isInGenerics)}}function getNextElem(query,parserState,elems,isInGenerics){const generics=[];skipWhitespace(parserState);let start=parserState.pos;let end;if("[(".indexOf(parserState.userQuery[parserState.pos])!==-1){let endChar=")";let name="()";let friendlyName="tuple";if(parserState.userQuery[parserState.pos]==="["){endChar="]";name="[]";friendlyName="slice"}parserState.pos+=1;const{foundSeparator}=getItemsBefore(query,parserState,generics,endChar);const typeFilter=parserState.typeFilter;const bindingName=parserState.isInBinding;parserState.typeFilter=null;parserState.isInBinding=null;for(const gen of generics){if(gen.bindingName!==null){throw["Type parameter ","=",` cannot be within ${friendlyName} `,name]}}if(name==="()"&&!foundSeparator&&generics.length===1&&typeFilter===null){elems.push(generics[0])}else if(name==="()"&&generics.length===1&&generics[0].name==="->"){generics[0].typeFilter=typeFilter;elems.push(generics[0])}else{if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive ",name," and ",typeFilter," both specified",]}parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}elems.push(makePrimitiveElement(name,{bindingName,generics}))}}else{const isStringElem=parserState.userQuery[start]==="\"";if(isStringElem){start+=1;getStringElem(query,parserState,isInGenerics);end=parserState.pos-1}else{end=getIdentEndPosition(parserState)}if(parserState.pos=end){throw["Found generics without a path"]}parserState.pos+=1;getItemsBefore(query,parserState,generics,">")}else if(parserState.pos=end){throw["Found generics without a path"]}if(parserState.isInBinding){throw["Unexpected ","("," after ","="]}parserState.pos+=1;const typeFilter=parserState.typeFilter;parserState.typeFilter=null;getItemsBefore(query,parserState,generics,")");skipWhitespace(parserState);if(isReturnArrow(parserState)){parserState.pos+=2;skipWhitespace(parserState);getFilteredNextElem(query,parserState,generics,isInGenerics);generics[generics.length-1].bindingName=makePrimitiveElement("output")}else{generics.push(makePrimitiveElement(null,{bindingName:makePrimitiveElement("output"),typeFilter:null,}))}parserState.typeFilter=typeFilter}if(isStringElem){skipWhitespace(parserState)}if(start>=end&&generics.length===0){return}if(parserState.userQuery[parserState.pos]==="="){if(parserState.isInBinding){throw["Cannot write ","="," twice in a binding"]}if(!isInGenerics){throw["Type parameter ","="," must be within generics list"]}const name=parserState.userQuery.slice(start,end).trim();if(name==="!"){throw["Type parameter ","="," key cannot be ","!"," never type"]}if(name.includes("!")){throw["Type parameter ","="," key cannot be ","!"," macro"]}if(name.includes("::")){throw["Type parameter ","="," key cannot contain ","::"," path"]}if(name.includes(":")){throw["Type parameter ","="," key cannot contain ",":"," type"]}parserState.isInBinding={name,generics}}else{elems.push(createQueryElement(query,parserState,parserState.userQuery.slice(start,end),generics,isInGenerics))}}}function getItemsBefore(query,parserState,elems,endChar){let foundStopChar=true;let foundSeparator=false;const oldTypeFilter=parserState.typeFilter;parserState.typeFilter=null;const oldIsInBinding=parserState.isInBinding;parserState.isInBinding=null;let hofParameters=null;let extra="";if(endChar===">"){extra="<"}else if(endChar==="]"){extra="["}else if(endChar===")"){extra="("}else if(endChar===""){extra="->"}else{extra=endChar}while(parserState.pos"," after ","="]}hofParameters=[...elems];elems.length=0;parserState.pos+=2;foundStopChar=true;foundSeparator=false;continue}else if(c===" "){parserState.pos+=1;continue}else if(isSeparatorCharacter(c)){parserState.pos+=1;foundStopChar=true;foundSeparator=true;continue}else if(c===":"&&isPathStart(parserState)){throw["Unexpected ","::",": paths cannot start with ","::"]}else if(isEndCharacter(c)){throw["Unexpected ",c," after ",extra]}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(endChar!==""){throw["Expected ",",",", ","=",", or ",endChar,...extra,", found ",c,]}throw["Expected ",","," or ","=",...extra,", found ",c,]}const posBefore=parserState.pos;getFilteredNextElem(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;if(hofParameters){foundSeparator=false;if([...elems,...hofParameters].some(x=>x.bindingName)||parserState.isInBinding){throw["Unexpected ","="," within ","->"]}const hofElem=makePrimitiveElement("->",{generics:hofParameters,bindings:new Map([["output",[...elems]]]),typeFilter:null,});elems.length=0;elems[0]=hofElem}parserState.typeFilter=oldTypeFilter;parserState.isInBinding=oldIsInBinding;return{foundSeparator}}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;while(parserState.pos"){if(isReturnArrow(parserState)){break}throw["Unexpected ",c," (did you mean ","->","?)"]}else if(parserState.pos>0){throw["Unexpected ",c," after ",parserState.userQuery[parserState.pos-1]]}throw["Unexpected ",c]}else if(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;getFilteredNextElem(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,totalElems:0,literalSearch:false,error:null,correction:null,proposeCorrectionFrom:null,proposeCorrectionTo:null,typeFingerprint:new Uint32Array(4),}}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"&&rawSearchIndex.has(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)}for(const constraints of elem.bindings.values()){for(const constraint of constraints){convertTypeFilterOnElem(constraint)}}}userQuery=userQuery.trim().replace(/\r|\n|\t/g," ");const parserState={length:userQuery.length,pos:0,totalElems:0,genericsElems:0,typeFilter:null,isInBinding: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;query.totalElems=parserState.totalElems;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,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){const userQuery=parsedQuery.userQuery;const result_list=[];for(const result of results.values()){result.item=searchIndex[result.id];result.word=searchIndex[result.id].word;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)}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});return transformResults(result_list)}function unifyFunctionTypes(fnTypesIn,queryElems,whereClause,mgensIn,solutionCb,unboxingDepth){if(unboxingDepth>=UNBOXING_LIMIT){return false}const mgens=mgensIn===null?null:new Map(mgensIn);if(queryElems.length===0){return!solutionCb||solutionCb(mgens)}if(!fnTypesIn||fnTypesIn.length===0){return false}const ql=queryElems.length;const fl=fnTypesIn.length;if(ql===1&&queryElems[0].generics.length===0&&queryElems[0].bindings.size===0){const queryElem=queryElems[0];for(const fnType of fnTypesIn){if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,mgens)){continue}if(fnType.id<0&&queryElem.id<0){if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==queryElem.id){continue}const mgensScratch=new Map(mgens);mgensScratch.set(fnType.id,queryElem.id);if(!solutionCb||solutionCb(mgensScratch)){return true}}else if(!solutionCb||solutionCb(mgens?new Map(mgens):null)){return true}}for(const fnType of fnTypesIn){if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens,unboxingDepth+1)){continue}if(fnType.id<0){if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){continue}const mgensScratch=new Map(mgens);mgensScratch.set(fnType.id,0);if(unifyFunctionTypes(whereClause[(-fnType.id)-1],queryElems,whereClause,mgensScratch,solutionCb,unboxingDepth+1)){return true}}else if(unifyFunctionTypes([...fnType.generics,...Array.from(fnType.bindings.values()).flat()],queryElems,whereClause,mgens?new Map(mgens):null,solutionCb,unboxingDepth+1)){return true}}return false}const fnTypes=fnTypesIn.slice();const flast=fl-1;const qlast=ql-1;const queryElem=queryElems[qlast];let queryElemsTmp=null;for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,mgens)){continue}let mgensScratch;if(fnType.id<0){mgensScratch=new Map(mgens);if(mgensScratch.has(fnType.id)&&mgensScratch.get(fnType.id)!==queryElem.id){continue}mgensScratch.set(fnType.id,queryElem.id)}else{mgensScratch=mgens}fnTypes[i]=fnTypes[flast];fnTypes.length=flast;if(!queryElemsTmp){queryElemsTmp=queryElems.slice(0,qlast)}const passesUnification=unifyFunctionTypes(fnTypes,queryElemsTmp,whereClause,mgensScratch,mgensScratch=>{if(fnType.generics.length===0&&queryElem.generics.length===0&&fnType.bindings.size===0&&queryElem.bindings.size===0){return!solutionCb||solutionCb(mgensScratch)}const solution=unifyFunctionTypeCheckBindings(fnType,queryElem,whereClause,mgensScratch,unboxingDepth);if(!solution){return false}const simplifiedGenerics=solution.simplifiedGenerics;for(const simplifiedMgens of solution.mgens){const passesUnification=unifyFunctionTypes(simplifiedGenerics,queryElem.generics,whereClause,simplifiedMgens,solutionCb,unboxingDepth);if(passesUnification){return true}}return false},unboxingDepth);if(passesUnification){return true}fnTypes[flast]=fnTypes[i];fnTypes[i]=fnType;fnTypes.length=fl}for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens,unboxingDepth+1)){continue}let mgensScratch;if(fnType.id<0){mgensScratch=new Map(mgens);if(mgensScratch.has(fnType.id)&&mgensScratch.get(fnType.id)!==0){continue}mgensScratch.set(fnType.id,0)}else{mgensScratch=mgens}const generics=fnType.id<0?whereClause[(-fnType.id)-1]:fnType.generics;const bindings=fnType.bindings?Array.from(fnType.bindings.values()).flat():[];const passesUnification=unifyFunctionTypes(fnTypes.toSpliced(i,1,...generics,...bindings),queryElems,whereClause,mgensScratch,solutionCb,unboxingDepth+1);if(passesUnification){return true}}return false}function unifyFunctionTypeIsMatchCandidate(fnType,queryElem,mgensIn){if(!typePassesFilter(queryElem.typeFilter,fnType.ty)){return false}if(fnType.id<0&&queryElem.id<0){if(mgensIn){if(mgensIn.has(fnType.id)&&mgensIn.get(fnType.id)!==queryElem.id){return false}for(const[fid,qid]of mgensIn.entries()){if(fnType.id!==fid&&queryElem.id===qid){return false}if(fnType.id===fid&&queryElem.id!==qid){return false}}}return true}else{if(queryElem.id===typeNameIdOfArrayOrSlice&&(fnType.id===typeNameIdOfSlice||fnType.id===typeNameIdOfArray)){}else if(queryElem.id===typeNameIdOfTupleOrUnit&&(fnType.id===typeNameIdOfTuple||fnType.id===typeNameIdOfUnit)){}else if(queryElem.id===typeNameIdOfHof&&(fnType.id===typeNameIdOfFn||fnType.id===typeNameIdOfFnMut||fnType.id===typeNameIdOfFnOnce)){}else if(fnType.id!==queryElem.id||queryElem.id===null){return false}if((fnType.generics.length+fnType.bindings.size)===0&&queryElem.generics.length!==0){return false}if(fnType.bindings.size0){const fnTypePath=fnType.path!==undefined&&fnType.path!==null?fnType.path.split("::"):[];if(queryElemPathLength>fnTypePath.length){return false}let i=0;for(const path of fnTypePath){if(path===queryElem.pathWithoutLast[i]){i+=1;if(i>=queryElemPathLength){break}}}if(i0){let mgensSolutionSet=[mgensIn];for(const[name,constraints]of queryElem.bindings.entries()){if(mgensSolutionSet.length===0){return false}if(!fnType.bindings.has(name)){return false}const fnTypeBindings=fnType.bindings.get(name);mgensSolutionSet=mgensSolutionSet.flatMap(mgens=>{const newSolutions=[];unifyFunctionTypes(fnTypeBindings,constraints,whereClause,mgens,newMgens=>{newSolutions.push(newMgens);return false},unboxingDepth);return newSolutions})}if(mgensSolutionSet.length===0){return false}const binds=Array.from(fnType.bindings.entries()).flatMap(entry=>{const[name,constraints]=entry;if(queryElem.bindings.has(name)){return[]}else{return constraints}});if(simplifiedGenerics.length>0){simplifiedGenerics=[...simplifiedGenerics,...binds]}else{simplifiedGenerics=binds}return{simplifiedGenerics,mgens:mgensSolutionSet}}return{simplifiedGenerics,mgens:[mgensIn]}}function unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens,unboxingDepth){if(unboxingDepth>=UNBOXING_LIMIT){return false}if(fnType.id<0&&queryElem.id>=0){if(!whereClause){return false}if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){return false}const mgensTmp=new Map(mgens);mgensTmp.set(fnType.id,null);return checkIfInList(whereClause[(-fnType.id)-1],queryElem,whereClause,mgensTmp,unboxingDepth)}else if(fnType.generics.length>0||fnType.bindings.size>0){const simplifiedGenerics=[...fnType.generics,...Array.from(fnType.bindings.values()).flat(),];return checkIfInList(simplifiedGenerics,queryElem,whereClause,mgens,unboxingDepth)}return false}function checkIfInList(list,elem,whereClause,mgens,unboxingDepth){for(const entry of list){if(checkType(entry,elem,whereClause,mgens,unboxingDepth)){return true}}return false}function checkType(row,elem,whereClause,mgens,unboxingDepth){if(unboxingDepth>=UNBOXING_LIMIT){return false}if(row.bindings.size===0&&elem.bindings.size===0){if(elem.id<0&&mgens===null){return row.id<0||checkIfInList(row.generics,elem,whereClause,mgens,unboxingDepth+1)}if(row.id>0&&elem.id>0&&elem.pathWithoutLast.length===0&&typePassesFilter(elem.typeFilter,row.ty)&&elem.generics.length===0&&elem.id!==typeNameIdOfArrayOrSlice&&elem.id!==typeNameIdOfTupleOrUnit&&elem.id!==typeNameIdOfHof){return row.id===elem.id||checkIfInList(row.generics,elem,whereClause,mgens,unboxingDepth)}}return unifyFunctionTypes([row],[elem],whereClause,mgens,null,unboxingDepth)}function checkPath(contains,ty){if(contains.length===0){return 0}const maxPathEditDistance=Math.floor(contains.reduce((acc,next)=>acc+next.length,0)/3);let ret_dist=maxPathEditDistance+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;pathiter:for(let i=length-clength;i>=0;i-=1){let dist_total=0;for(let x=0;xmaxPathEditDistance){continue pathiter}dist_total+=dist}}ret_dist=Math.min(ret_dist,Math.round(dist_total/clength))}return ret_dist>maxPathEditDistance?null: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,implDisambiguator:item.implDisambiguator,}}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){if(dist<=maxEditDistance||index!==-1){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 path_dist=0;const fullId=row.id;const tfpDist=compareTypeFingerprints(fullId,parsedQuery.typeFingerprint);if(tfpDist!==null){const in_args=row.type&&row.type.inputs&&checkIfInList(row.type.inputs,elem,row.type.where_clause,null,0);const returned=row.type&&row.type.output&&checkIfInList(row.type.output,elem,row.type.where_clause,null,0);if(in_args){results_in_args.max_dist=Math.max(results_in_args.max_dist||0,tfpDist);const maxDist=results_in_args.sizenormalizedIndex&&normalizedIndex!==-1)){index=normalizedIndex}if(elem.fullPath.length>1){path_dist=checkPath(elem.pathWithoutLast,row);if(path_dist===null){return}}if(parsedQuery.literalSearch){if(row.word===elem.pathLast){addIntoResults(results_others,fullId,pos,index,0,path_dist)}return}const dist=editDistance(row.normalizedName,elem.normalizedPathLast,maxEditDistance);if(index===-1&&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}const tfpDist=compareTypeFingerprints(row.id,parsedQuery.typeFingerprint);if(tfpDist===null){return}if(results.size>=MAX_RESULTS&&tfpDist>results.max_dist){return}if(!unifyFunctionTypes(row.type.inputs,parsedQuery.elems,row.type.where_clause,null,mgens=>{return unifyFunctionTypes(row.type.output,parsedQuery.returned,row.type.where_clause,mgens,null,0)},0)){return}results.max_dist=Math.max(results.max_dist||0,tfpDist);addIntoResults(results,row.id,pos,0,tfpDist,0,Number.MAX_VALUE)}function innerRunQuery(){const queryLen=parsedQuery.elems.reduce((acc,next)=>acc+next.pathLast.length,0)+parsedQuery.returned.reduce((acc,next)=>acc+next.pathLast.length,0);const maxEditDistance=Math.floor(queryLen/3);const genericSymbols=new Map();function convertNameToId(elem,isAssocType){if(typeNameIdMap.has(elem.normalizedPathLast)&&(isAssocType||!typeNameIdMap.get(elem.normalizedPathLast).assocOnly)){elem.id=typeNameIdMap.get(elem.normalizedPathLast).id}else if(!parsedQuery.literalSearch){let match=null;let matchDist=maxEditDistance+1;let matchName="";for(const[name,{id,assocOnly}]of typeNameIdMap){const dist=editDistance(name,elem.normalizedPathLast,maxEditDistance);if(dist<=matchDist&&dist<=maxEditDistance&&(isAssocType||!assocOnly)){if(dist===matchDist&&matchName>name){continue}match=id;matchDist=dist;matchName=name}}if(match!==null){parsedQuery.correction=matchName}elem.id=match}if((elem.id===null&&parsedQuery.totalElems>1&&elem.typeFilter===-1&&elem.generics.length===0&&elem.bindings.size===0)||elem.typeFilter===TY_GENERIC){if(genericSymbols.has(elem.name)){elem.id=genericSymbols.get(elem.name)}else{elem.id=-(genericSymbols.size+1);genericSymbols.set(elem.name,elem.id)}if(elem.typeFilter===-1&&elem.name.length>=3){const maxPartDistance=Math.floor(elem.name.length/3);let matchDist=maxPartDistance+1;let matchName="";for(const name of typeNameIdMap.keys()){const dist=editDistance(name,elem.name,maxPartDistance);if(dist<=matchDist&&dist<=maxPartDistance){if(dist===matchDist&&matchName>name){continue}matchDist=dist;matchName=name}}if(matchName!==""){parsedQuery.proposeCorrectionFrom=elem.name;parsedQuery.proposeCorrectionTo=matchName}}elem.typeFilter=TY_GENERIC}if(elem.generics.length>0&&elem.typeFilter===TY_GENERIC){parsedQuery.error=["Generic type parameter ",elem.name," does not accept generic parameters",]}for(const elem2 of elem.generics){convertNameToId(elem2)}elem.bindings=new Map(Array.from(elem.bindings.entries()).map(entry=>{const[name,constraints]=entry;if(!typeNameIdMap.has(name)){parsedQuery.error=["Type parameter ",name," does not exist",];return[null,[]]}for(const elem2 of constraints){convertNameToId(elem2)}return[typeNameIdMap.get(name).id,constraints]}))}const fps=new Set();for(const elem of parsedQuery.elems){convertNameToId(elem);buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint,fps)}for(const elem of parsedQuery.returned){convertNameToId(elem);buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint,fps)}if(parsedQuery.foundElems===1&&parsedQuery.returned.length===0){if(parsedQuery.elems.length===1){const elem=parsedQuery.elems[0];for(let i=0,nSearchIndex=searchIndex.length;i0){const sortQ=(a,b)=>{const ag=a.generics.length===0&&a.bindings.size===0;const bg=b.generics.length===0&&b.bindings.size===0;if(ag!==bg){return ag-bg}const ai=a.id>0;const bi=b.id>0;return ai-bi};parsedQuery.elems.sort(sortQ);parsedQuery.returned.sort(sortQ);for(let i=0,nSearchIndex=searchIndex.length;i");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}function addTab(array,query,display){const extraClass=display?" active":"";const output=document.createElement("div");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}`:"?";const link=document.createElement("a");link.className="result-"+type;link.href=item.href;const resultName=document.createElement("div");resultName.className="result-name";resultName.insertAdjacentHTML("beforeend",`${typeName}`);link.appendChild(resultName);let alias=" ";if(item.is_alias){alias=`
\ +${item.alias} - see \ +
`}resultName.insertAdjacentHTML("beforeend",`
${alias}\ +${item.displayPath}${name}\ +
`);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,array.length]}function makeTabHeader(tabNb,text,nbElems){const fmtNbElems=nbElems<10?`\u{2007}(${nbElems})\u{2007}\u{2007}`:nbElems<100?`\u{2007}(${nbElems})\u{2007}`:`\u{2007}(${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="";if(rawSearchIndex.size>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.

`}if(results.query.proposeCorrectionFrom!==null){const orig=results.query.proposeCorrectionFrom;const targ=results.query.proposeCorrectionTo;output+="

"+`Type "${orig}" not found and used as generic parameter. `+`Consider searching for "${targ}" 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(forced){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,filterCrates,window.currentCrate),params.go_to_first,filterCrates)}function buildItemSearchTypeAll(types,lowercasePaths){return types.length>0?types.map(type=>buildItemSearchType(type,lowercasePaths)):EMPTY_GENERICS_ARRAY}const EMPTY_BINDINGS_MAP=new Map();const EMPTY_GENERICS_ARRAY=[];let TYPES_POOL=new Map();function buildItemSearchType(type,lowercasePaths,isAssocType){const PATH_INDEX_DATA=0;const GENERICS_DATA=1;const BINDINGS_DATA=2;let pathIndex,generics,bindings;if(typeof type==="number"){pathIndex=type;generics=EMPTY_GENERICS_ARRAY;bindings=EMPTY_BINDINGS_MAP}else{pathIndex=type[PATH_INDEX_DATA];generics=buildItemSearchTypeAll(type[GENERICS_DATA],lowercasePaths);if(type.length>BINDINGS_DATA&&type[BINDINGS_DATA].length>0){bindings=new Map(type[BINDINGS_DATA].map(binding=>{const[assocType,constraints]=binding;return[buildItemSearchType(assocType,lowercasePaths,true).id,buildItemSearchTypeAll(constraints,lowercasePaths),]}))}else{bindings=EMPTY_BINDINGS_MAP}}let result;if(pathIndex<0){result={id:pathIndex,ty:TY_GENERIC,path:null,generics,bindings,}}else if(pathIndex===0){result={id:null,ty:null,path:null,generics,bindings,}}else{const item=lowercasePaths[pathIndex-1];result={id:buildTypeMapIndex(item.name,isAssocType),ty:item.ty,path:item.path,generics,bindings,}}const cr=TYPES_POOL.get(result.id);if(cr){if(cr.generics.length===result.generics.length&&cr.generics!==result.generics&&cr.generics.every((x,i)=>result.generics[i]===x)){result.generics=cr.generics}if(cr.bindings.size===result.bindings.size&&cr.bindings!==result.bindings){let ok=true;for(const[k,v]of cr.bindings.entries()){const v2=result.bindings.get(v);if(!v2){ok=false;break}if(v!==v2&&v.length===v2.length&&v.every((x,i)=>v2[i]===x)){result.bindings.set(k,v)}else if(v!==v2){ok=false;break}}if(ok){result.bindings=cr.bindings}}if(cr.ty===result.ty&&cr.path===result.path&&cr.bindings===result.bindings&&cr.generics===result.generics&&cr.ty===result.ty){return cr}}TYPES_POOL.set(result.id,result);return result}function buildFunctionSearchType(itemFunctionDecoder,lowercasePaths){const c=itemFunctionDecoder.string.charCodeAt(itemFunctionDecoder.offset);itemFunctionDecoder.offset+=1;const[zero,ua,la,ob,cb]=["0","@","`","{","}"].map(c=>c.charCodeAt(0));if(c===la){return null}if(c>=zero&&c>1];itemFunctionDecoder.offset+=1;return sign?-value:value}const functionSearchType=decodeList();const INPUTS_DATA=0;const OUTPUT_DATA=1;let inputs,output;if(typeof functionSearchType[INPUTS_DATA]==="number"){inputs=[buildItemSearchType(functionSearchType[INPUTS_DATA],lowercasePaths)]}else{inputs=buildItemSearchTypeAll(functionSearchType[INPUTS_DATA],lowercasePaths)}if(functionSearchType.length>1){if(typeof functionSearchType[OUTPUT_DATA]==="number"){output=[buildItemSearchType(functionSearchType[OUTPUT_DATA],lowercasePaths)]}else{output=buildItemSearchTypeAll(functionSearchType[OUTPUT_DATA],lowercasePaths)}}else{output=[]}const where_clause=[];const l=functionSearchType.length;for(let i=2;i16){itemFunctionDecoder.backrefQueue.pop()}return ret}function buildFunctionTypeFingerprint(type,output,fps){let input=type.id;if(input===typeNameIdOfArray||input===typeNameIdOfSlice){input=typeNameIdOfArrayOrSlice}if(input===typeNameIdOfTuple||input===typeNameIdOfUnit){input=typeNameIdOfTupleOrUnit}if(input===typeNameIdOfFn||input===typeNameIdOfFnMut||input===typeNameIdOfFnOnce){input=typeNameIdOfHof}const hashint1=k=>{k=(~~k+0x7ed55d16)+(k<<12);k=(k ^ 0xc761c23c)^(k>>>19);k=(~~k+0x165667b1)+(k<<5);k=(~~k+0xd3a2646c)^(k<<9);k=(~~k+0xfd7046c5)+(k<<3);return(k ^ 0xb55a4f09)^(k>>>16)};const hashint2=k=>{k=~k+(k<<15);k ^=k>>>12;k+=k<<2;k ^=k>>>4;k=Math.imul(k,2057);return k ^(k>>16)};if(input!==null){const h0a=hashint1(input);const h0b=hashint2(input);const h1a=~~(h0a+Math.imul(h0b,2));const h1b=~~(h0a+Math.imul(h0b,3));const h2a=~~(h0a+Math.imul(h0b,4));const h2b=~~(h0a+Math.imul(h0b,5));output[0]|=(1<<(h0a%32))|(1<<(h1b%32));output[1]|=(1<<(h1a%32))|(1<<(h2b%32));output[2]|=(1<<(h2a%32))|(1<<(h0b%32));fps.add(input)}for(const g of type.generics){buildFunctionTypeFingerprint(g,output,fps)}const fb={id:null,ty:0,generics:EMPTY_GENERICS_ARRAY,bindings:EMPTY_BINDINGS_MAP,};for(const[k,v]of type.bindings.entries()){fb.id=k;fb.generics=v;buildFunctionTypeFingerprint(fb,output,fps)}output[3]=fps.size}function compareTypeFingerprints(fullId,queryFingerprint){const fh0=functionTypeFingerprint[fullId*4];const fh1=functionTypeFingerprint[(fullId*4)+1];const fh2=functionTypeFingerprint[(fullId*4)+2];const[qh0,qh1,qh2]=queryFingerprint;const[in0,in1,in2]=[fh0&qh0,fh1&qh1,fh2&qh2];if((in0 ^ qh0)||(in1 ^ qh1)||(in2 ^ qh2)){return null}return functionTypeFingerprint[(fullId*4)+3]}function buildIndex(rawSearchIndex){searchIndex=[];const charA="A".charCodeAt(0);let currentIndex=0;let id=0;for(const crate of rawSearchIndex.values()){id+=crate.t.length+1}functionTypeFingerprint=new Uint32Array((id+1)*4);id=0;for(const[crate,crateCorpus]of rawSearchIndex){const crateRow={crate:crate,ty:3,name:crate,path:"",desc:crateCorpus.doc,parent:undefined,type:null,id:id,word:crate,normalizedName:crate.indexOf("_")===-1?crate:crate.replace(/_/g,""),deprecated:null,implDisambiguator: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 itemFunctionDecoder={string:crateCorpus.f,offset:0,backrefQueue:[],};const deprecatedItems=new Set(crateCorpus.c);const implDisambiguator=new Map(crateCorpus.b);const paths=crateCorpus.p;const aliases=crateCorpus.a;const lowercasePaths=[];let len=paths.length;let lastPath=itemPaths.get(0);for(let i=0;i2){path=itemPaths.has(elem[2])?itemPaths.get(elem[2]):lastPath;lastPath=path}lowercasePaths.push({ty:ty,name:name.toLowerCase(),path:path});paths[i]={ty:ty,name:name,path:path}}lastPath="";len=itemTypes.length;for(let i=0;i0?paths[itemParentIdxs[i]-1]:undefined,type,id:id,word,normalizedName:word.indexOf("_")===-1?word:word.replace(/_/g,""),deprecated:deprecatedItems.has(i),implDisambiguator:implDisambiguator.has(i)?implDisambiguator.get(i):null,};id+=1;searchIndex.push(row);lastPath=row.path}if(aliases){const currentCrateAliases=new Map();ALIASES.set(crate,currentCrateAliases);for(const alias_name in aliases){if(!Object.prototype.hasOwnProperty.call(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+=itemTypes.length}TYPES_POOL=new Map()}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;e.preventDefault();search()}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(true)}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}}if(typeof window!=="undefined"){window.initSearch=initSearch;if(window.searchIndex!==undefined){initSearch(window.searchIndex)}}else{initSearch(new Map())}})() \ No newline at end of file diff --git a/latest/static.files/settings-4313503d2e1961c2.js b/latest/static.files/settings-4313503d2e1961c2.js new file mode 100644 index 0000000..ab425fe --- /dev/null +++ b/latest/static.files/settings-4313503d2e1961c2.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;case"hide-sidebar":if(value===true){addClass(document.documentElement,"hide-sidebar")}else{removeClass(document.documentElement,"hide-sidebar")}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=()=>{changeSetting(toggle.id,toggle.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":"Hide persistent navigation bar","js_name":"hide-sidebar","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="";onEachLazy(settingsMenu.querySelectorAll("input[type='checkbox']"),el=>{const val=getSettingValue(el.id);const checked=val==="true";if(checked!==el.checked&&val!==null){el.checked=checked}})}function settingsBlurHandler(event){blurHandler(event,getSettingsButton(),window.hidePopoverMenus)}if(isSettingsPage){getSettingsButton().onclick=event=>{event.preventDefault()}}else{const settingsButton=getSettingsButton();const settingsMenu=document.getElementById("settings");settingsButton.onclick=event=>{if(settingsMenu.contains(event.target)){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/latest/static.files/src-script-e66d777a5a92e9b2.js b/latest/static.files/src-script-e66d777a5a92e9b2.js new file mode 100644 index 0000000..d0aebb8 --- /dev/null +++ b/latest/static.files/src-script-e66d777a5a92e9b2.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{removeClass(document.documentElement,"src-sidebar-expanded");updateLocalStorage("source-sidebar-show","false")};window.rustdocShowSourceSidebar=()=>{addClass(document.documentElement,"src-sidebar-expanded");updateLocalStorage("source-sidebar-show","true")};window.rustdocToggleSrcSidebar=()=>{if(document.documentElement.classList.contains("src-sidebar-expanded")){window.rustdocCloseSourceSidebar()}else{window.rustdocShowSourceSidebar()}};function createSrcSidebar(){const container=document.querySelector("nav.sidebar");const sidebar=document.createElement("div");sidebar.id="src-sidebar";let hasFoundFile=false;for(const[key,source]of srcIndex){source[NAME_OFFSET]=key;hasFoundFile=createDirEntry(source,sidebar,"",hasFoundFile)}container.appendChild(sidebar);const selected_elem=sidebar.getElementsByClassName("selected")[0];if(typeof selected_elem!=="undefined"){selected_elem.focus()}}function highlightSrcLines(){const match=window.location.hash.match(/^#?(\d+)(?:-(\d+))?$/);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 handleSrcHighlight=(function(){let prev_line_id=0;const set_fragment=name=>{const x=window.scrollX,y=window.scrollY;if(browserSupportsHistoryApi()){history.replaceState(null,null,"#"+name);highlightSrcLines()}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",highlightSrcLines);onEachLazy(document.getElementsByClassName("src-line-numbers"),el=>{el.addEventListener("click",handleSrcHighlight)});highlightSrcLines();window.createSrcSidebar=createSrcSidebar})() \ No newline at end of file diff --git a/latest/static.files/storage-4c98445ec4002617.js b/latest/static.files/storage-4c98445ec4002617.js new file mode 100644 index 0000000..b378b85 --- /dev/null +++ b/latest/static.files/storage-4c98445ec4002617.js @@ -0,0 +1 @@ +"use strict";const builtinThemes=["light","dark","ayu"];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){for(const elem of arr){if(func(elem)){return true}}return false}function onEachLazy(lazyArray,func){return onEach(Array.prototype.slice.call(lazyArray),func)}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){const themeNames=getVar("themes").split(",").filter(t=>t);themeNames.push(...builtinThemes);if(themeNames.indexOf(newThemeName)===-1){return}if(saveTheme){updateLocalStorage("theme",newThemeName)}document.documentElement.setAttribute("data-theme",newThemeName);if(builtinThemes.indexOf(newThemeName)!==-1){if(window.currentTheme){window.currentTheme.parentNode.removeChild(window.currentTheme);window.currentTheme=null}}else{const newHref=getVar("root-path")+encodeURIComponent(newThemeName)+getVar("resource-suffix")+".css";if(!window.currentTheme){if(document.readyState==="loading"){document.write(``);window.currentTheme=document.getElementById("themeStyle")}else{window.currentTheme=document.createElement("link");window.currentTheme.rel="stylesheet";window.currentTheme.id="themeStyle";window.currentTheme.href=newHref;document.documentElement.appendChild(window.currentTheme)}}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,"src-sidebar-expanded")}if(getSettingValue("hide-sidebar")==="true"){addClass(document.documentElement,"hide-sidebar")}function updateSidebarWidth(){const desktopSidebarWidth=getSettingValue("desktop-sidebar-width");if(desktopSidebarWidth&&desktopSidebarWidth!=="null"){document.documentElement.style.setProperty("--desktop-sidebar-width",desktopSidebarWidth+"px")}const srcSidebarWidth=getSettingValue("src-sidebar-width");if(srcSidebarWidth&&srcSidebarWidth!=="null"){document.documentElement.style.setProperty("--src-sidebar-width",srcSidebarWidth+"px")}}updateSidebarWidth();window.addEventListener("pageshow",ev=>{if(ev.persisted){setTimeout(updateTheme,0);setTimeout(updateSidebarWidth,0)}}) \ No newline at end of file diff --git a/latest/static.files/wheel-7b819b6101059cd0.svg b/latest/static.files/wheel-7b819b6101059cd0.svg new file mode 100644 index 0000000..83c07f6 --- /dev/null +++ b/latest/static.files/wheel-7b819b6101059cd0.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/latest/trait.impl/core/clone/trait.Clone.js b/latest/trait.impl/core/clone/trait.Clone.js new file mode 100644 index 0000000..67aca22 --- /dev/null +++ b/latest/trait.impl/core/clone/trait.Clone.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl Clone for ParticlePtr"],["impl Clone for ParticlePtrMut"],["impl<'a> Clone for ParticleRef<'a>"],["impl<'a> Clone for ParticleSlice<'a>"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/latest/trait.impl/core/cmp/trait.PartialEq.js b/latest/trait.impl/core/cmp/trait.PartialEq.js new file mode 100644 index 0000000..e76f2f4 --- /dev/null +++ b/latest/trait.impl/core/cmp/trait.PartialEq.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl PartialEq for Particle"],["impl PartialEq for ParticlePtr"],["impl PartialEq for ParticlePtrMut"],["impl PartialEq for ParticleVec"],["impl<'a> PartialEq for ParticleRef<'a>"],["impl<'a> PartialEq for ParticleRefMut<'a>"],["impl<'a> PartialEq for ParticleSlice<'a>"],["impl<'a> PartialEq for ParticleSliceMut<'a>"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/latest/trait.impl/core/default/trait.Default.js b/latest/trait.impl/core/default/trait.Default.js new file mode 100644 index 0000000..5b71f7e --- /dev/null +++ b/latest/trait.impl/core/default/trait.Default.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl Default for ParticleVec"],["impl<'a> Default for ParticleSlice<'a>"],["impl<'a> Default for ParticleSliceMut<'a>"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/latest/trait.impl/core/fmt/trait.Debug.js b/latest/trait.impl/core/fmt/trait.Debug.js new file mode 100644 index 0000000..1e27c4a --- /dev/null +++ b/latest/trait.impl/core/fmt/trait.Debug.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl Debug for Particle"],["impl Debug for ParticlePtr"],["impl Debug for ParticlePtrMut"],["impl Debug for ParticleVec"],["impl<'a> Debug for ParticleRef<'a>"],["impl<'a> Debug for ParticleRefMut<'a>"],["impl<'a> Debug for ParticleSlice<'a>"],["impl<'a> Debug for ParticleSliceMut<'a>"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/latest/trait.impl/core/iter/traits/collect/trait.Extend.js b/latest/trait.impl/core/iter/traits/collect/trait.Extend.js new file mode 100644 index 0000000..6492bfd --- /dev/null +++ b/latest/trait.impl/core/iter/traits/collect/trait.Extend.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl Extend<Particle> for ParticleVec"],["impl<'a> Extend<ParticleRef<'a>> for ParticleVec
where\n for<'b> f64: Clone,\n for<'b> [f64; 3]: Clone,\n for<'b> usize: Clone,\n for<'b> String: Clone,
"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/latest/trait.impl/core/iter/traits/collect/trait.FromIterator.js b/latest/trait.impl/core/iter/traits/collect/trait.FromIterator.js new file mode 100644 index 0000000..4d8a9e3 --- /dev/null +++ b/latest/trait.impl/core/iter/traits/collect/trait.FromIterator.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl FromIterator<Particle> for ParticleVec"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/latest/trait.impl/core/iter/traits/collect/trait.IntoIterator.js b/latest/trait.impl/core/iter/traits/collect/trait.IntoIterator.js new file mode 100644 index 0000000..81a283c --- /dev/null +++ b/latest/trait.impl/core/iter/traits/collect/trait.IntoIterator.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl<'a> IntoIterator for &'a ParticleVec"],["impl<'a> IntoIterator for &'a mut ParticleVec"],["impl<'a> IntoIterator for ParticleSlice<'a>"],["impl<'a> IntoIterator for ParticleSliceMut<'a>"],["impl<'a, 'b> IntoIterator for &'a ParticleSlice<'b>"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/latest/trait.impl/core/marker/trait.Copy.js b/latest/trait.impl/core/marker/trait.Copy.js new file mode 100644 index 0000000..5cc2c47 --- /dev/null +++ b/latest/trait.impl/core/marker/trait.Copy.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl Copy for ParticlePtr"],["impl Copy for ParticlePtrMut"],["impl<'a> Copy for ParticleRef<'a>"],["impl<'a> Copy for ParticleSlice<'a>"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/latest/trait.impl/core/marker/trait.Freeze.js b/latest/trait.impl/core/marker/trait.Freeze.js new file mode 100644 index 0000000..7786bcc --- /dev/null +++ b/latest/trait.impl/core/marker/trait.Freeze.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl Freeze for Particle",1,["soa_derive_example::Particle"]],["impl Freeze for ParticlePtr",1,["soa_derive_example::ParticlePtr"]],["impl Freeze for ParticlePtrMut",1,["soa_derive_example::ParticlePtrMut"]],["impl Freeze for ParticleVec",1,["soa_derive_example::ParticleVec"]],["impl<'a> Freeze for ParticleRef<'a>",1,["soa_derive_example::ParticleRef"]],["impl<'a> Freeze for ParticleRefMut<'a>",1,["soa_derive_example::ParticleRefMut"]],["impl<'a> Freeze for ParticleSlice<'a>",1,["soa_derive_example::ParticleSlice"]],["impl<'a> Freeze for ParticleSliceMut<'a>",1,["soa_derive_example::ParticleSliceMut"]]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/latest/trait.impl/core/marker/trait.Send.js b/latest/trait.impl/core/marker/trait.Send.js new file mode 100644 index 0000000..810410f --- /dev/null +++ b/latest/trait.impl/core/marker/trait.Send.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl !Send for ParticlePtr",1,["soa_derive_example::ParticlePtr"]],["impl !Send for ParticlePtrMut",1,["soa_derive_example::ParticlePtrMut"]],["impl Send for Particle",1,["soa_derive_example::Particle"]],["impl Send for ParticleVec",1,["soa_derive_example::ParticleVec"]],["impl<'a> Send for ParticleRef<'a>",1,["soa_derive_example::ParticleRef"]],["impl<'a> Send for ParticleRefMut<'a>",1,["soa_derive_example::ParticleRefMut"]],["impl<'a> Send for ParticleSlice<'a>",1,["soa_derive_example::ParticleSlice"]],["impl<'a> Send for ParticleSliceMut<'a>",1,["soa_derive_example::ParticleSliceMut"]]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/latest/trait.impl/core/marker/trait.StructuralPartialEq.js b/latest/trait.impl/core/marker/trait.StructuralPartialEq.js new file mode 100644 index 0000000..7c1cc5f --- /dev/null +++ b/latest/trait.impl/core/marker/trait.StructuralPartialEq.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl StructuralPartialEq for Particle"],["impl StructuralPartialEq for ParticlePtr"],["impl StructuralPartialEq for ParticlePtrMut"],["impl StructuralPartialEq for ParticleVec"],["impl<'a> StructuralPartialEq for ParticleRef<'a>"],["impl<'a> StructuralPartialEq for ParticleRefMut<'a>"],["impl<'a> StructuralPartialEq for ParticleSlice<'a>"],["impl<'a> StructuralPartialEq for ParticleSliceMut<'a>"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/latest/trait.impl/core/marker/trait.Sync.js b/latest/trait.impl/core/marker/trait.Sync.js new file mode 100644 index 0000000..c9063fb --- /dev/null +++ b/latest/trait.impl/core/marker/trait.Sync.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl !Sync for ParticlePtr",1,["soa_derive_example::ParticlePtr"]],["impl !Sync for ParticlePtrMut",1,["soa_derive_example::ParticlePtrMut"]],["impl Sync for Particle",1,["soa_derive_example::Particle"]],["impl Sync for ParticleVec",1,["soa_derive_example::ParticleVec"]],["impl<'a> Sync for ParticleRef<'a>",1,["soa_derive_example::ParticleRef"]],["impl<'a> Sync for ParticleRefMut<'a>",1,["soa_derive_example::ParticleRefMut"]],["impl<'a> Sync for ParticleSlice<'a>",1,["soa_derive_example::ParticleSlice"]],["impl<'a> Sync for ParticleSliceMut<'a>",1,["soa_derive_example::ParticleSliceMut"]]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/latest/trait.impl/core/marker/trait.Unpin.js b/latest/trait.impl/core/marker/trait.Unpin.js new file mode 100644 index 0000000..f0bed78 --- /dev/null +++ b/latest/trait.impl/core/marker/trait.Unpin.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl Unpin for Particle",1,["soa_derive_example::Particle"]],["impl Unpin for ParticlePtr",1,["soa_derive_example::ParticlePtr"]],["impl Unpin for ParticlePtrMut",1,["soa_derive_example::ParticlePtrMut"]],["impl Unpin for ParticleVec",1,["soa_derive_example::ParticleVec"]],["impl<'a> Unpin for ParticleRef<'a>",1,["soa_derive_example::ParticleRef"]],["impl<'a> Unpin for ParticleRefMut<'a>",1,["soa_derive_example::ParticleRefMut"]],["impl<'a> Unpin for ParticleSlice<'a>",1,["soa_derive_example::ParticleSlice"]],["impl<'a> Unpin for ParticleSliceMut<'a>",1,["soa_derive_example::ParticleSliceMut"]]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/latest/trait.impl/core/ops/drop/trait.Drop.js b/latest/trait.impl/core/ops/drop/trait.Drop.js new file mode 100644 index 0000000..700eb17 --- /dev/null +++ b/latest/trait.impl/core/ops/drop/trait.Drop.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl Drop for ParticleVec"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/latest/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js b/latest/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js new file mode 100644 index 0000000..ceb83e7 --- /dev/null +++ b/latest/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl RefUnwindSafe for Particle",1,["soa_derive_example::Particle"]],["impl RefUnwindSafe for ParticlePtr",1,["soa_derive_example::ParticlePtr"]],["impl RefUnwindSafe for ParticlePtrMut",1,["soa_derive_example::ParticlePtrMut"]],["impl RefUnwindSafe for ParticleVec",1,["soa_derive_example::ParticleVec"]],["impl<'a> RefUnwindSafe for ParticleRef<'a>",1,["soa_derive_example::ParticleRef"]],["impl<'a> RefUnwindSafe for ParticleRefMut<'a>",1,["soa_derive_example::ParticleRefMut"]],["impl<'a> RefUnwindSafe for ParticleSlice<'a>",1,["soa_derive_example::ParticleSlice"]],["impl<'a> RefUnwindSafe for ParticleSliceMut<'a>",1,["soa_derive_example::ParticleSliceMut"]]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/latest/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js b/latest/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js new file mode 100644 index 0000000..e4cfd53 --- /dev/null +++ b/latest/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl UnwindSafe for Particle",1,["soa_derive_example::Particle"]],["impl UnwindSafe for ParticlePtr",1,["soa_derive_example::ParticlePtr"]],["impl UnwindSafe for ParticlePtrMut",1,["soa_derive_example::ParticlePtrMut"]],["impl UnwindSafe for ParticleVec",1,["soa_derive_example::ParticleVec"]],["impl<'a> !UnwindSafe for ParticleRefMut<'a>",1,["soa_derive_example::ParticleRefMut"]],["impl<'a> !UnwindSafe for ParticleSliceMut<'a>",1,["soa_derive_example::ParticleSliceMut"]],["impl<'a> UnwindSafe for ParticleRef<'a>",1,["soa_derive_example::ParticleRef"]],["impl<'a> UnwindSafe for ParticleSlice<'a>",1,["soa_derive_example::ParticleSlice"]]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/latest/trait.impl/soa_derive/trait.SoAIndex.js b/latest/trait.impl/soa_derive/trait.SoAIndex.js new file mode 100644 index 0000000..3f20433 --- /dev/null +++ b/latest/trait.impl/soa_derive/trait.SoAIndex.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl<'a> SoAIndex<&'a ParticleVec> for usize"],["impl<'a> SoAIndex<&'a ParticleVec> for Range<usize>"],["impl<'a> SoAIndex<&'a ParticleVec> for RangeFrom<usize>"],["impl<'a> SoAIndex<&'a ParticleVec> for RangeFull"],["impl<'a> SoAIndex<&'a ParticleVec> for RangeInclusive<usize>"],["impl<'a> SoAIndex<&'a ParticleVec> for RangeTo<usize>"],["impl<'a> SoAIndex<&'a ParticleVec> for RangeToInclusive<usize>"],["impl<'a> SoAIndex<ParticleSlice<'a>> for usize"],["impl<'a> SoAIndex<ParticleSlice<'a>> for Range<usize>"],["impl<'a> SoAIndex<ParticleSlice<'a>> for RangeFrom<usize>"],["impl<'a> SoAIndex<ParticleSlice<'a>> for RangeFull"],["impl<'a> SoAIndex<ParticleSlice<'a>> for RangeInclusive<usize>"],["impl<'a> SoAIndex<ParticleSlice<'a>> for RangeTo<usize>"],["impl<'a> SoAIndex<ParticleSlice<'a>> for RangeToInclusive<usize>"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/latest/trait.impl/soa_derive/trait.SoAIndexMut.js b/latest/trait.impl/soa_derive/trait.SoAIndexMut.js new file mode 100644 index 0000000..72d0911 --- /dev/null +++ b/latest/trait.impl/soa_derive/trait.SoAIndexMut.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl<'a> SoAIndexMut<&'a mut ParticleVec> for usize"],["impl<'a> SoAIndexMut<&'a mut ParticleVec> for Range<usize>"],["impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeFrom<usize>"],["impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeFull"],["impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeInclusive<usize>"],["impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeTo<usize>"],["impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeToInclusive<usize>"],["impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for usize"],["impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for Range<usize>"],["impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeFrom<usize>"],["impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeFull"],["impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeInclusive<usize>"],["impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeTo<usize>"],["impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeToInclusive<usize>"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/latest/trait.impl/soa_derive/trait.SoAIter.js b/latest/trait.impl/soa_derive/trait.SoAIter.js new file mode 100644 index 0000000..82bac03 --- /dev/null +++ b/latest/trait.impl/soa_derive/trait.SoAIter.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl<'a> SoAIter<'a> for Particle"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/latest/trait.impl/soa_derive/trait.StructOfArray.js b/latest/trait.impl/soa_derive/trait.StructOfArray.js new file mode 100644 index 0000000..7855717 --- /dev/null +++ b/latest/trait.impl/soa_derive/trait.StructOfArray.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"soa_derive_example":[["impl StructOfArray for Particle"]] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/light.css b/light.css new file mode 100644 index 0000000..41a6074 --- /dev/null +++ b/light.css @@ -0,0 +1 @@ + body{background-color:white;color:black;}h1,h2,h3:not(.impl):not(.method):not(.type):not(.tymethod),h4:not(.method):not(.type):not(.tymethod){color:black;}h1.fqn{border-bottom-color:#D5D5D5;}h2,h3:not(.impl):not(.method):not(.type):not(.tymethod),h4:not(.method):not(.type):not(.tymethod){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{background-color:#F5F5F5;}.sidebar{background-color:#F1F1F1;}*{scrollbar-color:rgba(36,37,39,0.6) #e6e6e6;}.sidebar{scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;}.logo-container.rust-logo>img{}::-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{background-color:#fff;}.source .sidebar{background-color:#fff;}.sidebar .location{border-color:#000;background-color:#fff;color:#333;}.sidebar .version{border-bottom-color:#DDD;}.sidebar-title{border-top-color:#777;border-bottom-color:#777;}.block a:hover{background:#F5F5F5;}.line-numbers span{color:#c67e2d;}.line-numbers .line-highlighted{background-color:#f6fdb0 !important;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5{border-bottom-color:#ddd;}.docblock table,.docblock table td,.docblock table th{border-color:#ddd;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#4E4C4C;}.content .highlighted{color:#000 !important;background-color:#ccc;}.content .highlighted a,.content .highlighted span{color:#000 !important;}.content .highlighted.trait{background-color:#c7b6ff;}.content .highlighted.traitalias{background-color:#c7b6ff;}.content .highlighted.mod,.content .highlighted.externcrate{background-color:#afc6e4;}.content .highlighted.enum{background-color:#b4d1b9;}.content .highlighted.struct{background-color:#e7b1a0;}.content .highlighted.union{background-color:#b7bd49;}.content .highlighted.fn,.content .highlighted.method,.content .highlighted.tymethod{background-color:#c6afb3;}.content .highlighted.type{background-color:#ffc891;}.content .highlighted.foreigntype{background-color:#f5c4ff;}.content .highlighted.attr,.content .highlighted.derive,.content .highlighted.macro{background-color:#8ce488;}.content .highlighted.constant,.content .highlighted.static{background-color:#c3e0ff;}.content .highlighted.primitive{background-color:#9aecff;}.content .highlighted.keyword{background-color:#f99650;}.content .stability::before{color:#ccc;}.content span.enum,.content a.enum,.block a.current.enum{color:#508157;}.content span.struct,.content a.struct,.block a.current.struct{color:#ad448e;}.content span.type,.content a.type,.block a.current.type{color:#ba5d00;}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{color:#cd00e2;}.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:#767b27;}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{color:#546e8a;}.content span.primitive,.content a.primitive,.block a.current.primitive{color:#2c8093;}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{color:#4d76ae;}.content span.trait,.content a.trait,.block a.current.trait{color:#7c5af3;}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{color:#6841f1;}.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:#9a6e31;}.content span.keyword,.content a.keyword,.block a.current.keyword{color:#de5249;}pre.rust .comment{color:#8E908C;}pre.rust .doccomment{color:#4D4D4C;}nav:not(.sidebar){border-bottom-color:#e0e0e0;}nav.main .current{border-top-color:#000;border-bottom-color:#000;}nav.main .separator{border:1px solid #000;}a{color:#000;}.docblock:not(.type-decl) a:not(.srclink):not(.test-arrow),.docblock-short a:not(.srclink):not(.test-arrow),.stability a{color:#3873AD;}a.test-arrow{color:#f5f5f5;}.collapse-toggle{color:#999;}#crate-search{color:#555;background-color:white;border-color:#e0e0e0;box-shadow:0 0 0 1px #e0e0e0,0 0 0 2px transparent;}.search-input{color:#555;background-color:white;box-shadow:0 0 0 1px #e0e0e0,0 0 0 2px transparent;}.search-input:focus{border-color:#66afe9;}.search-focus:disabled{background-color:#e6e6e6;}#crate-search+.search-input:focus{box-shadow:0 0 8px #078dd8;}.module-item .stab{color:#000;}.stab.unstable{background:#FFF5D6;border-color:#FFC600;}.stab.deprecated{background:#F3DFFF;border-color:#7F0087;}.stab.portability{background:#C4ECFF;border-color:#7BA5DB;}.stab.portability>code{color:#000;}#help>div{background:#e9e9e9;border-color:#bfbfbf;}.since{color:grey;}tr.result span.primitive::after,tr.result span.keyword::after{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 .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:rgba(78,139,202,0.2);}a.test-arrow:hover{background-color:#4e8bca;}.toggle-label{color:#999;}:target>code,:target>.in-band{background:#FDFFD3;border-right:3px solid #ffb44c;}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:#0089ff;}.tooltip .tooltiptext{background-color:#000;color:#fff;}.tooltip .tooltiptext::after{border-color:transparent black transparent transparent;}.notable-traits-tooltiptext{background-color:#eee;border-color:#999;}#titles>div:not(.selected){background-color:#e6e6e6;border-top-color:#e6e6e6;}#titles>div:hover,#titles>div.selected{border-top-color:#0089ff;}#titles>div>div.count{color:#888;}@media (max-width:700px){.sidebar-menu{background-color:#F1F1F1;border-bottom-color:#e0e0e0;border-right-color:#e0e0e0;}.sidebar-elems{background-color:#F1F1F1;border-right-color:#000;}#sidebar-filler{background-color:#F1F1F1;border-bottom-color:#e0e0e0;}}kbd{color:#000;background-color:#fafbfc;border-color:#d1d5da;border-bottom-color:#c6cbd1;box-shadow-color:#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;}#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;}}#all-types{background-color:#fff;}#all-types:hover{background-color:#f9f9f9;}.search-results td span.alias{color:#000;}.search-results td span.grey{color:#999;}#sidebar-toggle{background-color:#F1F1F1;}#sidebar-toggle:hover{background-color:#E0E0E0;}#source-sidebar{background-color:#F1F1F1;}#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/main.js b/main.js new file mode 100644 index 0000000..1860a6f --- /dev/null +++ b/main.js @@ -0,0 +1,7 @@ +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 getSearchInput(){return document.getElementsByClassName("search-input")[0]}function getSearchElement(){return document.getElementById("search")}function focusSearchBar(){getSearchInput().focus()}function defocusSearchBar(){getSearchInput().blur()}(function(){"use strict";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 disableShortcuts=getCurrentValue("rustdoc-disable-shortcuts")==="true";var search_input=getSearchInput();var searchTimeout=null;var currentTab=0;var mouseMovedAfterSearch=true;var titleBeforeSearch=document.title;function clearInputTimeout(){if(searchTimeout!==null){clearTimeout(searchTimeout);searchTimeout=null}}function getPageId(){if(window.location.hash){var tmp=window.location.hash.replace(/^#/,"");if(tmp.length>0){return tmp}}return null}function showSidebar(){var elems=document.getElementsByClassName("sidebar-elems")[0];if(elems){addClass(elems,"show-it")}var sidebar=document.getElementsByClassName("sidebar")[0];if(sidebar){addClass(sidebar,"mobile");var filler=document.getElementById("sidebar-filler");if(!filler){var div=document.createElement("div");div.id="sidebar-filler";sidebar.appendChild(div)}}var themePickers=document.getElementsByClassName("theme-picker");if(themePickers&&themePickers.length>0){themePickers[0].style.display="none"}}function hideSidebar(){var elems=document.getElementsByClassName("sidebar-elems")[0];if(elems){removeClass(elems,"show-it")}var sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"mobile");var filler=document.getElementById("sidebar-filler");if(filler){filler.remove()}document.getElementsByTagName("body")[0].style.marginTop="";var themePickers=document.getElementsByClassName("theme-picker");if(themePickers&&themePickers.length>0){themePickers[0].style.display=null}}function showSearchResults(search){if(search===null||typeof search==='undefined'){search=getSearchElement()}addClass(main,"hidden");removeClass(search,"hidden");mouseMovedAfterSearch=false}function hideSearchResults(search){if(search===null||typeof search==='undefined'){search=getSearchElement()}addClass(search,"hidden");removeClass(main,"hidden")}var TY_PRIMITIVE=itemTypes.indexOf("primitive");var TY_KEYWORD=itemTypes.indexOf("keyword");function getQueryStringParams(){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}function browserSupportsHistoryApi(){return window.history&&typeof window.history.pushState==="function"}function isHidden(elem){return elem.offsetHeight===0}var main=document.getElementById("main");var savedHash="";function handleHashes(ev){var elem;var search=getSearchElement();if(ev!==null&&search&&!hasClass(search,"hidden")&&ev.newURL){hideSearchResults(search);var hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(browserSupportsHistoryApi()){history.replaceState(hash,"","?search=#"+hash)}elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}if(savedHash!==window.location.hash){savedHash=window.location.hash;if(savedHash.length===0){return}elem=document.getElementById(savedHash.slice(1));if(!elem||!isHidden(elem)){return}var parent=elem.parentNode;if(parent&&hasClass(parent,"impl-items")){onEachLazy(parent.getElementsByClassName("collapsed"),function(e){if(e.parentNode===parent){e.click();return true}});if(isHidden(elem)){if(hasClass(parent.lastElementChild,"collapse-toggle")){parent.lastElementChild.click()}}}}}function highlightSourceLines(match,ev){if(typeof match==="undefined"){hideSidebar();match=window.location.hash.match(/^#?(\d+)(?:-(\d+))?$/)}if(!match){return}var from=parseInt(match[1],10);var to=from;if(typeof match[2]!=="undefined"){to=parseInt(match[2],10)}if(to0){collapseDocs(collapses[0],"show")}}}}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)}function getHelpElement(){return document.getElementById("help")}function displayHelp(display,ev,help){help=help?help:getHelpElement();if(display===true){if(hasClass(help,"hidden")){ev.preventDefault();removeClass(help,"hidden");addClass(document.body,"blur")}}else if(hasClass(help,"hidden")===false){ev.preventDefault();addClass(help,"hidden");removeClass(document.body,"blur")}}function handleEscape(ev){var help=getHelpElement();var search=getSearchElement();if(hasClass(help,"hidden")===false){displayHelp(false,ev,help)}else if(hasClass(search,"hidden")===false){clearInputTimeout();ev.preventDefault();hideSearchResults(search);document.title=titleBeforeSearch}defocusSearchBar()}function handleShortcut(ev){if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts===true){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();focusSearchBar();break;case"+":case"-":ev.preventDefault();toggleAllDocs();break;case"?":displayHelp(true,ev);break}}}function findParentElement(elem,tagName){do{if(elem&&elem.tagName===tagName){return elem}elem=elem.parentNode}while(elem);return null}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);function resetMouseMoved(ev){mouseMovedAfterSearch=true}document.addEventListener("mousemove",resetMouseMoved);var handleSourceHighlight=(function(){var prev_line_id=0;var set_fragment=function(name){var x=window.scrollX,y=window.scrollY;if(browserSupportsHistoryApi()){history.replaceState(null,null,"#"+name);highlightSourceLines()}else{location.replace("#"+name)}window.scrollTo(x,y)};return function(ev){var cur_line_id=parseInt(ev.target.id,10);ev.preventDefault();if(ev.shiftKey&&prev_line_id){if(prev_line_id>cur_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)}}}());document.addEventListener("click",function(ev){if(hasClass(ev.target,"help-button")){displayHelp(true,ev)}else if(hasClass(ev.target,"collapse-toggle")){collapseDocs(ev.target,"toggle")}else if(hasClass(ev.target.parentNode,"collapse-toggle")){collapseDocs(ev.target.parentNode,"toggle")}else if(ev.target.tagName==="SPAN"&&hasClass(ev.target.parentNode,"line-numbers")){handleSourceHighlight(ev)}else if(hasClass(getHelpElement(),"hidden")===false){var help=getHelpElement();var is_inside_help_popup=ev.target!==help&&help.contains(ev.target);if(is_inside_help_popup===false){addClass(help,"hidden");removeClass(document.body,"blur")}}else{var a=findParentElement(ev.target,"A");if(a&&a.hash){expandSection(a.hash.replace(/^#/,""))}}});(function(){var x=document.getElementsByClassName("version-selector");if(x.length>0){x[0].onchange=function(){var i,match,url=document.location.href,stripped="",len=rootPath.match(/\.\.\//g).length+1;for(i=0;i-1){var obj=searchIndex[results[i].id];obj.lev=results[i].lev;if(isType!==true||obj.type){var res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=obj.displayPath+obj.name;obj.fullPath+="|"+obj.ty;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(hasOwnProperty(results,entry)){ar.push(results[entry])}}results=ar;var i;var nresults=results.length;for(i=0;ib?+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});var length=results.length;for(i=0;i"));return{name:val.substring(0,val.indexOf("<")),generics:values.split(/\s*,\s*/),}}return{name:val,generics:[],}}function getObjectFromId(id){if(typeof id==="number"){return searchIndex[id]}return{'name':id}}function checkGenerics(obj,val){var lev_distance=MAX_LEV_DISTANCE+1;if(val.generics.length>0){if(obj.length>GENERICS_DATA&&obj[GENERICS_DATA].length>=val.generics.length){var elems=obj[GENERICS_DATA].slice(0);var total=0;var done=0;var vlength=val.generics.length;for(var y=0;yGENERICS_DATA&&obj[GENERICS_DATA].length>=val.generics.length){var elems=obj[GENERICS_DATA].slice(0);var allFound=true;for(var y=0;allFound===true&&yGENERICS_DATA&&obj[GENERICS_DATA].length!==0){var tmp_lev=checkGenerics(obj,val);if(tmp_lev<=MAX_LEV_DISTANCE){return tmp_lev}}else{return 0}}if(literalSearch===true){if(obj.length>GENERICS_DATA&&obj[GENERICS_DATA].length>0){var length=obj[GENERICS_DATA].length;for(x=0;xGENERICS_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;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===false){ret_lev=Math.min(ret_lev,Math.round(lev_total/clength))}}return ret_lev}function typePassesFilter(filter,type){if(filter<=NO_TYPE_FILTER)return true;if(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 generateId(ty){if(ty.parent&&ty.parent.name){return itemTypes[ty.ty]+ty.path+ty.parent.name+ty.name}return itemTypes[ty.ty]+ty.path+ty.name}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=[];var i;if(filterCrates!==undefined){if(ALIASES[filterCrates]&&ALIASES[filterCrates][query.search]){for(i=0;iMAX_RESULTS){ret.others.pop()}};onEach(aliases,pushFunc);onEach(crateAliases,pushFunc)}var nSearchWords=searchWords.length;var i;var ty;var fullId;var returned;var in_args;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;i1?paths.length-1:1);var lev;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=generateId(ty);if(searchWords[j].indexOf(split[i])>-1||searchWords[j].indexOf(val)>-1||searchWords[j].replace(/_/g,"").indexOf(val)>-1){if(typePassesFilter(typeFilter,ty.ty)&&results[fullId]===undefined){index=searchWords[j].replace(/_/g,"").indexOf(val)}}if((lev=levenshtein(searchWords[j],val))<=MAX_LEV_DISTANCE){if(typePassesFilter(typeFilter,ty.ty)===false){lev=MAX_LEV_DISTANCE+1}else{lev+=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}}if(in_args<=MAX_LEV_DISTANCE){if(results_in_args[fullId]===undefined){results_in_args[fullId]={id:j,index:index,lev:in_args,}}results_in_args[fullId].lev=Math.min(results_in_args[fullId].lev,in_args)}if(returned<=MAX_LEV_DISTANCE){if(results_returned[fullId]===undefined){results_returned[fullId]={id:j,index:index,lev:returned,}}results_returned[fullId].lev=Math.min(results_returned[fullId].lev,returned)}if(index!==-1||lev<=MAX_LEV_DISTANCE){if(index!==-1&&paths.length<2){lev=0}if(results[fullId]===undefined){results[fullId]={id:j,index:index,lev:lev,}}results[fullId].lev=Math.min(results[fullId].lev,lev)}}}var ret={"in_args":sortResults(results_in_args,true),"returned":sortResults(results_returned,true),"others":sortResults(results),};handleAliases(ret,query,filterCrates);return ret}function validateResult(name,path,keys,parent){for(var i=0;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 initSearchNav(){var hoverTimeout;var click_func=function(e){var el=e.target;while(el.tagName!=="TR"){el=el.parentNode}var dst=e.target.getElementsByTagName("a");if(dst.length<1){return}dst=dst[0];if(window.location.pathname===dst.pathname){hideSearchResults();document.location.href=dst.href}};var mouseover_func=function(e){if(mouseMovedAfterSearch){var el=e.target;while(el.tagName!=="TR"){el=el.parentNode}clearTimeout(hoverTimeout);hoverTimeout=setTimeout(function(){onEachLazy(document.getElementsByClassName("search-results"),function(e){onEachLazy(e.getElementsByClassName("result"),function(i_e){removeClass(i_e,"highlighted")})});addClass(el,"highlighted")},20)}};onEachLazy(document.getElementsByClassName("search-results"),function(e){onEachLazy(e.getElementsByClassName("result"),function(i_e){i_e.onclick=click_func;i_e.onmouseover=mouseover_func})});search_input.onkeydown=function(e){var actives=[[],[],[]];var current=0;onEachLazy(document.getElementById("results").childNodes,function(e){onEachLazy(e.getElementsByClassName("highlighted"),function(e){actives[current].push(e)});current+=1});if(e.which===38){if(!actives[currentTab].length||!actives[currentTab][0].previousElementSibling){return}addClass(actives[currentTab][0].previousElementSibling,"highlighted");removeClass(actives[currentTab][0],"highlighted");e.preventDefault()}else if(e.which===40){if(!actives[currentTab].length){var results=document.getElementById("results").childNodes;if(results.length>0){var res=results[currentTab].getElementsByClassName("result");if(res.length>0){addClass(res[0],"highlighted")}}}else if(actives[currentTab][0].nextElementSibling){addClass(actives[currentTab][0].nextElementSibling,"highlighted");removeClass(actives[currentTab][0],"highlighted")}e.preventDefault()}else if(e.which===13){if(actives[currentTab].length){document.location.href=actives[currentTab][0].getElementsByTagName("a")[0].href}}else if(e.which===9){if(e.shiftKey){printTab(currentTab>0?currentTab-1:2)}else{printTab(currentTab>1?0:currentTab+1)}e.preventDefault()}else if(e.which===16){}else if(actives[currentTab].length>0){removeClass(actives[currentTab][0],"highlighted")}}}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=rootPath+path.replace(/::/g,"/")+"/"+name+"/index.html"}else if(type==="primitive"||type==="keyword"){displayPath="";href=rootPath+path.replace(/::/g,"/")+"/"+type+"."+name+".html"}else if(type==="externcrate"){displayPath="";href=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 splitPath=item.path.split("::");var enumName=splitPath.pop();path=splitPath.join("::");displayPath=path+"::"+enumName+"::"+myparent.name+"::";anchor="#variant."+myparent.name+".field."+name;pageType="enum";pageName=enumName}else{displayPath=path+"::"+myparent.name+"::"}href=rootPath+path.replace(/::/g,"/")+"/"+pageType+"."+pageName+".html"+anchor}else{displayPath=item.path+"::";href=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 extraStyle="";if(display===false){extraStyle=" style=\"display: none;\""}var output="";var duplicates={};var length=0;if(array.length>0){output="";array.forEach(function(item){var name,type;name=item.name;type=itemTypes[item.ty];if(item.is_alias!==true){if(duplicates[item.fullPath]){return}duplicates[item.fullPath]=true}length+=1;output+=""});output+="
"+""+(item.is_alias===true?(""+item.alias+"  - see "):"")+item.displayPath+""+name+""+""+""+escape(item.desc)+" 
"}else{output="
No results :(
"+"Try on DuckDuckGo?

"+"Or try looking in one of these:
"}return[output,length]}function makeTabHeader(tabNb,text,nbElems){if(currentTab===tabNb){return"
"+text+"
("+nbElems+")
"}return"
"+text+"
("+nbElems+")
"}function showResults(results){if(results.others.length===1&&getCurrentValue("rustdoc-go-to-only-result")==="true"){var elem=document.createElement("a");elem.href=results.others[0].href;elem.style.display="none";document.body.appendChild(elem);elem.click()}var query=getQuery(search_input.value);currentResults=query.id;var ret_others=addTab(results.others,query);var ret_in_args=addTab(results.in_args,query,false);var ret_returned=addTab(results.returned,query,false);var output="

Results for "+escape(query.query)+(query.type?" (type: "+escape(query.type)+")":"")+"

"+"
"+makeTabHeader(0,"In Names",ret_others[1])+makeTabHeader(1,"In Parameters",ret_in_args[1])+makeTabHeader(2,"In Return Types",ret_returned[1])+"
"+ret_others[0]+ret_in_args[0]+ret_returned[0]+"
";var search=getSearchElement();search.innerHTML=output;showSearchResults(search);var tds=search.getElementsByTagName("td");var td_width=0;if(tds.length>0){td_width=tds[0].offsetWidth}var width=search.offsetWidth-40-td_width;onEachLazy(search.getElementsByClassName("desc"),function(e){e.style.width=width+"px"});initSearchNav();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){function getSmallest(arrays,positions,notDuplicates){var start=null;for(var it=0;itpositions[it]&&(start===null||start>arrays[it][positions[it]].lev)&&!notDuplicates[arrays[it][positions[it]].fullPath]){start=arrays[it][positions[it]].lev}}return start}function mergeArrays(arrays){var ret=[];var positions=[];var notDuplicates={};for(var x=0;xpositions[x]&&arrays[x][positions[x]].lev===smallest&&!notDuplicates[arrays[x][positions[x]].fullPath]){ret.push(arrays[x][positions[x]]);notDuplicates[arrays[x][positions[x]].fullPath]=true;positions[x]+=1}}}return ret}var queries=query.raw.split(",");var results={"in_args":[],"returned":[],"others":[],};for(var i=0;i1){return{"in_args":mergeArrays(results.in_args),"returned":mergeArrays(results.returned),"others":mergeArrays(results.others),}}return{"in_args":results.in_args[0],"returned":results.returned[0],"others":results.others[0],}}function getFilterCrates(){var elem=document.getElementById("crate-search");if(elem&&elem.value!=="All crates"&&hasOwnProperty(rawSearchIndex,elem.value)){return elem.value}return undefined}function search(e,forced){var params=getQueryStringParams();var query=getQuery(search_input.value.trim());if(e){e.preventDefault()}if(query.query.length===0){return}if(forced!==true&&query.id===currentResults){if(query.query.length>0){putBackSearch(search_input)}return}document.title="Results for "+query.query+" - Rust";if(browserSupportsHistoryApi()){if(!history.state&&!params.search){history.pushState(query,"","?search="+encodeURIComponent(query.raw))}else{history.replaceState(query,"","?search="+encodeURIComponent(query.raw))}}var filterCrates=getFilterCrates();showResults(execSearch(query,index,filterCrates))}function buildIndex(rawSearchIndex){searchIndex=[];var searchWords=[];var i;var currentIndex=0;for(var crate in rawSearchIndex){if(!hasOwnProperty(rawSearchIndex,crate)){continue}var crateSize=0;searchWords.push(crate);searchIndex.push({crate:crate,ty:1,name:crate,path:"",desc:rawSearchIndex[crate].doc,type:null,});currentIndex+=1;var items=rawSearchIndex[crate].i;var paths=rawSearchIndex[crate].p;var aliases=rawSearchIndex[crate].a;var len=paths.length;for(i=0;i0){search_input.value=params.search;search(e)}else{search_input.value="";hideSearchResults()}})}search()}index=buildIndex(rawSearchIndex);startSearch();if(rootPath==="../"||rootPath==="./"){var sidebar=document.getElementsByClassName("sidebar-elems")[0];if(sidebar){var div=document.createElement("div");div.className="block crate";div.innerHTML="

Crates

";var ul=document.createElement("ul");div.appendChild(ul);var crates=[];for(var crate in rawSearchIndex){if(!hasOwnProperty(rawSearchIndex,crate)){continue}crates.push(crate)}crates.sort();for(var i=0;i"+""+"
"+code.outerHTML+"
";list.appendChild(display)}}};if(window.pending_implementors){window.register_implementors(window.pending_implementors)}function labelForToggleButton(sectionIsCollapsed){if(sectionIsCollapsed){return"+"}return"\u2212"}function onEveryMatchingChild(elem,className,func){if(elem&&className&&func){var length=elem.childNodes.length;var nodes=elem.childNodes;for(var i=0;i"+labelForToggleButton(sectionIsCollapsed)+"
]";return toggle}function createToggle(toggle,otherMessage,fontSize,extraClass,show){var span=document.createElement("span");span.className="toggle-label";if(show){span.style.display="none"}if(!otherMessage){span.innerHTML=" Expand description"}else{span.innerHTML=otherMessage}if(fontSize){span.style.fontSize=fontSize}var mainToggle=toggle.cloneNode(true);mainToggle.appendChild(span);var wrapper=document.createElement("div");wrapper.className="toggle-wrapper";if(!show){addClass(wrapper,"collapsed");var inner=mainToggle.getElementsByClassName("inner");if(inner&&inner.length>0){inner[0].innerHTML="+"}}if(extraClass){addClass(wrapper,extraClass)}wrapper.appendChild(mainToggle);return wrapper}(function(){var toggle=createSimpleToggle(false);var hideMethodDocs=getCurrentValue("rustdoc-auto-hide-method-docs")==="true";var hideImplementors=getCurrentValue("rustdoc-auto-collapse-implementors")!=="false";var pageId=getPageId();var func=function(e){var next=e.nextElementSibling;if(!next){return}if(hasClass(next,"docblock")===true||(hasClass(next,"stability")===true&&hasClass(next.nextElementSibling,"docblock")===true)){var newToggle=toggle.cloneNode(true);insertAfter(newToggle,e.childNodes[e.childNodes.length-1]);if(hideMethodDocs===true&&hasClass(e,"method")===true){collapseDocs(newToggle,"hide",pageId)}}};var funcImpl=function(e){var next=e.nextElementSibling;if(next&&hasClass(next,"docblock")){next=next.nextElementSibling}if(!next){return}if(hasClass(e,"impl")&&(next.getElementsByClassName("method").length>0||next.getElementsByClassName("associatedconstant").length>0)){var newToggle=toggle.cloneNode(true);insertAfter(newToggle,e.childNodes[e.childNodes.length-1]);if(hideImplementors===true&&e.parentNode.id==="implementors-list"){collapseDocs(newToggle,"hide",pageId)}}};onEachLazy(document.getElementsByClassName("method"),func);onEachLazy(document.getElementsByClassName("associatedconstant"),func);onEachLazy(document.getElementsByClassName("impl"),funcImpl);var impl_call=function(){};if(hideMethodDocs===true){impl_call=function(e,newToggle){if(e.id.match(/^impl(?:-\d+)?$/)===null){if(hasClass(e,"impl")===true){collapseDocs(newToggle,"hide",pageId)}}}}var newToggle=document.createElement("a");newToggle.href="javascript:void(0)";newToggle.className="collapse-toggle hidden-default collapsed";newToggle.innerHTML="["+labelForToggleButton(true)+"] Show hidden undocumented items";function toggleClicked(){if(hasClass(this,"collapsed")){removeClass(this,"collapsed");onEachLazy(this.parentNode.getElementsByClassName("hidden"),function(x){if(hasClass(x,"content")===false){removeClass(x,"hidden");addClass(x,"x")}},true);this.innerHTML="["+labelForToggleButton(false)+"] Hide undocumented items"}else{addClass(this,"collapsed");onEachLazy(this.parentNode.getElementsByClassName("x"),function(x){if(hasClass(x,"content")===false){addClass(x,"hidden");removeClass(x,"x")}},true);this.innerHTML="["+labelForToggleButton(true)+"] Show hidden undocumented items"}}onEachLazy(document.getElementsByClassName("impl-items"),function(e){onEachLazy(e.getElementsByClassName("associatedconstant"),func);var hiddenElems=e.getElementsByClassName("hidden");var needToggle=false;var hlength=hiddenElems.length;for(var i=0;iLoading search results...";showSearchResults(search)}var sidebar_menu=document.getElementsByClassName("sidebar-menu")[0];if(sidebar_menu){sidebar_menu.onclick=function(){var sidebar=document.getElementsByClassName("sidebar")[0];if(hasClass(sidebar,"mobile")===true){hideSidebar()}else{showSidebar()}}}window.onresize=function(){hideSidebar()};if(main){onEachLazy(main.getElementsByClassName("loading-content"),function(e){e.remove()});onEachLazy(main.childNodes,function(e){if(e.tagName==="H2"||e.tagName==="H3"){var nextTagName=e.nextElementSibling.tagName;if(nextTagName=="H2"||nextTagName=="H3"){e.nextElementSibling.style.display="flex"}else{e.nextElementSibling.style.display="block"}}})}window.addSearchOptions=function(crates){var elem=document.getElementById("crate-search");if(!elem){return}var crates_text=[];if(Object.keys(crates).length>1){for(var crate in crates){if(hasOwnProperty(crates,crate)){crates_text.push(crate)}}}crates_text.sort(function(a,b){var lower_a=a.toLowerCase();var lower_b=b.toLowerCase();if(lower_alower_b){return 1}return 0});var savedCrate=getCurrentValue("rustdoc-saved-filter-crate");for(var i=0;i"
"+x[0]+"
"+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 type.","Accepted types 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(x=>"

"+x+"

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

Search Tricks

"+infos;container.appendChild(div_shortcuts);container.appendChild(div_infos);popup.appendChild(container);insertAfter(popup,getSearchElement())}onHashChange(null);window.onhashchange=onHashChange;buildHelperPopup()}());window.onunload=function(){} \ No newline at end of file diff --git a/normalize.css b/normalize.css new file mode 100644 index 0000000..6d692b5 --- /dev/null +++ b/normalize.css @@ -0,0 +1,2 @@ + /*! normalize.css v3.0.0 | MIT License | git.io/normalize */ +html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0} \ No newline at end of file diff --git a/noscript.css b/noscript.css new file mode 100644 index 0000000..351b41c --- /dev/null +++ b/noscript.css @@ -0,0 +1 @@ +#main>h2+div,#main>h2+h3,#main>h3+div{display:block;}.loading-content{display:none;}#main>h2+div,#main>h3+div{display:block;}#main>h2+h3{display:flex;} \ No newline at end of file diff --git a/rust-logo.png b/rust-logo.png new file mode 100644 index 0000000..74b4bd6 Binary files /dev/null and b/rust-logo.png differ diff --git a/rustdoc.css b/rustdoc.css new file mode 100644 index 0000000..7ba2f0a --- /dev/null +++ b/rustdoc.css @@ -0,0 +1 @@ + @font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular.woff") format('woff');}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium.woff") format('woff');}@font-face {font-family:'Source Serif Pro';font-style:normal;font-weight:400;src:local('Source Serif Pro'),url("SourceSerifPro-Regular.ttf.woff") format('woff');}@font-face {font-family:'Source Serif Pro';font-style:italic;font-weight:400;src:local('Source Serif Pro Italic'),url("SourceSerifPro-It.ttf.woff") format('woff');}@font-face {font-family:'Source Serif Pro';font-style:normal;font-weight:700;src:local('Source Serif Pro Bold'),url("SourceSerifPro-Bold.ttf.woff") format('woff');}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular.woff") format('woff');}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold.woff") format('woff');}*{-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:16px/1.4 "Source Serif Pro",serif;margin:0;position:relative;padding:10px 15px 20px 15px;-webkit-font-feature-settings:"kern","liga";-moz-font-feature-settings:"kern","liga";font-feature-settings:"kern","liga";}h1{font-size:1.5em;}h2{font-size:1.4em;}h3{font-size:1.3em;}h1,h2,h3:not(.impl):not(.method):not(.type):not(.tymethod):not(.notable),h4:not(.method):not(.type):not(.tymethod):not(.associatedconstant){font-weight:500;margin:20px 0 15px 0;padding-bottom:6px;}h1.fqn{border-bottom:1px dashed;margin-top:0;}h1.fqn>.in-band>a:hover{text-decoration:underline;}h2,h3:not(.impl):not(.method):not(.type):not(.tymethod),h4:not(.method):not(.type):not(.tymethod):not(.associatedconstant){border-bottom:1px solid;}h3.impl,h3.method,h4.method,h3.type,h4.type,h4.associatedconstant{flex-basis:100%;font-weight:600;margin-top:16px;margin-bottom:10px;position:relative;}h3.impl,h3.method,h3.type{padding-left:15px;}h1,h2,h3,h4,.sidebar,a.source,.search-input,.content table :not(code)>a,.collapse-toggle,div.item-list .out-of-band,#source-sidebar,#sidebar-toggle{font-family:"Fira Sans",sans-serif;}ol,ul{padding-left:25px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.6em;}p{margin:0 0 .6em 0;}summary{outline:none;}code,pre,a.test-arrow{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.1em;}.docblock pre code,.docblock-short pre code,.docblock code.spotlight{padding:0;}.docblock code.spotlight :last-child{padding-bottom:0.6em;}pre{padding:14px;}.source .content pre{padding:20px;}img{max-width:100%;}li{position:relative;}.source .content{margin-top:50px;max-width:none;overflow:visible;margin-left:0px;min-width:70em;}nav.sub{font-size:16px;text-transform:uppercase;}.sidebar{width:200px;position:fixed;left:0;top:0;bottom:0;overflow:auto;}*{scrollbar-width:initial;}.sidebar{scrollbar-width:thin;}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;}.sidebar .block>ul>li{margin-right:-10px;}.content,nav{max-width:960px;}.hidden{display:none !important;}.logo-container{height:100px;width:100px;position:relative;margin:20px auto;display:block;margin-top:10px;}.logo-container>img{max-width:100px;max-height:100px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:block;}.sidebar .location{border:1px solid;font-size:17px;margin:30px 10px 20px 10px;text-align:center;word-wrap:break-word;}.sidebar .version{font-size:15px;text-align:center;border-bottom:1px solid;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;}.location:empty{border:none;}.location a:first-child{font-weight:500;}.block{padding:0;margin-bottom:14px;}.block h2,.block h3{margin-top:0;margin-bottom:8px;text-align:center;}.block ul,.block li{margin:0 10px;padding:0;list-style:none;}.block a{display:block;text-overflow:ellipsis;overflow:hidden;line-height:15px;padding:7px 5px;font-size:14px;font-weight:300;transition:border 500ms ease-out;}.sidebar-title{border-top:1px solid;border-bottom:1px solid;text-align:center;font-size:17px;margin-bottom:5px;}.sidebar-links{margin-bottom:15px;}.sidebar-links>a{padding-left:10px;width:100%;}.sidebar-menu{display:none;}.content{padding:15px 0;}.source .content pre.rust{white-space:pre;overflow:auto;padding-left:0;}.rustdoc:not(.source) .example-wrap{display:inline-flex;margin-bottom:10px;position:relative;}.example-wrap{width:100%;}.example-wrap>pre.line-number{overflow:initial;border:1px solid;border-top-left-radius:5px;border-bottom-left-radius:5px;padding:13px 8px;text-align:right;}.rustdoc:not(.source) .example-wrap>pre.rust{width:100%;overflow-x:auto;}.rustdoc:not(.source) .example-wrap>pre{margin:0;}#search{margin-left:230px;position:relative;}#results{position:absolute;right:0;left:0;overflow:auto;}#results>table{width:100%;table-layout:fixed;margin-bottom:40px;}.content pre.line-numbers{float:left;border:none;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.line-numbers span{cursor:pointer;}.docblock-short p{display:inline;}.docblock-short.nowrap{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.docblock-short p{overflow:hidden;text-overflow:ellipsis;margin:0;}.docblock code,.docblock-short code{white-space:pre-wrap;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5{border-bottom:1px solid;}#main>.docblock h1{font-size:1.3em;}#main>.docblock h2{font-size:1.15em;}#main>.docblock h3,#main>.docblock h4,#main>.docblock h5{font-size:1em;}#main>h2+div,#main>h2+h3,#main>h3+div{display:none;flex-wrap:wrap;}.docblock h1{font-size:1em;}.docblock h2{font-size:0.95em;}.docblock h3,.docblock h4,.docblock h5{font-size:0.9em;}.docblock{margin-left:24px;position:relative;}.content .out-of-band{float:right;font-size:23px;margin:0px;padding:0px;font-weight:normal;}h3.impl>.out-of-band{font-size:21px;}h4.method>.out-of-band{font-size:19px;}h4>code,h3>code,.invisible>code{max-width:calc(100% - 41px);display:block;}.invisible{width:100%;display:inline-block;}.content .in-band{margin:0px;padding:0px;}.in-band>code{display:inline-block;}#main{position:relative;}#main>.since{top:inherit;font-family:"Fira Sans",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.1em;}.content tr:first-child td{border-top:0;}.docblock table{margin:.5em 0;width:calc(100% - 2px);border:1px dashed;}.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 .method{font-size:1em;position:relative;}.content .method .where,.content .fn .where,.content .where.fmt-newline{display:block;font-size:0.8em;}.content .methods>div:not(.notable-traits){margin-left:40px;margin-bottom:15px;}.content .docblock>.impl-items{margin-left:20px;margin-top:-34px;}.content .docblock>.impl-items>h4{border-bottom:0;}.content .docblock>.impl-items .table-display{margin:0;}.content .docblock>.impl-items table td{padding:0;}.toggle-wrapper.marg-left>.collapse-toggle{left:-24px;}.content .docblock>.impl-items .table-display,.impl-items table td{border:none;}.content .stability code{font-size:90%;}.content .stability{position:relative;margin-left:33px;margin-top:-13px;}.sub-variant>div>.stability{margin-top:initial;}.content .stability::before{content:'⬑';font-size:25px;position:absolute;top:-6px;left:-19px;}.content .impl-items .method,.content .impl-items>.type,.impl-items>.associatedconstant{margin-left:20px;}.content .impl-items .docblock,.content .impl-items .stability{margin-bottom:.6em;}.content .impl-items>.stability{margin-left:40px;}.methods>.stability,.content .impl-items>.stability{margin-top:-8px;}.impl-items{flex-basis:100%;}#main>.stability{margin-top:0;}nav:not(.sidebar){border-bottom:1px solid;padding-bottom:10px;margin-bottom:10px;}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;}nav.sub,.content{margin-left:230px;}a{text-decoration:none;background:transparent;}.small-section-header:hover>.anchor{display:initial;}.in-band:hover>.anchor,.impl:hover>.anchor{display:inline-block;position:absolute;}.anchor{display:none;position:absolute;left:-7px;}.anchor.field{left:-5px;}.small-section-header>.anchor{left:-28px;padding-right:10px;}.anchor:before{content:'\2002\00a7\2002';}.docblock a:not(.srclink):not(.test-arrow):hover,.docblock-short a:not(.srclink):not(.test-arrow):hover,.stability a{text-decoration:underline;}.invisible>.srclink,h4>code+.srclink{position:absolute;top:0;right:0;font-size:17px;font-weight:normal;}.block a.current.crate{font-weight:500;}.search-container{position:relative;}.search-container>div{display:inline-flex;width:calc(100% - 63px);}#crate-search{margin-top:5px;padding:6px;padding-right:19px;flex:none;border:0;border-right:0;border-radius:4px 0 0 4px;outline:none;cursor:pointer;border-right:1px solid;-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%;}.search-container>.top-button{position:absolute;right:0;top:10px;}.search-input{-moz-box-sizing:border-box !important;box-sizing:border-box !important;outline:none;border:none;border-radius:1px;margin-top:5px;padding:10px 16px;font-size:17px;transition:border-color 300ms ease;transition:border-radius 300ms ease-in-out;transition:box-shadow 300ms ease-in-out;width:100%;}#crate-search+.search-input{border-radius:0 1px 1px 0;width:calc(100% - 32px);}.search-input:focus{border-radius:2px;border:0;outline:0;}.search-results .desc{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;}.search-results a{display:block;}.content .search-results td:first-child{padding-right:0;width:50%;}.content .search-results td:first-child a{padding-right:10px;}.content .search-results td:first-child a:after{clear:both;content:"";display:block;}.content .search-results td:first-child a span{float:left;}tr.result span.primitive::after{content:' (primitive type)';font-style:italic;}tr.result span.keyword::after{content:' (keyword)';font-style:italic;}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;}#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:20px;padding-left:17px;}.stab{display:table;border-width:1px;border-style:solid;padding:3px;margin-bottom:5px;font-size:90%;}.stab p{display:inline;}.stab summary{display:list-item;}.stab .emoji{font-size:1.5em;}.module-item .stab{border-radius:3px;display:inline-block;font-size:80%;line-height:1.2;margin-bottom:0;margin-right:.3em;padding:2px;vertical-align:text-bottom;}.module-item.unstable{opacity:0.65;}.since{font-weight:normal;font-size:initial;position:absolute;right:0;top:0;}.impl-items .since,.impl .since{flex-grow:0;padding-left:12px;padding-right:2px;position:initial;}.impl-items .srclink,.impl .srclink{flex-grow:0;font-size:17px;font-weight:normal;}.impl-items code,.impl code{flex-grow:1;}.impl-items h4,h4.impl,h3.impl{display:flex;flex-basis:100%;font-size:16px;margin-bottom:12px;justify-content:space-between;}.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;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:130%;top:5px;right:5px;z-index:1;}a.test-arrow:hover{text-decoration:none;}.section-header:hover a:before{position:absolute;left:-25px;padding-right:10px;content:'\2002\00a7\2002';}.section-header:hover a{text-decoration:none;}.section-header a{color:inherit;}.collapse-toggle{font-weight:300;position:absolute;left:-23px;top:0;}h3>.collapse-toggle,h4>.collapse-toggle{font-size:0.8em;top:5px;}.toggle-wrapper>.collapse-toggle{left:-24px;margin-top:0px;}.toggle-wrapper{position:relative;margin-top:0;}.toggle-wrapper.collapsed{height:25px;transition:height .2s;margin-bottom:.6em;}.collapse-toggle>.inner{display:inline-block;width:1.2ch;text-align:center;}.collapse-toggle.hidden-default{position:relative;margin-left:20px;}.since+.srclink{display:table-cell;padding-left:10px;}.item-spacer{width:100%;height:12px;}.out-of-band>span.since{position:initial;font-size:20px;margin-right:5px;}.toggle-wrapper>.collapse-toggle{left:0;}.variant+.toggle-wrapper+.docblock>p{margin-top:5px;}.sub-variant,.sub-variant>h3{margin-top:1px !important;}#main>.sub-variant>h3{font-size:15px;margin-left:25px;margin-bottom:5px;}.sub-variant>div{margin-left:20px;margin-bottom:10px;}.sub-variant>div>span{display:block;position:relative;}.toggle-label{display:inline-block;margin-left:4px;margin-top:3px;}.enum>.toggle-wrapper+.docblock,.struct>.toggle-wrapper+.docblock{margin-left:30px;margin-bottom:20px;margin-top:5px;}.docblock>.section-header:first-child{margin-left:15px;margin-top:0;}.docblock>.section-header:first-child:hover>a:before{left:-10px;}.enum>.collapsed,.struct>.collapsed{margin-bottom:25px;}#main>.variant,#main>.structfield{display:block;}.attributes{display:block;margin-top:0px !important;margin-right:0px;margin-bottom:0px !important;margin-left:30px;}.toggle-attributes.collapsed{margin-bottom:0;}.impl-items>.toggle-attributes{margin-left:20px;}.impl-items .attributes{font-weight:500;}:target>code{opacity:1;}.information{position:absolute;left:-25px;margin-top:7px;z-index:1;}.tooltip{position:relative;display:inline-block;cursor:pointer;}.tooltip .tooltiptext{width:120px;display:none;text-align:center;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;top:-5px;left:105%;z-index:10;font-size:16px;}.tooltip .tooltiptext::after{content:" ";position:absolute;top:50%;left:16px;margin-top:-5px;border-width:5px;border-style:solid;}.tooltip.compile_fail,.tooltip.should_panic,.tooltip.ignore{font-weight:bold;font-size:20px;}.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:16px;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 .docblock code.content{margin:0;padding:0;font-size:20px;}pre.rust.rust-example-rendered{position:relative;}pre.rust{tab-size:4;-moz-tab-size:4;}.search-failed{text-align:center;margin-top:20px;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#titles{height:35px;}#titles>div{float:left;width:33.3%;text-align:center;font-size:18px;cursor:pointer;border-top:2px solid;}#titles>div:not(:last-child){margin-right:1px;width:calc(33.3% - 1px);}#titles>div>div.count{display:inline-block;font-size:16px;}.notable-traits{cursor:pointer;z-index:2;margin-left:5px;}h4>.notable-traits{position:absolute;left:-44px;top:2px;}#all-types{text-align:center;border:1px solid;margin:0 10px;margin-bottom:10px;display:block;border-radius:7px;}#all-types>p{margin:5px 0;}#sidebar-toggle{position:fixed;top:30px;left:300px;z-index:10;padding:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;cursor:pointer;font-weight:bold;transition:left .5s;font-size:1.2em;border:1px solid;border-left:0;}#source-sidebar{position:fixed;top:0;bottom:0;left:0;width:300px;z-index:1;overflow:auto;transition:left .5s;border-right:1px solid;}#source-sidebar>.title{font-size:1.5em;text-align:center;border-bottom:1px solid;margin-bottom:6px;}.theme-picker{position:absolute;left:211px;top:19px;}.theme-picker button{outline:none;}#settings-menu,.help-button{position:absolute;top:10px;}#settings-menu{right:0;outline:none;}.help-button{right:30px;font-family:"Fira Sans",sans-serif;text-align:center;font-size:17px;}#theme-picker,#settings-menu,.help-button{padding:4px;width:27px;height:29px;border:1px solid;border-radius:3px;cursor:pointer;}#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;text-align:center;background:rgba(0,0,0,0);}#theme-choices>button:not(:first-child){border-top:1px solid;}@media (min-width:701px){.information:first-child>.tooltip{margin-top:16px;}}@media (max-width:700px){body{padding-top:0px;}.rustdoc>.sidebar{height:45px;min-height:40px;margin:0;margin-left:-15px;padding:0 15px;position:static;z-index:11;}.sidebar>.location{float:right;margin:0px;margin-top:2px;padding:3px 10px 1px 10px;min-height:39px;background:inherit;text-align:left;font-size:24px;}.sidebar .location:empty{padding:0;}.sidebar .logo-container{width:35px;height:35px;margin-top:5px;margin-bottom:5px;float:left;margin-left:50px;}.sidebar .logo-container>img{max-width:35px;max-height:35px;}.sidebar-menu{position:fixed;z-index:10;font-size:2rem;cursor:pointer;width:45px;left:0;text-align:center;display:block;border-bottom:1px solid;border-right:1px solid;height:45px;}.rustdoc.source>.sidebar>.sidebar-menu{display:none;}.sidebar-elems{position:fixed;z-index:1;left:0;top:45px;bottom:0;overflow-y:auto;border-right:1px solid;display:none;}.sidebar>.block.version{border-bottom:none;margin-top:12px;}nav.sub{width:calc(100% - 32px);float:right;}.content{margin-left:0px;}#main{margin-top:45px;padding:0;}.content .in-band{width:100%;}.content h4>.out-of-band{position:inherit;}.toggle-wrapper>.collapse-toggle{left:0px;}.toggle-wrapper{height:1.5em;}#search{margin-left:0;}.content .impl-items .method,.content .impl-items>.type,.impl-items>.associatedconstant{display:flex;}.anchor{display:none !important;}h1.fqn{overflow:initial;}.theme-picker{left:10px;top:54px;z-index:1;}h4>.notable-traits{position:absolute;left:-22px;top:24px;}#titles>div>div.count{float:left;width:100%;}#titles{height:50px;}.sidebar.mobile{position:fixed;width:100%;margin-left:0;background-color:rgba(0,0,0,0);height:100%;}.sidebar{width:calc(100% + 30px);}.show-it{display:block;width:246px;}.show-it>.block.items{margin:8px 0;}.show-it>.block.items>ul{margin:0;}.show-it>.block.items>ul>li{text-align:center;margin:2px 0;}.show-it>.block.items>ul>li>a{font-size:21px;}#sidebar-filler{position:fixed;left:45px;width:calc(100% - 45px);top:0;height:45px;z-index:-1;border-bottom:1px solid;}.collapse-toggle{left:-20px;}.impl>.collapse-toggle{left:-10px;}#all-types{margin:10px;}#sidebar-toggle{top:100px;width:30px;font-size:1.5rem;text-align:center;padding:0;}#source-sidebar{z-index:11;}#main>.line-numbers{margin-top:0;}.notable-traits .notable-traits-tooltiptext{left:0;top:100%;}}@media print{nav.sub,.content .out-of-band,.collapse-toggle{display:none;}}@media (max-width:416px){#titles{height:73px;}#titles>div{height:73px;}}h3.notable{margin:0;margin-bottom:13px;font-size:19px;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px;border-radius:3px;box-shadow:inset 0 -1px 0;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:16px;}.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:19px;display:block;}#implementors-list>.impl-items .table-display .out-of-band{font-size:17px;}.table-display td:hover .anchor{display:block;top:2px;left:-5px;}#main>ul{padding-left:10px;}#main>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.7em;position:absolute;left:-16px;top:4px;}div.name.expand::before{transform:rotate(90deg);left:-15px;top:2px;}.type-decl>pre>.toggle-wrapper.toggle-attributes.top-attr{margin-left:0 !important;}.type-decl>pre>.docblock.attributes.top-attr{margin-left:1.8em !important;}.type-decl>pre>.toggle-attributes{margin-left:2.2em;}.type-decl>pre>.docblock.attributes{margin-left:4em;} \ No newline at end of file diff --git a/search-index.js b/search-index.js new file mode 100644 index 0000000..d7ba152 --- /dev/null +++ b/search-index.js @@ -0,0 +1,4 @@ +var searchIndex = JSON.parse('{\ +"soa_derive_example":{"doc":"This crate is an example for the [`soa_derive`] crate…","i":[[3,"Particle","soa_derive_example","A basic Particle type",null,null],[12,"mass","","Mass of the particle",0,null],[12,"position","","Position of the particle",0,null],[12,"kind","","Kind of the particle",0,null],[12,"name","","Name of the particle",0,null],[3,"ParticleVec","","An analog to `Vec ` with Struct of Array (SoA)…",null,null],[12,"mass","","A vector of `mass` from a `Particle`",1,null],[12,"position","","A vector of `position` from a `Particle`",1,null],[12,"kind","","A vector of `kind` from a `Particle`",1,null],[12,"name","","A vector of `name` from a `Particle`",1,null],[3,"ParticleRef","","A reference to a `Particle` with struct of array layout.",null,null],[12,"mass","","A reference to a `mass` from a `ParticleVec`",2,null],[12,"position","","A reference to a `position` from a `ParticleVec`",2,null],[12,"kind","","A reference to a `kind` from a `ParticleVec`",2,null],[12,"name","","A reference to a `name` from a `ParticleVec`",2,null],[3,"ParticleRefMut","","A mutable reference to a `Particle` with struct of array…",null,null],[12,"mass","","A mutable reference to a `mass` from a `ParticleVec`",3,null],[12,"position","","A mutable reference to a `position` from a `ParticleVec`",3,null],[12,"kind","","A mutable reference to a `kind` from a `ParticleVec`",3,null],[12,"name","","A mutable reference to a `name` from a `ParticleVec`",3,null],[3,"ParticlePtr","","An analog of a pointer to `Particle` with struct of array…",null,null],[12,"mass","","A pointer to a `mass` from a `ParticleVec`",4,null],[12,"position","","A pointer to a `position` from a `ParticleVec`",4,null],[12,"kind","","A pointer to a `kind` from a `ParticleVec`",4,null],[12,"name","","A pointer to a `name` from a `ParticleVec`",4,null],[3,"ParticlePtrMut","","An analog of a mutable pointer to `Particle` with struct…",null,null],[12,"mass","","A mutable pointer to a `mass` from a `ParticleVec`",5,null],[12,"position","","A mutable pointer to a `position` from a `ParticleVec`",5,null],[12,"kind","","A mutable pointer to a `kind` from a `ParticleVec`",5,null],[12,"name","","A mutable pointer to a `name` from a `ParticleVec`",5,null],[3,"ParticleSlice","","A slice of `Particle` inside a `ParticleVec` .",null,null],[12,"mass","","A slice of `mass` from a `ParticleVec`",6,null],[12,"position","","A slice of `position` from a `ParticleVec`",6,null],[12,"kind","","A slice of `kind` from a `ParticleVec`",6,null],[12,"name","","A slice of `name` from a `ParticleVec`",6,null],[3,"ParticleSliceMut","","A mutable slice of `Particle` inside a `ParticleVec` .",null,null],[12,"mass","","A mutable slice of `mass` from a `ParticleVec`",7,null],[12,"position","","A mutable slice of `position` from a `ParticleVec`",7,null],[12,"kind","","A mutable slice of `kind` from a `ParticleVec`",7,null],[12,"name","","A mutable slice of `name` from a `ParticleVec`",7,null],[11,"iter","","Get an iterator over the `ParticleRef` in this vector",1,[[],["iter",3]]],[11,"iter","","Get an iterator over the `ParticleRef` in this slice.",6,[[],["iter",3]]],[11,"iter_mut","","Get a mutable iterator over the `ParticleRefMut` in this…",1,[[],["itermut",3]]],[11,"iter","","Get an iterator over the `ParticleRef` in this vector",7,[[],["iter",3]]],[11,"iter_mut","","Get a mutable iterator over the `ParticleRefMut` in this…",7,[[],["itermut",3]]],[11,"new","","Similar to ` Vec ::new()`",1,[[],["particlevec",3]]],[11,"with_capacity","","Similar to ` Vec ::with_capacity()`,…",1,[[],["particlevec",3]]],[11,"capacity","","Similar to ` Vec ::capacity()`, the capacity of…",1,[[]]],[11,"reserve","","Similar to ` Vec ::reserve()`, reserving the…",1,[[]]],[11,"reserve_exact","","Similar to ` Vec ::reserve_exact()` reserving…",1,[[]]],[11,"shrink_to_fit","","Similar to ` Vec ::shrink_to_fit()` shrinking…",1,[[]]],[11,"truncate","","Similar to ` Vec ::truncate()` truncating all…",1,[[]]],[11,"push","","Similar to ` Vec ::push()`.",1,[[["particle",3]]]],[11,"len","","Similar to ` Vec ::len()`, all the fields should…",1,[[]]],[11,"is_empty","","Similar to ` Vec ::is_empty()`, all the fields…",1,[[]]],[11,"swap_remove","","Similar to ` Vec ::swap_remove()`.",1,[[],["particle",3]]],[11,"insert","","Similar to ` Vec ::insert()`.",1,[[["particle",3]]]],[11,"remove","","Similar to ` Vec ::remove()`.",1,[[],["particle",3]]],[11,"pop","","Similar to ` Vec ::pop()`.",1,[[],[["particle",3],["option",4]]]],[11,"append","","Similar to ` Vec ::append()`.",1,[[["particlevec",3]]]],[11,"clear","","Similar to ` Vec ::clear()`.",1,[[]]],[11,"split_off","","Similar to ` Vec ::split_off()`.",1,[[],["particlevec",3]]],[11,"as_slice","","Similar to ` Vec ::as_slice()`.",1,[[],["particleslice",3]]],[11,"as_mut_slice","","Similar to ` Vec ::as_mut_slice()`.",1,[[],["particleslicemut",3]]],[11,"slice","","Create a slice of this vector matching the given `range`.…",1,[[["range",3]],["particleslice",3]]],[11,"slice_mut","","Create a mutable slice of this vector matching the given…",1,[[["range",3]],["particleslicemut",3]]],[11,"retain","","Similar to ` Vec ::retain()`.",1,[[]]],[11,"get","","Similar to ` Vec ::get()`.",1,[[],["option",4]]],[11,"get_unchecked","","Similar to ` Vec ::get_unchecked()`.",1,[[]]],[11,"index","","Similar to ` Vec ::index()`.",1,[[]]],[11,"get_mut","","Similar to ` Vec ::get_mut()`.",1,[[],["option",4]]],[11,"get_unchecked_mut","","Similar to ` Vec ::get_unchecked_mut()`.",1,[[]]],[11,"index_mut","","Similar to ` Vec ::index_mut()`.",1,[[]]],[11,"as_ptr","","Similar to ` Vec ::as_ptr()`.",1,[[],["particleptr",3]]],[11,"as_mut_ptr","","Similar to ` Vec ::as_mut_ptr()`.",1,[[],["particleptrmut",3]]],[11,"from_raw_parts","","Similar to ` Vec ::from_raw_parts()`.",1,[[["particleptrmut",3]],["particlevec",3]]],[11,"as_ref","","Create a `ParticleRef` from a borrowed `Particle` .",0,[[],["particleref",3]]],[11,"as_mut","","Create a `ParticleRefMut` from a mutably borrowed…",0,[[],["particlerefmut",3]]],[11,"as_mut_ptr","","Convert a `ParticlePtr` to a `ParticlePtrMut` ; i.e. do a…",4,[[],["particleptrmut",3]]],[11,"is_null","","Similar to `*const T::is_null()`.",4,[[]]],[11,"as_ref","","Similar to `*const T::as_ref()`, with the same safety…",4,[[],[["option",4],["particleref",3]]]],[11,"offset","","Similar to `*const T::offset()`, with the same safety…",4,[[],["particleptr",3]]],[11,"wrapping_offset","","Similar to `*const T::offset()`.",4,[[],["particleptr",3]]],[11,"add","","Similar to `*const T::add()`, with the same safety caveats.",4,[[],["particleptr",3]]],[11,"sub","","Similar to `*const T::sub()`, with the same safety caveats.",4,[[],["particleptr",3]]],[11,"wrapping_add","","Similar to `*const T::wrapping_add()`.",4,[[],["particleptr",3]]],[11,"wrapping_sub","","Similar to `*const T::wrapping_sub()`.",4,[[],["particleptr",3]]],[11,"read","","Similar to `*const T::read()`, with the same safety caveats.",4,[[],["particle",3]]],[11,"read_volatile","","Similar to `*const T::read_volatile()`, with the same…",4,[[],["particle",3]]],[11,"read_unaligned","","Similar to `*const T::read_unaligned()`, with the same…",4,[[],["particle",3]]],[11,"as_ptr","","Convert a `ParticlePtrMut` to a `ParticlePtr` ; i.e. do a…",5,[[],["particleptr",3]]],[11,"is_null","","Similar to `*mut T::is_null()`.",5,[[]]],[11,"as_ref","","Similar to `*mut T::as_ref()`, with the same safety caveats.",5,[[],[["option",4],["particleref",3]]]],[11,"as_mut","","Similar to `*mut T::as_mut()`, with the same safety caveats.",5,[[],[["particlerefmut",3],["option",4]]]],[11,"offset","","Similar to `*mut T::offset()`, with the same safety caveats.",5,[[],["particleptrmut",3]]],[11,"wrapping_offset","","Similar to `*mut T::wrapping_offset()`",5,[[],["particleptrmut",3]]],[11,"add","","Similar to `*mut T::add()`, with the same safety caveats.",5,[[],["particleptrmut",3]]],[11,"sub","","Similar to `*mut T::sub()`, with the same safety caveats.",5,[[],["particleptrmut",3]]],[11,"wrapping_add","","Similar to `*mut T::wrapping_add()`, with the same safety…",5,[[],["particleptrmut",3]]],[11,"wrapping_sub","","Similar to `*mut T::wrapping_sub()`, with the same safety…",5,[[],["particleptrmut",3]]],[11,"read","","Similar to `*mut T::read()`, with the same safety caveats.",5,[[],["particle",3]]],[11,"read_volatile","","Similar to `*mut T::read_volatile()`, with the same safety…",5,[[],["particle",3]]],[11,"read_unaligned","","Similar to `*mut T::read_unaligned()`, with the same…",5,[[],["particle",3]]],[11,"write","","Similar to `*mut T::write()`, with the same safety caveats.",5,[[["particle",3]]]],[11,"write_volatile","","Similar to `*mut T::write_volatile()`, with the same…",5,[[["particle",3]]]],[11,"write_unaligned","","Similar to `*mut T::write_unaligned()`, with the same…",5,[[["particle",3]]]],[11,"as_ptr","","Convert a `ParticleRef` to a `ParticlePtr` ; i.e. do a `&T…",2,[[],["particleptr",3]]],[11,"as_ptr","","Convert a `ParticleRefMut` to a `ParticlePtr` ; i.e. do a…",3,[[],["particleptr",3]]],[11,"as_mut_ptr","","Convert a `ParticleRefMut` to a `ParticlePtrMut` ; i.e. do…",3,[[],["particleptrmut",3]]],[11,"len","","Similar to ` [Particle] ::len()`, the length of all fields…",6,[[]]],[11,"is_empty","","Similar to ` [Particle] ::is_empty()`, the length of all…",6,[[]]],[11,"first","","Similar to ` [Particle] ::first()`.",6,[[],[["option",4],["particleref",3]]]],[11,"split_first","","Similar to ` [Particle] ::split_first()`.",6,[[],["option",4]]],[11,"last","","Similar to ` [Particle] ::last()`.",6,[[],[["option",4],["particleref",3]]]],[11,"split_last","","Similar to ` [Particle] ::split_last()`.",6,[[],["option",4]]],[11,"split_at","","Similar to ` [Particle] ::split_at()`.",6,[[]]],[11,"get","","Similar to ` [Particle] ::get()`.",6,[[],["option",4]]],[11,"get_unchecked","","Similar to ` [Particle] ::get_unchecked()`.",6,[[]]],[11,"index","","Similar to `std::ops::Index` trait on [Particle] . This is…",6,[[]]],[11,"reborrow","","Reborrows the slices in a narrower lifetime",6,[[],["particleslice",3]]],[11,"as_ptr","","Similar to ` [Particle] ::as_ptr()`.",6,[[],["particleptr",3]]],[11,"from_raw_parts","","Similar to `std::slice::from_raw_parts()`.",6,[[["particleptr",3]],["particleslice",3]]],[11,"as_ref","","Convert a `ParticleSliceMut` to a `ParticleSlice` in order…",7,[[],["particleslice",3]]],[11,"len","","Similar to ` [Particle] ::len()`, the length of all fields…",7,[[]]],[11,"is_empty","","Similar to ` [Particle] ::is_empty()`, the length of all…",7,[[]]],[11,"first_mut","","Similar to ` [Particle] ::first_mut()`.",7,[[],[["particlerefmut",3],["option",4]]]],[11,"split_first_mut","","Similar to ` [Particle] ::split_first_mut()`.",7,[[],["option",4]]],[11,"last_mut","","Similar to ` [Particle] ::last_mut()`.",7,[[],[["particlerefmut",3],["option",4]]]],[11,"split_last_mut","","Similar to ` [Particle] ::last_mut()`.",7,[[],["option",4]]],[11,"split_at_mut","","Similar to ` [Particle] ::split_at_mut()`.",7,[[]]],[11,"swap","","Similar to ` [Particle] ::swap()`.",7,[[]]],[11,"get","","Similar to ` [Particle] ::get()`.",7,[[],["option",4]]],[11,"get_unchecked","","Similar to ` [Particle] ::get_unchecked()`.",7,[[]]],[11,"index","","Similar to `std::ops::Index` trait on [Particle] . This is…",7,[[]]],[11,"get_mut","","Similar to ` [Particle] ::get_mut()`.",7,[[],["option",4]]],[11,"get_unchecked_mut","","Similar to ` [Particle] ::get_unchecked_mut()`.",7,[[]]],[11,"index_mut","","Similar to `std::ops::IndexMut` trait on [Particle] . This…",7,[[]]],[11,"as_slice","","Returns a non-mutable slice from this mutable slice.",7,[[],["particleslice",3]]],[11,"reborrow","","Reborrows the slices in a narrower lifetime",7,[[],["particleslicemut",3]]],[11,"as_ptr","","Similar to ` [Particle] ::as_ptr()`.",7,[[],["particleptr",3]]],[11,"as_mut_ptr","","Similar to ` [Particle] ::as_mut_ptr()`.",7,[[],["particleptrmut",3]]],[11,"from_raw_parts_mut","","Similar to `std::slice::from_raw_parts_mut()`.",7,[[["particleptrmut",3]],["particleslicemut",3]]],[11,"from","","",0,[[]]],[11,"into","","",0,[[]]],[11,"try_from","","",0,[[],["result",4]]],[11,"try_into","","",0,[[],["result",4]]],[11,"borrow","","",0,[[]]],[11,"borrow_mut","","",0,[[]]],[11,"type_id","","",0,[[],["typeid",3]]],[11,"from","","",1,[[]]],[11,"into","","",1,[[]]],[11,"try_from","","",1,[[],["result",4]]],[11,"try_into","","",1,[[],["result",4]]],[11,"borrow","","",1,[[]]],[11,"borrow_mut","","",1,[[]]],[11,"type_id","","",1,[[],["typeid",3]]],[11,"from","","",2,[[]]],[11,"into","","",2,[[]]],[11,"to_owned","","",2,[[]]],[11,"clone_into","","",2,[[]]],[11,"try_from","","",2,[[],["result",4]]],[11,"try_into","","",2,[[],["result",4]]],[11,"borrow","","",2,[[]]],[11,"borrow_mut","","",2,[[]]],[11,"type_id","","",2,[[],["typeid",3]]],[11,"from","","",3,[[]]],[11,"into","","",3,[[]]],[11,"try_from","","",3,[[],["result",4]]],[11,"try_into","","",3,[[],["result",4]]],[11,"borrow","","",3,[[]]],[11,"borrow_mut","","",3,[[]]],[11,"type_id","","",3,[[],["typeid",3]]],[11,"from","","",4,[[]]],[11,"into","","",4,[[]]],[11,"to_owned","","",4,[[]]],[11,"clone_into","","",4,[[]]],[11,"try_from","","",4,[[],["result",4]]],[11,"try_into","","",4,[[],["result",4]]],[11,"borrow","","",4,[[]]],[11,"borrow_mut","","",4,[[]]],[11,"type_id","","",4,[[],["typeid",3]]],[11,"from","","",5,[[]]],[11,"into","","",5,[[]]],[11,"to_owned","","",5,[[]]],[11,"clone_into","","",5,[[]]],[11,"try_from","","",5,[[],["result",4]]],[11,"try_into","","",5,[[],["result",4]]],[11,"borrow","","",5,[[]]],[11,"borrow_mut","","",5,[[]]],[11,"type_id","","",5,[[],["typeid",3]]],[11,"from","","",6,[[]]],[11,"into","","",6,[[]]],[11,"into_iter","","",6,[[]]],[11,"to_owned","","",6,[[]]],[11,"clone_into","","",6,[[]]],[11,"try_from","","",6,[[],["result",4]]],[11,"try_into","","",6,[[],["result",4]]],[11,"borrow","","",6,[[]]],[11,"borrow_mut","","",6,[[]]],[11,"type_id","","",6,[[],["typeid",3]]],[11,"from","","",7,[[]]],[11,"into","","",7,[[]]],[11,"into_iter","","",7,[[]]],[11,"try_from","","",7,[[],["result",4]]],[11,"try_into","","",7,[[],["result",4]]],[11,"borrow","","",7,[[]]],[11,"borrow_mut","","",7,[[]]],[11,"type_id","","",7,[[],["typeid",3]]],[11,"into_iter","","",6,[[]]],[11,"into_iter","","",7,[[]]],[11,"clone","","",2,[[],["particleref",3]]],[11,"clone","","",4,[[],["particleptr",3]]],[11,"clone","","",5,[[],["particleptrmut",3]]],[11,"clone","","",6,[[],["particleslice",3]]],[11,"eq","","",0,[[["particle",3]]]],[11,"ne","","",0,[[["particle",3]]]],[11,"eq","","",1,[[["particlevec",3]]]],[11,"ne","","",1,[[["particlevec",3]]]],[11,"eq","","",2,[[["particleref",3]]]],[11,"ne","","",2,[[["particleref",3]]]],[11,"eq","","",3,[[["particlerefmut",3]]]],[11,"ne","","",3,[[["particlerefmut",3]]]],[11,"eq","","",4,[[["particleptr",3]]]],[11,"ne","","",4,[[["particleptr",3]]]],[11,"eq","","",5,[[["particleptrmut",3]]]],[11,"ne","","",5,[[["particleptrmut",3]]]],[11,"eq","","",6,[[["particleslice",3]]]],[11,"ne","","",6,[[["particleslice",3]]]],[11,"eq","","",7,[[["particleslicemut",3]]]],[11,"ne","","",7,[[["particleslicemut",3]]]],[11,"fmt","","",0,[[["formatter",3]],["result",6]]],[11,"fmt","","",1,[[["formatter",3]],["result",6]]],[11,"fmt","","",2,[[["formatter",3]],["result",6]]],[11,"fmt","","",3,[[["formatter",3]],["result",6]]],[11,"fmt","","",4,[[["formatter",3]],["result",6]]],[11,"fmt","","",5,[[["formatter",3]],["result",6]]],[11,"fmt","","",6,[[["formatter",3]],["result",6]]],[11,"fmt","","",7,[[["formatter",3]],["result",6]]],[11,"from_iter","","",1,[[["intoiterator",8]]]]],"p":[[3,"Particle"],[3,"ParticleVec"],[3,"ParticleRef"],[3,"ParticleRefMut"],[3,"ParticlePtr"],[3,"ParticlePtrMut"],[3,"ParticleSlice"],[3,"ParticleSliceMut"]]}\ +}'); +addSearchOptions(searchIndex);initSearch(searchIndex); \ No newline at end of file diff --git a/settings.css b/settings.css new file mode 100644 index 0000000..6ce7665 --- /dev/null +++ b/settings.css @@ -0,0 +1 @@ +.setting-line{padding:5px;position:relative;}.setting-line>div{max-width:calc(100% - 74px);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;}.toggle{position:relative;display:inline-block;width:45px;height:27px;margin-right:20px;}.toggle input{display:none;}.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 1px #2196F3;}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/settings.html b/settings.html new file mode 100644 index 0000000..f941feb --- /dev/null +++ b/settings.html @@ -0,0 +1,3 @@ +Rustdoc settings

Rustdoc settings

Auto-hide item declarations
Auto-hide structs declaration
Auto-hide enums declaration
Auto-hide unions declaration
Auto-hide traits declaration
Auto-hide macros declaration
+
Auto-hide item attributes.
Auto-hide item methods' documentation
Auto-hide trait implementation documentation
Auto-hide implementors of a trait
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 diff --git a/settings.js b/settings.js new file mode 100644 index 0000000..9930309 --- /dev/null +++ b/settings.js @@ -0,0 +1 @@ +(function(){function changeSetting(settingName,isEnabled){updateLocalStorage('rustdoc-'+settingName,isEnabled)}function getSettingValue(settingName){return getCurrentValue('rustdoc-'+settingName)}function setEvents(){var elems=document.getElementsByClassName("slider");if(!elems||elems.length===0){return}for(var i=0;iList of all items in this crate

[] + + List of all items

Structs

\ No newline at end of file diff --git a/soa_derive_example/index.html b/soa_derive_example/index.html new file mode 100644 index 0000000..981081e --- /dev/null +++ b/soa_derive_example/index.html @@ -0,0 +1,48 @@ +soa_derive_example - Rust

[][src]Crate soa_derive_example

This crate is an example for the soa_derive crate functionalities. All +the code is generated by a single file:

+ +
+#[macro_use]
+extern crate soa_derive;
+
+/// A basic Particle type
+#[derive(Debug, PartialEq, StructOfArray)]
+#[soa_derive = "Debug, PartialEq"]
+pub struct Particle {
+    /// Mass of the particle
+    pub mass: f64,
+    /// Position of the particle
+    pub position: [f64; 3],
+    /// Kind of the particle
+    pub kind: usize,
+    /// Name of the particle
+    pub name: String,
+}
+

Structs

+
Particle

A basic Particle type

+
ParticlePtr

An analog of a pointer to +Particle +with struct of array layout.

+
ParticlePtrMut

An analog of a mutable pointer to +Particle +with struct of array layout.

+
ParticleRef

A reference to a +Particle +with struct of array layout.

+
ParticleRefMut

A mutable reference to a +Particle +with struct of array layout.

+
ParticleSlice

A slice of +Particle +inside a +ParticleVec +.

+
ParticleSliceMut

A mutable slice of +Particle +inside a +ParticleVec +.

+
ParticleVec

An analog to Vec<Particle> + with Struct of Array (SoA) layout

+
\ No newline at end of file diff --git a/soa_derive_example/sidebar-items.js b/soa_derive_example/sidebar-items.js new file mode 100644 index 0000000..f5bbf79 --- /dev/null +++ b/soa_derive_example/sidebar-items.js @@ -0,0 +1 @@ +initSidebarItems({"struct":[["Particle","A basic Particle type"],["ParticlePtr","An analog of a pointer to `Particle` with struct of array layout."],["ParticlePtrMut","An analog of a mutable pointer to `Particle` with struct of array layout."],["ParticleRef","A reference to a `Particle` with struct of array layout."],["ParticleRefMut","A mutable reference to a `Particle` with struct of array layout."],["ParticleSlice","A slice of `Particle` inside a `ParticleVec` ."],["ParticleSliceMut","A mutable slice of `Particle` inside a `ParticleVec` ."],["ParticleVec","An analog to `Vec ` with Struct of Array (SoA) layout"]]}); \ No newline at end of file diff --git a/soa_derive_example/struct.Particle.html b/soa_derive_example/struct.Particle.html new file mode 100644 index 0000000..9c0bca5 --- /dev/null +++ b/soa_derive_example/struct.Particle.html @@ -0,0 +1,36 @@ +soa_derive_example::Particle - Rust

[][src]Struct soa_derive_example::Particle

pub struct Particle {
+    pub mass: f64,
+    pub position: [f64; 3],
+    pub kind: usize,
+    pub name: String,
+}

A basic Particle type

+

+ Fields

mass: f64

Mass of the particle

+
position: [f64; 3]

Position of the particle

+
kind: usize

Kind of the particle

+
name: String

Name of the particle

+

Implementations

impl Particle[src]

pub fn as_ref(&self) -> ParticleRef<'_>[src]

Create a +ParticleRef +from a borrowed +Particle +.

+

pub fn as_mut(&mut self) -> ParticleRefMut<'_>[src]

Create a +ParticleRefMut +from a mutably borrowed +Particle +.

+

Trait Implementations

impl Debug for Particle[src]

impl FromIterator<Particle> for ParticleVec[src]

impl PartialEq<Particle> for Particle[src]

impl StructOfArray for Particle[src]

impl StructuralPartialEq for Particle[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

+

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

+
\ No newline at end of file diff --git a/soa_derive_example/struct.ParticlePtr.html b/soa_derive_example/struct.ParticlePtr.html new file mode 100644 index 0000000..b94e5b5 --- /dev/null +++ b/soa_derive_example/struct.ParticlePtr.html @@ -0,0 +1,56 @@ +soa_derive_example::ParticlePtr - Rust

[][src]Struct soa_derive_example::ParticlePtr

pub struct ParticlePtr {
+    pub mass: *const f64,
+    pub position: *const [f64; 3],
+    pub kind: *const usize,
+    pub name: *const String,
+}

An analog of a pointer to +Particle +with struct of array layout.

+

+ Fields

mass: *const f64

A pointer to a mass from a ParticleVec

+
position: *const [f64; 3]

A pointer to a position from a ParticleVec

+
kind: *const usize

A pointer to a kind from a ParticleVec

+
name: *const String

A pointer to a name from a ParticleVec

+

Implementations

impl ParticlePtr[src]

pub fn as_mut_ptr(&self) -> ParticlePtrMut[src]

Convert a +ParticlePtr +to a +ParticlePtrMut +; i.e. do a *const T as *mut T transformation.

+

pub fn is_null(self) -> bool[src]

Similar to *const T::is_null().

+

pub unsafe fn as_ref<'a>(self) -> Option<ParticleRef<'a>>[src]

Similar to *const T::as_ref(), +with the same safety caveats.

+

pub unsafe fn offset(self, count: isize) -> ParticlePtr[src]

Similar to *const T::offset(), +with the same safety caveats.

+

pub fn wrapping_offset(self, count: isize) -> ParticlePtr[src]

Similar to *const T::offset().

+

pub unsafe fn add(self, count: usize) -> ParticlePtr[src]

Similar to *const T::add(), +with the same safety caveats.

+

pub unsafe fn sub(self, count: usize) -> ParticlePtr[src]

Similar to *const T::sub(), +with the same safety caveats.

+

pub fn wrapping_add(self, count: usize) -> ParticlePtr[src]

pub fn wrapping_sub(self, count: usize) -> ParticlePtr[src]

pub unsafe fn read(self) -> Particle[src]

Similar to *const T::read(), +with the same safety caveats.

+

pub unsafe fn read_volatile(self) -> Particle[src]

Similar to *const T::read_volatile(), +with the same safety caveats.

+

pub unsafe fn read_unaligned(self) -> Particle[src]

Similar to *const T::read_unaligned(), +with the same safety caveats.

+

Trait Implementations

impl Clone for ParticlePtr[src]

impl Copy for ParticlePtr[src]

impl Debug for ParticlePtr[src]

impl PartialEq<ParticlePtr> for ParticlePtr[src]

impl StructuralPartialEq for ParticlePtr[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

+

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

+

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

+
\ No newline at end of file diff --git a/soa_derive_example/struct.ParticlePtrMut.html b/soa_derive_example/struct.ParticlePtrMut.html new file mode 100644 index 0000000..5ad6a1f --- /dev/null +++ b/soa_derive_example/struct.ParticlePtrMut.html @@ -0,0 +1,66 @@ +soa_derive_example::ParticlePtrMut - Rust

[][src]Struct soa_derive_example::ParticlePtrMut

pub struct ParticlePtrMut {
+    pub mass: *mut f64,
+    pub position: *mut [f64; 3],
+    pub kind: *mut usize,
+    pub name: *mut String,
+}

An analog of a mutable pointer to +Particle +with struct of array layout.

+

+ Fields

mass: *mut f64

A mutable pointer to a mass from a ParticleVec

+
position: *mut [f64; 3]

A mutable pointer to a position from a ParticleVec

+
kind: *mut usize

A mutable pointer to a kind from a ParticleVec

+
name: *mut String

A mutable pointer to a name from a ParticleVec

+

Implementations

impl ParticlePtrMut[src]

pub fn as_ptr(&self) -> ParticlePtr[src]

Convert a +ParticlePtrMut +to a +ParticlePtr +; i.e. do a *mut T as *const T transformation

+

pub fn is_null(self) -> bool[src]

Similar to *mut T::is_null().

+

pub unsafe fn as_ref<'a>(self) -> Option<ParticleRef<'a>>[src]

Similar to *mut T::as_ref(), +with the same safety caveats.

+

pub unsafe fn as_mut<'a>(self) -> Option<ParticleRefMut<'a>>[src]

Similar to *mut T::as_mut(), +with the same safety caveats.

+

pub unsafe fn offset(self, count: isize) -> ParticlePtrMut[src]

Similar to *mut T::offset(), +with the same safety caveats.

+

pub fn wrapping_offset(self, count: isize) -> ParticlePtrMut[src]

pub unsafe fn add(self, count: usize) -> ParticlePtrMut[src]

Similar to *mut T::add(), +with the same safety caveats.

+

pub unsafe fn sub(self, count: usize) -> ParticlePtrMut[src]

Similar to *mut T::sub(), +with the same safety caveats.

+

pub fn wrapping_add(self, count: usize) -> ParticlePtrMut[src]

Similar to *mut T::wrapping_add(), +with the same safety caveats.

+

pub fn wrapping_sub(self, count: usize) -> ParticlePtrMut[src]

Similar to *mut T::wrapping_sub(), +with the same safety caveats.

+

pub unsafe fn read(self) -> Particle[src]

Similar to *mut T::read(), +with the same safety caveats.

+

pub unsafe fn read_volatile(self) -> Particle[src]

Similar to *mut T::read_volatile(), +with the same safety caveats.

+

pub unsafe fn read_unaligned(self) -> Particle[src]

Similar to *mut T::read_unaligned(), +with the same safety caveats.

+

pub unsafe fn write(self, val: Particle)[src]

Similar to *mut T::write(), +with the same safety caveats.

+

pub unsafe fn write_volatile(self, val: Particle)[src]

Similar to *mut T::write_volatile(), +with the same safety caveats.

+

pub unsafe fn write_unaligned(self, val: Particle)[src]

Similar to *mut T::write_unaligned(), +with the same safety caveats.

+

Trait Implementations

impl Clone for ParticlePtrMut[src]

impl Copy for ParticlePtrMut[src]

impl Debug for ParticlePtrMut[src]

impl PartialEq<ParticlePtrMut> for ParticlePtrMut[src]

impl StructuralPartialEq for ParticlePtrMut[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

+

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

+

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

+
\ No newline at end of file diff --git a/soa_derive_example/struct.ParticleRef.html b/soa_derive_example/struct.ParticleRef.html new file mode 100644 index 0000000..430e66b --- /dev/null +++ b/soa_derive_example/struct.ParticleRef.html @@ -0,0 +1,38 @@ +soa_derive_example::ParticleRef - Rust

[][src]Struct soa_derive_example::ParticleRef

pub struct ParticleRef<'a> {
+    pub mass: &'a f64,
+    pub position: &'a [f64; 3],
+    pub kind: &'a usize,
+    pub name: &'a String,
+}

A reference to a +Particle +with struct of array layout.

+

+ Fields

mass: &'a f64

A reference to a mass from a ParticleVec

+
position: &'a [f64; 3]

A reference to a position from a ParticleVec

+
kind: &'a usize

A reference to a kind from a ParticleVec

+
name: &'a String

A reference to a name from a ParticleVec

+

Implementations

impl<'a> ParticleRef<'a>[src]

pub fn as_ptr(&self) -> ParticlePtr[src]

Convert a +ParticleRef +to a +ParticlePtr +; i.e. do a &T as *const T transformation

+

Trait Implementations

impl<'a> Clone for ParticleRef<'a>[src]

impl<'a> Copy for ParticleRef<'a>[src]

impl<'a> Debug for ParticleRef<'a>[src]

impl<'a> PartialEq<ParticleRef<'a>> for ParticleRef<'a>[src]

impl<'a> StructuralPartialEq for ParticleRef<'a>[src]

Auto Trait Implementations

impl<'a> RefUnwindSafe for ParticleRef<'a>

impl<'a> Send for ParticleRef<'a>

impl<'a> Sync for ParticleRef<'a>

impl<'a> Unpin for ParticleRef<'a>

impl<'a> UnwindSafe for ParticleRef<'a>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

+

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

+

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

+
\ No newline at end of file diff --git a/soa_derive_example/struct.ParticleRefMut.html b/soa_derive_example/struct.ParticleRefMut.html new file mode 100644 index 0000000..06747a9 --- /dev/null +++ b/soa_derive_example/struct.ParticleRefMut.html @@ -0,0 +1,37 @@ +soa_derive_example::ParticleRefMut - Rust

[][src]Struct soa_derive_example::ParticleRefMut

pub struct ParticleRefMut<'a> {
+    pub mass: &'a mut f64,
+    pub position: &'a mut [f64; 3],
+    pub kind: &'a mut usize,
+    pub name: &'a mut String,
+}

A mutable reference to a +Particle +with struct of array layout.

+

+ Fields

mass: &'a mut f64

A mutable reference to a mass from a ParticleVec

+
position: &'a mut [f64; 3]

A mutable reference to a position from a ParticleVec

+
kind: &'a mut usize

A mutable reference to a kind from a ParticleVec

+
name: &'a mut String

A mutable reference to a name from a ParticleVec

+

Implementations

impl<'a> ParticleRefMut<'a>[src]

pub fn as_ptr(&self) -> ParticlePtr[src]

Convert a +ParticleRefMut +to a +ParticlePtr +; i.e. do a &mut T as *const T transformation

+

pub fn as_mut_ptr(&mut self) -> ParticlePtrMut[src]

Convert a +ParticleRefMut +to a +ParticlePtrMut +; i.e. do a &mut T as *mut T transformation

+

Trait Implementations

impl<'a> Debug for ParticleRefMut<'a>[src]

impl<'a> PartialEq<ParticleRefMut<'a>> for ParticleRefMut<'a>[src]

impl<'a> StructuralPartialEq for ParticleRefMut<'a>[src]

Auto Trait Implementations

impl<'a> RefUnwindSafe for ParticleRefMut<'a>

impl<'a> Send for ParticleRefMut<'a>

impl<'a> Sync for ParticleRefMut<'a>

impl<'a> Unpin for ParticleRefMut<'a>

impl<'a> !UnwindSafe for ParticleRefMut<'a>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

+

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

+
\ No newline at end of file diff --git a/soa_derive_example/struct.ParticleSlice.html b/soa_derive_example/struct.ParticleSlice.html new file mode 100644 index 0000000..fc2396d --- /dev/null +++ b/soa_derive_example/struct.ParticleSlice.html @@ -0,0 +1,93 @@ +soa_derive_example::ParticleSlice - Rust

[][src]Struct soa_derive_example::ParticleSlice

pub struct ParticleSlice<'a> {
+    pub mass: &'a [f64],
+    pub position: &'a [[f64; 3]],
+    pub kind: &'a [usize],
+    pub name: &'a [String],
+}

A slice of +Particle +inside a +ParticleVec +.

+

+ Fields

mass: &'a [f64]

A slice of mass from a ParticleVec

+
position: &'a [[f64; 3]]

A slice of position from a ParticleVec

+
kind: &'a [usize]

A slice of kind from a ParticleVec

+
name: &'a [String]

A slice of name from a ParticleVec

+

Implementations

impl<'a> ParticleSlice<'a>[src]

pub fn iter(&self) -> Iter<'_>[src]

Get an iterator over the +ParticleRef +in this slice.

+

impl<'a> ParticleSlice<'a>[src]

pub fn len(&self) -> usize[src]

Similar to [Particle] ::len(), +the length of all fields should be the same.

+

pub fn is_empty(&self) -> bool[src]

Similar to [Particle] ::is_empty(), +the length of all fields should be the same.

+

pub fn first(&self) -> Option<ParticleRef<'a>>[src]

pub fn split_first(&self) -> Option<(ParticleRef<'a>, ParticleSlice<'a>)>[src]

pub fn last(&self) -> Option<ParticleRef<'a>>[src]

pub fn split_last(&self) -> Option<(ParticleRef<'a>, ParticleSlice<'a>)>[src]

pub fn split_at(&self, mid: usize) -> (ParticleSlice<'a>, ParticleSlice<'a>)[src]

pub fn get<'b, I>(&'b self, index: I) -> Option<I::RefOutput> where
    I: SoAIndex<ParticleSlice<'b>>,
    'a: 'b, 
[src]

Similar to [Particle] ::get().

+

pub unsafe fn get_unchecked<'b, I>(&'b self, index: I) -> I::RefOutput where
    I: SoAIndex<ParticleSlice<'b>>,
    'a: 'b, 
[src]

pub fn index<'b, I>(&'b self, index: I) -> I::RefOutput where
    I: SoAIndex<ParticleSlice<'b>>,
    'a: 'b, 
[src]

Similar to std::ops::Index trait on +[Particle] +. +This is required because we cannot implement std::ops::Index directly since it requires returning a reference.

+

pub fn reborrow<'b>(&'b self) -> ParticleSlice<'b> where
    'a: 'b, 
[src]

Reborrows the slices in a narrower lifetime

+

pub fn as_ptr(&self) -> ParticlePtr[src]

pub unsafe fn from_raw_parts<'b>(
    data: ParticlePtr,
    len: usize
) -> ParticleSlice<'b>
[src]

Trait Implementations

impl<'a> Clone for ParticleSlice<'a>[src]

impl<'a> Copy for ParticleSlice<'a>[src]

impl<'a> Debug for ParticleSlice<'a>[src]

impl<'a> IntoIterator for ParticleSlice<'a>[src]

type Item = ParticleRef<'a>

The type of the elements being iterated over.

+

type IntoIter = Iter<'a>

Which kind of iterator are we turning this into?

+

impl<'a, 'b> IntoIterator for &'a ParticleSlice<'b>[src]

type Item = ParticleRef<'a>

The type of the elements being iterated over.

+

type IntoIter = Iter<'a>

Which kind of iterator are we turning this into?

+

impl<'a> PartialEq<ParticleSlice<'a>> for ParticleSlice<'a>[src]

impl<'a> SoAIndex<ParticleSlice<'a>> for usize[src]

type RefOutput = ParticleRef<'a>

The output for the non-mutable functions

+

impl<'a> SoAIndex<ParticleSlice<'a>> for Range<usize>[src]

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions

+

impl<'a> SoAIndex<ParticleSlice<'a>> for RangeTo<usize>[src]

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions

+

impl<'a> SoAIndex<ParticleSlice<'a>> for RangeFrom<usize>[src]

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions

+

impl<'a> SoAIndex<ParticleSlice<'a>> for RangeFull[src]

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions

+

impl<'a> SoAIndex<ParticleSlice<'a>> for RangeInclusive<usize>[src]

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions

+

impl<'a> SoAIndex<ParticleSlice<'a>> for RangeToInclusive<usize>[src]

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions

+

impl<'a> StructuralPartialEq for ParticleSlice<'a>[src]

Auto Trait Implementations

impl<'a> RefUnwindSafe for ParticleSlice<'a>

impl<'a> Send for ParticleSlice<'a>

impl<'a> Sync for ParticleSlice<'a>

impl<'a> Unpin for ParticleSlice<'a>

impl<'a> UnwindSafe for ParticleSlice<'a>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<I> IntoIterator for I where
    I: Iterator
[src]

type Item = <I as Iterator>::Item

The type of the elements being iterated over.

+

type IntoIter = I

Which kind of iterator are we turning this into?

+

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

+

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

+

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

+
\ No newline at end of file diff --git a/soa_derive_example/struct.ParticleSliceMut.html b/soa_derive_example/struct.ParticleSliceMut.html new file mode 100644 index 0000000..cb8ad02 --- /dev/null +++ b/soa_derive_example/struct.ParticleSliceMut.html @@ -0,0 +1,102 @@ +soa_derive_example::ParticleSliceMut - Rust

[][src]Struct soa_derive_example::ParticleSliceMut

pub struct ParticleSliceMut<'a> {
+    pub mass: &'a mut [f64],
+    pub position: &'a mut [[f64; 3]],
+    pub kind: &'a mut [usize],
+    pub name: &'a mut [String],
+}

A mutable slice of +Particle +inside a +ParticleVec +.

+

+ Fields

mass: &'a mut [f64]

A mutable slice of mass from a ParticleVec

+
position: &'a mut [[f64; 3]]

A mutable slice of position from a ParticleVec

+
kind: &'a mut [usize]

A mutable slice of kind from a ParticleVec

+
name: &'a mut [String]

A mutable slice of name from a ParticleVec

+

Implementations

impl<'a> ParticleSliceMut<'a>[src]

pub fn iter(&mut self) -> Iter<'_>[src]

Get an iterator over the +ParticleRef +in this vector

+

pub fn iter_mut(&mut self) -> IterMut<'_>[src]

Get a mutable iterator over the +ParticleRefMut +in this vector

+

impl<'a> ParticleSliceMut<'a>[src]

pub fn as_ref(&self) -> ParticleSlice<'_>[src]

Convert a +ParticleSliceMut +to a +ParticleSlice +in order to be able to use the methods on the non mutable +version of the slices.

+

pub fn len(&self) -> usize[src]

Similar to [Particle] ::len(), +the length of all fields should be the same.

+

pub fn is_empty(&self) -> bool[src]

Similar to [Particle] ::is_empty(), +the length of all fields should be the same.

+

pub fn first_mut(&mut self) -> Option<ParticleRefMut<'_>>[src]

pub fn split_first_mut(
    &mut self
) -> Option<(ParticleRefMut<'_>, ParticleSliceMut<'_>)>
[src]

pub fn last_mut(&mut self) -> Option<ParticleRefMut<'_>>[src]

pub fn split_last_mut(
    &mut self
) -> Option<(ParticleRefMut<'_>, ParticleSliceMut<'_>)>
[src]

pub fn split_at_mut(
    &mut self,
    mid: usize
) -> (ParticleSliceMut<'_>, ParticleSliceMut<'_>)
[src]

pub fn swap(&mut self, a: usize, b: usize)[src]

pub fn get<'b, I>(&'b self, index: I) -> Option<I::RefOutput> where
    I: SoAIndex<ParticleSlice<'b>>,
    'a: 'b, 
[src]

Similar to [Particle] ::get().

+

pub unsafe fn get_unchecked<'b, I>(&'b self, index: I) -> I::RefOutput where
    I: SoAIndex<ParticleSlice<'b>>,
    'a: 'b, 
[src]

pub fn index<'b, I>(&'b self, index: I) -> I::RefOutput where
    I: SoAIndex<ParticleSlice<'b>>,
    'a: 'b, 
[src]

Similar to std::ops::Index trait on +[Particle] +. +This is required because we cannot implement that trait.

+

pub fn get_mut<'b, I>(&'b mut self, index: I) -> Option<I::MutOutput> where
    I: SoAIndexMut<ParticleSliceMut<'b>>,
    'a: 'b, 
[src]

pub unsafe fn get_unchecked_mut<'b, I>(&'b mut self, index: I) -> I::MutOutput where
    I: SoAIndexMut<ParticleSliceMut<'b>>,
    'a: 'b, 
[src]

pub fn index_mut<'b, I>(&'b mut self, index: I) -> I::MutOutput where
    I: SoAIndexMut<ParticleSliceMut<'b>>,
    'a: 'b, 
[src]

Similar to std::ops::IndexMut trait on +[Particle] +. +This is required because we cannot implement std::ops::IndexMut directly since it requires returning a mutable reference.

+

pub fn as_slice<'b>(&'b self) -> ParticleSlice<'b> where
    'a: 'b, 
[src]

Returns a non-mutable slice from this mutable slice.

+

pub fn reborrow<'b>(&'b mut self) -> ParticleSliceMut<'b> where
    'a: 'b, 
[src]

Reborrows the slices in a narrower lifetime

+

pub fn as_ptr(&self) -> ParticlePtr[src]

pub fn as_mut_ptr(&mut self) -> ParticlePtrMut[src]

pub unsafe fn from_raw_parts_mut<'b>(
    data: ParticlePtrMut,
    len: usize
) -> ParticleSliceMut<'b>
[src]

Trait Implementations

impl<'a> Debug for ParticleSliceMut<'a>[src]

impl<'a> IntoIterator for ParticleSliceMut<'a>[src]

type Item = ParticleRefMut<'a>

The type of the elements being iterated over.

+

type IntoIter = IterMut<'a>

Which kind of iterator are we turning this into?

+

impl<'a> PartialEq<ParticleSliceMut<'a>> for ParticleSliceMut<'a>[src]

impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for usize[src]

type MutOutput = ParticleRefMut<'a>

The output for the mutable functions

+

impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for Range<usize>[src]

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions

+

impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeTo<usize>[src]

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions

+

impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeFrom<usize>[src]

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions

+

impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeFull[src]

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions

+

impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeInclusive<usize>[src]

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions

+

impl<'a> SoAIndexMut<ParticleSliceMut<'a>> for RangeToInclusive<usize>[src]

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions

+

impl<'a> StructuralPartialEq for ParticleSliceMut<'a>[src]

Auto Trait Implementations

impl<'a> RefUnwindSafe for ParticleSliceMut<'a>

impl<'a> Send for ParticleSliceMut<'a>

impl<'a> Sync for ParticleSliceMut<'a>

impl<'a> Unpin for ParticleSliceMut<'a>

impl<'a> !UnwindSafe for ParticleSliceMut<'a>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<I> IntoIterator for I where
    I: Iterator
[src]

type Item = <I as Iterator>::Item

The type of the elements being iterated over.

+

type IntoIter = I

Which kind of iterator are we turning this into?

+

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

+

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

+
\ No newline at end of file diff --git a/soa_derive_example/struct.ParticleVec.html b/soa_derive_example/struct.ParticleVec.html new file mode 100644 index 0000000..38be13e --- /dev/null +++ b/soa_derive_example/struct.ParticleVec.html @@ -0,0 +1,136 @@ +soa_derive_example::ParticleVec - Rust

[][src]Struct soa_derive_example::ParticleVec

pub struct ParticleVec {
+    pub mass: Vec<f64>,
+    pub position: Vec<[f64; 3]>,
+    pub kind: Vec<usize>,
+    pub name: Vec<String>,
+}

An analog to Vec<Particle> + with Struct of Array (SoA) layout

+

+ Fields

mass: Vec<f64>

A vector of mass from a Particle

+
position: Vec<[f64; 3]>

A vector of position from a Particle

+
kind: Vec<usize>

A vector of kind from a Particle

+
name: Vec<String>

A vector of name from a Particle

+

Implementations

impl ParticleVec[src]

pub fn iter(&self) -> Iter<'_>[src]

Get an iterator over the +ParticleRef +in this vector

+

impl ParticleVec[src]

pub fn iter_mut(&mut self) -> IterMut<'_>[src]

Get a mutable iterator over the +ParticleRefMut +in this vector

+

impl ParticleVec[src]

pub fn new() -> ParticleVec[src]

pub fn with_capacity(capacity: usize) -> ParticleVec[src]

Similar to Vec<Particle> ::with_capacity(), +initializing all fields with the given capacity.

+

pub fn capacity(&self) -> usize[src]

Similar to Vec<Particle> ::capacity(), +the capacity of all fields should be the same.

+

pub fn reserve(&mut self, additional: usize)[src]

Similar to Vec<Particle> ::reserve(), +reserving the same additional space for all fields.

+

pub fn reserve_exact(&mut self, additional: usize)[src]

Similar to Vec<Particle> ::reserve_exact() +reserving the same additional space for all fields.

+

pub fn shrink_to_fit(&mut self)[src]

Similar to Vec<Particle> ::shrink_to_fit() +shrinking all fields.

+

pub fn truncate(&mut self, len: usize)[src]

Similar to Vec<Particle> ::truncate() +truncating all fields.

+

pub fn push(&mut self, value: Particle)[src]

pub fn len(&self) -> usize[src]

Similar to Vec<Particle> ::len(), +all the fields should have the same length.

+

pub fn is_empty(&self) -> bool[src]

Similar to Vec<Particle> ::is_empty(), +all the fields should have the same length.

+

pub fn swap_remove(&mut self, index: usize) -> Particle[src]

pub fn insert(&mut self, index: usize, element: Particle)[src]

pub fn remove(&mut self, index: usize) -> Particle[src]

pub fn pop(&mut self) -> Option<Particle>[src]

pub fn append(&mut self, other: &mut ParticleVec)[src]

pub fn clear(&mut self)[src]

pub fn split_off(&mut self, at: usize) -> ParticleVec[src]

pub fn as_slice(&self) -> ParticleSlice<'_>[src]

pub fn as_mut_slice(&mut self) -> ParticleSliceMut<'_>[src]

pub fn slice(&self, range: Range<usize>) -> ParticleSlice<'_>[src]

Create a slice of this vector matching the given range. This +is analogous to Index<Range<usize>>.

+

pub fn slice_mut(&mut self, range: Range<usize>) -> ParticleSliceMut<'_>[src]

Create a mutable slice of this vector matching the given +range. This is analogous to IndexMut<Range<usize>>.

+

pub fn retain<F>(&mut self, f: F) where
    F: FnMut(ParticleRef<'_>) -> bool
[src]

pub fn get<'a, I>(&'a self, index: I) -> Option<I::RefOutput> where
    I: SoAIndex<&'a ParticleVec>, 
[src]

pub unsafe fn get_unchecked<'a, I>(&'a self, index: I) -> I::RefOutput where
    I: SoAIndex<&'a ParticleVec>, 
[src]

pub fn index<'a, I>(&'a self, index: I) -> I::RefOutput where
    I: SoAIndex<&'a ParticleVec>, 
[src]

pub fn get_mut<'a, I>(&'a mut self, index: I) -> Option<I::MutOutput> where
    I: SoAIndexMut<&'a mut ParticleVec>, 
[src]

pub unsafe fn get_unchecked_mut<'a, I>(&'a mut self, index: I) -> I::MutOutput where
    I: SoAIndexMut<&'a mut ParticleVec>, 
[src]

pub fn index_mut<'a, I>(&'a mut self, index: I) -> I::MutOutput where
    I: SoAIndexMut<&'a mut ParticleVec>, 
[src]

pub fn as_ptr(&self) -> ParticlePtr[src]

pub fn as_mut_ptr(&mut self) -> ParticlePtrMut[src]

pub unsafe fn from_raw_parts(
    data: ParticlePtrMut,
    len: usize,
    capacity: usize
) -> ParticleVec
[src]

Trait Implementations

impl Debug for ParticleVec[src]

impl FromIterator<Particle> for ParticleVec[src]

impl<'a> IntoIterator for &'a ParticleVec[src]

type Item = ParticleRef<'a>

The type of the elements being iterated over.

+

type IntoIter = Iter<'a>

Which kind of iterator are we turning this into?

+

impl<'a> IntoIterator for &'a mut ParticleVec[src]

type Item = ParticleRefMut<'a>

The type of the elements being iterated over.

+

type IntoIter = IterMut<'a>

Which kind of iterator are we turning this into?

+

impl PartialEq<ParticleVec> for ParticleVec[src]

impl<'a> SoAIndex<&'a ParticleVec> for usize[src]

type RefOutput = ParticleRef<'a>

The output for the non-mutable functions

+

impl<'a> SoAIndex<&'a ParticleVec> for Range<usize>[src]

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions

+

impl<'a> SoAIndex<&'a ParticleVec> for RangeTo<usize>[src]

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions

+

impl<'a> SoAIndex<&'a ParticleVec> for RangeFrom<usize>[src]

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions

+

impl<'a> SoAIndex<&'a ParticleVec> for RangeFull[src]

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions

+

impl<'a> SoAIndex<&'a ParticleVec> for RangeInclusive<usize>[src]

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions

+

impl<'a> SoAIndex<&'a ParticleVec> for RangeToInclusive<usize>[src]

type RefOutput = ParticleSlice<'a>

The output for the non-mutable functions

+

impl<'a> SoAIndexMut<&'a mut ParticleVec> for usize[src]

type MutOutput = ParticleRefMut<'a>

The output for the mutable functions

+

impl<'a> SoAIndexMut<&'a mut ParticleVec> for Range<usize>[src]

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions

+

impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeTo<usize>[src]

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions

+

impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeFrom<usize>[src]

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions

+

impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeFull[src]

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions

+

impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeInclusive<usize>[src]

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions

+

impl<'a> SoAIndexMut<&'a mut ParticleVec> for RangeToInclusive<usize>[src]

type MutOutput = ParticleSliceMut<'a>

The output for the mutable functions

+

impl StructuralPartialEq for ParticleVec[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

+

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

+
\ No newline at end of file diff --git a/source-files.js b/source-files.js new file mode 100644 index 0000000..e9395e2 --- /dev/null +++ b/source-files.js @@ -0,0 +1,3 @@ +var N = null;var sourcesIndex = {}; +sourcesIndex["soa_derive_example"] = {"name":"","files":["lib.rs"]}; +createSourceSidebar(); diff --git a/source-script.js b/source-script.js new file mode 100644 index 0000000..de663ca --- /dev/null +++ b/source-script.js @@ -0,0 +1 @@ +function getCurrentFilePath(){var parts=window.location.pathname.split("/");var rootPathParts=window.rootPath.split("/");for(var i=0;i"){sidebar.style.left="";this.style.left="";child.innerText="<";updateLocalStorage("rustdoc-source-sidebar-show","true")}else{sidebar.style.left="-300px";this.style.left="0";child.innerText=">";updateLocalStorage("rustdoc-source-sidebar-show","false")}}function createSidebarToggle(){var sidebarToggle=document.createElement("div");sidebarToggle.id="sidebar-toggle";sidebarToggle.onclick=toggleSidebar;var inner1=document.createElement("div");inner1.style.position="relative";var inner2=document.createElement("div");inner2.style.paddingTop="3px";if(getCurrentValue("rustdoc-source-sidebar-show")==="true"){inner2.innerText="<"}else{inner2.innerText=">";sidebarToggle.style.left="0"}inner1.appendChild(inner2);sidebarToggle.appendChild(inner1);return sidebarToggle}function createSourceSidebar(){if(window.rootPath.endsWith("/")===false){window.rootPath+="/"}var main=document.getElementById("main");var sidebarToggle=createSidebarToggle();main.insertBefore(sidebarToggle,main.firstChild);var sidebar=document.createElement("div");sidebar.id="source-sidebar";if(getCurrentValue("rustdoc-source-sidebar-show")!=="true"){sidebar.style.left="-300px"}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)});main.insertBefore(sidebar,main.firstChild);var selected_elem=sidebar.getElementsByClassName("selected")[0];if(typeof selected_elem!=="undefined"){selected_elem.focus()}} \ No newline at end of file diff --git a/src/soa_derive_example/lib.rs.html b/src/soa_derive_example/lib.rs.html new file mode 100644 index 0000000..1feac2e --- /dev/null +++ b/src/soa_derive_example/lib.rs.html @@ -0,0 +1,114 @@ +lib.rs.html -- 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
+
+//! This crate is an example for the [`soa_derive`] crate functionalities. All
+//! the code is generated by a single file:
+//!
+//! ```no_run
+//! #[macro_use]
+//! extern crate soa_derive;
+//! # fn main() {
+//!
+//! /// A basic Particle type
+//! #[derive(Debug, PartialEq, StructOfArray)]
+//! #[soa_derive = "Debug, PartialEq"]
+//! pub struct Particle {
+//!     /// Mass of the particle
+//!     pub mass: f64,
+//!     /// Position of the particle
+//!     pub position: [f64; 3],
+//!     /// Kind of the particle
+//!     pub kind: usize,
+//!     /// Name of the particle
+//!     pub name: String,
+//! }
+//! # }
+//! ```
+//!
+//! [`soa_derive`]: https://github.com/lumol-org/soa-derive/
+
+// Deny most of allow by default lints, just to be sure we don't create warning in user code.
+// They are to be selectively allowed in the implementation
+#![deny(absolute_paths_not_starting_with_crate, anonymous_parameters, bare_trait_objects)]
+#![deny(box_pointers, missing_copy_implementations, missing_debug_implementations)]
+#![deny(missing_docs, trivial_casts, trivial_numeric_casts, unreachable_pub)]
+#![deny(unstable_features, unused_extern_crates, unused_import_braces, unused_labels)]
+#![deny(unused_lifetimes, unused_qualifications, unused_results, variant_size_differences)]
+
+// Other allow by default lints that need to stay allowed
+#![allow(unsafe_code, single_use_lifetimes, elided_lifetimes_in_paths)]
+
+#![deny(warnings)]
+
+#[macro_use]
+extern crate soa_derive;
+
+/// A basic Particle type
+#[derive(Debug, PartialEq, StructOfArray)]
+#[soa_derive = "Debug, PartialEq"]
+pub struct Particle {
+    /// Mass of the particle
+    pub mass: f64,
+    /// Position of the particle
+    pub position: [f64; 3],
+    /// Kind of the particle
+    pub kind: usize,
+    /// Name of the particle
+    pub name: String,
+}
+
+
\ No newline at end of file diff --git a/storage.js b/storage.js new file mode 100644 index 0000000..1b52251 --- /dev/null +++ b/storage.js @@ -0,0 +1 @@ +var resourcesSuffix="";var currentTheme=document.getElementById("themeStyle");var mainTheme=document.getElementById("mainThemeStyle");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!==true){for(i=0;i=0;--i){if(func(arr[i])===true){return true}}}}return false}function onEachLazy(lazyArray,func,reversed){return onEach(Array.prototype.slice.call(lazyArray),func,reversed)}function hasOwnProperty(obj,property){return Object.prototype.hasOwnProperty.call(obj,property)}function usableLocalStorage(){if(typeof Storage==="undefined"){return false}try{return window.localStorage!==null&&window.localStorage!==undefined}catch(err){return false}}function updateLocalStorage(name,value){if(usableLocalStorage()){localStorage[name]=value}else{}}function getCurrentValue(name){if(usableLocalStorage()&&localStorage[name]!==undefined){return localStorage[name]}return null}function switchTheme(styleElem,mainStyleElem,newTheme,saveTheme){var fullBasicCss="rustdoc"+resourcesSuffix+".css";var fullNewTheme=newTheme+resourcesSuffix+".css";var newHref=mainStyleElem.href.replace(fullBasicCss,fullNewTheme);if(styleElem.href===newHref){return}var found=false;if(savedHref.length===0){onEachLazy(document.getElementsByTagName("link"),function(el){savedHref.push(el.href)})}onEach(savedHref,function(el){if(el===newHref){found=true;return true}});if(found===true){styleElem.href=newHref;if(saveTheme===true){updateLocalStorage("rustdoc-theme",newTheme)}}}function getSystemValue(){var property=getComputedStyle(document.documentElement).getPropertyValue('content');return property.replace(/[\"\']/g,"")}switchTheme(currentTheme,mainTheme,getCurrentValue("rustdoc-theme")||getSystemValue()||"light",false) \ No newline at end of file diff --git a/theme.js b/theme.js new file mode 100644 index 0000000..3800819 --- /dev/null +++ b/theme.js @@ -0,0 +1 @@ +var themes=document.getElementById("theme-choices");var themePicker=document.getElementById("theme-picker");function showThemeButtonState(){themes.style.display="block";themePicker.style.borderBottomRightRadius="0";themePicker.style.borderBottomLeftRadius="0"}function hideThemeButtonState(){themes.style.display="none";themePicker.style.borderBottomRightRadius="3px";themePicker.style.borderBottomLeftRadius="3px"}function switchThemeButtonState(){if(themes.style.display==="block"){hideThemeButtonState()}else{showThemeButtonState()}};function handleThemeButtonsBlur(e){var active=document.activeElement;var related=e.relatedTarget;if(active.id!=="themePicker"&&(!active.parentNode||active.parentNode.id!=="theme-choices")&&(!related||(related.id!=="themePicker"&&(!related.parentNode||related.parentNode.id!=="theme-choices")))){hideThemeButtonState()}}themePicker.onclick=switchThemeButtonState;themePicker.onblur=handleThemeButtonsBlur;["ayu","dark","light"].forEach(function(item){var but=document.createElement('button');but.textContent=item;but.onclick=function(el){switchTheme(currentTheme,mainTheme,item,true)};but.onblur=handleThemeButtonsBlur;themes.appendChild(but)}) \ No newline at end of file diff --git a/wheel.svg b/wheel.svg new file mode 100644 index 0000000..01da3b2 --- /dev/null +++ b/wheel.svg @@ -0,0 +1 @@ + \ No newline at end of file