";var infos=["Prefix searches with a type followed by a colon (e.g., fn:) to \
restrict the search to a given item kind.","Accepted kinds are: fn, mod, struct, \
enum, trait, type, macro, \
diff --git a/ch5/os/all.html b/ch5/os/all.html
index 0bcbc294..f5b53360 100644
--- a/ch5/os/all.html
+++ b/ch5/os/all.html
@@ -1,5 +1,7 @@
List of all items in this crate
-
\ No newline at end of file
diff --git a/ch5/os/board/constant.CLOCK_FREQ.html b/ch5/os/board/constant.CLOCK_FREQ.html
index 21b6c272..146b54a9 100644
--- a/ch5/os/board/constant.CLOCK_FREQ.html
+++ b/ch5/os/board/constant.CLOCK_FREQ.html
@@ -1,6 +1,8 @@
CLOCK_FREQ in os::board - Rust
-
\ No newline at end of file
diff --git a/ch5/os/board/constant.MEMORY_END.html b/ch5/os/board/constant.MEMORY_END.html
index 06077bd1..0732559c 100644
--- a/ch5/os/board/constant.MEMORY_END.html
+++ b/ch5/os/board/constant.MEMORY_END.html
@@ -1,6 +1,8 @@
MEMORY_END in os::board - Rust
-
\ No newline at end of file
diff --git a/ch5/os/config/constant.KERNEL_HEAP_SIZE.html b/ch5/os/config/constant.KERNEL_HEAP_SIZE.html
index 4ac6f27c..5f3a93f2 100644
--- a/ch5/os/config/constant.KERNEL_HEAP_SIZE.html
+++ b/ch5/os/config/constant.KERNEL_HEAP_SIZE.html
@@ -1,6 +1,8 @@
KERNEL_HEAP_SIZE in os::config - Rust
-
\ No newline at end of file
diff --git a/ch5/os/config/constant.KERNEL_STACK_SIZE.html b/ch5/os/config/constant.KERNEL_STACK_SIZE.html
index 0501d039..797166d1 100644
--- a/ch5/os/config/constant.KERNEL_STACK_SIZE.html
+++ b/ch5/os/config/constant.KERNEL_STACK_SIZE.html
@@ -1,6 +1,8 @@
KERNEL_STACK_SIZE in os::config - Rust
-
\ No newline at end of file
diff --git a/ch5/os/config/constant.PAGE_SIZE.html b/ch5/os/config/constant.PAGE_SIZE.html
index 1264f308..eee8cd59 100644
--- a/ch5/os/config/constant.PAGE_SIZE.html
+++ b/ch5/os/config/constant.PAGE_SIZE.html
@@ -1,6 +1,8 @@
PAGE_SIZE in os::config - Rust
-
\ No newline at end of file
diff --git a/ch5/os/config/constant.PAGE_SIZE_BITS.html b/ch5/os/config/constant.PAGE_SIZE_BITS.html
index 437e6ceb..7a7c668d 100644
--- a/ch5/os/config/constant.PAGE_SIZE_BITS.html
+++ b/ch5/os/config/constant.PAGE_SIZE_BITS.html
@@ -1,6 +1,8 @@
PAGE_SIZE_BITS in os::config - Rust
-
\ No newline at end of file
diff --git a/ch5/os/config/constant.TRAMPOLINE.html b/ch5/os/config/constant.TRAMPOLINE.html
index a1707eb0..e5a8c0c1 100644
--- a/ch5/os/config/constant.TRAMPOLINE.html
+++ b/ch5/os/config/constant.TRAMPOLINE.html
@@ -1,6 +1,8 @@
TRAMPOLINE in os::config - Rust
-
\ No newline at end of file
diff --git a/ch5/os/config/constant.TRAP_CONTEXT.html b/ch5/os/config/constant.TRAP_CONTEXT.html
index f909cfea..33ede0e5 100644
--- a/ch5/os/config/constant.TRAP_CONTEXT.html
+++ b/ch5/os/config/constant.TRAP_CONTEXT.html
@@ -1,6 +1,8 @@
TRAP_CONTEXT in os::config - Rust
-
\ No newline at end of file
diff --git a/ch5/os/config/constant.USER_STACK_SIZE.html b/ch5/os/config/constant.USER_STACK_SIZE.html
index 0d920560..cc652521 100644
--- a/ch5/os/config/constant.USER_STACK_SIZE.html
+++ b/ch5/os/config/constant.USER_STACK_SIZE.html
@@ -1,6 +1,8 @@
USER_STACK_SIZE in os::config - Rust
-
\ No newline at end of file
diff --git a/ch5/os/console/fn.print.html b/ch5/os/console/fn.print.html
index 11eb46a6..f8119bcb 100644
--- a/ch5/os/console/fn.print.html
+++ b/ch5/os/console/fn.print.html
@@ -1,6 +1,8 @@
print in os::console - Rust
-
\ No newline at end of file
diff --git a/ch5/os/console/struct.Stdout.html b/ch5/os/console/struct.Stdout.html
index aacab1d0..1f956495 100644
--- a/ch5/os/console/struct.Stdout.html
+++ b/ch5/os/console/struct.Stdout.html
@@ -1,19 +1,23 @@
Stdout in os::console - Rust
-
\ No newline at end of file
diff --git a/ch5/os/fn.clear_bss.html b/ch5/os/fn.clear_bss.html
index 7f6b047a..c2be7826 100644
--- a/ch5/os/fn.clear_bss.html
+++ b/ch5/os/fn.clear_bss.html
@@ -1,6 +1,8 @@
clear_bss in os - Rust
-
\ No newline at end of file
diff --git a/ch5/os/fn.rust_main.html b/ch5/os/fn.rust_main.html
index cba8680a..1020ed37 100644
--- a/ch5/os/fn.rust_main.html
+++ b/ch5/os/fn.rust_main.html
@@ -1,7 +1,9 @@
rust_main in os - Rust
-
\ No newline at end of file
diff --git a/ch5/os/index.html b/ch5/os/index.html
index 96bd233c..43d7f243 100644
--- a/ch5/os/index.html
+++ b/ch5/os/index.html
@@ -1,9 +1,11 @@
os - Rust
-
\ No newline at end of file
diff --git a/ch5/os/lang_items/fn.panic.html b/ch5/os/lang_items/fn.panic.html
index 4109a3bb..17c1398e 100644
--- a/ch5/os/lang_items/fn.panic.html
+++ b/ch5/os/lang_items/fn.panic.html
@@ -1,6 +1,8 @@
panic in os::lang_items - Rust
-
\ No newline at end of file
diff --git a/ch5/os/loader/fn.get_app_data.html b/ch5/os/loader/fn.get_app_data.html
index 8f119364..8e8a2c8e 100644
--- a/ch5/os/loader/fn.get_app_data.html
+++ b/ch5/os/loader/fn.get_app_data.html
@@ -1,6 +1,8 @@
get_app_data in os::loader - Rust
-
\ No newline at end of file
diff --git a/ch5/os/loader/fn.get_app_data_by_name.html b/ch5/os/loader/fn.get_app_data_by_name.html
index 80e1fc79..30a866fa 100644
--- a/ch5/os/loader/fn.get_app_data_by_name.html
+++ b/ch5/os/loader/fn.get_app_data_by_name.html
@@ -1,6 +1,8 @@
get_app_data_by_name in os::loader - Rust
-
\ No newline at end of file
diff --git a/ch5/os/loader/fn.get_num_app.html b/ch5/os/loader/fn.get_num_app.html
index 96b52593..76ed8fdc 100644
--- a/ch5/os/loader/fn.get_num_app.html
+++ b/ch5/os/loader/fn.get_num_app.html
@@ -1,6 +1,8 @@
get_num_app in os::loader - Rust
-
\ No newline at end of file
diff --git a/ch5/os/loader/fn.list_apps.html b/ch5/os/loader/fn.list_apps.html
index c6528d69..59848dea 100644
--- a/ch5/os/loader/fn.list_apps.html
+++ b/ch5/os/loader/fn.list_apps.html
@@ -1,6 +1,8 @@
list_apps in os::loader - Rust
-
\ No newline at end of file
diff --git a/ch5/os/loader/struct.APP_NAMES.html b/ch5/os/loader/struct.APP_NAMES.html
index e7653cca..34dcb354 100644
--- a/ch5/os/loader/struct.APP_NAMES.html
+++ b/ch5/os/loader/struct.APP_NAMES.html
@@ -1,21 +1,23 @@
APP_NAMES in os::loader - Rust
-
The caller must ensure that the vector outlives the pointer this
function returns, or else it will end up pointing to garbage.
Modifying the vector may cause its buffer to be reallocated,
@@ -23,7 +25,7 @@ which would also make any pointers to it invalid.
The caller must also ensure that the memory the pointer (non-transitively) points to
is never written to (except inside an UnsafeCell) using this pointer or any pointer
derived from it. If you need to mutate the contents of the slice, use as_mut_ptr.
letx=vec![1, 2, 4];
letx_ptr=x.as_ptr();
@@ -32,58 +34,118 @@ derived from it. If you need to mutate the contents of the slice, use assert_eq!(*x_ptr.add(i), 1<<i);
}
}
This panics if the length of the resulting slice would overflow a usize.
+
This is only possible when flattening a slice of arrays of zero-sized
+types, and thus tends to be irrelevant in practice. If
+size_of::<T>() > 0, this will never panic.
The caller must ensure that the slice outlives the pointer this
function returns, or else it will end up pointing to garbage.
The caller must also ensure that the memory the pointer (non-transitively) points to
@@ -117,7 +179,7 @@ is never written to (except inside an UnsafeCell) using this pointe
derived from it. If you need to mutate the contents of the slice, use as_mut_ptr.
Modifying the container referenced by this slice may cause its buffer
to be reallocated, which would also make any pointers to it invalid.
letx=&[1, 2, 4];
letx_ptr=x.as_ptr();
@@ -126,7 +188,7 @@ to be reallocated, which would also make any pointers to it invalid.
assert_eq!(x.get_unchecked(i), &*x_ptr.add(i));
}
}
The returned range is half-open, which means that the end pointer
points one past the last element of the slice. This way, an empty
slice is represented by two equal pointers, and the difference between
@@ -146,8 +208,8 @@ element of this slice:
Returns an iterator over all contiguous windows of length
size. The windows overlap. If the slice is shorter than
size, the iterator returns no values.
Returns an iterator over chunk_size elements of the slice at a time, starting at the
beginning of the slice.
The chunks are slices and do not overlap. If chunk_size does not divide the length of the
slice, then the last chunk will not have length chunk_size.
See chunks_exact for a variant of this iterator that returns chunks of always exactly
chunk_size elements, and rchunks for the same iterator but starting at the end of the
slice.
Returns an iterator over chunk_size elements of the slice at a time, starting at the
beginning of the slice.
The chunks are slices and do not overlap. If chunk_size does not divide the length of the
slice, then the last up to chunk_size-1 elements will be omitted and can be retrieved
@@ -197,24 +259,24 @@ from the remainder function of the iterator.
See chunks for a variant of this iterator that also returns the remainder as a smaller
chunk, and rchunks_exact for the same iterator but starting at the end of the slice.
#![feature(slice_as_chunks)]letslice: &[char] =&['l', 'o', 'r', 'e', 'm', '!'];
letchunks: &[[char; 1]] =
@@ -229,40 +291,40 @@ assuming that there’s no remainder.
// These would be unsound:// let chunks: &[[_; 5]] = slice.as_chunks_unchecked() // The slice length is not a multiple of 5// let chunks: &[[_; 0]] = slice.as_chunks_unchecked() // Zero-length chunks are never allowed
🔬 This is a nightly-only experimental API. (array_chunks)
Returns an iterator over N elements of the slice at a time, starting at the
beginning of the slice.
The chunks are array references and do not overlap. If N does not divide the
length of the slice, then the last up to N-1 elements will be omitted and can be
retrieved from the remainder function of the iterator.
This method is the const generic equivalent of chunks_exact.
Returns an iterator over chunk_size elements of the slice at a time, starting at the end
of the slice.
The chunks are slices and do not overlap. If chunk_size does not divide the length of the
slice, then the last chunk will not have length chunk_size.
See rchunks_exact for a variant of this iterator that returns chunks of always exactly
chunk_size elements, and chunks for the same iterator but starting at the beginning
of the slice.
Returns an iterator over chunk_size elements of the slice at a time, starting at the
end of the slice.
The chunks are slices and do not overlap. If chunk_size does not divide the length of the
slice, then the last up to chunk_size-1 elements will be omitted and can be retrieved
@@ -311,21 +373,21 @@ resulting code better than in the case of rchunks for a variant of this iterator that also returns the remainder as a smaller
chunk, and chunks_exact for the same iterator but starting at the beginning of the
slice.
🔬 This is a nightly-only experimental API. (slice_group_by)
Returns an iterator over the slice producing non-overlapping runs
of elements using the predicate to separate them.
The predicate is called on two elements following themselves,
it means the predicate is called on slice[0] and slice[1]
then on slice[1] and slice[2] and so on.
#![feature(slice_group_by)]letslice=&[1, 1, 1, 3, 3, 2, 2, 2];
@@ -348,13 +410,13 @@ then on slice[1] and slice[2] and so on.
assert_eq!(iter.next(), Some(&[2, 3][..]));
assert_eq!(iter.next(), Some(&[2, 3, 4][..]));
assert_eq!(iter.next(), None);
The first will contain all indices from [0, mid) (excluding
the index mid itself) and the second will contain all
indices from [mid, len) (excluding the index len itself).
🔬 This is a nightly-only experimental API. (slice_split_at_unchecked)
Divides one slice into two at an index, without doing bounds checking.
The first will contain all indices from [0, mid) (excluding
the index mid itself) and the second will contain all
indices from [mid, len) (excluding the index len itself).
Calling this method with an out-of-bounds index is undefined behavior
even if the resulting reference is not used. The caller has to ensure that
0 <= mid <= self.len().
#![feature(slice_split_at_unchecked)]letv= [1, 2, 3, 4, 5, 6];
@@ -405,13 +467,13 @@ even if the resulting reference is not used. The caller has to ensure that
assert_eq!(left, [1, 2, 3, 4, 5, 6]);
assert_eq!(right, []);
}
🔬 This is a nightly-only experimental API. (split_array)
Divides one slice into an array and a remainder slice at an index.
The array will contain all indices from [0, N) (excluding
the index N itself) and the slice will contain all
indices from [N, len) (excluding the index len itself).
🔬 This is a nightly-only experimental API. (split_array)
Divides one slice into an array and a remainder slice at an index from
the end.
The slice will contain all indices from [0, len - N) (excluding
the index len - N itself) and the array will contain all
indices from [len - N, len) (excluding the index len itself).
#![feature(split_array)]letv=&[1, 2, 3, 4, 5, 6][..];
@@ -462,9 +524,9 @@ indices from [len - N, len) (excluding the index len i
assert_eq!(left, []);
assert_eq!(right, &[1, 2, 3, 4, 5, 6]);
}
Returns an iterator over subslices separated by elements that match
pred. The matched element is contained in the end of the previous
subslice as a terminator.
letslice= [10, 40, 33, 20];
letmutiter=slice.split_inclusive(|num|num%3==0);
@@ -512,10 +574,10 @@ That slice will be the last item returned by the iterator.
assert_eq!(iter.next().unwrap(), &[3]);
assert_eq!(iter.next().unwrap(), &[10, 40, 33]);
assert!(iter.next().is_none());
Returns an iterator over subslices separated by elements that match
pred, starting at the end of the slice and working backwards.
The matched element is not contained in the subslices.
letslice= [11, 22, 33, 0, 44, 55];
letmutiter=slice.rsplit(|num|*num==0);
@@ -532,37 +594,37 @@ slice will be the first (or last) item returned by the iterator.
assert_eq!(it.next().unwrap(), &[1, 1]);
assert_eq!(it.next().unwrap(), &[]);
assert_eq!(it.next(), None);
Returns an iterator over subslices separated by elements that match
pred, limited to returning at most n items. The matched element is
not contained in the subslices.
The last element returned, if any, will contain the remainder of the
slice.
Returns an iterator over subslices separated by elements that match
pred limited to returning at most n items. This starts at the end of
the slice and works backwards. The matched element is not contained in
the subslices.
The last element returned, if any, will contain the remainder of the
slice.
Binary searches this sorted slice for a given element.
If the value is found then Result::Ok is returned, containing the
index of the matching element. If there are multiple matches, then any
one of the matches could be returned. The index is chosen
@@ -632,7 +694,7 @@ If the value is not found then binary_search_by, binary_search_by_key, and partition_point.
Looks up a series of four elements. The first is found, with a
uniquely determined position; the second and third are not
found; the fourth could match any position in [1, 4].
Binary searches this sorted slice with a comparator function.
The comparator function should implement an order consistent
with the sort order of the underlying slice, returning an
order code that indicates whether its argument is Less,
@@ -665,7 +727,7 @@ If the value is not found then binary_search, binary_search_by_key, and partition_point.
Looks up a series of four elements. The first is found, with a
uniquely determined position; the second and third are not
found; the fourth could match any position in [1, 4].
@@ -681,7 +743,7 @@ found; the fourth could match any position in [1, 4].
letseek=1;
letr=s.binary_search_by(|probe|probe.cmp(&seek));
assert!(matchr { Ok(1..=4) => true, _ => false, });
Looks up a series of four elements in a slice of pairs sorted by
their second elements. The first is found, with a uniquely
determined position; the second and third are not found; the
@@ -707,7 +769,7 @@ fourth could match any position in [1, 4].
Transmute the slice to a slice of another type, ensuring alignment of the types is
maintained.
This method splits the slice into three distinct slices: prefix, correctly aligned middle
slice of a new type, and the suffix slice. The method may make the middle slice the greatest
@@ -716,10 +778,10 @@ should depend on that, not its correctness. It is permissible for all of the inp
be returned as the prefix or suffix slice.
This method has no purpose when either input element T or output element U are
zero-sized and will return the original slice without splitting anything.
This method is essentially a transmute with respect to the elements in the returned
middle slice, so all the usual caveats pertaining to transmute::<T, U> also apply here.
🔬 This is a nightly-only experimental API. (portable_simd)
Split a slice into a prefix, a middle of aligned SIMD types, and a suffix.
This is a safe wrapper around slice::align_to, so has the same weak
postconditions as that method. You’re only assured that
self.len() == prefix.len() + middle.len() * LANES + suffix.len().
@@ -741,7 +803,7 @@ postconditions as that method. You’re only assured that
That said, this is a safe method, so if you’re only writing safe code,
then this can at most cause incorrect logic, not unsoundness.
This will panic if the size of the SIMD type is different from
LANES times that of the scalar.
At the time of writing, the trait restrictions on Simd<T, LANES> keeps
@@ -749,7 +811,7 @@ that from ever happening, as only power-of-two numbers of lanes are
supported. It’s possible that, in the future, those restrictions might
be lifted in a way that would make it possible to see panics from this
method for something like LANES == 3.
🔬 This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this slice are sorted.
That is, for each element a and its following element b, a <= b must hold. If the
slice yields exactly zero or one element, true is returned.
Note that if Self::Item is only PartialOrd, but not Ord, the above definition
implies that this function returns false if any two consecutive items are not
comparable.
🔬 This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this slice are sorted using the given comparator function.
Instead of using PartialOrd::partial_cmp, this function uses the given compare
function to determine the ordering of two elements. Apart from that, it’s equivalent to
is_sorted; see its documentation for more information.
🔬 This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this slice are sorted using the given key extraction function.
Instead of comparing the slice’s elements directly, this function compares the keys of the
elements, as determined by f. Apart from that, it’s equivalent to is_sorted; see its
documentation for more information.
Returns the index of the partition point according to the given predicate
(the index of the first element of the second partition).
The slice is assumed to be partitioned according to the given predicate.
This means that all elements for which the predicate returns true are at the start of the slice
@@ -814,32 +876,30 @@ For example, [7, 15, 3, 5, 4, 12, 6] is a partitioned under the predicate x % 2
If this slice is not partitioned, the returned result is unspecified and meaningless,
as this method performs a kind of binary search.
#![feature(allocator_api)]usestd::alloc::System;
@@ -847,10 +907,10 @@ treating it as an ASCII string.
lets= [10, 40, 30];
letx=s.to_vec_in(System);
// Here, `s` and `x` can be modified independently.
\ No newline at end of file
diff --git a/ch5/os/macro.print.html b/ch5/os/macro.print.html
index 17d519f7..df49b790 100644
--- a/ch5/os/macro.print.html
+++ b/ch5/os/macro.print.html
@@ -1,9 +1,11 @@
print in os - Rust
-
\ No newline at end of file
diff --git a/ch5/os/macro.println.html b/ch5/os/macro.println.html
index 6f58012d..40626a4a 100644
--- a/ch5/os/macro.println.html
+++ b/ch5/os/macro.println.html
@@ -1,9 +1,11 @@
println in os - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/address/constant.PA_WIDTH_SV39.html b/ch5/os/mm/address/constant.PA_WIDTH_SV39.html
index d7ded0db..581afc43 100644
--- a/ch5/os/mm/address/constant.PA_WIDTH_SV39.html
+++ b/ch5/os/mm/address/constant.PA_WIDTH_SV39.html
@@ -1,6 +1,8 @@
PA_WIDTH_SV39 in os::mm::address - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/address/constant.PPN_WIDTH_SV39.html b/ch5/os/mm/address/constant.PPN_WIDTH_SV39.html
index 07bf60dc..9d5254cb 100644
--- a/ch5/os/mm/address/constant.PPN_WIDTH_SV39.html
+++ b/ch5/os/mm/address/constant.PPN_WIDTH_SV39.html
@@ -1,6 +1,8 @@
PPN_WIDTH_SV39 in os::mm::address - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/address/constant.VA_WIDTH_SV39.html b/ch5/os/mm/address/constant.VA_WIDTH_SV39.html
index 1f0e06d1..c8821bd0 100644
--- a/ch5/os/mm/address/constant.VA_WIDTH_SV39.html
+++ b/ch5/os/mm/address/constant.VA_WIDTH_SV39.html
@@ -1,6 +1,8 @@
VA_WIDTH_SV39 in os::mm::address - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/address/constant.VPN_WIDTH_SV39.html b/ch5/os/mm/address/constant.VPN_WIDTH_SV39.html
index 124aa845..c4e11101 100644
--- a/ch5/os/mm/address/constant.VPN_WIDTH_SV39.html
+++ b/ch5/os/mm/address/constant.VPN_WIDTH_SV39.html
@@ -1,6 +1,8 @@
VPN_WIDTH_SV39 in os::mm::address - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/address/struct.PhysAddr.html b/ch5/os/mm/address/struct.PhysAddr.html
index a170d2b5..a6c07333 100644
--- a/ch5/os/mm/address/struct.PhysAddr.html
+++ b/ch5/os/mm/address/struct.PhysAddr.html
@@ -1,43 +1,47 @@
PhysAddr in os::mm::address - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/address/struct.PhysPageNum.html b/ch5/os/mm/address/struct.PhysPageNum.html
index a99ccf04..1446cc48 100644
--- a/ch5/os/mm/address/struct.PhysPageNum.html
+++ b/ch5/os/mm/address/struct.PhysPageNum.html
@@ -1,39 +1,43 @@
PhysPageNum in os::mm::address - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/address/struct.SimpleRange.html b/ch5/os/mm/address/struct.SimpleRange.html
index bb001666..d4a8fcaa 100644
--- a/ch5/os/mm/address/struct.SimpleRange.html
+++ b/ch5/os/mm/address/struct.SimpleRange.html
@@ -1,26 +1,30 @@
SimpleRange in os::mm::address - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/address/struct.SimpleRangeIterator.html b/ch5/os/mm/address/struct.SimpleRangeIterator.html
index 18aed740..43902ffe 100644
--- a/ch5/os/mm/address/struct.SimpleRangeIterator.html
+++ b/ch5/os/mm/address/struct.SimpleRangeIterator.html
@@ -1,130 +1,137 @@
SimpleRangeIterator in os::mm::address - Rust
-
Creates an iterator which can use the peek and peek_mut methods
to look at the next element of the iterator without consuming it. See
their documentation for more information. Read more
🔬 This is a nightly-only experimental API. (iter_partition_in_place)
Reorders the elements of this iterator in-place according to the given predicate,
such that all those that return true precede all those that return false.
Returns the number of true elements found. Read more
🔬 This is a nightly-only experimental API. (iter_is_partitioned)
Checks if the elements of this iterator are partitioned according to the given predicate,
such that all those that return true precede all those that return false. Read more
🔬 This is a nightly-only experimental API. (iterator_try_reduce)
Reduces the elements to a single one by repeatedly applying a reducing operation. If the
closure returns a failure, the failure is propagated back to the caller immediately. Read more
\ No newline at end of file
diff --git a/ch5/os/mm/address/struct.VirtAddr.html b/ch5/os/mm/address/struct.VirtAddr.html
index 20e708c6..1e70e562 100644
--- a/ch5/os/mm/address/struct.VirtAddr.html
+++ b/ch5/os/mm/address/struct.VirtAddr.html
@@ -1,40 +1,44 @@
VirtAddr in os::mm::address - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/address/struct.VirtPageNum.html b/ch5/os/mm/address/struct.VirtPageNum.html
index f55060fa..32b9bff9 100644
--- a/ch5/os/mm/address/struct.VirtPageNum.html
+++ b/ch5/os/mm/address/struct.VirtPageNum.html
@@ -1,39 +1,43 @@
VirtPageNum in os::mm::address - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/address/trait.StepByOne.html b/ch5/os/mm/address/trait.StepByOne.html
index 56707725..9514e5bf 100644
--- a/ch5/os/mm/address/trait.StepByOne.html
+++ b/ch5/os/mm/address/trait.StepByOne.html
@@ -1,8 +1,10 @@
StepByOne in os::mm::address - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/address/type.VPNRange.html b/ch5/os/mm/address/type.VPNRange.html
index 7bdc62f3..181e6262 100644
--- a/ch5/os/mm/address/type.VPNRange.html
+++ b/ch5/os/mm/address/type.VPNRange.html
@@ -1,6 +1,8 @@
VPNRange in os::mm::address - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/fn.init.html b/ch5/os/mm/fn.init.html
index c0af5bee..38d24f94 100644
--- a/ch5/os/mm/fn.init.html
+++ b/ch5/os/mm/fn.init.html
@@ -1,6 +1,8 @@
init in os::mm - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/frame_allocator/fn.frame_alloc.html b/ch5/os/mm/frame_allocator/fn.frame_alloc.html
index e484e1df..84b63b35 100644
--- a/ch5/os/mm/frame_allocator/fn.frame_alloc.html
+++ b/ch5/os/mm/frame_allocator/fn.frame_alloc.html
@@ -1,6 +1,8 @@
frame_alloc in os::mm::frame_allocator - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/frame_allocator/fn.frame_allocator_test.html b/ch5/os/mm/frame_allocator/fn.frame_allocator_test.html
index d2f7f0c1..433ea4ff 100644
--- a/ch5/os/mm/frame_allocator/fn.frame_allocator_test.html
+++ b/ch5/os/mm/frame_allocator/fn.frame_allocator_test.html
@@ -1,6 +1,8 @@
frame_allocator_test in os::mm::frame_allocator - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/frame_allocator/fn.frame_dealloc.html b/ch5/os/mm/frame_allocator/fn.frame_dealloc.html
index f8f006e2..037e5b02 100644
--- a/ch5/os/mm/frame_allocator/fn.frame_dealloc.html
+++ b/ch5/os/mm/frame_allocator/fn.frame_dealloc.html
@@ -1,6 +1,8 @@
frame_dealloc in os::mm::frame_allocator - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/frame_allocator/fn.init_frame_allocator.html b/ch5/os/mm/frame_allocator/fn.init_frame_allocator.html
index 5125c9df..e64de651 100644
--- a/ch5/os/mm/frame_allocator/fn.init_frame_allocator.html
+++ b/ch5/os/mm/frame_allocator/fn.init_frame_allocator.html
@@ -1,6 +1,8 @@
init_frame_allocator in os::mm::frame_allocator - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html b/ch5/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html
index d96d51d3..899a902b 100644
--- a/ch5/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html
+++ b/ch5/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html
@@ -1,20 +1,24 @@
FRAME_ALLOCATOR in os::mm::frame_allocator - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/frame_allocator/struct.FrameTracker.html b/ch5/os/mm/frame_allocator/struct.FrameTracker.html
index dfc45fe7..b496d54b 100644
--- a/ch5/os/mm/frame_allocator/struct.FrameTracker.html
+++ b/ch5/os/mm/frame_allocator/struct.FrameTracker.html
@@ -1,19 +1,23 @@
FrameTracker in os::mm::frame_allocator - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/frame_allocator/struct.StackFrameAllocator.html b/ch5/os/mm/frame_allocator/struct.StackFrameAllocator.html
index 5a401b3a..ba254d29 100644
--- a/ch5/os/mm/frame_allocator/struct.StackFrameAllocator.html
+++ b/ch5/os/mm/frame_allocator/struct.StackFrameAllocator.html
@@ -1,19 +1,23 @@
StackFrameAllocator in os::mm::frame_allocator - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/frame_allocator/trait.FrameAllocator.html b/ch5/os/mm/frame_allocator/trait.FrameAllocator.html
index 00839253..f7667df8 100644
--- a/ch5/os/mm/frame_allocator/trait.FrameAllocator.html
+++ b/ch5/os/mm/frame_allocator/trait.FrameAllocator.html
@@ -1,10 +1,12 @@
FrameAllocator in os::mm::frame_allocator - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/frame_allocator/type.FrameAllocatorImpl.html b/ch5/os/mm/frame_allocator/type.FrameAllocatorImpl.html
index d9a85d3e..424c3b48 100644
--- a/ch5/os/mm/frame_allocator/type.FrameAllocatorImpl.html
+++ b/ch5/os/mm/frame_allocator/type.FrameAllocatorImpl.html
@@ -1,6 +1,8 @@
FrameAllocatorImpl in os::mm::frame_allocator - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/heap_allocator/fn.handle_alloc_error.html b/ch5/os/mm/heap_allocator/fn.handle_alloc_error.html
index f85900a1..2530c916 100644
--- a/ch5/os/mm/heap_allocator/fn.handle_alloc_error.html
+++ b/ch5/os/mm/heap_allocator/fn.handle_alloc_error.html
@@ -1,6 +1,8 @@
handle_alloc_error in os::mm::heap_allocator - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/heap_allocator/fn.heap_test.html b/ch5/os/mm/heap_allocator/fn.heap_test.html
index 60341633..6475c14f 100644
--- a/ch5/os/mm/heap_allocator/fn.heap_test.html
+++ b/ch5/os/mm/heap_allocator/fn.heap_test.html
@@ -1,6 +1,8 @@
heap_test in os::mm::heap_allocator - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/heap_allocator/fn.init_heap.html b/ch5/os/mm/heap_allocator/fn.init_heap.html
index 043c81db..6fafa7c1 100644
--- a/ch5/os/mm/heap_allocator/fn.init_heap.html
+++ b/ch5/os/mm/heap_allocator/fn.init_heap.html
@@ -1,6 +1,8 @@
init_heap in os::mm::heap_allocator - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/heap_allocator/static.HEAP_ALLOCATOR.html b/ch5/os/mm/heap_allocator/static.HEAP_ALLOCATOR.html
index 80e8d72a..bf4b1785 100644
--- a/ch5/os/mm/heap_allocator/static.HEAP_ALLOCATOR.html
+++ b/ch5/os/mm/heap_allocator/static.HEAP_ALLOCATOR.html
@@ -1,6 +1,8 @@
HEAP_ALLOCATOR in os::mm::heap_allocator - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/heap_allocator/static.HEAP_SPACE.html b/ch5/os/mm/heap_allocator/static.HEAP_SPACE.html
index 16025214..10553534 100644
--- a/ch5/os/mm/heap_allocator/static.HEAP_SPACE.html
+++ b/ch5/os/mm/heap_allocator/static.HEAP_SPACE.html
@@ -1,6 +1,8 @@
HEAP_SPACE in os::mm::heap_allocator - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/memory_set/enum.MapType.html b/ch5/os/mm/memory_set/enum.MapType.html
index fb585af2..f4086dd0 100644
--- a/ch5/os/mm/memory_set/enum.MapType.html
+++ b/ch5/os/mm/memory_set/enum.MapType.html
@@ -1,27 +1,31 @@
MapType in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/memory_set/fn.ebss.html b/ch5/os/mm/memory_set/fn.ebss.html
index 3bd8584f..abf3a54a 100644
--- a/ch5/os/mm/memory_set/fn.ebss.html
+++ b/ch5/os/mm/memory_set/fn.ebss.html
@@ -1,6 +1,8 @@
ebss in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/memory_set/fn.edata.html b/ch5/os/mm/memory_set/fn.edata.html
index b9f4cc53..e300398a 100644
--- a/ch5/os/mm/memory_set/fn.edata.html
+++ b/ch5/os/mm/memory_set/fn.edata.html
@@ -1,6 +1,8 @@
edata in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/memory_set/fn.ekernel.html b/ch5/os/mm/memory_set/fn.ekernel.html
index a68105d6..4104c50a 100644
--- a/ch5/os/mm/memory_set/fn.ekernel.html
+++ b/ch5/os/mm/memory_set/fn.ekernel.html
@@ -1,6 +1,8 @@
ekernel in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/memory_set/fn.erodata.html b/ch5/os/mm/memory_set/fn.erodata.html
index 7a42fc8f..ea14c701 100644
--- a/ch5/os/mm/memory_set/fn.erodata.html
+++ b/ch5/os/mm/memory_set/fn.erodata.html
@@ -1,6 +1,8 @@
erodata in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/memory_set/fn.etext.html b/ch5/os/mm/memory_set/fn.etext.html
index dfa43cfd..37af16a3 100644
--- a/ch5/os/mm/memory_set/fn.etext.html
+++ b/ch5/os/mm/memory_set/fn.etext.html
@@ -1,6 +1,8 @@
etext in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/memory_set/fn.remap_test.html b/ch5/os/mm/memory_set/fn.remap_test.html
index e35e0095..ab367d53 100644
--- a/ch5/os/mm/memory_set/fn.remap_test.html
+++ b/ch5/os/mm/memory_set/fn.remap_test.html
@@ -1,6 +1,8 @@
remap_test in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/memory_set/fn.sbss_with_stack.html b/ch5/os/mm/memory_set/fn.sbss_with_stack.html
index ecbf7b8a..6b2051e1 100644
--- a/ch5/os/mm/memory_set/fn.sbss_with_stack.html
+++ b/ch5/os/mm/memory_set/fn.sbss_with_stack.html
@@ -1,6 +1,8 @@
sbss_with_stack in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/memory_set/fn.sdata.html b/ch5/os/mm/memory_set/fn.sdata.html
index 21790d43..f9c26016 100644
--- a/ch5/os/mm/memory_set/fn.sdata.html
+++ b/ch5/os/mm/memory_set/fn.sdata.html
@@ -1,6 +1,8 @@
sdata in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/memory_set/fn.srodata.html b/ch5/os/mm/memory_set/fn.srodata.html
index 12becf5b..04e306e2 100644
--- a/ch5/os/mm/memory_set/fn.srodata.html
+++ b/ch5/os/mm/memory_set/fn.srodata.html
@@ -1,6 +1,8 @@
srodata in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/memory_set/fn.stext.html b/ch5/os/mm/memory_set/fn.stext.html
index f462b9fc..054f5de6 100644
--- a/ch5/os/mm/memory_set/fn.stext.html
+++ b/ch5/os/mm/memory_set/fn.stext.html
@@ -1,6 +1,8 @@
stext in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/memory_set/fn.strampoline.html b/ch5/os/mm/memory_set/fn.strampoline.html
index 6dd5b9da..d4c09c0c 100644
--- a/ch5/os/mm/memory_set/fn.strampoline.html
+++ b/ch5/os/mm/memory_set/fn.strampoline.html
@@ -1,6 +1,8 @@
strampoline in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/memory_set/struct.KERNEL_SPACE.html b/ch5/os/mm/memory_set/struct.KERNEL_SPACE.html
index ff47bab0..66b47393 100644
--- a/ch5/os/mm/memory_set/struct.KERNEL_SPACE.html
+++ b/ch5/os/mm/memory_set/struct.KERNEL_SPACE.html
@@ -1,19 +1,23 @@
KERNEL_SPACE in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/memory_set/struct.MapArea.html b/ch5/os/mm/memory_set/struct.MapArea.html
index 74e05f56..8fc773d8 100644
--- a/ch5/os/mm/memory_set/struct.MapArea.html
+++ b/ch5/os/mm/memory_set/struct.MapArea.html
@@ -1,22 +1,26 @@
MapArea in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/memory_set/struct.MapPermission.html b/ch5/os/mm/memory_set/struct.MapPermission.html
index 19b3beab..5daa5f40 100644
--- a/ch5/os/mm/memory_set/struct.MapPermission.html
+++ b/ch5/os/mm/memory_set/struct.MapPermission.html
@@ -1,53 +1,55 @@
MapPermission in os::mm::memory_set - Rust
-
Returns the union of between the flags in self and other.
Specifically, the returned set contains all flags which are
present in eitherselforother, including any which are
present in both (see Self::symmetric_difference if that
is undesirable).
This is equivalent to using the | operator (e.g.
ops::BitOr), as in flags | other.
Specifically, the returned set contains the flags present which
are present in self or other, but that are not present in
@@ -55,65 +57,67 @@ both. Equivalently, it contains the flags present in exactly
one of the sets self and other.
This is equivalent to using the ^ operator (e.g.
ops::BitXor), as in flags ^ other.
\ No newline at end of file
diff --git a/ch5/os/mm/memory_set/struct.MemorySet.html b/ch5/os/mm/memory_set/struct.MemorySet.html
index a2808258..e781337c 100644
--- a/ch5/os/mm/memory_set/struct.MemorySet.html
+++ b/ch5/os/mm/memory_set/struct.MemorySet.html
@@ -1,23 +1,27 @@
MemorySet in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/page_table/fn.translated_byte_buffer.html b/ch5/os/mm/page_table/fn.translated_byte_buffer.html
index 6e9bc30e..e56ed8cd 100644
--- a/ch5/os/mm/page_table/fn.translated_byte_buffer.html
+++ b/ch5/os/mm/page_table/fn.translated_byte_buffer.html
@@ -1,6 +1,8 @@
translated_byte_buffer in os::mm::page_table - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/page_table/fn.translated_refmut.html b/ch5/os/mm/page_table/fn.translated_refmut.html
index c4a136bb..427feb7f 100644
--- a/ch5/os/mm/page_table/fn.translated_refmut.html
+++ b/ch5/os/mm/page_table/fn.translated_refmut.html
@@ -1,6 +1,8 @@
translated_refmut in os::mm::page_table - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/page_table/fn.translated_str.html b/ch5/os/mm/page_table/fn.translated_str.html
index f292bebf..1919d3c4 100644
--- a/ch5/os/mm/page_table/fn.translated_str.html
+++ b/ch5/os/mm/page_table/fn.translated_str.html
@@ -1,6 +1,8 @@
translated_str in os::mm::page_table - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/page_table/struct.PTEFlags.html b/ch5/os/mm/page_table/struct.PTEFlags.html
index f73ea52f..569d8117 100644
--- a/ch5/os/mm/page_table/struct.PTEFlags.html
+++ b/ch5/os/mm/page_table/struct.PTEFlags.html
@@ -1,53 +1,55 @@
PTEFlags in os::mm::page_table - Rust
-
Returns the union of between the flags in self and other.
Specifically, the returned set contains all flags which are
present in eitherselforother, including any which are
present in both (see Self::symmetric_difference if that
is undesirable).
This is equivalent to using the | operator (e.g.
ops::BitOr), as in flags | other.
Specifically, the returned set contains the flags present which
are present in self or other, but that are not present in
@@ -55,65 +57,67 @@ both. Equivalently, it contains the flags present in exactly
one of the sets self and other.
This is equivalent to using the ^ operator (e.g.
ops::BitXor), as in flags ^ other.
\ No newline at end of file
diff --git a/ch5/os/mm/page_table/struct.PageTable.html b/ch5/os/mm/page_table/struct.PageTable.html
index e71beade..62e7a55d 100644
--- a/ch5/os/mm/page_table/struct.PageTable.html
+++ b/ch5/os/mm/page_table/struct.PageTable.html
@@ -1,20 +1,24 @@
PageTable in os::mm::page_table - Rust
-
\ No newline at end of file
diff --git a/ch5/os/mm/page_table/struct.PageTableEntry.html b/ch5/os/mm/page_table/struct.PageTableEntry.html
index cc67b5da..a22fe547 100644
--- a/ch5/os/mm/page_table/struct.PageTableEntry.html
+++ b/ch5/os/mm/page_table/struct.PageTableEntry.html
@@ -1,22 +1,26 @@
PageTableEntry in os::mm::page_table - Rust
-
\ No newline at end of file
diff --git a/ch5/os/sbi/constant.SBI_CLEAR_IPI.html b/ch5/os/sbi/constant.SBI_CLEAR_IPI.html
index c191974c..f5d56dfa 100644
--- a/ch5/os/sbi/constant.SBI_CLEAR_IPI.html
+++ b/ch5/os/sbi/constant.SBI_CLEAR_IPI.html
@@ -1,6 +1,8 @@
SBI_CLEAR_IPI in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch5/os/sbi/constant.SBI_CONSOLE_GETCHAR.html b/ch5/os/sbi/constant.SBI_CONSOLE_GETCHAR.html
index 12640c16..042f0251 100644
--- a/ch5/os/sbi/constant.SBI_CONSOLE_GETCHAR.html
+++ b/ch5/os/sbi/constant.SBI_CONSOLE_GETCHAR.html
@@ -1,6 +1,8 @@
SBI_CONSOLE_GETCHAR in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch5/os/sbi/constant.SBI_CONSOLE_PUTCHAR.html b/ch5/os/sbi/constant.SBI_CONSOLE_PUTCHAR.html
index 11240f3f..fca7335b 100644
--- a/ch5/os/sbi/constant.SBI_CONSOLE_PUTCHAR.html
+++ b/ch5/os/sbi/constant.SBI_CONSOLE_PUTCHAR.html
@@ -1,6 +1,8 @@
SBI_CONSOLE_PUTCHAR in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch5/os/sbi/constant.SBI_REMOTE_FENCE_I.html b/ch5/os/sbi/constant.SBI_REMOTE_FENCE_I.html
index 35e0c19e..cb9d263a 100644
--- a/ch5/os/sbi/constant.SBI_REMOTE_FENCE_I.html
+++ b/ch5/os/sbi/constant.SBI_REMOTE_FENCE_I.html
@@ -1,6 +1,8 @@
SBI_REMOTE_FENCE_I in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch5/os/sbi/constant.SBI_REMOTE_SFENCE_VMA.html b/ch5/os/sbi/constant.SBI_REMOTE_SFENCE_VMA.html
index 4bedd2b5..4a7078eb 100644
--- a/ch5/os/sbi/constant.SBI_REMOTE_SFENCE_VMA.html
+++ b/ch5/os/sbi/constant.SBI_REMOTE_SFENCE_VMA.html
@@ -1,6 +1,8 @@
SBI_REMOTE_SFENCE_VMA in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch5/os/sbi/constant.SBI_REMOTE_SFENCE_VMA_ASID.html b/ch5/os/sbi/constant.SBI_REMOTE_SFENCE_VMA_ASID.html
index 06c69ce2..3c7e411b 100644
--- a/ch5/os/sbi/constant.SBI_REMOTE_SFENCE_VMA_ASID.html
+++ b/ch5/os/sbi/constant.SBI_REMOTE_SFENCE_VMA_ASID.html
@@ -1,6 +1,8 @@
SBI_REMOTE_SFENCE_VMA_ASID in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch5/os/sbi/constant.SBI_SEND_IPI.html b/ch5/os/sbi/constant.SBI_SEND_IPI.html
index a3da3df2..07195820 100644
--- a/ch5/os/sbi/constant.SBI_SEND_IPI.html
+++ b/ch5/os/sbi/constant.SBI_SEND_IPI.html
@@ -1,6 +1,8 @@
SBI_SEND_IPI in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch5/os/sbi/constant.SBI_SET_TIMER.html b/ch5/os/sbi/constant.SBI_SET_TIMER.html
index b8c22ab8..5fcd7bc4 100644
--- a/ch5/os/sbi/constant.SBI_SET_TIMER.html
+++ b/ch5/os/sbi/constant.SBI_SET_TIMER.html
@@ -1,6 +1,8 @@
SBI_SET_TIMER in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch5/os/sbi/constant.SBI_SHUTDOWN.html b/ch5/os/sbi/constant.SBI_SHUTDOWN.html
index 1019984f..bfed6936 100644
--- a/ch5/os/sbi/constant.SBI_SHUTDOWN.html
+++ b/ch5/os/sbi/constant.SBI_SHUTDOWN.html
@@ -1,6 +1,8 @@
SBI_SHUTDOWN in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch5/os/sbi/fn.console_getchar.html b/ch5/os/sbi/fn.console_getchar.html
index 877c7578..1223ca43 100644
--- a/ch5/os/sbi/fn.console_getchar.html
+++ b/ch5/os/sbi/fn.console_getchar.html
@@ -1,6 +1,8 @@
console_getchar in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch5/os/sbi/fn.console_putchar.html b/ch5/os/sbi/fn.console_putchar.html
index d1f365ff..f65a2732 100644
--- a/ch5/os/sbi/fn.console_putchar.html
+++ b/ch5/os/sbi/fn.console_putchar.html
@@ -1,6 +1,8 @@
console_putchar in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch5/os/sbi/fn.sbi_call.html b/ch5/os/sbi/fn.sbi_call.html
index 00731305..7555efc9 100644
--- a/ch5/os/sbi/fn.sbi_call.html
+++ b/ch5/os/sbi/fn.sbi_call.html
@@ -1,6 +1,8 @@
sbi_call in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch5/os/sbi/fn.set_timer.html b/ch5/os/sbi/fn.set_timer.html
index baa87c5b..a189954c 100644
--- a/ch5/os/sbi/fn.set_timer.html
+++ b/ch5/os/sbi/fn.set_timer.html
@@ -1,6 +1,8 @@
set_timer in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch5/os/sbi/fn.shutdown.html b/ch5/os/sbi/fn.shutdown.html
index 14b7a2d8..67e910eb 100644
--- a/ch5/os/sbi/fn.shutdown.html
+++ b/ch5/os/sbi/fn.shutdown.html
@@ -1,6 +1,8 @@
shutdown in os::sbi - Rust
-
Wrap a static data structure inside it so that we are
able to access it without any unsafe.
-
+
\ No newline at end of file
diff --git a/ch5/os/sync/up/struct.UPSafeCell.html b/ch5/os/sync/up/struct.UPSafeCell.html
index d29e93de..c8e804ed 100644
--- a/ch5/os/sync/up/struct.UPSafeCell.html
+++ b/ch5/os/sync/up/struct.UPSafeCell.html
@@ -1,8 +1,10 @@
UPSafeCell in os::sync::up - Rust
-
\ No newline at end of file
diff --git a/ch5/os/syscall/constant.SYSCALL_EXEC.html b/ch5/os/syscall/constant.SYSCALL_EXEC.html
index f40bc661..f72dc503 100644
--- a/ch5/os/syscall/constant.SYSCALL_EXEC.html
+++ b/ch5/os/syscall/constant.SYSCALL_EXEC.html
@@ -1,6 +1,8 @@
SYSCALL_EXEC in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch5/os/syscall/constant.SYSCALL_EXIT.html b/ch5/os/syscall/constant.SYSCALL_EXIT.html
index 464eba7c..679ff529 100644
--- a/ch5/os/syscall/constant.SYSCALL_EXIT.html
+++ b/ch5/os/syscall/constant.SYSCALL_EXIT.html
@@ -1,6 +1,8 @@
SYSCALL_EXIT in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch5/os/syscall/constant.SYSCALL_FORK.html b/ch5/os/syscall/constant.SYSCALL_FORK.html
index 53088925..1af4a6b1 100644
--- a/ch5/os/syscall/constant.SYSCALL_FORK.html
+++ b/ch5/os/syscall/constant.SYSCALL_FORK.html
@@ -1,6 +1,8 @@
SYSCALL_FORK in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch5/os/syscall/constant.SYSCALL_GETPID.html b/ch5/os/syscall/constant.SYSCALL_GETPID.html
index 15048b6d..da57cb63 100644
--- a/ch5/os/syscall/constant.SYSCALL_GETPID.html
+++ b/ch5/os/syscall/constant.SYSCALL_GETPID.html
@@ -1,6 +1,8 @@
SYSCALL_GETPID in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch5/os/syscall/constant.SYSCALL_GET_TIME.html b/ch5/os/syscall/constant.SYSCALL_GET_TIME.html
index fda55bd6..dde97827 100644
--- a/ch5/os/syscall/constant.SYSCALL_GET_TIME.html
+++ b/ch5/os/syscall/constant.SYSCALL_GET_TIME.html
@@ -1,6 +1,8 @@
SYSCALL_GET_TIME in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch5/os/syscall/constant.SYSCALL_READ.html b/ch5/os/syscall/constant.SYSCALL_READ.html
index c0b96a88..47f90fdf 100644
--- a/ch5/os/syscall/constant.SYSCALL_READ.html
+++ b/ch5/os/syscall/constant.SYSCALL_READ.html
@@ -1,6 +1,8 @@
SYSCALL_READ in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch5/os/syscall/constant.SYSCALL_WAITPID.html b/ch5/os/syscall/constant.SYSCALL_WAITPID.html
index 39ca32ea..6e5bbc4f 100644
--- a/ch5/os/syscall/constant.SYSCALL_WAITPID.html
+++ b/ch5/os/syscall/constant.SYSCALL_WAITPID.html
@@ -1,6 +1,8 @@
SYSCALL_WAITPID in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch5/os/syscall/constant.SYSCALL_WRITE.html b/ch5/os/syscall/constant.SYSCALL_WRITE.html
index e63b5729..4f0b757d 100644
--- a/ch5/os/syscall/constant.SYSCALL_WRITE.html
+++ b/ch5/os/syscall/constant.SYSCALL_WRITE.html
@@ -1,6 +1,8 @@
SYSCALL_WRITE in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch5/os/syscall/constant.SYSCALL_YIELD.html b/ch5/os/syscall/constant.SYSCALL_YIELD.html
index cb833add..395a7497 100644
--- a/ch5/os/syscall/constant.SYSCALL_YIELD.html
+++ b/ch5/os/syscall/constant.SYSCALL_YIELD.html
@@ -1,6 +1,8 @@
SYSCALL_YIELD in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch5/os/syscall/fn.syscall.html b/ch5/os/syscall/fn.syscall.html
index 7fbedd49..59638bdf 100644
--- a/ch5/os/syscall/fn.syscall.html
+++ b/ch5/os/syscall/fn.syscall.html
@@ -1,6 +1,8 @@
syscall in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch5/os/syscall/fs/constant.FD_STDIN.html b/ch5/os/syscall/fs/constant.FD_STDIN.html
index eedc0ec2..6e4c3202 100644
--- a/ch5/os/syscall/fs/constant.FD_STDIN.html
+++ b/ch5/os/syscall/fs/constant.FD_STDIN.html
@@ -1,6 +1,8 @@
FD_STDIN in os::syscall::fs - Rust
-
\ No newline at end of file
diff --git a/ch5/os/syscall/fs/constant.FD_STDOUT.html b/ch5/os/syscall/fs/constant.FD_STDOUT.html
index acbdf2fc..6e494fa8 100644
--- a/ch5/os/syscall/fs/constant.FD_STDOUT.html
+++ b/ch5/os/syscall/fs/constant.FD_STDOUT.html
@@ -1,6 +1,8 @@
FD_STDOUT in os::syscall::fs - Rust
-
\ No newline at end of file
diff --git a/ch5/os/syscall/fs/fn.sys_read.html b/ch5/os/syscall/fs/fn.sys_read.html
index 0568fd93..3cab4c90 100644
--- a/ch5/os/syscall/fs/fn.sys_read.html
+++ b/ch5/os/syscall/fs/fn.sys_read.html
@@ -1,6 +1,8 @@
sys_read in os::syscall::fs - Rust
-
\ No newline at end of file
diff --git a/ch5/os/syscall/fs/fn.sys_write.html b/ch5/os/syscall/fs/fn.sys_write.html
index cafa3973..54e5b8e8 100644
--- a/ch5/os/syscall/fs/fn.sys_write.html
+++ b/ch5/os/syscall/fs/fn.sys_write.html
@@ -1,6 +1,8 @@
sys_write in os::syscall::fs - Rust
-
\ No newline at end of file
diff --git a/ch5/os/syscall/process/fn.sys_exec.html b/ch5/os/syscall/process/fn.sys_exec.html
index 83647c77..d7803c48 100644
--- a/ch5/os/syscall/process/fn.sys_exec.html
+++ b/ch5/os/syscall/process/fn.sys_exec.html
@@ -1,6 +1,8 @@
sys_exec in os::syscall::process - Rust
-
\ No newline at end of file
diff --git a/ch5/os/syscall/process/fn.sys_exit.html b/ch5/os/syscall/process/fn.sys_exit.html
index e57c8399..4455a982 100644
--- a/ch5/os/syscall/process/fn.sys_exit.html
+++ b/ch5/os/syscall/process/fn.sys_exit.html
@@ -1,6 +1,8 @@
sys_exit in os::syscall::process - Rust
-
\ No newline at end of file
diff --git a/ch5/os/syscall/process/fn.sys_fork.html b/ch5/os/syscall/process/fn.sys_fork.html
index e368f0bc..32ff7296 100644
--- a/ch5/os/syscall/process/fn.sys_fork.html
+++ b/ch5/os/syscall/process/fn.sys_fork.html
@@ -1,6 +1,8 @@
sys_fork in os::syscall::process - Rust
-
\ No newline at end of file
diff --git a/ch5/os/syscall/process/fn.sys_get_time.html b/ch5/os/syscall/process/fn.sys_get_time.html
index 01d1b61a..67e92816 100644
--- a/ch5/os/syscall/process/fn.sys_get_time.html
+++ b/ch5/os/syscall/process/fn.sys_get_time.html
@@ -1,6 +1,8 @@
sys_get_time in os::syscall::process - Rust
-
\ No newline at end of file
diff --git a/ch5/os/syscall/process/fn.sys_getpid.html b/ch5/os/syscall/process/fn.sys_getpid.html
index 77c40a1d..0f919c59 100644
--- a/ch5/os/syscall/process/fn.sys_getpid.html
+++ b/ch5/os/syscall/process/fn.sys_getpid.html
@@ -1,6 +1,8 @@
sys_getpid in os::syscall::process - Rust
-
\ No newline at end of file
diff --git a/ch5/os/syscall/process/fn.sys_waitpid.html b/ch5/os/syscall/process/fn.sys_waitpid.html
index 361462db..00aba2bd 100644
--- a/ch5/os/syscall/process/fn.sys_waitpid.html
+++ b/ch5/os/syscall/process/fn.sys_waitpid.html
@@ -1,8 +1,10 @@
sys_waitpid in os::syscall::process - Rust
-
If there is not a child process whose pid is same as given, return -1.
Else if there is a child process but it is still running, return -2.
-
+
\ No newline at end of file
diff --git a/ch5/os/syscall/process/fn.sys_yield.html b/ch5/os/syscall/process/fn.sys_yield.html
index 722f45e6..25478be0 100644
--- a/ch5/os/syscall/process/fn.sys_yield.html
+++ b/ch5/os/syscall/process/fn.sys_yield.html
@@ -1,6 +1,8 @@
sys_yield in os::syscall::process - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/context/struct.TaskContext.html b/ch5/os/task/context/struct.TaskContext.html
index 86c3149c..76dd0a3a 100644
--- a/ch5/os/task/context/struct.TaskContext.html
+++ b/ch5/os/task/context/struct.TaskContext.html
@@ -1,19 +1,23 @@
TaskContext in os::task::context - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/fn.add_initproc.html b/ch5/os/task/fn.add_initproc.html
index c424f97b..d62c66b4 100644
--- a/ch5/os/task/fn.add_initproc.html
+++ b/ch5/os/task/fn.add_initproc.html
@@ -1,6 +1,8 @@
add_initproc in os::task - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/fn.exit_current_and_run_next.html b/ch5/os/task/fn.exit_current_and_run_next.html
index 4af3eb47..421c7007 100644
--- a/ch5/os/task/fn.exit_current_and_run_next.html
+++ b/ch5/os/task/fn.exit_current_and_run_next.html
@@ -1,6 +1,8 @@
exit_current_and_run_next in os::task - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/fn.suspend_current_and_run_next.html b/ch5/os/task/fn.suspend_current_and_run_next.html
index 7d580708..cb4d0eff 100644
--- a/ch5/os/task/fn.suspend_current_and_run_next.html
+++ b/ch5/os/task/fn.suspend_current_and_run_next.html
@@ -1,6 +1,8 @@
suspend_current_and_run_next in os::task - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/manager/fn.add_task.html b/ch5/os/task/manager/fn.add_task.html
index 2a9ab4d8..ca3e2057 100644
--- a/ch5/os/task/manager/fn.add_task.html
+++ b/ch5/os/task/manager/fn.add_task.html
@@ -1,6 +1,8 @@
add_task in os::task::manager - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/manager/fn.fetch_task.html b/ch5/os/task/manager/fn.fetch_task.html
index 64ee023e..4ad84f26 100644
--- a/ch5/os/task/manager/fn.fetch_task.html
+++ b/ch5/os/task/manager/fn.fetch_task.html
@@ -1,6 +1,8 @@
fetch_task in os::task::manager - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/manager/struct.TASK_MANAGER.html b/ch5/os/task/manager/struct.TASK_MANAGER.html
index 622feea7..bffc4f98 100644
--- a/ch5/os/task/manager/struct.TASK_MANAGER.html
+++ b/ch5/os/task/manager/struct.TASK_MANAGER.html
@@ -1,20 +1,24 @@
TASK_MANAGER in os::task::manager - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/manager/struct.TaskManager.html b/ch5/os/task/manager/struct.TaskManager.html
index 06461f22..78cc2788 100644
--- a/ch5/os/task/manager/struct.TaskManager.html
+++ b/ch5/os/task/manager/struct.TaskManager.html
@@ -1,18 +1,22 @@
TaskManager in os::task::manager - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/pid/fn.kernel_stack_position.html b/ch5/os/task/pid/fn.kernel_stack_position.html
index c8047ba9..b376fb97 100644
--- a/ch5/os/task/pid/fn.kernel_stack_position.html
+++ b/ch5/os/task/pid/fn.kernel_stack_position.html
@@ -1,7 +1,9 @@
kernel_stack_position in os::task::pid - Rust
-
Return (bottom, top) of a kernel stack in kernel space.
+
\ No newline at end of file
diff --git a/ch5/os/task/pid/fn.pid_alloc.html b/ch5/os/task/pid/fn.pid_alloc.html
index 7d2a92d4..62d78ef5 100644
--- a/ch5/os/task/pid/fn.pid_alloc.html
+++ b/ch5/os/task/pid/fn.pid_alloc.html
@@ -1,6 +1,8 @@
pid_alloc in os::task::pid - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/pid/struct.KernelStack.html b/ch5/os/task/pid/struct.KernelStack.html
index dde1f8f5..b52aa17d 100644
--- a/ch5/os/task/pid/struct.KernelStack.html
+++ b/ch5/os/task/pid/struct.KernelStack.html
@@ -1,18 +1,22 @@
KernelStack in os::task::pid - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/pid/struct.PID_ALLOCATOR.html b/ch5/os/task/pid/struct.PID_ALLOCATOR.html
index ee7ac7a9..992d2ff1 100644
--- a/ch5/os/task/pid/struct.PID_ALLOCATOR.html
+++ b/ch5/os/task/pid/struct.PID_ALLOCATOR.html
@@ -1,20 +1,24 @@
PID_ALLOCATOR in os::task::pid - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/pid/struct.PidAllocator.html b/ch5/os/task/pid/struct.PidAllocator.html
index c7fb2739..29906633 100644
--- a/ch5/os/task/pid/struct.PidAllocator.html
+++ b/ch5/os/task/pid/struct.PidAllocator.html
@@ -1,18 +1,22 @@
PidAllocator in os::task::pid - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/pid/struct.PidHandle.html b/ch5/os/task/pid/struct.PidHandle.html
index a95e493a..ec8f976f 100644
--- a/ch5/os/task/pid/struct.PidHandle.html
+++ b/ch5/os/task/pid/struct.PidHandle.html
@@ -1,16 +1,20 @@
PidHandle in os::task::pid - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/processor/fn.current_task.html b/ch5/os/task/processor/fn.current_task.html
index eced5d3c..4d215a57 100644
--- a/ch5/os/task/processor/fn.current_task.html
+++ b/ch5/os/task/processor/fn.current_task.html
@@ -1,6 +1,8 @@
current_task in os::task::processor - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/processor/fn.current_trap_cx.html b/ch5/os/task/processor/fn.current_trap_cx.html
index 1c2bcfd2..9154b64a 100644
--- a/ch5/os/task/processor/fn.current_trap_cx.html
+++ b/ch5/os/task/processor/fn.current_trap_cx.html
@@ -1,6 +1,8 @@
current_trap_cx in os::task::processor - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/processor/fn.current_user_token.html b/ch5/os/task/processor/fn.current_user_token.html
index 9256555e..c759936a 100644
--- a/ch5/os/task/processor/fn.current_user_token.html
+++ b/ch5/os/task/processor/fn.current_user_token.html
@@ -1,6 +1,8 @@
current_user_token in os::task::processor - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/processor/fn.run_tasks.html b/ch5/os/task/processor/fn.run_tasks.html
index d40f4013..e94dce0a 100644
--- a/ch5/os/task/processor/fn.run_tasks.html
+++ b/ch5/os/task/processor/fn.run_tasks.html
@@ -1,6 +1,8 @@
run_tasks in os::task::processor - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/processor/fn.schedule.html b/ch5/os/task/processor/fn.schedule.html
index 9b6c30b2..35900ba3 100644
--- a/ch5/os/task/processor/fn.schedule.html
+++ b/ch5/os/task/processor/fn.schedule.html
@@ -1,6 +1,8 @@
schedule in os::task::processor - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/processor/fn.take_current_task.html b/ch5/os/task/processor/fn.take_current_task.html
index f715f7ac..9ee54b69 100644
--- a/ch5/os/task/processor/fn.take_current_task.html
+++ b/ch5/os/task/processor/fn.take_current_task.html
@@ -1,6 +1,8 @@
take_current_task in os::task::processor - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/processor/struct.PROCESSOR.html b/ch5/os/task/processor/struct.PROCESSOR.html
index 02d16739..0c4a9675 100644
--- a/ch5/os/task/processor/struct.PROCESSOR.html
+++ b/ch5/os/task/processor/struct.PROCESSOR.html
@@ -1,20 +1,24 @@
PROCESSOR in os::task::processor - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/processor/struct.Processor.html b/ch5/os/task/processor/struct.Processor.html
index 9fc6cc87..48ca87af 100644
--- a/ch5/os/task/processor/struct.Processor.html
+++ b/ch5/os/task/processor/struct.Processor.html
@@ -1,18 +1,22 @@
Processor in os::task::processor - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/struct.INITPROC.html b/ch5/os/task/struct.INITPROC.html
index eb0fedda..56bc8395 100644
--- a/ch5/os/task/struct.INITPROC.html
+++ b/ch5/os/task/struct.INITPROC.html
@@ -1,19 +1,23 @@
INITPROC in os::task - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/switch/fn.__switch.html b/ch5/os/task/switch/fn.__switch.html
index 7d5e620d..71540423 100644
--- a/ch5/os/task/switch/fn.__switch.html
+++ b/ch5/os/task/switch/fn.__switch.html
@@ -1,6 +1,8 @@
__switch in os::task::switch - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/task/enum.TaskStatus.html b/ch5/os/task/task/enum.TaskStatus.html
index 537b4982..fa126cf5 100644
--- a/ch5/os/task/task/enum.TaskStatus.html
+++ b/ch5/os/task/task/enum.TaskStatus.html
@@ -1,27 +1,31 @@
TaskStatus in os::task::task - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/task/struct.TaskControlBlock.html b/ch5/os/task/task/struct.TaskControlBlock.html
index a10db86d..d1aa7363 100644
--- a/ch5/os/task/task/struct.TaskControlBlock.html
+++ b/ch5/os/task/task/struct.TaskControlBlock.html
@@ -1,19 +1,23 @@
TaskControlBlock in os::task::task - Rust
-
\ No newline at end of file
diff --git a/ch5/os/task/task/struct.TaskControlBlockInner.html b/ch5/os/task/task/struct.TaskControlBlockInner.html
index 5cee9f2b..3a55b911 100644
--- a/ch5/os/task/task/struct.TaskControlBlockInner.html
+++ b/ch5/os/task/task/struct.TaskControlBlockInner.html
@@ -1,8 +1,10 @@
TaskControlBlockInner in os::task::task - Rust
-
\ No newline at end of file
diff --git a/ch5/os/timer/constant.MSEC_PER_SEC.html b/ch5/os/timer/constant.MSEC_PER_SEC.html
index 0ac83405..a7764fdb 100644
--- a/ch5/os/timer/constant.MSEC_PER_SEC.html
+++ b/ch5/os/timer/constant.MSEC_PER_SEC.html
@@ -1,6 +1,8 @@
MSEC_PER_SEC in os::timer - Rust
-
\ No newline at end of file
diff --git a/ch5/os/timer/constant.TICKS_PER_SEC.html b/ch5/os/timer/constant.TICKS_PER_SEC.html
index 22a5816d..6fc1e532 100644
--- a/ch5/os/timer/constant.TICKS_PER_SEC.html
+++ b/ch5/os/timer/constant.TICKS_PER_SEC.html
@@ -1,6 +1,8 @@
TICKS_PER_SEC in os::timer - Rust
-
\ No newline at end of file
diff --git a/ch5/os/timer/fn.get_time.html b/ch5/os/timer/fn.get_time.html
index 2950e5cb..1aca5ac7 100644
--- a/ch5/os/timer/fn.get_time.html
+++ b/ch5/os/timer/fn.get_time.html
@@ -1,6 +1,8 @@
get_time in os::timer - Rust
-
\ No newline at end of file
diff --git a/ch5/os/timer/fn.get_time_ms.html b/ch5/os/timer/fn.get_time_ms.html
index 8fa89c86..bb616663 100644
--- a/ch5/os/timer/fn.get_time_ms.html
+++ b/ch5/os/timer/fn.get_time_ms.html
@@ -1,6 +1,8 @@
get_time_ms in os::timer - Rust
-
\ No newline at end of file
diff --git a/ch5/os/timer/fn.set_next_trigger.html b/ch5/os/timer/fn.set_next_trigger.html
index 25cfe55f..9fc42cec 100644
--- a/ch5/os/timer/fn.set_next_trigger.html
+++ b/ch5/os/timer/fn.set_next_trigger.html
@@ -1,6 +1,8 @@
set_next_trigger in os::timer - Rust
-
\ No newline at end of file
diff --git a/ch5/os/trap/context/struct.TrapContext.html b/ch5/os/trap/context/struct.TrapContext.html
index 7a7959a6..2d623688 100644
--- a/ch5/os/trap/context/struct.TrapContext.html
+++ b/ch5/os/trap/context/struct.TrapContext.html
@@ -1,22 +1,26 @@
TrapContext in os::trap::context - Rust
-
\ No newline at end of file
diff --git a/ch5/os/trap/fn.enable_timer_interrupt.html b/ch5/os/trap/fn.enable_timer_interrupt.html
index 4483d3a4..91988237 100644
--- a/ch5/os/trap/fn.enable_timer_interrupt.html
+++ b/ch5/os/trap/fn.enable_timer_interrupt.html
@@ -1,6 +1,8 @@
enable_timer_interrupt in os::trap - Rust
-
\ No newline at end of file
diff --git a/ch5/os/trap/fn.init.html b/ch5/os/trap/fn.init.html
index 327eb15c..b5318088 100644
--- a/ch5/os/trap/fn.init.html
+++ b/ch5/os/trap/fn.init.html
@@ -1,6 +1,8 @@
init in os::trap - Rust
-
\ No newline at end of file
diff --git a/ch5/os/trap/fn.set_kernel_trap_entry.html b/ch5/os/trap/fn.set_kernel_trap_entry.html
index 93082392..4d69dfa0 100644
--- a/ch5/os/trap/fn.set_kernel_trap_entry.html
+++ b/ch5/os/trap/fn.set_kernel_trap_entry.html
@@ -1,6 +1,8 @@
set_kernel_trap_entry in os::trap - Rust
-
\ No newline at end of file
diff --git a/ch5/os/trap/fn.set_user_trap_entry.html b/ch5/os/trap/fn.set_user_trap_entry.html
index cd004a20..77612a14 100644
--- a/ch5/os/trap/fn.set_user_trap_entry.html
+++ b/ch5/os/trap/fn.set_user_trap_entry.html
@@ -1,6 +1,8 @@
set_user_trap_entry in os::trap - Rust
-
\ No newline at end of file
diff --git a/ch5/os/trap/fn.trap_from_kernel.html b/ch5/os/trap/fn.trap_from_kernel.html
index dcd1e5a7..6611b3fa 100644
--- a/ch5/os/trap/fn.trap_from_kernel.html
+++ b/ch5/os/trap/fn.trap_from_kernel.html
@@ -1,7 +1,9 @@
trap_from_kernel in os::trap - Rust
-
\ No newline at end of file
diff --git a/ch5/os/trap/fn.trap_handler.html b/ch5/os/trap/fn.trap_handler.html
index e4de3e2b..dcf830c5 100644
--- a/ch5/os/trap/fn.trap_handler.html
+++ b/ch5/os/trap/fn.trap_handler.html
@@ -1,7 +1,9 @@
trap_handler in os::trap - Rust
-
\ No newline at end of file
diff --git a/ch5/os/trap/fn.trap_return.html b/ch5/os/trap/fn.trap_return.html
index e100e4eb..6be329ca 100644
--- a/ch5/os/trap/fn.trap_return.html
+++ b/ch5/os/trap/fn.trap_return.html
@@ -1,7 +1,9 @@
trap_return in os::trap - Rust
-
\ No newline at end of file
diff --git a/ch5/rustdoc.css b/ch5/rustdoc.css
index deed2f8a..674a5af6 100644
--- a/ch5/rustdoc.css
+++ b/ch5/rustdoc.css
@@ -1 +1 @@
- @font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular.woff2") format("woff2"),url("FiraSans-Regular.woff") format('woff');font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium.woff2") format("woff2"),url("FiraSans-Medium.woff") format('woff');font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular.ttf.woff2") format("woff2"),url("SourceSerif4-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It.ttf.woff2") format("woff2"),url("SourceSerif4-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold.ttf.woff2") format("woff2"),url("SourceSerif4-Bold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular.ttf.woff2") format("woff2"),url("SourceCodePro-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It.ttf.woff2") format("woff2"),url("SourceCodePro-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold.ttf.woff2") format("woff2"),url("SourceCodePro-Semibold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic.ttf.woff2") format("woff2"),url("NanumBarunGothic.ttf.woff") format("woff");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}html{content:"";}@media (prefers-color-scheme:light){html{content:"light";}}@media (prefers-color-scheme:dark){html{content:"dark";}}body{font:1rem/1.4 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;-webkit-font-feature-settings:"kern","liga";-moz-font-feature-settings:"kern","liga";font-feature-settings:"kern","liga";}h1{font-size:1.5rem;}h2{font-size:1.4rem;}h3{font-size:1.3rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:20px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}h1.fqn{margin:0;padding:0;}.main-heading{display:flex;border-bottom:1px dashed #DDDDDD;padding-bottom:6px;margin-bottom:15px;padding-left:1px;}.main-heading a:hover{text-decoration:underline;}#toggle-all-docs{text-decoration:none;}h2,.top-doc h3,.top-doc h4,.sidebar .others h3{border-bottom:1px solid;}h3.code-header{font-size:1.1rem;}h4.code-header{font-size:1rem;}h3.code-header,h4.code-header{font-weight:600;border-bottom-style:none;padding:0;margin:0;}.impl,.impl-items .method,.methods .method,.impl-items .type,.methods .type,.impl-items .associatedconstant,.methods .associatedconstant,.impl-items .associatedtype,.methods .associatedtype{flex-basis:100%;font-weight:600;margin-top:16px;margin-bottom:10px;position:relative;}div.impl-items>div{padding-left:0;}h1,h2,h3,h4,h5,h6,.sidebar,a.source,.search-input,.search-results .result-name,.content table td:first-child>a,.item-left>a,.out-of-band,span.since,#source-sidebar,#sidebar-toggle,details.rustdoc-toggle>summary::before,div.impl-items>div:not(.docblock):not(.item-info),.content ul.crate a.crate,a.srclink,#main-content>ul.docblock>li>a{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}.content ul.crate a.crate{font-size:1rem/1.6;}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;}td,th{padding:0;}table{border-collapse:collapse;}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.source main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}.source .width-limiter{max-width:unset;}details:not(.rustdoc-toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.1em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;}.docblock.item-decl{margin-left:0;}.item-decl pre{overflow-x:auto;}.source .content pre{padding:20px;}img{max-width:100%;}li{position:relative;}.source .content{max-width:none;overflow:visible;margin-left:0px;}nav.sub{position:relative;font-size:1rem;text-transform:uppercase;}.sub-container{display:flex;flex-direction:row;flex-wrap:nowrap;}.sub-logo-container{display:none;margin-right:20px;}.source .sub-logo-container{display:block;}.source .sub-logo-container>img{height:60px;width:60px;object-fit:contain;}.sidebar{width:200px;overflow-y:scroll;position:sticky;min-width:200px;height:100vh;top:0;left:0;}.rustdoc.source .sidebar{width:50px;min-width:0px;max-width:300px;flex-grow:0;flex-shrink:0;flex-basis:auto;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.source .sidebar>*:not(:first-child){transition:opacity 0.5s,visibility 0.2s;opacity:0;visibility:hidden;}.source .sidebar.expanded{overflow-y:auto;}.source .sidebar.expanded>*{opacity:1;visibility:visible;}*{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;}.hidden{display:none !important;}.logo-container{display:flex;margin-top:10px;margin-bottom:10px;justify-content:center;}.logo-container>img{height:100px;width:100px;}.sidebar .location{border:1px solid;font-size:1.0625rem;margin:30px 10px 20px 10px;text-align:center;word-wrap:break-word;font-weight:inherit;padding:0;}.sidebar .version{font-size:0.9375rem;text-align:center;border-bottom:1px solid;overflow-wrap:break-word;overflow-wrap:anywhere;word-wrap:break-word;word-break:break-word;}.location:empty{border:none;}.location a:first-of-type{font-weight:500;}.location a:hover{text-decoration:underline;}.block{padding:0;margin-bottom:14px;}.block h2,.block h3{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:0.875rem;font-weight:300;transition:border 500ms ease-out;}.sidebar-title{border-top:1px solid;border-bottom:1px solid;text-align:center;font-size:1.0625rem;margin-bottom:5px;font-weight:inherit;padding:0;}.sidebar-links{margin-bottom:15px;}.sidebar-links>a{padding-left:10px;width:100%;}.sidebar-menu{display:none;}.source .content pre.rust{white-space:pre;overflow:auto;padding-left:0;}.rustdoc .example-wrap{display:inline-flex;margin-bottom:10px;}.example-wrap{position:relative;width:100%;}.example-wrap>pre.line-number{overflow:initial;border:1px solid;padding:13px 8px;text-align:right;border-top-left-radius:5px;border-bottom-left-radius:5px;}.example-wrap>pre.rust a:hover{text-decoration:underline;}.rustdoc:not(.source) .example-wrap>pre:not(.line-number){width:100%;overflow-x:auto;}.rustdoc:not(.source) .example-wrap>pre.line-numbers{width:auto;overflow-x:visible;}.rustdoc .example-wrap>pre{margin:0;}#search{position:relative;}.search-loading{text-align:center;}#results>table{width:100%;table-layout:fixed;}.content>.example-wrap pre.line-numbers{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.line-numbers span{cursor:pointer;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock-short p{display:inline;}.docblock-short p{overflow:hidden;text-overflow:ellipsis;margin:0;}.docblock>:not(pre)>code,.docblock-short>:not(pre)>code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.3rem;}.top-doc .docblock h3{font-size:1.15rem;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.1rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.95rem;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.information){max-width:100%;overflow-x:auto;}.content .out-of-band{flex-grow:0;text-align:right;margin-left:auto;margin-right:0;font-size:1.15rem;padding:0 0 0 12px;font-weight:normal;float:right;}.method>.code-header,.trait-impl>.code-header,.invisible>.code-header{max-width:calc(100% - 41px);display:block;}.invisible{width:100%;display:inline-block;}.content .in-band{flex-grow:1;margin:0px;padding:0px;overflow-wrap:break-word;overflow-wrap:anywhere;}.in-band>code,.in-band>.code-header{display:inline-block;}#main-content{position:relative;}#main-content>.since{top:inherit;font-family:"Fira Sans",Arial,sans-serif;}.content table:not(.table-display){border-spacing:0 5px;}.content td{vertical-align:top;}.content td:first-child{padding-right:20px;}.content td p:first-child{margin-top:0;}.content td h1,.content td h2{margin-left:0;font-size:1.1rem;}.content tr:first-child td{border-top:0;}.docblock table{margin:.5em 0;width:calc(100% - 2px);overflow-x:auto;overflow-wrap:normal;display:block;}.docblock table td{padding:.5em;border:1px dashed;}.docblock table th{padding:.5em;text-align:left;border:1px solid;}.fields+table{margin-bottom:1em;}.content .item-list{list-style-type:none;padding:0;}.content .multi-column{-moz-column-count:5;-moz-column-gap:2.5em;-webkit-column-count:5;-webkit-column-gap:2.5em;column-count:5;column-gap:2.5em;}.content .multi-column li{width:100%;display:inline-block;}.content>.methods>.method{font-size:1rem;position:relative;}.content .method .where,.content .fn .where,.content .where.fmt-newline{display:block;font-size:0.8rem;}.content .methods>div:not(.notable-traits):not(.method){margin-left:40px;margin-bottom:15px;}.content .docblock>.impl-items{margin-left:20px;margin-top:-34px;}.content .docblock>.impl-items .table-display{margin:0;}.content .docblock>.impl-items table td{padding:0;}.content .docblock>.impl-items .table-display,.impl-items table td{border:none;}.content .item-info code{font-size:0.81rem;}.content .item-info{position:relative;margin-left:33px;}.sub-variant>div>.item-info{margin-top:initial;}.content .item-info::before{content:'⬑';font-size:1.5625rem;position:absolute;top:-6px;left:-19px;}.content .impl-items .docblock,.content .impl-items .item-info{margin-bottom:.6em;}.content .impl-items>.item-info{margin-left:40px;}.methods>.item-info,.content .impl-items>.item-info{margin-top:-8px;}.impl-items{flex-basis:100%;}#main-content>.item-info{margin-top:0;}nav:not(.sidebar){flex-grow:1;border-bottom:1px solid;padding-bottom:10px;margin-bottom:25px;}.source nav:not(.sidebar).sub{margin-left:32px;}nav.main{padding:20px 0;text-align:center;}nav.main .current{border-top:1px solid;border-bottom:1px solid;}nav.main .separator{border:1px solid;display:inline-block;height:23px;margin:0 20px;}nav.sum{text-align:right;}nav.sub form{display:inline;}a{text-decoration:none;background:transparent;}.small-section-header{display:flex;justify-content:space-between;position:relative;}.small-section-header:hover>.anchor{display:initial;}.in-band:hover>.anchor,.impl:hover>.anchor,.method.trait-impl:hover>.anchor,.type.trait-impl:hover>.anchor,.associatedconstant.trait-impl:hover>.anchor,.associatedtype.trait-impl:hover>.anchor{display:inline-block;position:absolute;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.small-section-header>.anchor{left:-15px;padding-right:8px;}h2.small-section-header>.anchor{padding-right:6px;}.anchor::before{content:'§';}.docblock a:not(.srclink):not(.test-arrow):hover,.docblock-short a:not(.srclink):not(.test-arrow):hover,.item-info a{text-decoration:underline;}.invisible>.srclink,.method>.code-header+.srclink{position:absolute;top:0;right:0;font-size:1.0625rem;font-weight:normal;}.block a.current.crate{font-weight:500;}.item-table{display:table;}.item-row{display:table-row;}.item-left,.item-right{display:table-cell;}.item-left{padding-right:1.2rem;}.search-container{position:relative;max-width:960px;}.search-container>div{display:inline-flex;width:calc(100% - 63px);}.search-results-title{display:inline;}#search-settings{font-size:1.5rem;font-weight:500;margin-bottom:20px;}#crate-search{min-width:115px;margin-top:5px;margin-left:0.2em;padding-left:0.3em;padding-right:23px;border:0;border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;text-overflow:"";background-repeat:no-repeat;background-color:transparent;background-size:20px;background-position:calc(100% - 1px) 56%;background-image:url("down-arrow.svg");}.search-container>.top-button{position:absolute;right:0;top:10px;}.search-input{-webkit-appearance:none;-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:1.0625rem;transition:border-color 300ms ease;transition:border-radius 300ms ease-in-out;transition:box-shadow 300ms ease-in-out;width:100%;}.search-input:focus{border-radius:2px;border:0;outline:0;}.search-results{display:none;padding-bottom:2em;}.search-results.active{display:block;clear:both;}.search-results .desc>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;}.search-results>a{display:block;width:100%;margin-left:2px;margin-right:2px;border-bottom:1px solid #aaa3;}.search-results>a>div{display:flex;flex-flow:row wrap;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:50%;}.search-results .result-name{padding-right:1em;}.search-results .result-name>span{display:inline-block;margin:0;font-weight:normal;}body.blur>:not(#help){filter:blur(8px);-webkit-filter:blur(8px);opacity:.7;}#help{width:100%;height:100vh;position:fixed;top:0;left:0;display:flex;justify-content:center;align-items:center;}#help>div{flex:0 0 auto;box-shadow:0 0 6px rgba(0,0,0,.2);width:550px;height:auto;border:1px solid;}#help dt{float:left;clear:left;display:block;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;}#help span.top{text-align:center;display:block;margin:10px 0;border-bottom:1px solid;padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid;}#help dd{margin:5px 35px;}#help .infos{padding-left:0;}#help h1,#help h2{margin-top:0;}#help>div div{width:50%;float:left;padding:0 20px 20px 17px;;}.item-info .stab{display:table;}.stab{padding:3px;margin-bottom:5px;font-size:0.9rem;font-weight:normal;}.stab p{display:inline;}.stab .emoji{font-size:1.2rem;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.module-item .stab,.import-item .stab{border-radius:3px;display:inline-block;font-size:0.8rem;line-height:1.2;margin-bottom:0;margin-left:.3em;padding:2px;vertical-align:text-bottom;}.module-item.unstable,.import-item.unstable{opacity:0.65;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;padding-right:2px;position:initial;}.impl-items .srclink,.impl .srclink,.methods .srclink{font-weight:normal;font-size:1rem;}.impl .srclink{font-size:1.0625rem;}.rightside{float:right;}.has-srclink{font-size:1rem;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;visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.3rem;top:5px;right:5px;z-index:1;}.example-wrap:hover .test-arrow{visibility:visible;}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;}.code-attribute{font-weight:300;}.item-spacer{width:100%;height:12px;}.out-of-band>span.since{position:initial;font-size:1.25rem;margin-right:5px;}h3.variant{font-weight:600;font-size:1.1rem;margin-bottom:10px;border-bottom:none;}.sub-variant h4{font-size:1rem;font-weight:400;border-bottom:none;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}.toggle-label{display:inline-block;margin-left:4px;margin-top:3px;}.top-doc .docblock>.section-header:first-child{margin-left:15px;}.top-doc .docblock>.section-header:first-child:hover>a:before{left:-10px;}.docblock>.section-header:first-child{margin-top:0;}:target>code,:target>.code-header{opacity:1;}:target{padding-right:3px;}.information{position:absolute;left:-25px;margin-top:7px;z-index:1;}.tooltip{position:relative;display:inline-block;cursor:pointer;}.tooltip::after{display:none;text-align:center;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;font-size:1rem;}.tooltip.ignore::after{content:"This example is not tested";}.tooltip.compile_fail::after{content:"This example deliberately fails to compile";}.tooltip.should_panic::after{content:"This example panics";}.tooltip.edition::after{content:"This code runs with edition " attr(data-edition);}.tooltip::before{content:" ";position:absolute;top:50%;left:16px;margin-top:-5px;border-width:5px;border-style:solid;display:none;}.tooltip:hover::before,.tooltip:hover::after{display:inline;}.tooltip.compile_fail,.tooltip.should_panic,.tooltip.ignore{font-weight:bold;font-size:1.25rem;}.notable-traits-tooltip{display:inline-block;cursor:pointer;}.notable-traits:hover .notable-traits-tooltiptext,.notable-traits .notable-traits-tooltiptext.force-tooltip{display:inline-block;}.notable-traits .notable-traits-tooltiptext{display:none;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;z-index:10;font-size:1rem;cursor:default;position:absolute;border:1px solid;}.notable-traits-tooltip::after{content:"\00a0\00a0\00a0";}.notable-traits .notable,.notable-traits .docblock{margin:0;}.notable-traits .notable{margin:0;margin-bottom:13px;font-size:1.1875rem;font-weight:600;}.notable-traits .docblock code.content{margin:0;padding:0;font-size:1.25rem;}pre.rust.rust-example-rendered{position:relative;}pre.rust{tab-size:4;-moz-tab-size:4;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#titles{height:35px;}#titles>button{float:left;width:33.3%;text-align:center;font-size:1.125rem;cursor:pointer;border:0;border-top:2px solid;}#titles>button:not(:last-child){margin-right:1px;width:calc(33.3% - 1px);}#titles>button>div.count{display:inline-block;font-size:1rem;}.notable-traits{cursor:pointer;z-index:2;margin-left:5px;}#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:sticky;top:0;left:0;cursor:pointer;font-weight:bold;font-size:1.2rem;border-bottom:1px solid;display:flex;height:40px;justify-content:center;align-items:center;z-index:10;}#source-sidebar{width:100%;z-index:1;overflow:auto;}#source-sidebar>.title{font-size:1.5rem;text-align:center;border-bottom:1px solid;margin-bottom:6px;}.theme-picker{position:absolute;left:-34px;top:9px;}.theme-picker button{outline:none;}#settings-menu,#help-button{position:absolute;top:10px;}#settings-menu{right:0;outline:none;}#theme-picker,#settings-menu,#help-button,#copy-path{padding:4px;font-size:16px;width:27px;height:29px;border:1px solid;border-radius:3px;cursor:pointer;}#help-button{right:30px;font-family:"Fira Sans",Arial,sans-serif;text-align:center;font-size:16px;padding-top:2px;}#copy-path{background:initial;margin-left:10px;padding:0;padding-left:2px;border:0;}#theme-choices{display:none;position:absolute;left:0;top:28px;border:1px solid;border-radius:3px;z-index:1;cursor:pointer;}#theme-choices>button{border:none;width:100%;padding:4px 8px;text-align:center;background:rgba(0,0,0,0);overflow-wrap:normal;}#theme-choices>button:not(:first-child){border-top:1px solid;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px;border-radius:3px;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:1rem;}.table-display tr td:first-child{padding-right:0;}.table-display tr td:last-child{float:right;}.table-display .out-of-band{position:relative;font-size:1.1875rem;display:block;}#implementors-list>.impl-items .table-display .out-of-band{font-size:1.0625rem;}.table-display td:hover .anchor{display:block;top:2px;left:-5px;}#main-content>ul{padding-left:10px;}#main-content>ul>li{list-style:none;}.non-exhaustive{margin-bottom:1em;}div.children{padding-left:27px;display:none;}div.name{cursor:pointer;position:relative;margin-left:16px;}div.files>a{display:block;padding:0 3px;}div.files>a:hover,div.name:hover{background-color:#a14b4b;}div.name.expand+.children{display:block;}div.name::before{content:"\25B6";padding-left:4px;font-size:0.7rem;position:absolute;left:-16px;top:4px;}div.name.expand::before{transform:rotate(90deg);left:-15px;top:2px;}details.rustdoc-toggle>summary.hideme{cursor:pointer;}details.rustdoc-toggle>summary{list-style:none;}details.rustdoc-toggle>summary::-webkit-details-marker,details.rustdoc-toggle>summary::marker{display:none;}details.rustdoc-toggle>summary.hideme>span{margin-left:9px;}details.rustdoc-toggle>summary::before{content:"";cursor:pointer;width:17px;height:max(17px,1.1em);background-repeat:no-repeat;background-position:top left;display:inline-block;vertical-align:middle;opacity:.5;}details.rustdoc-toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.rustdoc-toggle>summary.hideme::after{content:"";}details.rustdoc-toggle>summary:focus::before,details.rustdoc-toggle>summary:hover::before{opacity:1;}details.rustdoc-toggle.top-doc>summary,details.rustdoc-toggle.top-doc>summary::before,details.rustdoc-toggle.non-exhaustive>summary,details.rustdoc-toggle.non-exhaustive>summary::before{font-family:'Fira Sans';font-size:1rem;}details.non-exhaustive{margin-bottom:8px;}details.rustdoc-toggle>summary.hideme::before{position:relative;}details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:3px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.rustdoc-toggle[open] >summary.hideme{position:absolute;}details.rustdoc-toggle{position:relative;}details.rustdoc-toggle[open] >summary.hideme>span{display:none;}details.undocumented[open] >summary::before,details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{background-image:url("toggle-minus.svg");}details.undocumented>summary::before,details.rustdoc-toggle>summary::before{background-image:url("toggle-plus.svg");}details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{width:17px;height:max(17px,1.1em);background-repeat:no-repeat;background-position:top left;display:inline-block;content:"";}details.rustdoc-toggle[open] >summary::after,details.rustdoc-toggle[open] >summary.hideme::after{content:"Collapse";}@media (min-width:701px){.docblock>.information:first-child>.tooltip{margin-top:16px;}.sidebar.expanded+main .width-limiter .sub-logo-container.rust-logo{display:none;}.rustdoc.source .sidebar{transition:width .5s;}.source .sidebar.expanded{width:300px;}}@media (max-width:700px){body{padding-top:0px;}main{padding-left:15px;padding-top:0px;}#theme-picker{display:none;width:0;}.rustdoc{flex-direction:column;}.rustdoc:not(.source)>.sidebar{width:100%;height:45px;min-height:40px;max-height:45px;margin:0;padding:0 15px;position:static;z-index:11;overflow-y:hidden;}.rustdoc.source>.sidebar{position:fixed;top:0;left:0;margin:0;z-index:11;width:0;}.sidebar.mobile{position:sticky !important;top:0;left:0;width:100%;margin-left:0;background-color:rgba(0,0,0,0);}.sidebar>.location{float:right;margin:0px;margin-top:2px;padding:3px 10px 1px 10px;min-height:39px;background:inherit;text-align:left;font-size:1.5rem;}.sidebar .location:empty{padding:0;}.rustdoc:not(.source) .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;top: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;top:45px;bottom:0;width:246px;left:-246px;overflow-y:auto;border-right:1px solid;}.sidebar>.block.version{overflow:hidden;border-bottom:none;margin-bottom:0;height:100%;padding-left:12px;}.sidebar>.block.version>div.narrow-helper{float:left;width:1px;height:100%;}.sidebar>.block.version>p{margin:0;min-width:55px;display:flex;align-items:center;height:100%;}.source nav:not(.sidebar).sub{margin-left:32px;}.content{margin-left:0px;}.source .content{margin-top:10px;}#search{margin-left:0;padding:0;}.anchor{display:none !important;}.theme-picker{z-index:1;}.notable-traits{position:absolute;left:-22px;top:24px;}#titles>button>div.count{float:left;width:100%;}#titles{height:50px;}.show-it,.sidebar-elems:focus-within{z-index:2;left:0;}.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:1.3125rem;}#sidebar-filler{position:fixed;left:45px;width:calc(100% - 45px);top:0;height:45px;z-index:-1;border-bottom:1px solid;}#main-content>details.rustdoc-toggle>summary::before,#main-content>div>details.rustdoc-toggle>summary::before{left:-11px;}#all-types{margin:10px;}.sidebar.expanded #sidebar-toggle{font-size:1.5rem;}.sidebar:not(.expanded) #sidebar-toggle{position:fixed;left:1px;top:100px;width:30px;font-size:1.5rem;text-align:center;padding:0;z-index:10;border-top-right-radius:3px;border-bottom-right-radius:3px;cursor:pointer;font-weight:bold;border:1px solid;border-left:0;}#source-sidebar{z-index:11;}#main-content>.line-numbers{margin-top:0;}.notable-traits .notable-traits-tooltiptext{left:0;top:100%;}#help-button{display:none;}.item-table{display:block;}.item-row{display:flex;flex-flow:column wrap;}.item-left,.item-right{width:100%;}.search-container>div{width:calc(100% - 32px);}.search-results>a{border-bottom:1px solid #aaa9;padding:5px 0px;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:100%;}.search-results div.desc,.search-results .result-description,.item-right{padding-left:2em;}.source .sidebar.expanded{max-width:100vw;width:100vw;}details.rustdoc-toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before,#main-content>details.rustdoc-toggle:not(.top-doc)>summary::before,#main-content>div>details.rustdoc-toggle>summary::before{left:-11px;}}@media print{nav.sub,.content .out-of-band{display:none;}}@media (max-width:464px){#titles,#titles>button{height:73px;}#main-content>table:not(.table-display) td{word-break:break-word;width:50%;}.search-container>div{display:block;width:calc(100% - 37px);}#crate-search{border-radius:4px;border:0;}#theme-picker,#settings-menu{padding:5px;width:31px;height:31px;}#theme-picker{margin-top:-2px;}#settings-menu{top:7px;}.docblock{margin-left:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock table code{overflow-wrap:normal;}.sub-container{flex-direction:column;}.sub-logo-container{align-self:center;}.source .sub-logo-container>img{height:35px;width:35px;}.sidebar:not(.expanded) #sidebar-toggle{top:10px;}}.scraped-example-title{font-family:'Fira Sans';}.scraped-example:not(.expanded) .code-wrapper pre.line-numbers{overflow:hidden;max-height:240px;}.scraped-example:not(.expanded) .code-wrapper .example-wrap pre.rust{overflow-y:hidden;max-height:240px;padding-bottom:0;}.scraped-example .code-wrapper .prev{position:absolute;top:0.25em;right:2.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .next{position:absolute;top:0.25em;right:1.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .expand{position:absolute;top:0.25em;right:0.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper:before{content:" ";width:100%;height:5px;position:absolute;z-index:100;top:0;background:linear-gradient(to bottom,rgba(255,255,255,1),rgba(255,255,255,0));}.scraped-example:not(.expanded) .code-wrapper:after{content:" ";width:100%;height:5px;position:absolute;z-index:100;bottom:0;background:linear-gradient(to top,rgba(255,255,255,1),rgba(255,255,255,0));}.scraped-example:not(.expanded) .code-wrapper{overflow:hidden;max-height:240px;}.scraped-example .code-wrapper .line-numbers{margin:0;padding:14px 0;}.scraped-example .code-wrapper .line-numbers span{padding:0 14px;}.scraped-example .code-wrapper .example-wrap{flex:1;overflow-x:auto;overflow-y:hidden;margin-bottom:0;}.scraped-example .code-wrapper .example-wrap pre.rust{overflow-x:inherit;width:inherit;overflow-y:hidden;}.scraped-example .example-wrap .rust span.highlight{background:#fcffd6;}.scraped-example .example-wrap .rust span.highlight.focus{background:#f6fdb0;}.more-examples-toggle{margin-top:10px;}.more-examples-toggle summary{color:#999;font-family:'Fira Sans';}.more-scraped-examples{margin-left:25px;display:flex;flex-direction:row;width:calc(100% - 25px);}.more-scraped-examples-inner{width:calc(100% - 20px);}.toggle-line{align-self:stretch;margin-right:10px;margin-top:5px;padding:0 4px;cursor:pointer;}.toggle-line:hover .toggle-line-inner{background:#aaa;}.toggle-line-inner{min-width:2px;background:#ddd;height:100%;}.more-scraped-examples .scraped-example{margin-bottom:20px;}.more-scraped-examples .scraped-example:last-child{margin-bottom:0;}.example-links a{margin-top:20px;font-family:'Fira Sans';}.example-links ul{margin-bottom:0;}
\ No newline at end of file
+ @font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular.woff2") format("woff2"),url("FiraSans-Regular.woff") format('woff');font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium.woff2") format("woff2"),url("FiraSans-Medium.woff") format('woff');font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular.ttf.woff2") format("woff2"),url("SourceSerif4-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It.ttf.woff2") format("woff2"),url("SourceSerif4-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold.ttf.woff2") format("woff2"),url("SourceSerif4-Bold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular.ttf.woff2") format("woff2"),url("SourceCodePro-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It.ttf.woff2") format("woff2"),url("SourceCodePro-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold.ttf.woff2") format("woff2"),url("SourceCodePro-Semibold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic.ttf.woff2") format("woff2"),url("NanumBarunGothic.ttf.woff") format("woff");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}html{content:"";}@media (prefers-color-scheme:light){html{content:"light";}}@media (prefers-color-scheme:dark){html{content:"dark";}}body{font:1rem/1.5 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;-webkit-font-feature-settings:"kern","liga";-moz-font-feature-settings:"kern","liga";font-feature-settings:"kern","liga";}h1{font-size:1.5rem;}h2{font-size:1.375rem;}h3{font-size:1.25rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:20px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}h1.fqn{margin:0;padding:0;}.main-heading{display:flex;flex-wrap:wrap;justify-content:space-between;padding-bottom:6px;margin-bottom:15px;}.main-heading a:hover{text-decoration:underline;}#toggle-all-docs{text-decoration:none;}h2,.top-doc h3,.top-doc h4{border-bottom:1px solid;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;border-bottom-style:none;margin:0;padding:0;margin-top:0.6em;margin-bottom:0.4em;}.impl,.impl-items .method,.methods .method,.impl-items .type,.methods .type,.impl-items .associatedconstant,.methods .associatedconstant,.impl-items .associatedtype,.methods .associatedtype{flex-basis:100%;font-weight:600;position:relative;}div.impl-items>div{padding-left:0;}h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,a.source,.search-input,.search-results .result-name,.content table td:first-child>a,.item-left>a,.out-of-band,span.since,#source-sidebar,#sidebar-toggle,details.rustdoc-toggle>summary::before,div.impl-items>div:not(.docblock):not(.item-info),.content ul.crate a.crate,a.srclink,#main-content>ul.docblock>li>a{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p{margin:0 0 .75em 0;}summary{outline:none;}td,th{padding:0;}table{border-collapse:collapse;}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0;}button{padding:1px 6px;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.source main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}.source .width-limiter{max-width:unset;}details:not(.rustdoc-toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;}.docblock.item-decl{margin-left:0;}.item-decl pre{overflow-x:auto;}.source .content pre{padding:20px;}img{max-width:100%;}li{position:relative;}.source .content{max-width:none;overflow:visible;margin-left:0px;}nav.sub{position:relative;font-size:1rem;text-transform:uppercase;}.sub-container{display:flex;flex-direction:row;flex-wrap:nowrap;}.sub-logo-container{display:none;margin-right:20px;}.source .sub-logo-container{display:block;}.source .sub-logo-container>img{height:60px;width:60px;object-fit:contain;}.sidebar{font-size:0.875rem;width:250px;min-width:200px;overflow-y:scroll;position:sticky;height:100vh;top:0;left:0;}.sidebar-elems,.sidebar>.location{padding-left:24px;}.sidebar .location{overflow-wrap:anywhere;}.rustdoc.source .sidebar{width:50px;min-width:0px;max-width:300px;flex-grow:0;flex-shrink:0;flex-basis:auto;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.source .sidebar>*:not(#sidebar-toggle){opacity:0;visibility:hidden;}.source .sidebar.expanded{overflow-y:auto;}.source .sidebar.expanded>*:not(#sidebar-toggle){opacity:1;visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;}.sidebar{scrollbar-width:thin;}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;}.hidden{display:none !important;}.sidebar .logo-container{display:flex;margin-top:10px;margin-bottom:10px;justify-content:center;}.version{overflow-wrap:break-word;}.logo-container>img{height:100px;width:100px;}.location:empty{border:none;}.location a:first-of-type{font-weight:500;}.block{padding:0;}.block ul,.block li{padding:0;margin:0;list-style:none;}.block a,h2.location a{display:block;padding:0.25rem;margin-left:-0.25rem;text-overflow:ellipsis;overflow:hidden;}.sidebar h2{border-bottom:none;font-weight:500;padding:0;margin:0;margin-top:0.7rem;margin-bottom:0.7rem;}.sidebar h3{font-size:1.125rem;font-weight:500;padding:0;margin:0;}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;}.mobile-topbar{display:none;}.source .content pre.rust{white-space:pre;overflow:auto;padding-left:0;}.rustdoc .example-wrap{display:inline-flex;margin-bottom:10px;}.example-wrap{position:relative;width:100%;}.example-wrap>pre.line-number{overflow:initial;border:1px solid;padding:13px 8px;text-align:right;border-top-left-radius:5px;border-bottom-left-radius:5px;}.example-wrap>pre.rust a:hover{text-decoration:underline;}.line-numbers{text-align:right;}.rustdoc:not(.source) .example-wrap>pre:not(.line-number){width:100%;overflow-x:auto;}.rustdoc:not(.source) .example-wrap>pre.line-numbers{width:auto;overflow-x:visible;}.rustdoc .example-wrap>pre{margin:0;}#search{position:relative;}.search-loading{text-align:center;}#results>table{width:100%;table-layout:fixed;}.content>.example-wrap pre.line-numbers{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.line-numbers span{cursor:pointer;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock-short p{display:inline;}.docblock-short p{overflow:hidden;text-overflow:ellipsis;margin:0;}.docblock>:not(pre)>code,.docblock-short>:not(pre)>code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.125rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.875rem;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.information){max-width:100%;overflow-x:auto;}.content .out-of-band{flex-grow:0;font-size:1.125rem;font-weight:normal;float:right;}.method>.code-header,.trait-impl>.code-header{max-width:calc(100% - 41px);display:block;}.invisible{width:100%;display:inline-block;}.content .in-band{flex-grow:1;margin:0px;padding:0px;overflow-wrap:break-word;overflow-wrap:anywhere;}.in-band>code,.in-band>.code-header{display:inline-block;}#main-content{position:relative;}#main-content>.since{top:inherit;font-family:"Fira Sans",Arial,sans-serif;}.content table:not(.table-display){border-spacing:0 5px;}.content td{vertical-align:top;}.content td:first-child{padding-right:20px;}.content td p:first-child{margin-top:0;}.content td h1,.content td h2{margin-left:0;font-size:1.125rem;}.content tr:first-child td{border-top:0;}.docblock table{margin:.5em 0;width:calc(100% - 2px);overflow-x:auto;display:block;}.docblock table td{padding:.5em;border:1px dashed;}.docblock table th{padding:.5em;text-align:left;border:1px solid;}.fields+table{margin-bottom:1em;}.content .item-list{list-style-type:none;padding:0;}.content .multi-column{-moz-column-count:5;-moz-column-gap:2.5em;-webkit-column-count:5;-webkit-column-gap:2.5em;column-count:5;column-gap:2.5em;}.content .multi-column li{width:100%;display:inline-block;}.content>.methods>.method{font-size:1rem;position:relative;}.content .method .where,.content .fn .where,.content .where.fmt-newline{display:block;font-size:0.875rem;}.content .methods>div:not(.notable-traits):not(.method){margin-left:40px;margin-bottom:15px;}.content .docblock>.impl-items{margin-left:20px;margin-top:-34px;}.content .docblock>.impl-items .table-display{margin:0;}.content .docblock>.impl-items table td{padding:0;}.content .docblock>.impl-items .table-display,.impl-items table td{border:none;}.item-info{display:block;}.content .item-info code{font-size:0.875rem;}.content .item-info{position:relative;margin-left:24px;}.sub-variant>div>.item-info{margin-top:initial;}.content .impl-items .docblock,.content .impl-items .item-info{margin-bottom:.6em;}.content .impl-items>.item-info{margin-left:40px;}.methods>.item-info,.content .impl-items>.item-info{margin-top:-8px;}.impl-items{flex-basis:100%;}#main-content>.item-info{margin-top:0;margin-left:0;}nav.sub{flex-grow:1;margin-bottom:25px;}.source nav.sub{margin-left:32px;}nav.main{padding:20px 0;text-align:center;}nav.main .current{border-top:1px solid;border-bottom:1px solid;}nav.main .separator{border:1px solid;display:inline-block;height:23px;margin:0 20px;}nav.sum{text-align:right;}nav.sub form{display:inline;}a{text-decoration:none;background:transparent;}.small-section-header{display:flex;justify-content:space-between;position:relative;}.small-section-header:hover>.anchor{display:initial;}.in-band:hover>.anchor,.impl:hover>.anchor,.method.trait-impl:hover>.anchor,.type.trait-impl:hover>.anchor,.associatedconstant.trait-impl:hover>.anchor,.associatedtype.trait-impl:hover>.anchor{display:inline-block;position:absolute;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.small-section-header>.anchor{left:-15px;padding-right:8px;}h2.small-section-header>.anchor{padding-right:6px;}.anchor::before{content:'§';}.docblock a:not(.srclink):not(.test-arrow):hover,.docblock-short a:not(.srclink):not(.test-arrow):hover,.item-info a{text-decoration:underline;}.block a.current.crate{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{display:table;}.item-row{display:table-row;}.item-left,.item-right{display:table-cell;}.item-left{padding-right:1.25rem;}.search-container{position:relative;display:flex;height:34px;}.search-container>*{height:100%;}.search-results-title{display:inline;}#search-settings{font-size:1.5rem;font-weight:500;margin-bottom:20px;}#crate-search{min-width:115px;margin-top:5px;margin-left:0.25em;padding-left:0.3125em;padding-right:23px;border:0;border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;text-overflow:"";background-repeat:no-repeat;background-color:transparent;background-size:20px;background-position:calc(100% - 1px) 56%;background-image:url("down-arrow.svg");}.search-container{margin-top:4px;}.search-input{-webkit-appearance:none;-moz-box-sizing:border-box !important;box-sizing:border-box !important;outline:none;border:1px solid;border-radius:2px;padding:8px;font-size:1rem;transition:border-color 300ms ease;width:100%;}.search-results{display:none;padding-bottom:2em;}.search-results.active{display:block;clear:both;}.search-results .desc>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;}.search-results>a{display:block;width:100%;margin-left:2px;margin-right:2px;border-bottom:1px solid #aaa3;}.search-results>a>div{display:flex;flex-flow:row wrap;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:50%;}.search-results .result-name{padding-right:1em;}.search-results .result-name>span{display:inline-block;margin:0;font-weight:normal;}body.blur>:not(#help){filter:blur(8px);-webkit-filter:blur(8px);opacity:.7;}#help{width:100%;height:100vh;position:fixed;top:0;left:0;display:flex;justify-content:center;align-items:center;}#help>div{flex:0 0 auto;box-shadow:0 0 6px rgba(0,0,0,.2);width:550px;height:auto;border:1px solid;}#help dt{float:left;clear:left;display:block;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;}#help span.top{text-align:center;display:block;margin:10px 0;border-bottom:1px solid;padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid;}#help dd{margin:5px 35px;}#help .infos{padding-left:0;}#help h1,#help h2{margin-top:0;}#help>div div{width:50%;float:left;padding:0 20px 20px 17px;;}.item-info .stab{display:inline-block;}.stab{padding:3px;margin-bottom:5px;font-size:0.875rem;font-weight:normal;}.stab p{display:inline;}.stab .emoji{font-size:1.25rem;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.module-item .stab,.import-item .stab{border-radius:3px;display:inline-block;font-size:0.875rem;line-height:1.2;margin-bottom:0;margin-left:0.3125em;padding:2px;vertical-align:text-bottom;}.module-item.unstable,.import-item.unstable{opacity:0.65;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;padding-right:2px;position:initial;}.impl-items .srclink,.impl .srclink,.methods .srclink{font-weight:normal;font-size:1rem;}.rightside{float:right;}.variants_table{width:100%;}.variants_table tbody tr td:first-child{width:1%;}td.summary-column{width:100%;}.summary{padding-right:0px;}pre.rust .question-mark{font-weight:bold;}a.test-arrow{display:inline-block;visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.375rem;top:5px;right:5px;z-index:1;}.example-wrap:hover .test-arrow{visibility:visible;}a.test-arrow:hover{text-decoration:none;}.code-attribute{font-weight:300;}.item-spacer{width:100%;height:12px;}.out-of-band>span.since{position:initial;font-size:1.25rem;}h3.variant{font-weight:600;font-size:1.125rem;margin-bottom:10px;border-bottom:none;}.sub-variant h4{font-size:1rem;font-weight:400;border-bottom:none;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}.toggle-label{display:inline-block;margin-left:4px;margin-top:3px;}:target>code,:target>.code-header{opacity:1;}:target{padding-right:3px;}.information{position:absolute;left:-25px;margin-top:7px;z-index:1;}.tooltip{position:relative;display:inline-block;cursor:pointer;}.tooltip::after{display:none;text-align:center;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;font-size:1rem;}.tooltip.ignore::after{content:"This example is not tested";}.tooltip.compile_fail::after{content:"This example deliberately fails to compile";}.tooltip.should_panic::after{content:"This example panics";}.tooltip.edition::after{content:"This code runs with edition " attr(data-edition);}.tooltip::before{content:" ";position:absolute;top:50%;left:16px;margin-top:-5px;border-width:5px;border-style:solid;display:none;}.tooltip:hover::before,.tooltip:hover::after{display:inline;}.tooltip.compile_fail,.tooltip.should_panic,.tooltip.ignore{font-weight:bold;font-size:1.25rem;}.notable-traits-tooltip{display:inline-block;cursor:pointer;}.notable-traits:hover .notable-traits-tooltiptext,.notable-traits .notable-traits-tooltiptext.force-tooltip{display:inline-block;}.notable-traits .notable-traits-tooltiptext{display:none;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;z-index:10;font-size:1rem;cursor:default;position:absolute;border:1px solid;}.notable-traits-tooltip::after{content:"\00a0\00a0\00a0";}.notable-traits .notable,.notable-traits .docblock{margin:0;}.notable-traits .notable{margin:0;margin-bottom:13px;font-size:1.1875rem;font-weight:600;display:block;}.notable-traits .docblock code.content{margin:0;padding:0;font-size:1.25rem;}pre.rust.rust-example-rendered{position:relative;}pre.rust{tab-size:4;-moz-tab-size:4;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#titles{height:35px;}#titles>button{float:left;width:33.3%;text-align:center;font-size:1.125rem;cursor:pointer;border:0;border-top:2px solid;}#titles>button:not(:last-child){margin-right:1px;width:calc(33.3% - 1px);}#titles>button>div.count{display:inline-block;font-size:1rem;}.notable-traits{cursor:pointer;z-index:2;margin-left:5px;}#sidebar-toggle{position:sticky;top:0;left:0;cursor:pointer;font-weight:bold;font-size:1.25rem;border-bottom:1px solid;display:flex;height:40px;justify-content:center;align-items:center;z-index:10;}#source-sidebar{width:100%;z-index:1;overflow:auto;}#source-sidebar>.title{font-size:1.5rem;text-align:center;border-bottom:1px solid;margin-bottom:6px;}.theme-picker{position:absolute;left:-38px;top:4px;}.theme-picker button{outline:none;}#settings-menu,#help-button{margin-left:4px;outline:none;}#theme-picker,#copy-path{height:34px;}#theme-picker,#settings-menu,#help-button,#copy-path{padding:5px;width:33px;border:1px solid;border-radius:2px;cursor:pointer;}#help-button{font-family:"Fira Sans",Arial,sans-serif;text-align:center;font-size:20px;padding-top:2px;}#copy-path{background:initial;margin-left:10px;padding:0;padding-left:2px;border:0;}#theme-choices{display:none;position:absolute;left:0;top:28px;border:1px solid;border-radius:3px;z-index:1;cursor:pointer;}#theme-choices>button{border:none;width:100%;padding:4px 8px;text-align:center;background:rgba(0,0,0,0);overflow-wrap:normal;}#theme-choices>button:not(:first-child){border-top:1px solid;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px;border-radius:3px;cursor:default;}.hidden-by-impl-hider,.hidden-by-usual-hider{display:none !important;}#implementations-list>h3>span.in-band{width:100%;}.table-display{width:100%;border:0;border-collapse:collapse;border-spacing:0;font-size:1rem;}.table-display tr td:first-child{padding-right:0;}.table-display tr td:last-child{float:right;}.table-display .out-of-band{position:relative;font-size:1.125rem;display:block;}.table-display td:hover .anchor{display:block;top:2px;left:-5px;}#main-content>ul{padding-left:10px;}#main-content>ul>li{list-style:none;}.non-exhaustive{margin-bottom:1em;}div.children{padding-left:27px;display:none;}div.name{cursor:pointer;position:relative;margin-left:16px;}div.files>a{display:block;padding:0 3px;}div.files>a:hover,div.name:hover{background-color:#a14b4b;}div.name.expand+.children{display:block;}div.name::before{content:"\25B6";padding-left:4px;font-size:0.625rem;position:absolute;left:-16px;top:4px;}div.name.expand::before{transform:rotate(90deg);left:-15px;top:2px;}details.rustdoc-toggle>summary.hideme{cursor:pointer;}details.rustdoc-toggle>summary{list-style:none;}details.rustdoc-toggle>summary::-webkit-details-marker,details.rustdoc-toggle>summary::marker{display:none;}details.rustdoc-toggle>summary.hideme>span{margin-left:9px;}details.rustdoc-toggle>summary::before{content:"";cursor:pointer;width:16px;height:16px;background-repeat:no-repeat;background-position:top left;display:inline-block;vertical-align:middle;opacity:.5;}details.rustdoc-toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.rustdoc-toggle>summary.hideme::after{content:"";}details.rustdoc-toggle>summary:focus::before,details.rustdoc-toggle>summary:hover::before{opacity:1;}details.rustdoc-toggle.top-doc>summary,details.rustdoc-toggle.top-doc>summary::before,details.rustdoc-toggle.non-exhaustive>summary,details.rustdoc-toggle.non-exhaustive>summary::before{font-family:'Fira Sans';font-size:1rem;}details.non-exhaustive{margin-bottom:8px;}details.rustdoc-toggle>summary.hideme::before{position:relative;}details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:4px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.rustdoc-toggle[open] >summary.hideme{position:absolute;}details.rustdoc-toggle{position:relative;}details.rustdoc-toggle[open] >summary.hideme>span{display:none;}details.undocumented[open] >summary::before,details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{background-image:url("toggle-minus.svg");}details.undocumented>summary::before,details.rustdoc-toggle>summary::before{background-image:url("toggle-plus.svg");}details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{width:16px;height:16px;background-repeat:no-repeat;background-position:top left;display:inline-block;content:"";}details.rustdoc-toggle[open] >summary::after,details.rustdoc-toggle[open] >summary.hideme::after{content:"Collapse";}@media (min-width:701px){.docblock>.information:first-child>.tooltip{margin-top:16px;}.sidebar.expanded+main .width-limiter .sub-logo-container.rust-logo{display:none;}.source .sidebar.expanded{width:300px;}}@media (max-width:700px){*[id]{scroll-margin-top:45px;}.rustdoc{padding-top:0px;display:block;}main{padding-left:15px;padding-top:0px;}.rustdoc,.main-heading{flex-direction:column;}.content .out-of-band{text-align:left;margin-left:initial;padding:initial;}.content .out-of-band .since::before{content:"Since ";}#copy-path{display:none;}.sidebar .sidebar-logo,.sidebar .location{display:none;}.sidebar-elems{margin-top:1em;}.sidebar{position:fixed;top:45px;left:-1000px;margin-left:0;background-color:rgba(0,0,0,0);margin:0;padding:0;z-index:11;height:calc(100vh - 45px);}.source main,.source .sidebar{top:0;padding:0;}.sidebar.shown,.sidebar.expanded,.sidebar:focus-within{left:0;}.rustdoc.source>.sidebar{position:fixed;margin:0;z-index:11;width:0;}.mobile-topbar .location a{padding:0;margin:0;}.mobile-topbar .location{border:none;padding:0;margin:auto 0.5em auto auto;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:24px;}.mobile-topbar .logo-container{max-height:45px;}.mobile-topbar .logo-container>img{max-width:35px;max-height:35px;margin-left:20px;margin-top:5px;margin-bottom:5px;}.mobile-topbar{display:flex;flex-direction:row;position:sticky;z-index:10;font-size:2rem;height:45px;width:100%;left:0;top:0;}.source .mobile-topbar{display:none;}.sidebar-menu-toggle{width:45px;font-size:32px;border:none;}.source nav:not(.sidebar).sub{margin-left:32px;}#theme-picker{display:none;width:0;}.content{margin-left:0px;}.source .content{margin-top:10px;}#search{margin-left:0;padding:0;}.anchor{display:none !important;}.notable-traits{position:absolute;left:-22px;top:24px;}#titles>button>div.count{float:left;width:100%;}#titles{height:50px;}#sidebar-filler{position:fixed;left:45px;width:calc(100% - 45px);top:0;height:45px;z-index:-1;border-bottom:1px solid;}#main-content>details.rustdoc-toggle>summary::before,#main-content>div>details.rustdoc-toggle>summary::before{left:-11px;}.sidebar.expanded #sidebar-toggle{font-size:1.5rem;}.sidebar:not(.expanded) #sidebar-toggle{position:fixed;left:1px;top:100px;width:30px;font-size:1.5rem;text-align:center;padding:0;z-index:10;border-top-right-radius:3px;border-bottom-right-radius:3px;cursor:pointer;font-weight:bold;border:1px solid;border-left:0;}#source-sidebar{z-index:11;}#main-content>.line-numbers{margin-top:0;}.notable-traits .notable-traits-tooltiptext{left:0;top:100%;}#help-button{display:none;}.item-table{display:block;}.item-row{display:flex;flex-flow:column wrap;}.item-left,.item-right{width:100%;}.search-results>a{border-bottom:1px solid #aaa9;padding:5px 0px;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:100%;}.search-results div.desc,.search-results .result-description,.item-right{padding-left:2em;}.source .sidebar.expanded{max-width:100vw;width:100vw;}details.rustdoc-toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before,#main-content>details.rustdoc-toggle:not(.top-doc)>summary::before,#main-content>div>details.rustdoc-toggle>summary::before{left:-11px;}}@media print{nav.sub,.content .out-of-band{display:none;}}@media (max-width:464px){#titles,#titles>button{height:73px;}#main-content>table:not(.table-display) td{word-break:break-word;width:50%;}#crate-search{border-radius:4px;border:0;}.docblock{margin-left:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}.sub-container{flex-direction:column;}.sub-logo-container{align-self:center;}.source .sub-logo-container>img{height:35px;width:35px;}.sidebar:not(.expanded) #sidebar-toggle{top:10px;}}.method-toggle summary,.implementors-toggle summary,.impl{margin-bottom:0.75em;}.method-toggle[open]{margin-bottom:2em;}.implementors-toggle[open]{margin-bottom:2em;}#trait-implementations-list .method-toggle,#synthetic-implementations-list .method-toggle,#blanket-implementations-list .method-toggle{margin-bottom:1em;}.scraped-example-title{font-family:'Fira Sans';}.scraped-example:not(.expanded) .code-wrapper pre.line-numbers{overflow:hidden;max-height:240px;}.scraped-example:not(.expanded) .code-wrapper .example-wrap pre.rust{overflow-y:hidden;max-height:240px;padding-bottom:0;}.scraped-example .code-wrapper .prev{position:absolute;top:0.25em;right:2.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .next{position:absolute;top:0.25em;right:1.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .expand{position:absolute;top:0.25em;right:0.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper:before{content:" ";width:100%;height:5px;position:absolute;z-index:100;top:0;background:linear-gradient(to bottom,rgba(255,255,255,1),rgba(255,255,255,0));}.scraped-example:not(.expanded) .code-wrapper:after{content:" ";width:100%;height:5px;position:absolute;z-index:100;bottom:0;background:linear-gradient(to top,rgba(255,255,255,1),rgba(255,255,255,0));}.scraped-example:not(.expanded) .code-wrapper{overflow:hidden;max-height:240px;}.scraped-example .code-wrapper .line-numbers{margin:0;padding:14px 0;}.scraped-example .code-wrapper .line-numbers span{padding:0 14px;}.scraped-example .code-wrapper .example-wrap{flex:1;overflow-x:auto;overflow-y:hidden;margin-bottom:0;}.scraped-example .code-wrapper .example-wrap pre.rust{overflow-x:inherit;width:inherit;overflow-y:hidden;}.scraped-example .example-wrap .rust span.highlight{background:#fcffd6;}.scraped-example .example-wrap .rust span.highlight.focus{background:#f6fdb0;}.more-examples-toggle{margin-top:10px;}.more-examples-toggle summary{color:#999;font-family:'Fira Sans';}.more-scraped-examples{margin-left:25px;display:flex;flex-direction:row;width:calc(100% - 25px);}.more-scraped-examples-inner{width:calc(100% - 20px);}.toggle-line{align-self:stretch;margin-right:10px;margin-top:5px;padding:0 4px;cursor:pointer;}.toggle-line:hover .toggle-line-inner{background:#aaa;}.toggle-line-inner{min-width:2px;background:#ddd;height:100%;}.more-scraped-examples .scraped-example{margin-bottom:20px;}.more-scraped-examples .scraped-example:last-child{margin-bottom:0;}.example-links a{margin-top:20px;font-family:'Fira Sans';}.example-links ul{margin-bottom:0;}
\ No newline at end of file
diff --git a/ch5/search-index.js b/ch5/search-index.js
index 12f0483f..2682b628 100644
--- a/ch5/search-index.js
+++ b/ch5/search-index.js
@@ -1,4 +1,4 @@
var searchIndex = JSON.parse('{\
-"os":{"doc":"","t":[0,5,0,0,0,0,0,14,14,5,0,0,0,0,0,0,17,17,17,17,17,17,17,17,17,3,11,11,11,11,5,11,11,11,11,5,3,12,11,11,11,11,5,5,5,11,5,11,11,11,0,0,0,5,0,0,12,12,12,12,17,17,3,3,3,3,8,17,6,17,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,8,6,3,3,12,10,11,11,11,11,11,11,11,12,10,11,11,11,12,11,5,5,5,11,11,11,11,5,11,11,11,10,11,11,12,12,11,11,11,11,11,11,11,11,11,7,7,5,5,5,13,13,3,3,3,4,3,18,18,18,18,12,11,11,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,5,5,5,11,11,11,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,11,11,11,11,12,11,11,11,5,11,11,5,5,11,5,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,18,18,18,3,3,3,18,18,18,18,18,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,5,5,5,11,11,11,11,11,11,11,11,11,11,11,11,17,17,17,17,17,17,17,17,17,5,5,5,5,5,0,3,11,11,11,11,12,11,11,11,11,11,17,17,17,17,17,17,17,17,17,0,0,5,17,17,5,5,5,5,5,5,5,5,5,3,12,5,11,11,0,11,5,11,11,0,0,0,5,0,0,11,11,11,3,11,11,11,11,11,12,12,12,11,11,11,11,3,3,12,11,5,11,11,11,11,11,11,5,11,11,11,11,11,12,11,11,11,11,11,11,12,3,3,3,3,12,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,12,5,11,12,11,11,11,11,11,11,11,11,11,11,11,11,3,3,12,11,11,11,11,11,12,5,5,5,11,11,11,11,12,11,11,11,5,5,11,5,11,11,11,11,11,11,5,13,13,3,3,4,13,12,11,11,11,11,11,11,12,11,11,11,11,12,11,11,11,11,11,11,11,11,12,11,11,11,11,11,12,12,11,12,12,12,12,11,12,11,11,11,11,11,11,11,11,11,17,17,5,5,5,0,5,5,5,5,5,5,5,3,11,11,11,11,11,12,12,12,11,12,12,11,11,11,12],"n":["board","clear_bss","config","console","lang_items","loader","mm","print","println","rust_main","sbi","sync","syscall","task","timer","trap","CLOCK_FREQ","MEMORY_END","KERNEL_HEAP_SIZE","KERNEL_STACK_SIZE","PAGE_SIZE","PAGE_SIZE_BITS","TRAMPOLINE","TRAP_CONTEXT","USER_STACK_SIZE","Stdout","borrow","borrow_mut","from","into","print","try_from","try_into","type_id","write_str","panic","APP_NAMES","__private_field","borrow","borrow_mut","deref","from","get_app_data","get_app_data_by_name","get_num_app","into","list_apps","try_from","try_into","type_id","address","frame_allocator","heap_allocator","init","memory_set","page_table","0","0","0","0","PA_WIDTH_SV39","PPN_WIDTH_SV39","PhysAddr","PhysPageNum","SimpleRange","SimpleRangeIterator","StepByOne","VA_WIDTH_SV39","VPNRange","VPN_WIDTH_SV39","VirtAddr","VirtPageNum","aligned","aligned","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","ceil","ceil","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","current","end","eq","eq","eq","eq","floor","floor","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_bytes_array","get_end","get_mut","get_mut","get_pte_array","get_start","indexes","into","into","into","into","into","into","into_iter","into_iter","l","ne","ne","ne","ne","new","new","next","page_offset","page_offset","partial_cmp","partial_cmp","partial_cmp","partial_cmp","r","step","step","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","FRAME_ALLOCATOR","FrameAllocator","FrameAllocatorImpl","FrameTracker","StackFrameAllocator","__private_field","alloc","alloc","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","current","dealloc","dealloc","deref","drop","end","fmt","frame_alloc","frame_allocator_test","frame_dealloc","from","from","from","init","init_frame_allocator","into","into","into","new","new","new","ppn","recycled","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","HEAP_ALLOCATOR","HEAP_SPACE","handle_alloc_error","heap_test","init_heap","Framed","Identical","KERNEL_SPACE","MapArea","MapPermission","MapType","MemorySet","R","U","W","X","__private_field","activate","all","areas","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bitxor","bitxor_assign","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","complement","contains","copy_data","data_frames","deref","difference","ebss","edata","ekernel","empty","eq","eq","erodata","etext","extend","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_another","from_bits","from_bits_truncate","from_bits_unchecked","from_elf","from_existed_user","from_iter","hash","insert","insert_framed_area","intersection","intersects","into","into","into","into","into","is_all","is_empty","map","map_one","map_perm","map_trampoline","map_type","ne","new","new_bare","new_kernel","not","page_table","partial_cmp","push","recycle_data_pages","remap_test","remove","remove_area_with_start_vpn","sbss_with_stack","sdata","set","srodata","stext","strampoline","sub","sub_assign","symmetric_difference","to_owned","to_owned","toggle","token","translate","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","union","unmap","unmap_one","vpn_range","A","D","G","PTEFlags","PageTable","PageTableEntry","R","U","V","W","X","all","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bits","bitxor","bitxor_assign","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","complement","contains","difference","empty","empty","eq","executable","extend","find_pte","find_pte_create","flags","fmt","fmt","fmt","fmt","fmt","frames","from","from","from","from_bits","from_bits_truncate","from_bits_unchecked","from_iter","from_token","hash","insert","intersection","intersects","into","into","into","is_all","is_empty","is_valid","map","ne","new","new","not","partial_cmp","ppn","readable","remove","root_ppn","set","sub","sub_assign","symmetric_difference","to_owned","to_owned","toggle","token","translate","translate_va","translated_byte_buffer","translated_refmut","translated_str","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","union","unmap","writable","SBI_CLEAR_IPI","SBI_CONSOLE_GETCHAR","SBI_CONSOLE_PUTCHAR","SBI_REMOTE_FENCE_I","SBI_REMOTE_SFENCE_VMA","SBI_REMOTE_SFENCE_VMA_ASID","SBI_SEND_IPI","SBI_SET_TIMER","SBI_SHUTDOWN","console_getchar","console_putchar","sbi_call","set_timer","shutdown","up","UPSafeCell","borrow","borrow_mut","exclusive_access","from","inner","into","new","try_from","try_into","type_id","SYSCALL_EXEC","SYSCALL_EXIT","SYSCALL_FORK","SYSCALL_GETPID","SYSCALL_GET_TIME","SYSCALL_READ","SYSCALL_WAITPID","SYSCALL_WRITE","SYSCALL_YIELD","fs","process","syscall","FD_STDIN","FD_STDOUT","sys_read","sys_write","sys_exec","sys_exit","sys_fork","sys_get_time","sys_getpid","sys_waitpid","sys_yield","INITPROC","__private_field","add_initproc","borrow","borrow_mut","context","deref","exit_current_and_run_next","from","into","manager","pid","processor","suspend_current_and_run_next","switch","task","try_from","try_into","type_id","TaskContext","borrow","borrow_mut","from","goto_trap_return","into","ra","s","sp","try_from","try_into","type_id","zero_init","TASK_MANAGER","TaskManager","__private_field","add","add_task","borrow","borrow","borrow_mut","borrow_mut","deref","fetch","fetch_task","from","from","into","into","new","ready_queue","try_from","try_from","try_into","try_into","type_id","type_id","0","KernelStack","PID_ALLOCATOR","PidAllocator","PidHandle","__private_field","alloc","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","current","dealloc","deref","drop","drop","from","from","from","from","get_top","into","into","into","into","kernel_stack_position","new","new","pid","pid_alloc","push_on_top","recycled","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","PROCESSOR","Processor","__private_field","borrow","borrow","borrow_mut","borrow_mut","current","current","current_task","current_trap_cx","current_user_token","deref","from","from","get_idle_task_cx_ptr","idle_task_cx","into","into","new","run_tasks","schedule","take_current","take_current_task","try_from","try_from","try_into","try_into","type_id","type_id","__switch","Ready","Running","TaskControlBlock","TaskControlBlockInner","TaskStatus","Zombie","base_size","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","children","clone","clone_into","eq","exec","exit_code","fork","from","from","from","get_status","get_trap_cx","get_user_token","getpid","inner","inner_exclusive_access","into","into","into","is_zombie","kernel_stack","memory_set","new","parent","pid","task_cx","task_status","to_owned","trap_cx_ppn","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","MSEC_PER_SEC","TICKS_PER_SEC","get_time","get_time_ms","set_next_trigger","context","enable_timer_interrupt","init","set_kernel_trap_entry","set_user_trap_entry","trap_from_kernel","trap_handler","trap_return","TrapContext","app_init_context","borrow","borrow_mut","from","into","kernel_satp","kernel_sp","sepc","set_sp","sstatus","trap_handler","try_from","try_into","type_id","x"],"q":["os","","","","","","","","","","","","","","","","os::board","","os::config","","","","","","","os::console","","","","","","","","","","os::lang_items","os::loader","","","","","","","","","","","","","","os::mm","","","","","","os::mm::address","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::mm::frame_allocator","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::mm::heap_allocator","","","","","os::mm::memory_set","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::mm::page_table","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::sbi","","","","","","","","","","","","","","os::sync","os::sync::up","","","","","","","","","","","os::syscall","","","","","","","","","","","","os::syscall::fs","","","","os::syscall::process","","","","","","","os::task","","","","","","","","","","","","","","","","","","","os::task::context","","","","","","","","","","","","","os::task::manager","","","","","","","","","","","","","","","","","","","","","","","","os::task::pid","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::processor","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::switch","os::task::task","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::timer","","","","","os::trap","","","","","","","","os::trap::context","","","","","","","","","","","","","","",""],"d":["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Definitions","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the set containing all flags.","","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","","","","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","data: start-aligned but maybe with shorter length assume …","","","Returns the difference between the flags in self and other.","","","","Returns an empty set of flags.","","","","","","","","","","","","","","","","","","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","Include sections in elf and trampoline and TrapContext and …","","","","Inserts the specified flags in-place.","Assume that no conflicts.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","","","","","","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","","","","Mention that trampoline is not collected by areas.","","","","","Without kernel stacks.","Returns the complement of this set of flags.","","","","","","Removes the specified flags in-place.","","","","Inserts or removes the specified flags depending on the …","","","","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","","Toggles the specified flags in-place.","","","","","","","","","","","","","","","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","Returns the set containing all flags.","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","Returns the difference between the flags in self and other.","Returns an empty set of flags.","","","","","","","","","","","","","","","","","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","","Temporarily used to get arguments from user space.","","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","","","","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","","","","","","Returns the complement of this set of flags.","","","","Removes the specified flags in-place.","","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","","Toggles the specified flags in-place.","","","","","","","","","","","","","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","Wrap a static data structure inside it so that we are able …","","","Panic if the data has been borrowed.","","inner data","","User is responsible to guarantee that inner struct is only …","","","","","","","","","","","","","","","","","","","","","","","","","If there is not a child process whose pid is same as …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Return (bottom, top) of a kernel stack in kernel space.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,1,1,1,0,0,2,2,2,2,2,0,0,0,2,0,2,2,2,0,0,0,0,0,0,3,4,5,6,0,0,0,0,0,0,0,0,0,0,0,0,3,4,7,3,4,5,6,8,7,3,4,5,6,8,3,4,3,4,5,6,8,3,4,5,6,8,3,4,5,6,7,7,3,4,5,6,3,4,3,4,5,6,7,3,3,3,4,4,4,5,5,5,6,6,6,8,5,8,3,5,5,8,6,7,3,4,5,6,8,7,8,8,3,4,5,6,7,8,7,3,4,3,4,5,6,8,9,6,3,4,5,6,8,7,3,4,5,6,8,7,3,4,5,6,8,7,3,4,5,6,8,0,0,0,0,0,10,11,12,13,12,10,13,12,10,12,11,12,10,13,12,13,0,0,0,13,12,10,12,0,13,12,10,11,13,12,13,12,13,12,10,13,12,10,13,12,10,0,0,0,0,0,14,14,0,0,0,0,0,15,15,15,15,16,17,15,17,15,15,15,15,15,15,15,15,17,18,16,14,15,17,18,16,14,15,14,15,14,15,15,15,15,18,18,16,15,0,0,0,15,14,15,0,0,15,14,15,15,15,15,15,17,18,16,14,15,18,15,15,15,17,17,15,15,15,17,15,15,17,18,16,14,15,15,15,18,18,18,17,18,15,18,17,17,15,17,15,17,17,0,15,17,0,0,15,0,0,0,15,15,15,14,15,15,17,17,17,18,16,14,15,17,18,16,14,15,17,18,16,14,15,15,18,18,18,19,19,19,0,0,0,19,19,19,19,19,19,19,19,19,19,19,19,20,19,19,21,19,20,21,19,20,19,20,19,20,19,19,19,19,19,20,19,20,19,21,21,20,19,19,19,19,19,21,21,19,20,19,19,19,19,21,19,19,19,19,21,19,20,19,19,20,21,19,21,20,19,19,20,20,19,21,19,19,19,19,19,20,19,21,21,21,0,0,0,21,19,20,21,19,20,21,19,20,19,21,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,22,22,22,22,22,22,22,22,22,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,23,23,0,23,0,23,23,0,0,0,0,0,0,23,23,23,0,24,24,24,24,24,24,24,24,24,24,24,24,0,0,25,26,0,26,25,26,25,25,26,0,26,25,26,25,26,26,26,25,26,25,26,25,27,0,0,0,0,28,29,29,27,30,28,29,27,30,28,29,29,28,27,30,29,27,30,28,30,29,27,30,28,0,29,30,30,0,30,29,29,27,30,28,29,27,30,28,29,27,30,28,0,0,31,32,31,32,31,32,32,0,0,0,31,32,31,32,32,32,31,32,0,0,32,0,32,31,32,31,32,31,0,33,33,0,0,0,33,34,35,34,33,35,34,33,34,33,33,33,35,34,35,35,34,33,34,34,34,35,35,35,35,34,33,34,35,34,35,34,35,34,34,33,34,35,34,33,35,34,33,35,34,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36],"f":[null,[[]],null,null,null,null,null,null,null,[[],["never",15]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[["arguments",3]]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[["str",15]],["result",6]],[[["panicinfo",3]],["never",15]],null,null,[[]],[[]],[[],["vec",3]],[[]],[[["usize",15]]],[[["str",15]],["option",4]],[[],["usize",15]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[],["bool",15]],[[],["bool",15]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["physpagenum",3]],[[],["virtpagenum",3]],[[],["physaddr",3]],[[],["virtaddr",3]],[[],["physpagenum",3]],[[],["virtpagenum",3]],[[],["simplerange",3]],[[]],[[]],[[]],[[]],[[]],[[["physaddr",3]],["ordering",4]],[[["virtaddr",3]],["ordering",4]],[[["physpagenum",3]],["ordering",4]],[[["virtpagenum",3]],["ordering",4]],null,null,[[["physaddr",3]],["bool",15]],[[["virtaddr",3]],["bool",15]],[[["physpagenum",3]],["bool",15]],[[["virtpagenum",3]],["bool",15]],[[],["physpagenum",3]],[[],["virtpagenum",3]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[["physpagenum",3]]],[[["usize",15]]],[[]],[[["virtpagenum",3]]],[[["usize",15]]],[[]],[[["physaddr",3]]],[[["usize",15]]],[[]],[[["virtaddr",3]]],[[["usize",15]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["physaddr",3]],["bool",15]],[[["virtaddr",3]],["bool",15]],[[["physpagenum",3]],["bool",15]],[[["virtpagenum",3]],["bool",15]],[[]],[[]],[[],["option",4]],[[],["usize",15]],[[],["usize",15]],[[["physaddr",3]],["option",4,[["ordering",4]]]],[[["virtaddr",3]],["option",4,[["ordering",4]]]],[[["physpagenum",3]],["option",4,[["ordering",4]]]],[[["virtpagenum",3]],["option",4,[["ordering",4]]]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,null,[[],["option",4,[["physpagenum",3]]]],[[],["option",4,[["physpagenum",3]]]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["physpagenum",3]]],[[["physpagenum",3]]],[[],["upsafecell",3]],[[]],null,[[["formatter",3]],["result",6]],[[],["option",4,[["frametracker",3]]]],[[]],[[["physpagenum",3]]],[[]],[[]],[[]],[[["physpagenum",3],["physpagenum",3]]],[[]],[[]],[[]],[[]],[[]],[[["physpagenum",3]]],[[]],null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,[[["layout",3]],["never",15]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],null,[[]],[[]],[[["mappermission",3]]],[[]],[[],["u8",15]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["maptype",4]],[[],["mappermission",3]],[[]],[[]],[[["mappermission",3]],["ordering",4]],[[]],[[],["bool",15]],[[["pagetable",3]]],null,[[],["arc",3]],[[]],null,null,null,[[]],[[["maptype",4]],["bool",15]],[[["mappermission",3]],["bool",15]],null,null,[[["intoiterator",8]]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[["maparea",3]]],[[["u8",15]],["option",4]],[[["u8",15]]],[[["u8",15]]],[[]],[[["memoryset",3]],["memoryset",3]],[[["intoiterator",8]]],[[]],[[]],[[["virtaddr",3],["virtaddr",3],["mappermission",3]]],[[]],[[],["bool",15]],[[]],[[]],[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[["pagetable",3]]],[[["pagetable",3],["virtpagenum",3]]],null,[[]],null,[[["mappermission",3]],["bool",15]],[[["virtaddr",3],["virtaddr",3],["maptype",4],["mappermission",3]]],[[]],[[]],[[]],null,[[["mappermission",3]],["option",4,[["ordering",4]]]],[[["maparea",3],["option",4]]],[[]],[[]],[[]],[[["virtpagenum",3]]],null,null,[[["bool",15]]],null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["usize",15]],[[["virtpagenum",3]],["option",4,[["pagetableentry",3]]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[["pagetable",3]]],[[["pagetable",3],["virtpagenum",3]]],null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[["pteflags",3]]],[[]],[[],["u8",15]],null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["pteflags",3]],[[],["pagetableentry",3]],[[]],[[]],[[["pteflags",3]],["ordering",4]],[[]],[[],["bool",15]],[[]],[[]],[[]],[[["pteflags",3]],["bool",15]],[[],["bool",15]],[[["intoiterator",8]]],[[["virtpagenum",3]],["option",4,[["pagetableentry",3]]]],[[["virtpagenum",3]],["option",4,[["pagetableentry",3]]]],[[],["pteflags",3]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],null,[[]],[[]],[[]],[[["u8",15]],["option",4]],[[["u8",15]]],[[["u8",15]]],[[["intoiterator",8]]],[[["usize",15]]],[[]],[[]],[[]],[[],["bool",15]],[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[["virtpagenum",3],["physpagenum",3],["pteflags",3]]],[[["pteflags",3]],["bool",15]],[[]],[[["physpagenum",3],["pteflags",3]]],[[]],[[["pteflags",3]],["option",4,[["ordering",4]]]],[[],["physpagenum",3]],[[],["bool",15]],[[]],null,[[["bool",15]]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["usize",15]],[[["virtpagenum",3]],["option",4,[["pagetableentry",3]]]],[[["virtaddr",3]],["option",4,[["physaddr",3]]]],[[["usize",15],["usize",15]],["vec",3]],[[["usize",15]]],[[["usize",15]],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[["virtpagenum",3]]],[[],["bool",15]],null,null,null,null,null,null,null,null,null,[[],["usize",15]],[[["usize",15]]],[[["usize",15],["usize",15],["usize",15],["usize",15]],["usize",15]],[[["usize",15]]],[[],["never",15]],null,null,[[]],[[]],[[],["refmut",3]],[[]],null,[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,null,null,null,null,null,null,null,null,[[["usize",15]],["isize",15]],null,null,[[["usize",15],["usize",15]],["isize",15]],[[["usize",15],["usize",15]],["isize",15]],[[],["isize",15]],[[["i32",15]],["never",15]],[[],["isize",15]],[[],["isize",15]],[[],["isize",15]],[[["isize",15]],["isize",15]],[[],["isize",15]],null,null,[[]],[[]],[[]],null,[[],["arc",3]],[[["i32",15]]],[[]],[[]],null,null,null,[[]],null,null,[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,[[]],[[]],[[]],[[["usize",15]]],[[]],null,null,null,[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],null,null,null,[[["arc",3,[["taskcontrolblock",3]]]]],[[["arc",3,[["taskcontrolblock",3]]]]],[[]],[[]],[[]],[[]],[[],["upsafecell",3]],[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[]],[[]],[[]],[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,null,[[],["pidhandle",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["usize",15]]],[[],["upsafecell",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["usize",15]],[[]],[[]],[[]],[[]],[[["usize",15]]],[[]],[[["pidhandle",3]]],null,[[],["pidhandle",3]],[[]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,[[]],[[]],[[]],[[]],[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],null,[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["trapcontext",3]],[[],["usize",15]],[[],["upsafecell",3]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[]],[[]],[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],null,[[],["taskstatus",4]],[[]],[[["taskstatus",4]],["bool",15]],[[]],null,[[["arc",3]],["arc",3,[["taskcontrolblock",3]]]],[[]],[[]],[[]],[[],["taskstatus",4]],[[],["trapcontext",3]],[[],["usize",15]],[[],["usize",15]],null,[[],["refmut",3,[["taskcontrolblockinner",3]]]],[[]],[[]],[[]],[[],["bool",15]],null,null,[[]],null,null,null,null,[[]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,[[],["usize",15]],[[],["usize",15]],[[]],null,[[]],[[]],[[]],[[]],[[],["never",15]],[[],["never",15]],[[],["never",15]],null,[[["usize",15],["usize",15],["usize",15],["usize",15],["usize",15]]],[[]],[[]],[[]],[[]],null,null,null,[[["usize",15]]],null,null,[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null],"p":[[3,"Stdout"],[3,"APP_NAMES"],[3,"PhysAddr"],[3,"VirtAddr"],[3,"PhysPageNum"],[3,"VirtPageNum"],[3,"SimpleRangeIterator"],[3,"SimpleRange"],[8,"StepByOne"],[3,"FRAME_ALLOCATOR"],[8,"FrameAllocator"],[3,"StackFrameAllocator"],[3,"FrameTracker"],[4,"MapType"],[3,"MapPermission"],[3,"KERNEL_SPACE"],[3,"MemorySet"],[3,"MapArea"],[3,"PTEFlags"],[3,"PageTableEntry"],[3,"PageTable"],[3,"UPSafeCell"],[3,"INITPROC"],[3,"TaskContext"],[3,"TASK_MANAGER"],[3,"TaskManager"],[3,"PidHandle"],[3,"PID_ALLOCATOR"],[3,"PidAllocator"],[3,"KernelStack"],[3,"PROCESSOR"],[3,"Processor"],[4,"TaskStatus"],[3,"TaskControlBlockInner"],[3,"TaskControlBlock"],[3,"TrapContext"]]}\
+"os":{"doc":"","t":[0,5,0,0,0,0,0,14,14,5,0,0,0,0,0,0,17,17,17,17,17,17,17,17,17,3,11,11,11,11,5,11,11,11,11,5,3,12,11,11,11,11,5,5,5,11,5,11,11,11,0,0,0,5,0,0,12,12,12,12,17,17,3,3,3,3,8,17,6,17,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,8,6,3,3,12,10,11,11,11,11,11,11,11,12,10,11,11,11,12,11,5,5,5,11,11,11,11,5,11,11,11,10,11,11,12,12,11,11,11,11,11,11,11,11,11,7,7,5,5,5,13,13,3,3,3,4,3,18,18,18,18,12,11,11,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,5,5,5,11,11,11,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,11,11,11,11,12,11,11,11,5,11,11,5,5,11,5,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,18,18,18,3,3,3,18,18,18,18,18,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,5,5,5,11,11,11,11,11,11,11,11,11,11,11,11,17,17,17,17,17,17,17,17,17,5,5,5,5,5,0,3,11,11,11,11,12,11,11,11,11,11,17,17,17,17,17,17,17,17,17,0,0,5,17,17,5,5,5,5,5,5,5,5,5,3,12,5,11,11,0,11,5,11,11,0,0,0,5,0,0,11,11,11,3,11,11,11,11,11,12,12,12,11,11,11,11,3,3,12,11,5,11,11,11,11,11,11,5,11,11,11,11,11,12,11,11,11,11,11,11,12,3,3,3,3,12,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,12,5,11,12,11,11,11,11,11,11,11,11,11,11,11,11,3,3,12,11,11,11,11,11,12,5,5,5,11,11,11,11,12,11,11,11,5,5,11,5,11,11,11,11,11,11,5,13,13,3,3,4,13,12,11,11,11,11,11,11,12,11,11,11,11,12,11,11,11,11,11,11,11,11,12,11,11,11,11,11,12,12,11,12,12,12,12,11,12,11,11,11,11,11,11,11,11,11,17,17,5,5,5,0,5,5,5,5,5,5,5,3,11,11,11,11,11,12,12,12,11,12,12,11,11,11,12],"n":["board","clear_bss","config","console","lang_items","loader","mm","print","println","rust_main","sbi","sync","syscall","task","timer","trap","CLOCK_FREQ","MEMORY_END","KERNEL_HEAP_SIZE","KERNEL_STACK_SIZE","PAGE_SIZE","PAGE_SIZE_BITS","TRAMPOLINE","TRAP_CONTEXT","USER_STACK_SIZE","Stdout","borrow","borrow_mut","from","into","print","try_from","try_into","type_id","write_str","panic","APP_NAMES","__private_field","borrow","borrow_mut","deref","from","get_app_data","get_app_data_by_name","get_num_app","into","list_apps","try_from","try_into","type_id","address","frame_allocator","heap_allocator","init","memory_set","page_table","0","0","0","0","PA_WIDTH_SV39","PPN_WIDTH_SV39","PhysAddr","PhysPageNum","SimpleRange","SimpleRangeIterator","StepByOne","VA_WIDTH_SV39","VPNRange","VPN_WIDTH_SV39","VirtAddr","VirtPageNum","aligned","aligned","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","ceil","ceil","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","current","end","eq","eq","eq","eq","floor","floor","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_bytes_array","get_end","get_mut","get_mut","get_pte_array","get_start","indexes","into","into","into","into","into","into","into_iter","into_iter","l","ne","ne","ne","ne","new","new","next","page_offset","page_offset","partial_cmp","partial_cmp","partial_cmp","partial_cmp","r","step","step","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","FRAME_ALLOCATOR","FrameAllocator","FrameAllocatorImpl","FrameTracker","StackFrameAllocator","__private_field","alloc","alloc","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","current","dealloc","dealloc","deref","drop","end","fmt","frame_alloc","frame_allocator_test","frame_dealloc","from","from","from","init","init_frame_allocator","into","into","into","new","new","new","ppn","recycled","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","HEAP_ALLOCATOR","HEAP_SPACE","handle_alloc_error","heap_test","init_heap","Framed","Identical","KERNEL_SPACE","MapArea","MapPermission","MapType","MemorySet","R","U","W","X","__private_field","activate","all","areas","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bitxor","bitxor_assign","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","complement","contains","copy_data","data_frames","deref","difference","ebss","edata","ekernel","empty","eq","eq","erodata","etext","extend","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_another","from_bits","from_bits_truncate","from_bits_unchecked","from_elf","from_existed_user","from_iter","hash","insert","insert_framed_area","intersection","intersects","into","into","into","into","into","is_all","is_empty","map","map_one","map_perm","map_trampoline","map_type","ne","new","new_bare","new_kernel","not","page_table","partial_cmp","push","recycle_data_pages","remap_test","remove","remove_area_with_start_vpn","sbss_with_stack","sdata","set","srodata","stext","strampoline","sub","sub_assign","symmetric_difference","to_owned","to_owned","toggle","token","translate","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","union","unmap","unmap_one","vpn_range","A","D","G","PTEFlags","PageTable","PageTableEntry","R","U","V","W","X","all","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bits","bitxor","bitxor_assign","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","complement","contains","difference","empty","empty","eq","executable","extend","find_pte","find_pte_create","flags","fmt","fmt","fmt","fmt","fmt","frames","from","from","from","from_bits","from_bits_truncate","from_bits_unchecked","from_iter","from_token","hash","insert","intersection","intersects","into","into","into","is_all","is_empty","is_valid","map","ne","new","new","not","partial_cmp","ppn","readable","remove","root_ppn","set","sub","sub_assign","symmetric_difference","to_owned","to_owned","toggle","token","translate","translate_va","translated_byte_buffer","translated_refmut","translated_str","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","union","unmap","writable","SBI_CLEAR_IPI","SBI_CONSOLE_GETCHAR","SBI_CONSOLE_PUTCHAR","SBI_REMOTE_FENCE_I","SBI_REMOTE_SFENCE_VMA","SBI_REMOTE_SFENCE_VMA_ASID","SBI_SEND_IPI","SBI_SET_TIMER","SBI_SHUTDOWN","console_getchar","console_putchar","sbi_call","set_timer","shutdown","up","UPSafeCell","borrow","borrow_mut","exclusive_access","from","inner","into","new","try_from","try_into","type_id","SYSCALL_EXEC","SYSCALL_EXIT","SYSCALL_FORK","SYSCALL_GETPID","SYSCALL_GET_TIME","SYSCALL_READ","SYSCALL_WAITPID","SYSCALL_WRITE","SYSCALL_YIELD","fs","process","syscall","FD_STDIN","FD_STDOUT","sys_read","sys_write","sys_exec","sys_exit","sys_fork","sys_get_time","sys_getpid","sys_waitpid","sys_yield","INITPROC","__private_field","add_initproc","borrow","borrow_mut","context","deref","exit_current_and_run_next","from","into","manager","pid","processor","suspend_current_and_run_next","switch","task","try_from","try_into","type_id","TaskContext","borrow","borrow_mut","from","goto_trap_return","into","ra","s","sp","try_from","try_into","type_id","zero_init","TASK_MANAGER","TaskManager","__private_field","add","add_task","borrow","borrow","borrow_mut","borrow_mut","deref","fetch","fetch_task","from","from","into","into","new","ready_queue","try_from","try_from","try_into","try_into","type_id","type_id","0","KernelStack","PID_ALLOCATOR","PidAllocator","PidHandle","__private_field","alloc","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","current","dealloc","deref","drop","drop","from","from","from","from","get_top","into","into","into","into","kernel_stack_position","new","new","pid","pid_alloc","push_on_top","recycled","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","PROCESSOR","Processor","__private_field","borrow","borrow","borrow_mut","borrow_mut","current","current","current_task","current_trap_cx","current_user_token","deref","from","from","get_idle_task_cx_ptr","idle_task_cx","into","into","new","run_tasks","schedule","take_current","take_current_task","try_from","try_from","try_into","try_into","type_id","type_id","__switch","Ready","Running","TaskControlBlock","TaskControlBlockInner","TaskStatus","Zombie","base_size","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","children","clone","clone_into","eq","exec","exit_code","fork","from","from","from","get_status","get_trap_cx","get_user_token","getpid","inner","inner_exclusive_access","into","into","into","is_zombie","kernel_stack","memory_set","new","parent","pid","task_cx","task_status","to_owned","trap_cx_ppn","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","MSEC_PER_SEC","TICKS_PER_SEC","get_time","get_time_ms","set_next_trigger","context","enable_timer_interrupt","init","set_kernel_trap_entry","set_user_trap_entry","trap_from_kernel","trap_handler","trap_return","TrapContext","app_init_context","borrow","borrow_mut","from","into","kernel_satp","kernel_sp","sepc","set_sp","sstatus","trap_handler","try_from","try_into","type_id","x"],"q":["os","","","","","","","","","","","","","","","","os::board","","os::config","","","","","","","os::console","","","","","","","","","","os::lang_items","os::loader","","","","","","","","","","","","","","os::mm","","","","","","os::mm::address","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::mm::frame_allocator","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::mm::heap_allocator","","","","","os::mm::memory_set","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::mm::page_table","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::sbi","","","","","","","","","","","","","","os::sync","os::sync::up","","","","","","","","","","","os::syscall","","","","","","","","","","","","os::syscall::fs","","","","os::syscall::process","","","","","","","os::task","","","","","","","","","","","","","","","","","","","os::task::context","","","","","","","","","","","","","os::task::manager","","","","","","","","","","","","","","","","","","","","","","","","os::task::pid","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::processor","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::switch","os::task::task","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::timer","","","","","os::trap","","","","","","","","os::trap::context","","","","","","","","","","","","","","",""],"d":["","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","Definitions","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the set containing all flags.","","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","","","","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","data: start-aligned but maybe with shorter length assume …","","","Returns the difference between the flags in self and other.","","","","Returns an empty set of flags.","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","Include sections in elf and trampoline and TrapContext and …","","","","Inserts the specified flags in-place.","Assume that no conflicts.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","","","","Mention that trampoline is not collected by areas.","","","","","Without kernel stacks.","Returns the complement of this set of flags.","","","","","","Removes the specified flags in-place.","","","","Inserts or removes the specified flags depending on the …","","","","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","","Toggles the specified flags in-place.","","","","","","","","","","","","","","","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","Returns the set containing all flags.","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","Returns the difference between the flags in self and other.","Returns an empty set of flags.","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","","Temporarily used to get arguments from user space.","","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","","","","","","Returns the complement of this set of flags.","","","","Removes the specified flags in-place.","","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","","Toggles the specified flags in-place.","","","","","","","","","","","","","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","Wrap a static data structure inside it so that we are able …","","","Panic if the data has been borrowed.","Returns the argument unchanged.","inner data","Calls U::from(self).","User is responsible to guarantee that inner struct is only …","","","","","","","","","","","","","","","","","","","","","","","","","If there is not a child process whose pid is same as …","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Return (bottom, top) of a kernel stack in kernel space.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","",""],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,1,1,1,0,0,2,2,2,2,2,0,0,0,2,0,2,2,2,0,0,0,0,0,0,3,4,5,6,0,0,0,0,0,0,0,0,0,0,0,0,3,4,7,3,4,5,6,8,7,3,4,5,6,8,3,4,3,4,5,6,8,3,4,5,6,8,3,4,5,6,7,7,3,4,5,6,3,4,3,4,5,6,7,3,3,3,4,4,4,5,5,5,6,6,6,8,5,8,3,5,5,8,6,7,3,4,5,6,8,7,8,8,3,4,5,6,7,8,7,3,4,3,4,5,6,8,9,6,3,4,5,6,8,7,3,4,5,6,8,7,3,4,5,6,8,7,3,4,5,6,8,0,0,0,0,0,10,11,12,13,12,10,13,12,10,12,11,12,10,13,12,13,0,0,0,13,12,10,12,0,13,12,10,11,13,12,13,12,13,12,10,13,12,10,13,12,10,0,0,0,0,0,14,14,0,0,0,0,0,15,15,15,15,16,17,15,17,15,15,15,15,15,15,15,15,17,18,16,14,15,17,18,16,14,15,14,15,14,15,15,15,15,18,18,16,15,0,0,0,15,14,15,0,0,15,14,15,15,15,15,15,17,18,16,14,15,18,15,15,15,17,17,15,15,15,17,15,15,17,18,16,14,15,15,15,18,18,18,17,18,15,18,17,17,15,17,15,17,17,0,15,17,0,0,15,0,0,0,15,15,15,14,15,15,17,17,17,18,16,14,15,17,18,16,14,15,17,18,16,14,15,15,18,18,18,19,19,19,0,0,0,19,19,19,19,19,19,19,19,19,19,19,19,20,19,19,21,19,20,21,19,20,19,20,19,20,19,19,19,19,19,20,19,20,19,21,21,20,19,19,19,19,19,21,21,19,20,19,19,19,19,21,19,19,19,19,21,19,20,19,19,20,21,19,21,20,19,19,20,20,19,21,19,19,19,19,19,20,19,21,21,21,0,0,0,21,19,20,21,19,20,21,19,20,19,21,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,22,22,22,22,22,22,22,22,22,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,23,23,0,23,0,23,23,0,0,0,0,0,0,23,23,23,0,24,24,24,24,24,24,24,24,24,24,24,24,0,0,25,26,0,26,25,26,25,25,26,0,26,25,26,25,26,26,26,25,26,25,26,25,27,0,0,0,0,28,29,29,27,30,28,29,27,30,28,29,29,28,27,30,29,27,30,28,30,29,27,30,28,0,29,30,30,0,30,29,29,27,30,28,29,27,30,28,29,27,30,28,0,0,31,32,31,32,31,32,32,0,0,0,31,32,31,32,32,32,31,32,0,0,32,0,32,31,32,31,32,31,0,33,33,0,0,0,33,34,35,34,33,35,34,33,34,33,33,33,35,34,35,35,34,33,34,34,34,35,35,35,35,34,33,34,35,34,35,34,35,34,34,33,34,35,34,33,35,34,33,35,34,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36],"f":[null,[[]],null,null,null,null,null,null,null,[[],["never",0]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[["arguments",3]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0],["str",0]],["result",6]],[[["panicinfo",3]],["never",0]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["vec",3]],[[]],[[["usize",0]]],[[["str",0]],["option",4]],[[],["usize",0]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,null,null,[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["physpagenum",3]],[[["",0]],["virtpagenum",3]],[[["",0]],["physaddr",3]],[[["",0]],["virtaddr",3]],[[["",0]],["physpagenum",3]],[[["",0]],["virtpagenum",3]],[[["",0]],["simplerange",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["physaddr",3]],["ordering",4]],[[["",0],["virtaddr",3]],["ordering",4]],[[["",0],["physpagenum",3]],["ordering",4]],[[["",0],["virtpagenum",3]],["ordering",4]],null,null,[[["",0],["physaddr",3]],["bool",0]],[[["",0],["virtaddr",3]],["bool",0]],[[["",0],["physpagenum",3]],["bool",0]],[[["",0],["virtpagenum",3]],["bool",0]],[[["",0]],["physpagenum",3]],[[["",0]],["virtpagenum",3]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[["usize",0]]],[[["physpagenum",3]]],[[["usize",0]]],[[]],[[["virtpagenum",3]]],[[]],[[["physaddr",3]]],[[["usize",0]]],[[]],[[["virtaddr",3]]],[[["usize",0]]],[[]],[[["",0]]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["",0],["physaddr",3]],["bool",0]],[[["",0],["virtaddr",3]],["bool",0]],[[["",0],["physpagenum",3]],["bool",0]],[[["",0],["virtpagenum",3]],["bool",0]],[[]],[[]],[[["",0]],["option",4]],[[["",0]],["usize",0]],[[["",0]],["usize",0]],[[["",0],["physaddr",3]],["option",4,[["ordering",4]]]],[[["",0],["virtaddr",3]],["option",4,[["ordering",4]]]],[[["",0],["physpagenum",3]],["option",4,[["ordering",4]]]],[[["",0],["virtpagenum",3]],["option",4,[["ordering",4]]]],null,[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,null,null,null,null,[[["",0]],["option",4,[["physpagenum",3]]]],[[["",0]],["option",4,[["physpagenum",3]]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0],["physpagenum",3]]],[[["",0],["physpagenum",3]]],[[["",0]],["upsafecell",3]],[[["",0]]],null,[[["",0],["formatter",3]],["result",6]],[[],["option",4,[["frametracker",3]]]],[[]],[[["physpagenum",3]]],[[]],[[]],[[]],[[["",0],["physpagenum",3],["physpagenum",3]]],[[]],[[]],[[]],[[]],[[]],[[["physpagenum",3]]],[[]],null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,[[["layout",3]],["never",0]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]]],[[]],null,[[]],[[["",0]]],[[["mappermission",3]]],[[["",0]]],[[["",0]],["u8",0]],null,[[]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["maptype",4]],[[["",0]],["mappermission",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["mappermission",3]],["ordering",4]],[[]],[[["",0]],["bool",0]],[[["",0],["pagetable",3]]],null,[[["",0]],["arc",3]],[[]],null,null,null,[[]],[[["",0],["maptype",4]],["bool",0]],[[["",0],["mappermission",3]],["bool",0]],null,null,[[["",0],["intoiterator",8]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[["maparea",3]]],[[["u8",0]],["option",4]],[[["u8",0]]],[[["u8",0]]],[[]],[[["memoryset",3]],["memoryset",3]],[[["intoiterator",8]]],[[["",0],["",0]]],[[["",0]]],[[["",0],["virtaddr",3],["virtaddr",3],["mappermission",3]]],[[]],[[["",0]],["bool",0]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0],["pagetable",3]]],[[["",0],["pagetable",3],["virtpagenum",3]]],null,[[["",0]]],null,[[["",0],["mappermission",3]],["bool",0]],[[["virtaddr",3],["virtaddr",3],["maptype",4],["mappermission",3]]],[[]],[[]],[[]],null,[[["",0],["mappermission",3]],["option",4,[["ordering",4]]]],[[["",0],["maparea",3],["option",4]]],[[["",0]]],[[]],[[["",0]]],[[["",0],["virtpagenum",3]]],null,null,[[["",0],["bool",0]]],null,null,null,[[]],[[["",0]]],[[]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["usize",0]],[[["",0],["virtpagenum",3]],["option",4,[["pagetableentry",3]]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[["",0],["pagetable",3]]],[[["",0],["pagetable",3],["virtpagenum",3]]],null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[["",0]]],[[["pteflags",3]]],[[["",0]]],[[["",0]],["u8",0]],null,null,[[]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["pteflags",3]],[[["",0]],["pagetableentry",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["pteflags",3]],["ordering",4]],[[]],[[["",0]],["bool",0]],[[]],[[]],[[]],[[["",0],["pteflags",3]],["bool",0]],[[["",0]],["bool",0]],[[["",0],["intoiterator",8]]],[[["",0],["virtpagenum",3]],["option",4,[["pagetableentry",3]]]],[[["",0],["virtpagenum",3]],["option",4,[["pagetableentry",3]]]],[[["",0]],["pteflags",3]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],null,[[]],[[]],[[]],[[["u8",0]],["option",4]],[[["u8",0]]],[[["u8",0]]],[[["intoiterator",8]]],[[["usize",0]]],[[["",0],["",0]]],[[["",0]]],[[]],[[["",0]],["bool",0]],[[]],[[]],[[]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0],["virtpagenum",3],["physpagenum",3],["pteflags",3]]],[[["",0],["pteflags",3]],["bool",0]],[[]],[[["physpagenum",3],["pteflags",3]]],[[]],[[["",0],["pteflags",3]],["option",4,[["ordering",4]]]],[[["",0]],["physpagenum",3]],[[["",0]],["bool",0]],[[["",0]]],null,[[["",0],["bool",0]]],[[]],[[["",0]]],[[]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["usize",0]],[[["",0],["virtpagenum",3]],["option",4,[["pagetableentry",3]]]],[[["",0],["virtaddr",3]],["option",4,[["physaddr",3]]]],[[["usize",0],["usize",0]],["vec",3]],[[["usize",0]],["",0]],[[["usize",0]],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[["",0],["virtpagenum",3]]],[[["",0]],["bool",0]],null,null,null,null,null,null,null,null,null,[[],["usize",0]],[[["usize",0]]],[[["usize",0],["usize",0],["usize",0],["usize",0]],["usize",0]],[[["usize",0]]],[[],["never",0]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["refmut",3]],[[]],null,[[]],[[]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,null,null,null,null,null,null,null,null,null,null,[[["usize",0]],["isize",0]],null,null,[[["usize",0],["usize",0]],["isize",0]],[[["usize",0],["usize",0]],["isize",0]],[[],["isize",0]],[[["i32",0]],["never",0]],[[],["isize",0]],[[],["isize",0]],[[],["isize",0]],[[["isize",0]],["isize",0]],[[],["isize",0]],null,null,[[]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0]],["arc",3]],[[["i32",0]]],[[]],[[]],null,null,null,[[]],null,null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[["usize",0]]],[[]],null,null,null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,[[["",0],["arc",3,[["taskcontrolblock",3]]]]],[[["arc",3,[["taskcontrolblock",3]]]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["upsafecell",3]],[[["",0]],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[]],[[]],[[]],[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,null,null,null,null,[[["",0]],["pidhandle",3]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0],["usize",0]]],[[["",0]],["upsafecell",3]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],[[]],[[["",0]],["usize",0]],[[]],[[]],[[]],[[]],[[["usize",0]]],[[]],[[["pidhandle",3]]],null,[[],["pidhandle",3]],[[["",0]]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],null,[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["trapcontext",3]],[[],["usize",0]],[[["",0]],["upsafecell",3]],[[]],[[]],[[["",0]]],null,[[]],[[]],[[]],[[]],[[]],[[["",0]],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0]],["taskstatus",4]],[[["",0],["",0]]],[[["",0],["taskstatus",4]],["bool",0]],[[["",0]]],null,[[["arc",3]],["arc",3,[["taskcontrolblock",3]]]],[[]],[[]],[[]],[[["",0]],["taskstatus",4]],[[["",0]],["trapcontext",3]],[[["",0]],["usize",0]],[[["",0]],["usize",0]],null,[[["",0]],["refmut",3,[["taskcontrolblockinner",3]]]],[[]],[[]],[[]],[[["",0]],["bool",0]],null,null,[[]],null,null,null,null,[[["",0]]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,[[],["usize",0]],[[],["usize",0]],[[]],null,[[]],[[]],[[]],[[]],[[],["never",0]],[[],["never",0]],[[],["never",0]],null,[[["usize",0],["usize",0],["usize",0],["usize",0],["usize",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],null,null,null,[[["",0],["usize",0]]],null,null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null],"p":[[3,"Stdout"],[3,"APP_NAMES"],[3,"PhysAddr"],[3,"VirtAddr"],[3,"PhysPageNum"],[3,"VirtPageNum"],[3,"SimpleRangeIterator"],[3,"SimpleRange"],[8,"StepByOne"],[3,"FRAME_ALLOCATOR"],[8,"FrameAllocator"],[3,"StackFrameAllocator"],[3,"FrameTracker"],[4,"MapType"],[3,"MapPermission"],[3,"KERNEL_SPACE"],[3,"MemorySet"],[3,"MapArea"],[3,"PTEFlags"],[3,"PageTableEntry"],[3,"PageTable"],[3,"UPSafeCell"],[3,"INITPROC"],[3,"TaskContext"],[3,"TASK_MANAGER"],[3,"TaskManager"],[3,"PidHandle"],[3,"PID_ALLOCATOR"],[3,"PidAllocator"],[3,"KernelStack"],[3,"PROCESSOR"],[3,"Processor"],[4,"TaskStatus"],[3,"TaskControlBlockInner"],[3,"TaskControlBlock"],[3,"TrapContext"]]}\
}');
if (window.initSearch) {window.initSearch(searchIndex)};
\ No newline at end of file
diff --git a/ch5/search.js b/ch5/search.js
index 3aa50607..a8026db5 100644
--- a/ch5/search.js
+++ b/ch5/search.js
@@ -1,2 +1,2 @@
-(function(){var itemTypes=["mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","primitive","associatedtype","constant","associatedconstant","union","foreigntype","keyword","existential","attr","derive","traitalias",];var TY_PRIMITIVE=itemTypes.indexOf("primitive");var TY_KEYWORD=itemTypes.indexOf("keyword");function printTab(nb){if(nb===0||nb===1||nb===2){searchState.currentTab=nb}var nb_copy=nb;onEachLazy(document.getElementById("titles").childNodes,function(elem){if(nb_copy===0){addClass(elem,"selected")}else{removeClass(elem,"selected")}nb_copy-=1});onEachLazy(document.getElementById("results").childNodes,function(elem){if(nb===0){addClass(elem,"active")}else{removeClass(elem,"active")}nb-=1})}function removeEmptyStringsFromArray(x){for(var i=0,len=x.length;i-1){var obj=searchIndex[result.id];obj.lev=result.lev;var res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=obj.displayPath+obj.name;obj.fullPath+="|"+obj.ty;if(duplicates[obj.fullPath]){continue}duplicates[obj.fullPath]=true;obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break}}}return out}function sortResults(results,isType){var ar=[];for(var entry in results){if(hasOwnPropertyRustdoc(results,entry)){var result=results[entry];result.word=searchWords[result.id];result.item=searchIndex[result.id]||{};ar.push(result)}}results=ar;if(results.length===0){return[]}results.sort(function(aaa,bbb){var a,b;a=(aaa.word!==val);b=(bbb.word!==val);if(a!==b){return a-b}a=(aaa.lev);b=(bbb.lev);if(a!==b){return a-b}a=(aaa.item.crate!==window.currentCrate);b=(bbb.item.crate!==window.currentCrate);if(a!==b){return a-b}a=aaa.word.length;b=bbb.word.length;if(a!==b){return a-b}a=aaa.word;b=bbb.word;if(a!==b){return(a>b?+1:-1)}a=(aaa.index<0);b=(bbb.index<0);if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}if((aaa.item.ty===TY_PRIMITIVE&&bbb.item.ty!==TY_KEYWORD)||(aaa.item.ty===TY_KEYWORD&&bbb.item.ty!==TY_PRIMITIVE)){return-1}if((bbb.item.ty===TY_PRIMITIVE&&aaa.item.ty!==TY_PRIMITIVE)||(bbb.item.ty===TY_KEYWORD&&aaa.item.ty!==TY_KEYWORD)){return 1}a=(aaa.item.desc==="");b=(bbb.item.desc==="");if(a!==b){return a-b}a=aaa.item.ty;b=bbb.item.ty;if(a!==b){return a-b}a=aaa.item.path;b=bbb.item.path;if(a!==b){return(a>b?+1:-1)}return 0});for(var i=0,len=results.length;i"));return{name:val.substring(0,val.indexOf("<")),generics:values.split(/\s*,\s*/),}}return{name:val,generics:[],}}function checkGenerics(obj,val){var tmp_lev,elem_name;if(val.generics.length>0){if(obj.length>GENERICS_DATA&&obj[GENERICS_DATA].length>=val.generics.length){var elems=Object.create(null);var elength=obj[GENERICS_DATA].length;for(var x=0;xGENERICS_DATA&&obj[GENERICS_DATA].length>0){var elems=Object.create(null);len=obj[GENERICS_DATA].length;for(x=0;xGENERICS_DATA&&obj[GENERICS_DATA].length!==0){tmp_lev=checkGenerics(obj,val);if(tmp_lev<=MAX_LEV_DISTANCE){return tmp_lev}}}}else if(literalSearch){var found=false;if((!val.generics||val.generics.length===0)&&obj.length>GENERICS_DATA&&obj[GENERICS_DATA].length>0){found=obj[GENERICS_DATA].some(function(gen){return gen[NAME]===val.name})}return found?0:MAX_LEV_DISTANCE+1}lev_distance=Math.min(levenshtein(obj[NAME],val.name),lev_distance);if(lev_distance<=MAX_LEV_DISTANCE){lev_distance=Math.ceil((checkGenerics(obj,val)+lev_distance)/2)}if(obj.length>GENERICS_DATA&&obj[GENERICS_DATA].length>0){var olength=obj[GENERICS_DATA].length;for(x=0;x0){var length=obj.type[INPUTS_DATA].length;for(var i=0;iOUTPUT_DATA){var ret=obj.type[OUTPUT_DATA];if(typeof ret[0]==="string"){ret=[ret]}for(var x=0,len=ret.length;xlength){return MAX_LEV_DISTANCE+1}for(var i=0;ilength){break}var lev_total=0;var aborted=false;for(var x=0;xMAX_LEV_DISTANCE){aborted=true;break}lev_total+=lev}if(!aborted){ret_lev=Math.min(ret_lev,Math.round(lev_total/clength))}}return ret_lev}function typePassesFilter(filter,type){if(filter<=NO_TYPE_FILTER)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 createAliasFromItem(item){return{crate:item.crate,name:item.name,path:item.path,desc:item.desc,ty:item.ty,parent:item.parent,type:item.type,is_alias:true,}}function handleAliases(ret,query,filterCrates){var aliases=[];var crateAliases=[];if(filterCrates!==undefined){if(ALIASES[filterCrates]&&ALIASES[filterCrates][query.search]){var query_aliases=ALIASES[filterCrates][query.search];var len=query_aliases.length;for(var i=0;iMAX_RESULTS){ret.others.pop()}};onEach(aliases,pushFunc);onEach(crateAliases,pushFunc)}function addIntoResults(isExact,res,fullId,id,index,lev){if(lev===0||(!isExact&&lev<=MAX_LEV_DISTANCE)){if(res[fullId]!==undefined){var result=res[fullId];if(result.dontValidate||result.lev<=lev){return}}res[fullId]={id:id,index:index,dontValidate:isExact,lev:lev,}}}var nSearchWords=searchWords.length;var i,it;var ty;var fullId;var returned;var in_args;var len;if((val.charAt(0)==="\""||val.charAt(0)==="'")&&val.charAt(val.length-1)===val.charAt(0)){val=extractGenerics(val.substr(1,val.length-2));for(i=0;i")>-1){var trimmer=function(s){return s.trim()};var parts=val.split("->").map(trimmer);var input=parts[0];var inputs=input.split(",").map(trimmer).sort();for(i=0,len=inputs.length;i0){firstNonZeroDistance=distance;break}}in_args=firstNonZeroDistance}addIntoResults(true,results_in_args,fullId,i,-1,in_args);addIntoResults(true,results_returned,fullId,i,-1,returned);if(is_module){addIntoResults(true,results,fullId,i,-1,0)}}}query.inputs=inputs.map(function(input){return input.name});query.output=output.name}else{query.inputs=[val];query.output=val;query.search=val;val=val.replace(/_/g,"");var valGenerics=extractGenerics(val);var paths=valLower.split("::");removeEmptyStringsFromArray(paths);val=paths[paths.length-1];var contains=paths.slice(0,paths.length>1?paths.length-1:1);var lev,j;for(j=0;j1){lev=checkPath(contains,paths[paths.length-1],ty);if(lev>MAX_LEV_DISTANCE){continue}else if(lev>0){lev_add=lev/10}}returned=MAX_LEV_DISTANCE+1;in_args=MAX_LEV_DISTANCE+1;var index=-1;lev=MAX_LEV_DISTANCE+1;fullId=ty.id;if(searchWords[j].indexOf(split[i])>-1||searchWords[j].indexOf(val)>-1||ty.normalizedName.indexOf(val)>-1){if(typePassesFilter(typeFilter,ty.ty)&&results[fullId]===undefined){index=ty.normalizedName.indexOf(val)}}if((lev=levenshtein(searchWords[j],val))<=MAX_LEV_DISTANCE){if(typePassesFilter(typeFilter,ty.ty)){lev+=1}else{lev=MAX_LEV_DISTANCE+1}}in_args=findArg(ty,valGenerics,false,typeFilter);returned=checkReturned(ty,valGenerics,false,typeFilter);lev+=lev_add;if(lev>0&&val.length>3&&searchWords[j].indexOf(val)>-1){if(val.length<6){lev-=1}else{lev=0}}addIntoResults(false,results_in_args,fullId,j,index,in_args);addIntoResults(false,results_returned,fullId,j,index,returned);if(typePassesFilter(typeFilter,ty.ty)&&(index!==-1||lev<=MAX_LEV_DISTANCE)){if(index!==-1&&paths.length<2){lev=0}addIntoResults(false,results,fullId,j,index,lev)}}}var ret={"in_args":sortResults(results_in_args,true),"returned":sortResults(results_returned,true),"others":sortResults(results,false),};handleAliases(ret,query,filterCrates);return ret}function validateResult(name,path,keys,parent){for(var i=0,len=keys.length;i-1||path.indexOf(keys[i])>-1||(parent!==undefined&&parent.name!==undefined&&parent.name.toLowerCase().indexOf(keys[i])>-1)||levenshtein(name,keys[i])<=MAX_LEV_DISTANCE)){return false}}return true}function getQuery(raw){var matches,type="",query;query=raw;matches=query.match(/^(fn|mod|struct|enum|trait|type|const|macro)\s*:\s*/i);if(matches){type=matches[1].replace(/^const$/,"constant");query=query.substring(matches[0].length)}return{raw:raw,query:query,type:type,id:query+type}}function nextTab(direction){var next=(searchState.currentTab+direction+3)%searchState.focusedByTab.length;searchState.focusedByTab[searchState.currentTab]=document.activeElement;printTab(next);focusSearchResult()}function focusSearchResult(){var target=searchState.focusedByTab[searchState.currentTab]||document.querySelectorAll(".search-results.active a").item(0)||document.querySelectorAll("#titles > button").item(searchState.currentTab);if(target){target.focus()}}function buildHrefAndPath(item){var displayPath;var href;var type=itemTypes[item.ty];var name=item.name;var path=item.path;if(type==="mod"){displayPath=path+"::";href=window.rootPath+path.replace(/::/g,"/")+"/"+name+"/index.html"}else if(type==="primitive"||type==="keyword"){displayPath="";href=window.rootPath+path.replace(/::/g,"/")+"/"+type+"."+name+".html"}else if(type==="externcrate"){displayPath="";href=window.rootPath+name+"/index.html"}else if(item.parent!==undefined){var myparent=item.parent;var anchor="#"+type+"."+name;var parentType=itemTypes[myparent.ty];var pageType=parentType;var pageName=myparent.name;if(parentType==="primitive"){displayPath=myparent.name+"::"}else if(type==="structfield"&&parentType==="variant"){var enumNameIdx=item.path.lastIndexOf("::");var enumName=item.path.substr(enumNameIdx+2);path=item.path.substr(0,enumNameIdx);displayPath=path+"::"+enumName+"::"+myparent.name+"::";anchor="#variant."+myparent.name+".field."+name;pageType="enum";pageName=enumName}else{displayPath=path+"::"+myparent.name+"::"}href=window.rootPath+path.replace(/::/g,"/")+"/"+pageType+"."+pageName+".html"+anchor}else{displayPath=item.path+"::";href=window.rootPath+item.path.replace(/::/g,"/")+"/"+type+"."+name+".html"}return[displayPath,href]}function escape(content){var h1=document.createElement("h1");h1.textContent=content;return h1.innerHTML}function pathSplitter(path){var tmp=""+path.replace(/::/g,"::");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}function addTab(array,query,display){var extraClass="";if(display===true){extraClass=" active"}var output=document.createElement("div");var length=0;if(array.length>0){output.className="search-results "+extraClass;array.forEach(function(item){var name=item.name;var type=itemTypes[item.ty];length+=1;var extra="";if(type==="primitive"){extra=" (primitive type)"}else if(type==="keyword"){extra=" (keyword)"}var link=document.createElement("a");link.className="result-"+type;link.href=item.href;var wrapper=document.createElement("div");var resultName=document.createElement("div");resultName.className="result-name";if(item.is_alias){var alias=document.createElement("span");alias.className="alias";var bold=document.createElement("b");bold.innerText=item.alias;alias.appendChild(bold);alias.insertAdjacentHTML("beforeend"," - see ");resultName.appendChild(alias)}resultName.insertAdjacentHTML("beforeend",item.displayPath+""+name+extra+"");wrapper.appendChild(resultName);var description=document.createElement("div");description.className="desc";var spanDesc=document.createElement("span");spanDesc.insertAdjacentHTML("beforeend",item.desc);description.appendChild(spanDesc);wrapper.appendChild(description);link.appendChild(wrapper);output.appendChild(link)})}else{output.className="search-failed"+extraClass;output.innerHTML="No results :( "+"Try on DuckDuckGo?
"+"Or try looking in one of these:
The Rust Reference "+" for technical details about the language.