\ No newline at end of file
diff --git a/guard/static.PKG_HOMEPAGE.html b/guard/static.PKG_HOMEPAGE.html
index 70f8d54f..52ffaa8c 100644
--- a/guard/static.PKG_HOMEPAGE.html
+++ b/guard/static.PKG_HOMEPAGE.html
@@ -1,5 +1,5 @@
guard::PKG_HOMEPAGE - Rust
\ No newline at end of file
diff --git a/guard/static.PKG_NAME.html b/guard/static.PKG_NAME.html
index 1372a69e..b90d9124 100644
--- a/guard/static.PKG_NAME.html
+++ b/guard/static.PKG_NAME.html
@@ -1,5 +1,5 @@
guard::PKG_NAME - Rust
\ No newline at end of file
diff --git a/guard/static.VERIFICATION_PATH.html b/guard/static.VERIFICATION_PATH.html
index f595d145..71a657d3 100644
--- a/guard/static.VERIFICATION_PATH.html
+++ b/guard/static.VERIFICATION_PATH.html
@@ -1,5 +1,5 @@
guard::VERIFICATION_PATH - Rust
\ No newline at end of file
diff --git a/guard/static.VERSION.html b/guard/static.VERSION.html
index 34601e94..a637a0b1 100644
--- a/guard/static.VERSION.html
+++ b/guard/static.VERSION.html
@@ -1,5 +1,5 @@
guard::VERSION - Rust
\ No newline at end of file
diff --git a/guard/struct.CSS.html b/guard/struct.CSS.html
new file mode 100644
index 00000000..27b158f0
--- /dev/null
+++ b/guard/struct.CSS.html
@@ -0,0 +1,1369 @@
+guard::CSS - Rust
+
+
+lets="Löwe 老虎 Léopard";
+assert!(s.is_char_boundary(0));
+// start of `老`
+assert!(s.is_char_boundary(6));
+assert!(s.is_char_boundary(s.len()));
+
+// second byte of `ö`
+assert!(!s.is_char_boundary(2));
+
+// third byte of `老`
+assert!(!s.is_char_boundary(8));
+letv=String::from("🗻∈🌏");
+
+assert_eq!(Some("🗻"), v.get(0..4));
+
+// indices not on UTF-8 sequence boundaries
+assert!(v.get(1..).is_none());
+assert!(v.get(..8).is_none());
+
+// out of bounds
+assert!(v.get(..42).is_none());
Returns an iterator over the chars of a string slice.
+
As a string slice consists of valid UTF-8, we can iterate through a
+string slice by char. This method returns such an iterator.
+
It's important to remember that char represents a Unicode Scalar
+Value, and may not match your idea of what a 'character' is. Iteration
+over grapheme clusters may be what you actually want. This functionality
+is not provided by Rust's standard library, check crates.io instead.
Returns an iterator over the chars of a string slice, and their
+positions.
+
As a string slice consists of valid UTF-8, we can iterate through a
+string slice by char. This method returns an iterator of both
+these chars, as well as their byte positions.
+
The iterator yields tuples. The position is first, the char is
+second.
Remember, chars may not match your intuition about characters:
+
+
+letyes="y̆es";
+
+letmutchar_indices=yes.char_indices();
+
+assert_eq!(Some((0, 'y')), char_indices.next()); // not (0, 'y̆')
+assert_eq!(Some((1, '\u{0306}')), char_indices.next());
+
+// note the 3 here - the last character took up two bytes
+assert_eq!(Some((3, 'e')), char_indices.next());
+assert_eq!(Some((4, 's')), char_indices.next());
+
+assert_eq!(None, char_indices.next());
The iterator returned will return string slices that are sub-slices of
+the original string slice, separated by any amount of whitespace.
+
'Whitespace' is defined according to the terms of the Unicode Derived
+Core Property White_Space. If you only want to split on ASCII whitespace
+instead, use split_ascii_whitespace.
An iterator over the lines of a string, as string slices.
+
Lines are ended with either a newline (\n) or a carriage return with
+a line feed (\r\n).
+
The final line ending is optional. A string that ends with a final line
+ending will return the same lines as an otherwise identical string
+without a final line ending.
The returned iterator will be a DoubleEndedIterator if the pattern
+allows a reverse search and forward/reverse search yields the same
+elements. This is true for, e.g., char, but not for &str.
+
If the pattern allows a reverse search but its results might differ
+from a forward search, the rsplit method can be used.
An iterator over substrings of this string slice, separated by
+characters matched by a pattern. Differs from the iterator produced by
+split in that split_inclusive leaves the matched part as the
+terminator of the substring.
+
The pattern can be a &str, char, a slice of chars, or a
+function or closure that determines if a character matches.
+letv: Vec<&str>="Mary had a little lamb\nlittle lamb\nlittle lamb."
+ .split_inclusive('\n').collect();
+assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb."]);
+
If the last element of the string is matched,
+that element will be considered the terminator of the preceding substring.
+That substring will be the last item returned by the iterator.
+
+
+letv: Vec<&str>="Mary had a little lamb\nlittle lamb\nlittle lamb.\n"
+ .split_inclusive('\n').collect();
+assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb.\n"]);
The returned iterator requires that the pattern supports a reverse
+search, and it will be a DoubleEndedIterator if a forward/reverse
+search yields the same elements.
+
For iterating from the front, the split method can be used.
The returned iterator will be a DoubleEndedIterator if the pattern
+allows a reverse search and forward/reverse search yields the same
+elements. This is true for, e.g., char, but not for &str.
+
If the pattern allows a reverse search but its results might differ
+from a forward search, the rsplit_terminator method can be used.
The returned iterator requires that the pattern supports a
+reverse search, and it will be double ended if a forward/reverse
+search yields the same elements.
+
For iterating from the front, the split_terminator method can be
+used.
An iterator over substrings of this string slice, separated by a
+pattern, starting from the end of the string, restricted to returning
+at most n items.
+
If n substrings are returned, the last substring (the nth substring)
+will contain the remainder of the string.
+
The pattern can be a &str, char, a slice of chars, or a
+function or closure that determines if a character matches.
The returned iterator will be a DoubleEndedIterator if the pattern
+allows a reverse search and forward/reverse search yields the same
+elements. This is true for, e.g., char, but not for &str.
+
If the pattern allows a reverse search but its results might differ
+from a forward search, the rmatches method can be used.
The returned iterator requires that the pattern supports a reverse
+search, and it will be a DoubleEndedIterator if a forward/reverse
+search yields the same elements.
+
For iterating from the front, the matches method can be used.
The returned iterator will be a DoubleEndedIterator if the pattern
+allows a reverse search and forward/reverse search yields the same
+elements. This is true for, e.g., char, but not for &str.
+
If the pattern allows a reverse search but its results might differ
+from a forward search, the rmatch_indices method can be used.
The returned iterator requires that the pattern supports a reverse
+search, and it will be a DoubleEndedIterator if a forward/reverse
+search yields the same elements.
+
For iterating from the front, the match_indices method can be used.
A string is a sequence of bytes. start in this context means the first
+position of that byte string; for a left-to-right language like English or
+Russian, this will be left side, and for right-to-left languages like
+Arabic or Hebrew, this will be the right side.
A string is a sequence of bytes. end in this context means the last
+position of that byte string; for a left-to-right language like English or
+Russian, this will be right side, and for right-to-left languages like
+Arabic or Hebrew, this will be the left side.
A string is a sequence of bytes. 'Left' in this context means the first
+position of that byte string; for a language like Arabic or Hebrew
+which are 'right to left' rather than 'left to right', this will be
+the right side, not the left.
A string is a sequence of bytes. 'Right' in this context means the last
+position of that byte string; for a language like Arabic or Hebrew
+which are 'right to left' rather than 'left to right', this will be
+the left side, not the right.
#[must_use =
+ "this returns the trimmed string as a new slice, \
+ without modifying the original"]pub fn trim_start_matches<'a, P>(&'a self, pat: P) -> &'a strwhere P: Pattern<'a>, 1.30.0[src]
Returns a string slice with all prefixes that match a pattern
+repeatedly removed.
+
The pattern can be a &str, char, a slice of chars, or a
+function or closure that determines if a character matches.
A string is a sequence of bytes. start in this context means the first
+position of that byte string; for a left-to-right language like English or
+Russian, this will be left side, and for right-to-left languages like
+Arabic or Hebrew, this will be the right side.
#[must_use =
+ "this returns the remaining substring as a new slice, \
+ without modifying the original"]pub fn strip_prefix<'a, P>(&'a self, prefix: P) -> Option<&'a str> where P: Pattern<'a>, 1.45.0[src]
Returns a string slice with the prefix removed.
+
If the string starts with the pattern prefix, returns substring after the prefix, wrapped
+in Some. Unlike trim_start_matches, this method removes the prefix exactly once.
+
If the string does not start with prefix, returns None.
+
The pattern can be a &str, char, a slice of chars, or a
+function or closure that determines if a character matches.
#[must_use =
+ "this returns the remaining substring as a new slice, \
+ without modifying the original"]pub fn strip_suffix<'a, P>(&'a self, suffix: P) -> Option<&'a str> where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>, 1.45.0[src]
Returns a string slice with the suffix removed.
+
If the string ends with the pattern suffix, returns the substring before the suffix,
+wrapped in Some. Unlike trim_end_matches, this method removes the suffix exactly once.
+
If the string does not end with suffix, returns None.
+
The pattern can be a &str, char, a slice of chars, or a
+function or closure that determines if a character matches.
A string is a sequence of bytes. end in this context means the last
+position of that byte string; for a left-to-right language like English or
+Russian, this will be right side, and for right-to-left languages like
+Arabic or Hebrew, this will be the left side.
A string is a sequence of bytes. 'Left' in this context means the first
+position of that byte string; for a language like Arabic or Hebrew
+which are 'right to left' rather than 'left to right', this will be
+the right side, not the left.
A string is a sequence of bytes. 'Right' in this context means the last
+position of that byte string; for a language like Arabic or Hebrew
+which are 'right to left' rather than 'left to right', this will be
+the left side, not the right.
Because parse is so general, it can cause problems with type
+inference. As such, parse is one of the few times you'll see
+the syntax affectionately known as the 'turbofish': ::<>. This
+helps the inference algorithm understand specifically which type
+you're trying to parse into.
+
parse can parse into any type that implements the FromStr trait.
#[must_use =
+ "this returns the replaced string as a new allocation, \
+ without modifying the original"]pub fn replace<'a, P>(&'a self, from: P, to: &str) -> Stringwhere P: Pattern<'a>, 1.0.0[src]
Replaces all matches of a pattern with another string.
+
replace creates a new String, and copies the data from this string slice into it.
+While doing so, it attempts to find matches of a pattern. If it finds any, it
+replaces them with the replacement string slice.
+lets="this is old";
+
+assert_eq!("this is new", s.replace("old", "new"));
+
When the pattern doesn't match:
+
+
+lets="this is old";
+assert_eq!(s, s.replace("cookie monster", "little lamb"));
+
#[must_use =
+ "this returns the replaced string as a new allocation, \
+ without modifying the original"]pub fn replacen<'a, P>(&'a self, pat: P, to: &str, count: usize) -> Stringwhere P: Pattern<'a>, 1.16.0[src]
Replaces first N matches of a pattern with another string.
+
replacen creates a new String, and copies the data from this string slice into it.
+While doing so, it attempts to find matches of a pattern. If it finds any, it
+replaces them with the replacement string slice at most count times.
Returns the lowercase equivalent of this string slice, as a new String.
+
'Lowercase' is defined according to the terms of the Unicode Derived Core Property
+Lowercase.
+
Since some characters can expand into multiple characters when changing
+the case, this function returns a String instead of modifying the
+parameter in-place.
+letsigma="Σ";
+
+assert_eq!("σ", sigma.to_lowercase());
+
+// but at the end of a word, it's ς, not σ:
+letodysseus="ὈΔΥΣΣΕΎΣ";
+
+assert_eq!("ὀδυσσεύς", odysseus.to_lowercase());
Returns the uppercase equivalent of this string slice, as a new String.
+
'Uppercase' is defined according to the terms of the Unicode Derived Core Property
+Uppercase.
+
Since some characters can expand into multiple characters when changing
+the case, this function returns a String instead of modifying the
+parameter in-place.
+lets="Löwe 老虎 Léopard";
+assert!(s.is_char_boundary(0));
+// start of `老`
+assert!(s.is_char_boundary(6));
+assert!(s.is_char_boundary(s.len()));
+
+// second byte of `ö`
+assert!(!s.is_char_boundary(2));
+
+// third byte of `老`
+assert!(!s.is_char_boundary(8));
+letv=String::from("🗻∈🌏");
+
+assert_eq!(Some("🗻"), v.get(0..4));
+
+// indices not on UTF-8 sequence boundaries
+assert!(v.get(1..).is_none());
+assert!(v.get(..8).is_none());
+
+// out of bounds
+assert!(v.get(..42).is_none());
Returns an iterator over the chars of a string slice.
+
As a string slice consists of valid UTF-8, we can iterate through a
+string slice by char. This method returns such an iterator.
+
It's important to remember that char represents a Unicode Scalar
+Value, and may not match your idea of what a 'character' is. Iteration
+over grapheme clusters may be what you actually want. This functionality
+is not provided by Rust's standard library, check crates.io instead.
Returns an iterator over the chars of a string slice, and their
+positions.
+
As a string slice consists of valid UTF-8, we can iterate through a
+string slice by char. This method returns an iterator of both
+these chars, as well as their byte positions.
+
The iterator yields tuples. The position is first, the char is
+second.
Remember, chars may not match your intuition about characters:
+
+
+letyes="y̆es";
+
+letmutchar_indices=yes.char_indices();
+
+assert_eq!(Some((0, 'y')), char_indices.next()); // not (0, 'y̆')
+assert_eq!(Some((1, '\u{0306}')), char_indices.next());
+
+// note the 3 here - the last character took up two bytes
+assert_eq!(Some((3, 'e')), char_indices.next());
+assert_eq!(Some((4, 's')), char_indices.next());
+
+assert_eq!(None, char_indices.next());
The iterator returned will return string slices that are sub-slices of
+the original string slice, separated by any amount of whitespace.
+
'Whitespace' is defined according to the terms of the Unicode Derived
+Core Property White_Space. If you only want to split on ASCII whitespace
+instead, use split_ascii_whitespace.
An iterator over the lines of a string, as string slices.
+
Lines are ended with either a newline (\n) or a carriage return with
+a line feed (\r\n).
+
The final line ending is optional. A string that ends with a final line
+ending will return the same lines as an otherwise identical string
+without a final line ending.
The returned iterator will be a DoubleEndedIterator if the pattern
+allows a reverse search and forward/reverse search yields the same
+elements. This is true for, e.g., char, but not for &str.
+
If the pattern allows a reverse search but its results might differ
+from a forward search, the rsplit method can be used.
An iterator over substrings of this string slice, separated by
+characters matched by a pattern. Differs from the iterator produced by
+split in that split_inclusive leaves the matched part as the
+terminator of the substring.
+
The pattern can be a &str, char, a slice of chars, or a
+function or closure that determines if a character matches.
+letv: Vec<&str>="Mary had a little lamb\nlittle lamb\nlittle lamb."
+ .split_inclusive('\n').collect();
+assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb."]);
+
If the last element of the string is matched,
+that element will be considered the terminator of the preceding substring.
+That substring will be the last item returned by the iterator.
+
+
+letv: Vec<&str>="Mary had a little lamb\nlittle lamb\nlittle lamb.\n"
+ .split_inclusive('\n').collect();
+assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb.\n"]);
The returned iterator requires that the pattern supports a reverse
+search, and it will be a DoubleEndedIterator if a forward/reverse
+search yields the same elements.
+
For iterating from the front, the split method can be used.
The returned iterator will be a DoubleEndedIterator if the pattern
+allows a reverse search and forward/reverse search yields the same
+elements. This is true for, e.g., char, but not for &str.
+
If the pattern allows a reverse search but its results might differ
+from a forward search, the rsplit_terminator method can be used.
The returned iterator requires that the pattern supports a
+reverse search, and it will be double ended if a forward/reverse
+search yields the same elements.
+
For iterating from the front, the split_terminator method can be
+used.
An iterator over substrings of this string slice, separated by a
+pattern, starting from the end of the string, restricted to returning
+at most n items.
+
If n substrings are returned, the last substring (the nth substring)
+will contain the remainder of the string.
+
The pattern can be a &str, char, a slice of chars, or a
+function or closure that determines if a character matches.
The returned iterator will be a DoubleEndedIterator if the pattern
+allows a reverse search and forward/reverse search yields the same
+elements. This is true for, e.g., char, but not for &str.
+
If the pattern allows a reverse search but its results might differ
+from a forward search, the rmatches method can be used.
The returned iterator requires that the pattern supports a reverse
+search, and it will be a DoubleEndedIterator if a forward/reverse
+search yields the same elements.
+
For iterating from the front, the matches method can be used.
The returned iterator will be a DoubleEndedIterator if the pattern
+allows a reverse search and forward/reverse search yields the same
+elements. This is true for, e.g., char, but not for &str.
+
If the pattern allows a reverse search but its results might differ
+from a forward search, the rmatch_indices method can be used.
The returned iterator requires that the pattern supports a reverse
+search, and it will be a DoubleEndedIterator if a forward/reverse
+search yields the same elements.
+
For iterating from the front, the match_indices method can be used.
A string is a sequence of bytes. start in this context means the first
+position of that byte string; for a left-to-right language like English or
+Russian, this will be left side, and for right-to-left languages like
+Arabic or Hebrew, this will be the right side.
A string is a sequence of bytes. end in this context means the last
+position of that byte string; for a left-to-right language like English or
+Russian, this will be right side, and for right-to-left languages like
+Arabic or Hebrew, this will be the left side.
A string is a sequence of bytes. 'Left' in this context means the first
+position of that byte string; for a language like Arabic or Hebrew
+which are 'right to left' rather than 'left to right', this will be
+the right side, not the left.
A string is a sequence of bytes. 'Right' in this context means the last
+position of that byte string; for a language like Arabic or Hebrew
+which are 'right to left' rather than 'left to right', this will be
+the left side, not the right.
#[must_use =
+ "this returns the trimmed string as a new slice, \
+ without modifying the original"]pub fn trim_start_matches<'a, P>(&'a self, pat: P) -> &'a strwhere P: Pattern<'a>, 1.30.0[src]
Returns a string slice with all prefixes that match a pattern
+repeatedly removed.
+
The pattern can be a &str, char, a slice of chars, or a
+function or closure that determines if a character matches.
A string is a sequence of bytes. start in this context means the first
+position of that byte string; for a left-to-right language like English or
+Russian, this will be left side, and for right-to-left languages like
+Arabic or Hebrew, this will be the right side.
#[must_use =
+ "this returns the remaining substring as a new slice, \
+ without modifying the original"]pub fn strip_prefix<'a, P>(&'a self, prefix: P) -> Option<&'a str> where P: Pattern<'a>, 1.45.0[src]
Returns a string slice with the prefix removed.
+
If the string starts with the pattern prefix, returns substring after the prefix, wrapped
+in Some. Unlike trim_start_matches, this method removes the prefix exactly once.
+
If the string does not start with prefix, returns None.
+
The pattern can be a &str, char, a slice of chars, or a
+function or closure that determines if a character matches.
#[must_use =
+ "this returns the remaining substring as a new slice, \
+ without modifying the original"]pub fn strip_suffix<'a, P>(&'a self, suffix: P) -> Option<&'a str> where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>, 1.45.0[src]
Returns a string slice with the suffix removed.
+
If the string ends with the pattern suffix, returns the substring before the suffix,
+wrapped in Some. Unlike trim_end_matches, this method removes the suffix exactly once.
+
If the string does not end with suffix, returns None.
+
The pattern can be a &str, char, a slice of chars, or a
+function or closure that determines if a character matches.
A string is a sequence of bytes. end in this context means the last
+position of that byte string; for a left-to-right language like English or
+Russian, this will be right side, and for right-to-left languages like
+Arabic or Hebrew, this will be the left side.
A string is a sequence of bytes. 'Left' in this context means the first
+position of that byte string; for a language like Arabic or Hebrew
+which are 'right to left' rather than 'left to right', this will be
+the right side, not the left.
A string is a sequence of bytes. 'Right' in this context means the last
+position of that byte string; for a language like Arabic or Hebrew
+which are 'right to left' rather than 'left to right', this will be
+the left side, not the right.
Because parse is so general, it can cause problems with type
+inference. As such, parse is one of the few times you'll see
+the syntax affectionately known as the 'turbofish': ::<>. This
+helps the inference algorithm understand specifically which type
+you're trying to parse into.
+
parse can parse into any type that implements the FromStr trait.
#[must_use =
+ "this returns the replaced string as a new allocation, \
+ without modifying the original"]pub fn replace<'a, P>(&'a self, from: P, to: &str) -> Stringwhere P: Pattern<'a>, 1.0.0[src]
Replaces all matches of a pattern with another string.
+
replace creates a new String, and copies the data from this string slice into it.
+While doing so, it attempts to find matches of a pattern. If it finds any, it
+replaces them with the replacement string slice.
+lets="this is old";
+
+assert_eq!("this is new", s.replace("old", "new"));
+
When the pattern doesn't match:
+
+
+lets="this is old";
+assert_eq!(s, s.replace("cookie monster", "little lamb"));
+
#[must_use =
+ "this returns the replaced string as a new allocation, \
+ without modifying the original"]pub fn replacen<'a, P>(&'a self, pat: P, to: &str, count: usize) -> Stringwhere P: Pattern<'a>, 1.16.0[src]
Replaces first N matches of a pattern with another string.
+
replacen creates a new String, and copies the data from this string slice into it.
+While doing so, it attempts to find matches of a pattern. If it finds any, it
+replaces them with the replacement string slice at most count times.
Returns the lowercase equivalent of this string slice, as a new String.
+
'Lowercase' is defined according to the terms of the Unicode Derived Core Property
+Lowercase.
+
Since some characters can expand into multiple characters when changing
+the case, this function returns a String instead of modifying the
+parameter in-place.
+letsigma="Σ";
+
+assert_eq!("σ", sigma.to_lowercase());
+
+// but at the end of a word, it's ς, not σ:
+letodysseus="ὈΔΥΣΣΕΎΣ";
+
+assert_eq!("ὀδυσσεύς", odysseus.to_lowercase());
Returns the uppercase equivalent of this string slice, as a new String.
+
'Uppercase' is defined according to the terms of the Unicode Derived Core Property
+Uppercase.
+
Since some characters can expand into multiple characters when changing
+the case, this function returns a String instead of modifying the
+parameter in-place.
+
\ No newline at end of file
diff --git a/guard/templates/auth/login/sidebar-items.js b/guard/templates/auth/login/sidebar-items.js
new file mode 100644
index 00000000..9d50e9da
--- /dev/null
+++ b/guard/templates/auth/login/sidebar-items.js
@@ -0,0 +1 @@
+initSidebarItems({"struct":[["IndexPage",""],["login",""]]});
\ No newline at end of file
diff --git a/guard/templates/auth/login/struct.IndexPage.html b/guard/templates/auth/login/struct.IndexPage.html
new file mode 100644
index 00000000..35b87164
--- /dev/null
+++ b/guard/templates/auth/login/struct.IndexPage.html
@@ -0,0 +1,125 @@
+guard::templates::auth::login::IndexPage - Rust
+
+
+
\ No newline at end of file
diff --git a/guard/templates/auth/register/sidebar-items.js b/guard/templates/auth/register/sidebar-items.js
new file mode 100644
index 00000000..b25b854f
--- /dev/null
+++ b/guard/templates/auth/register/sidebar-items.js
@@ -0,0 +1 @@
+initSidebarItems({"struct":[["IndexPage",""],["join",""]]});
\ No newline at end of file
diff --git a/guard/templates/auth/register/struct.IndexPage.html b/guard/templates/auth/register/struct.IndexPage.html
new file mode 100644
index 00000000..97935330
--- /dev/null
+++ b/guard/templates/auth/register/struct.IndexPage.html
@@ -0,0 +1,125 @@
+guard::templates::auth::register::IndexPage - Rust
+
+
+
\ No newline at end of file
diff --git a/guard/templates/auth/sidebar-items.js b/guard/templates/auth/sidebar-items.js
new file mode 100644
index 00000000..850519a4
--- /dev/null
+++ b/guard/templates/auth/sidebar-items.js
@@ -0,0 +1 @@
+initSidebarItems({"mod":[["login",""],["register",""]]});
\ No newline at end of file
diff --git a/guard/templates/fn.services.html b/guard/templates/fn.services.html
new file mode 100644
index 00000000..0a3600eb
--- /dev/null
+++ b/guard/templates/fn.services.html
@@ -0,0 +1,5 @@
+guard::templates::services - Rust
+
+
+
\ No newline at end of file
diff --git a/guard/templates/panel/sidebar-items.js b/guard/templates/panel/sidebar-items.js
new file mode 100644
index 00000000..08069f31
--- /dev/null
+++ b/guard/templates/panel/sidebar-items.js
@@ -0,0 +1 @@
+initSidebarItems({"constant":[["TITLE",""]],"struct":[["IndexPage",""],["panel",""]]});
\ No newline at end of file
diff --git a/guard/templates/panel/struct.IndexPage.html b/guard/templates/panel/struct.IndexPage.html
new file mode 100644
index 00000000..a0a531f1
--- /dev/null
+++ b/guard/templates/panel/struct.IndexPage.html
@@ -0,0 +1,125 @@
+guard::templates::panel::IndexPage - Rust
+
+
+
\ No newline at end of file
diff --git a/guard/templates/sidebar-items.js b/guard/templates/sidebar-items.js
new file mode 100644
index 00000000..64667180
--- /dev/null
+++ b/guard/templates/sidebar-items.js
@@ -0,0 +1 @@
+initSidebarItems({"fn":[["services",""]],"mod":[["auth",""],["panel",""]]});
\ No newline at end of file
diff --git a/implementors/actix_web/service/trait.HttpServiceFactory.js b/implementors/actix_web/service/trait.HttpServiceFactory.js
index 1363f9cc..0e161235 100644
--- a/implementors/actix_web/service/trait.HttpServiceFactory.js
+++ b/implementors/actix_web/service/trait.HttpServiceFactory.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["guard"] = [{"text":"impl HttpServiceFactory for signup","synthetic":false,"types":["guard::api::v1::auth::signup"]},{"text":"impl HttpServiceFactory for signin","synthetic":false,"types":["guard::api::v1::auth::signin"]},{"text":"impl HttpServiceFactory for signout","synthetic":false,"types":["guard::api::v1::auth::signout"]},{"text":"impl HttpServiceFactory for delete_account","synthetic":false,"types":["guard::api::v1::auth::delete_account"]},{"text":"impl HttpServiceFactory for username_exists","synthetic":false,"types":["guard::api::v1::auth::username_exists"]},{"text":"impl HttpServiceFactory for email_exists","synthetic":false,"types":["guard::api::v1::auth::email_exists"]},{"text":"impl HttpServiceFactory for add_domain","synthetic":false,"types":["guard::api::v1::mcaptcha::domains::add_domain"]},{"text":"impl HttpServiceFactory for get_challenge","synthetic":false,"types":["guard::api::v1::mcaptcha::domains::get_challenge"]},{"text":"impl HttpServiceFactory for verify","synthetic":false,"types":["guard::api::v1::mcaptcha::domains::verify"]},{"text":"impl HttpServiceFactory for delete_domain","synthetic":false,"types":["guard::api::v1::mcaptcha::domains::delete_domain"]},{"text":"impl HttpServiceFactory for update_duration","synthetic":false,"types":["guard::api::v1::mcaptcha::duration::update_duration"]},{"text":"impl HttpServiceFactory for get_duration","synthetic":false,"types":["guard::api::v1::mcaptcha::duration::get_duration"]},{"text":"impl HttpServiceFactory for add_levels","synthetic":false,"types":["guard::api::v1::mcaptcha::levels::add_levels"]},{"text":"impl HttpServiceFactory for update_levels","synthetic":false,"types":["guard::api::v1::mcaptcha::levels::update_levels"]},{"text":"impl HttpServiceFactory for delete_levels","synthetic":false,"types":["guard::api::v1::mcaptcha::levels::delete_levels"]},{"text":"impl HttpServiceFactory for get_levels","synthetic":false,"types":["guard::api::v1::mcaptcha::levels::get_levels"]},{"text":"impl HttpServiceFactory for add_mcaptcha","synthetic":false,"types":["guard::api::v1::mcaptcha::mcaptcha::add_mcaptcha"]},{"text":"impl HttpServiceFactory for update_token","synthetic":false,"types":["guard::api::v1::mcaptcha::mcaptcha::update_token"]},{"text":"impl HttpServiceFactory for get_token","synthetic":false,"types":["guard::api::v1::mcaptcha::mcaptcha::get_token"]},{"text":"impl HttpServiceFactory for delete_mcaptcha","synthetic":false,"types":["guard::api::v1::mcaptcha::mcaptcha::delete_mcaptcha"]},{"text":"impl HttpServiceFactory for get_config","synthetic":false,"types":["guard::api::v1::mcaptcha::pow::get_config"]},{"text":"impl HttpServiceFactory for build_details","synthetic":false,"types":["guard::api::v1::meta::build_details"]},{"text":"impl HttpServiceFactory for health","synthetic":false,"types":["guard::api::v1::meta::health"]},{"text":"impl HttpServiceFactory for dist","synthetic":false,"types":["guard::docs::dist"]},{"text":"impl HttpServiceFactory for spec","synthetic":false,"types":["guard::docs::spec"]},{"text":"impl HttpServiceFactory for index","synthetic":false,"types":["guard::docs::index"]}];
+implementors["guard"] = [{"text":"impl HttpServiceFactory for signup","synthetic":false,"types":["guard::api::v1::auth::signup"]},{"text":"impl HttpServiceFactory for signin","synthetic":false,"types":["guard::api::v1::auth::signin"]},{"text":"impl HttpServiceFactory for signout","synthetic":false,"types":["guard::api::v1::auth::signout"]},{"text":"impl HttpServiceFactory for delete_account","synthetic":false,"types":["guard::api::v1::auth::delete_account"]},{"text":"impl HttpServiceFactory for username_exists","synthetic":false,"types":["guard::api::v1::auth::username_exists"]},{"text":"impl HttpServiceFactory for email_exists","synthetic":false,"types":["guard::api::v1::auth::email_exists"]},{"text":"impl HttpServiceFactory for add_domain","synthetic":false,"types":["guard::api::v1::mcaptcha::domains::add_domain"]},{"text":"impl HttpServiceFactory for get_challenge","synthetic":false,"types":["guard::api::v1::mcaptcha::domains::get_challenge"]},{"text":"impl HttpServiceFactory for verify","synthetic":false,"types":["guard::api::v1::mcaptcha::domains::verify"]},{"text":"impl HttpServiceFactory for delete_domain","synthetic":false,"types":["guard::api::v1::mcaptcha::domains::delete_domain"]},{"text":"impl HttpServiceFactory for update_duration","synthetic":false,"types":["guard::api::v1::mcaptcha::duration::update_duration"]},{"text":"impl HttpServiceFactory for get_duration","synthetic":false,"types":["guard::api::v1::mcaptcha::duration::get_duration"]},{"text":"impl HttpServiceFactory for add_levels","synthetic":false,"types":["guard::api::v1::mcaptcha::levels::add_levels"]},{"text":"impl HttpServiceFactory for update_levels","synthetic":false,"types":["guard::api::v1::mcaptcha::levels::update_levels"]},{"text":"impl HttpServiceFactory for delete_levels","synthetic":false,"types":["guard::api::v1::mcaptcha::levels::delete_levels"]},{"text":"impl HttpServiceFactory for get_levels","synthetic":false,"types":["guard::api::v1::mcaptcha::levels::get_levels"]},{"text":"impl HttpServiceFactory for add_mcaptcha","synthetic":false,"types":["guard::api::v1::mcaptcha::mcaptcha::add_mcaptcha"]},{"text":"impl HttpServiceFactory for update_token","synthetic":false,"types":["guard::api::v1::mcaptcha::mcaptcha::update_token"]},{"text":"impl HttpServiceFactory for get_token","synthetic":false,"types":["guard::api::v1::mcaptcha::mcaptcha::get_token"]},{"text":"impl HttpServiceFactory for delete_mcaptcha","synthetic":false,"types":["guard::api::v1::mcaptcha::mcaptcha::delete_mcaptcha"]},{"text":"impl HttpServiceFactory for get_config","synthetic":false,"types":["guard::api::v1::mcaptcha::pow::get_config"]},{"text":"impl HttpServiceFactory for build_details","synthetic":false,"types":["guard::api::v1::meta::build_details"]},{"text":"impl HttpServiceFactory for health","synthetic":false,"types":["guard::api::v1::meta::health"]},{"text":"impl HttpServiceFactory for dist","synthetic":false,"types":["guard::docs::dist"]},{"text":"impl HttpServiceFactory for spec","synthetic":false,"types":["guard::docs::spec"]},{"text":"impl HttpServiceFactory for index","synthetic":false,"types":["guard::docs::index"]},{"text":"impl HttpServiceFactory for login","synthetic":false,"types":["guard::templates::auth::login::login"]},{"text":"impl HttpServiceFactory for join","synthetic":false,"types":["guard::templates::auth::register::join"]},{"text":"impl HttpServiceFactory for panel","synthetic":false,"types":["guard::templates::panel::panel"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/implementors/core/clone/trait.Clone.js b/implementors/core/clone/trait.Clone.js
index cca62b60..006573a1 100644
--- a/implementors/core/clone/trait.Clone.js
+++ b/implementors/core/clone/trait.Clone.js
@@ -1,5 +1,5 @@
(function() {var implementors = {};
implementors["frontend"] = [{"text":"impl Clone for IndexPage","synthetic":false,"types":["frontend::IndexPage"]},{"text":"impl Clone for IndexPage","synthetic":false,"types":["frontend::signup::IndexPage"]},{"text":"impl Clone for IndexPage","synthetic":false,"types":["frontend::panel::IndexPage"]}];
-implementors["guard"] = [{"text":"impl Clone for Data","synthetic":false,"types":["guard::data::Data"]},{"text":"impl Clone for ServiceError","synthetic":false,"types":["guard::errors::ServiceError"]},{"text":"impl Clone for Register","synthetic":false,"types":["guard::api::v1::auth::Register"]},{"text":"impl Clone for Login","synthetic":false,"types":["guard::api::v1::auth::Login"]},{"text":"impl Clone for Password","synthetic":false,"types":["guard::api::v1::auth::Password"]},{"text":"impl Clone for AccountCheckPayload","synthetic":false,"types":["guard::api::v1::auth::AccountCheckPayload"]},{"text":"impl Clone for AccountCheckResp","synthetic":false,"types":["guard::api::v1::auth::AccountCheckResp"]},{"text":"impl Clone for Domain","synthetic":false,"types":["guard::api::v1::mcaptcha::domains::Domain"]},{"text":"impl Clone for Challenge","synthetic":false,"types":["guard::api::v1::mcaptcha::domains::Challenge"]},{"text":"impl Clone for MCaptchaID","synthetic":false,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaID"]},{"text":"impl Clone for MCaptchaDetails","synthetic":false,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaDetails"]},{"text":"impl Clone for PoWConfig","synthetic":false,"types":["guard::api::v1::mcaptcha::pow::PoWConfig"]},{"text":"impl Clone for GetConfigPayload","synthetic":false,"types":["guard::api::v1::mcaptcha::pow::GetConfigPayload"]},{"text":"impl Clone for BuildDetails","synthetic":false,"types":["guard::api::v1::meta::BuildDetails"]},{"text":"impl Clone for BuildDetailsBuilder","synthetic":false,"types":["guard::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Clone for Health","synthetic":false,"types":["guard::api::v1::meta::Health"]},{"text":"impl Clone for HealthBuilder","synthetic":false,"types":["guard::api::v1::meta::HealthBuilder"]},{"text":"impl Clone for Server","synthetic":false,"types":["guard::settings::Server"]},{"text":"impl Clone for Captcha","synthetic":false,"types":["guard::settings::Captcha"]},{"text":"impl Clone for DatabaseBuilder","synthetic":false,"types":["guard::settings::DatabaseBuilder"]},{"text":"impl Clone for Database","synthetic":false,"types":["guard::settings::Database"]},{"text":"impl Clone for Settings","synthetic":false,"types":["guard::settings::Settings"]}];
+implementors["guard"] = [{"text":"impl Clone for Data","synthetic":false,"types":["guard::data::Data"]},{"text":"impl Clone for ServiceError","synthetic":false,"types":["guard::errors::ServiceError"]},{"text":"impl Clone for Register","synthetic":false,"types":["guard::api::v1::auth::Register"]},{"text":"impl Clone for Login","synthetic":false,"types":["guard::api::v1::auth::Login"]},{"text":"impl Clone for Password","synthetic":false,"types":["guard::api::v1::auth::Password"]},{"text":"impl Clone for AccountCheckPayload","synthetic":false,"types":["guard::api::v1::auth::AccountCheckPayload"]},{"text":"impl Clone for AccountCheckResp","synthetic":false,"types":["guard::api::v1::auth::AccountCheckResp"]},{"text":"impl Clone for Domain","synthetic":false,"types":["guard::api::v1::mcaptcha::domains::Domain"]},{"text":"impl Clone for Challenge","synthetic":false,"types":["guard::api::v1::mcaptcha::domains::Challenge"]},{"text":"impl Clone for MCaptchaID","synthetic":false,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaID"]},{"text":"impl Clone for MCaptchaDetails","synthetic":false,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaDetails"]},{"text":"impl Clone for PoWConfig","synthetic":false,"types":["guard::api::v1::mcaptcha::pow::PoWConfig"]},{"text":"impl Clone for GetConfigPayload","synthetic":false,"types":["guard::api::v1::mcaptcha::pow::GetConfigPayload"]},{"text":"impl Clone for BuildDetails","synthetic":false,"types":["guard::api::v1::meta::BuildDetails"]},{"text":"impl Clone for BuildDetailsBuilder","synthetic":false,"types":["guard::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Clone for Health","synthetic":false,"types":["guard::api::v1::meta::Health"]},{"text":"impl Clone for HealthBuilder","synthetic":false,"types":["guard::api::v1::meta::HealthBuilder"]},{"text":"impl Clone for Server","synthetic":false,"types":["guard::settings::Server"]},{"text":"impl Clone for Captcha","synthetic":false,"types":["guard::settings::Captcha"]},{"text":"impl Clone for DatabaseBuilder","synthetic":false,"types":["guard::settings::DatabaseBuilder"]},{"text":"impl Clone for Database","synthetic":false,"types":["guard::settings::Database"]},{"text":"impl Clone for Settings","synthetic":false,"types":["guard::settings::Settings"]},{"text":"impl Clone for IndexPage","synthetic":false,"types":["guard::templates::auth::login::IndexPage"]},{"text":"impl Clone for IndexPage","synthetic":false,"types":["guard::templates::auth::register::IndexPage"]},{"text":"impl Clone for IndexPage","synthetic":false,"types":["guard::templates::panel::IndexPage"]}];
implementors["tests_migrate"] = [{"text":"impl Clone for Data","synthetic":false,"types":["tests_migrate::data::Data"]},{"text":"impl Clone for Server","synthetic":false,"types":["tests_migrate::settings::Server"]},{"text":"impl Clone for Captcha","synthetic":false,"types":["tests_migrate::settings::Captcha"]},{"text":"impl Clone for DatabaseBuilder","synthetic":false,"types":["tests_migrate::settings::DatabaseBuilder"]},{"text":"impl Clone for Database","synthetic":false,"types":["tests_migrate::settings::Database"]},{"text":"impl Clone for Settings","synthetic":false,"types":["tests_migrate::settings::Settings"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/implementors/core/default/trait.Default.js b/implementors/core/default/trait.Default.js
index c8122b33..41305d2a 100644
--- a/implementors/core/default/trait.Default.js
+++ b/implementors/core/default/trait.Default.js
@@ -1,4 +1,4 @@
(function() {var implementors = {};
implementors["frontend"] = [{"text":"impl Default for IndexPage","synthetic":false,"types":["frontend::IndexPage"]},{"text":"impl Default for IndexPage","synthetic":false,"types":["frontend::signup::IndexPage"]},{"text":"impl Default for IndexPage","synthetic":false,"types":["frontend::panel::IndexPage"]}];
-implementors["guard"] = [{"text":"impl Default for BuildDetailsBuilder","synthetic":false,"types":["guard::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Default for HealthBuilder","synthetic":false,"types":["guard::api::v1::meta::HealthBuilder"]}];
+implementors["guard"] = [{"text":"impl Default for BuildDetailsBuilder","synthetic":false,"types":["guard::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Default for HealthBuilder","synthetic":false,"types":["guard::api::v1::meta::HealthBuilder"]},{"text":"impl Default for IndexPage","synthetic":false,"types":["guard::templates::auth::login::IndexPage"]},{"text":"impl Default for IndexPage","synthetic":false,"types":["guard::templates::auth::register::IndexPage"]},{"text":"impl Default for IndexPage","synthetic":false,"types":["guard::templates::panel::IndexPage"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/implementors/core/marker/trait.Freeze.js b/implementors/core/marker/trait.Freeze.js
index be0fa5ae..33ff8ad2 100644
--- a/implementors/core/marker/trait.Freeze.js
+++ b/implementors/core/marker/trait.Freeze.js
@@ -1,5 +1,5 @@
(function() {var implementors = {};
implementors["frontend"] = [{"text":"impl Freeze for IndexPage","synthetic":true,"types":["frontend::signup::IndexPage"]},{"text":"impl<const N: usize> Freeze for Section<N>","synthetic":true,"types":["frontend::panel::section::Section"]},{"text":"impl Freeze for SubPanel","synthetic":true,"types":["frontend::panel::section::SubPanel"]},{"text":"impl Freeze for IndexPage","synthetic":true,"types":["frontend::panel::IndexPage"]},{"text":"impl Freeze for IndexPage","synthetic":true,"types":["frontend::IndexPage"]},{"text":"impl Freeze for FILES","synthetic":true,"types":["frontend::FILES"]}];
-implementors["guard"] = [{"text":"impl Freeze for Data","synthetic":true,"types":["guard::data::Data"]},{"text":"impl Freeze for ServiceError","synthetic":true,"types":["guard::errors::ServiceError"]},{"text":"impl Freeze for ErrorToResponse","synthetic":true,"types":["guard::errors::ErrorToResponse"]},{"text":"impl Freeze for Register","synthetic":true,"types":["guard::api::v1::auth::Register"]},{"text":"impl Freeze for Login","synthetic":true,"types":["guard::api::v1::auth::Login"]},{"text":"impl Freeze for Password","synthetic":true,"types":["guard::api::v1::auth::Password"]},{"text":"impl Freeze for signup","synthetic":true,"types":["guard::api::v1::auth::signup"]},{"text":"impl Freeze for signin","synthetic":true,"types":["guard::api::v1::auth::signin"]},{"text":"impl Freeze for signout","synthetic":true,"types":["guard::api::v1::auth::signout"]},{"text":"impl Freeze for delete_account","synthetic":true,"types":["guard::api::v1::auth::delete_account"]},{"text":"impl Freeze for AccountCheckPayload","synthetic":true,"types":["guard::api::v1::auth::AccountCheckPayload"]},{"text":"impl Freeze for AccountCheckResp","synthetic":true,"types":["guard::api::v1::auth::AccountCheckResp"]},{"text":"impl Freeze for username_exists","synthetic":true,"types":["guard::api::v1::auth::username_exists"]},{"text":"impl Freeze for email_exists","synthetic":true,"types":["guard::api::v1::auth::email_exists"]},{"text":"impl Freeze for Domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Domain"]},{"text":"impl Freeze for add_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::add_domain"]},{"text":"impl Freeze for Challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Challenge"]},{"text":"impl Freeze for get_challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::get_challenge"]},{"text":"impl Freeze for verify","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::verify"]},{"text":"impl Freeze for delete_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::delete_domain"]},{"text":"impl Freeze for UpdateDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::UpdateDuration"]},{"text":"impl Freeze for update_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::update_duration"]},{"text":"impl Freeze for GetDurationResp","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDurationResp"]},{"text":"impl Freeze for GetDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDuration"]},{"text":"impl Freeze for get_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::get_duration"]},{"text":"impl Freeze for AddLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::AddLevels"]},{"text":"impl Freeze for add_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::add_levels"]},{"text":"impl Freeze for update_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::update_levels"]},{"text":"impl Freeze for delete_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::delete_levels"]},{"text":"impl Freeze for GetLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::GetLevels"]},{"text":"impl Freeze for get_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::get_levels"]},{"text":"impl Freeze for Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::Levels"]},{"text":"impl Freeze for I32Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::I32Levels"]},{"text":"impl Freeze for MCaptchaID","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaID"]},{"text":"impl Freeze for MCaptchaDetails","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaDetails"]},{"text":"impl Freeze for add_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::add_mcaptcha"]},{"text":"impl Freeze for update_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::update_token"]},{"text":"impl Freeze for get_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::get_token"]},{"text":"impl Freeze for delete_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::delete_mcaptcha"]},{"text":"impl Freeze for PoWConfig","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::PoWConfig"]},{"text":"impl Freeze for GetConfigPayload","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::GetConfigPayload"]},{"text":"impl Freeze for get_config","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::get_config"]},{"text":"impl Freeze for BuildDetails","synthetic":true,"types":["guard::api::v1::meta::BuildDetails"]},{"text":"impl Freeze for BuildDetailsBuilder","synthetic":true,"types":["guard::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Freeze for build_details","synthetic":true,"types":["guard::api::v1::meta::build_details"]},{"text":"impl Freeze for Health","synthetic":true,"types":["guard::api::v1::meta::Health"]},{"text":"impl Freeze for HealthBuilder","synthetic":true,"types":["guard::api::v1::meta::HealthBuilder"]},{"text":"impl Freeze for health","synthetic":true,"types":["guard::api::v1::meta::health"]},{"text":"impl Freeze for Asset","synthetic":true,"types":["guard::docs::Asset"]},{"text":"impl Freeze for dist","synthetic":true,"types":["guard::docs::dist"]},{"text":"impl Freeze for spec","synthetic":true,"types":["guard::docs::spec"]},{"text":"impl Freeze for index","synthetic":true,"types":["guard::docs::index"]},{"text":"impl Freeze for Server","synthetic":true,"types":["guard::settings::Server"]},{"text":"impl Freeze for Captcha","synthetic":true,"types":["guard::settings::Captcha"]},{"text":"impl Freeze for DatabaseBuilder","synthetic":true,"types":["guard::settings::DatabaseBuilder"]},{"text":"impl Freeze for Database","synthetic":true,"types":["guard::settings::Database"]},{"text":"impl Freeze for Settings","synthetic":true,"types":["guard::settings::Settings"]},{"text":"impl Freeze for SETTINGS","synthetic":true,"types":["guard::SETTINGS"]},{"text":"impl Freeze for S","synthetic":true,"types":["guard::S"]}];
+implementors["guard"] = [{"text":"impl Freeze for Data","synthetic":true,"types":["guard::data::Data"]},{"text":"impl Freeze for ServiceError","synthetic":true,"types":["guard::errors::ServiceError"]},{"text":"impl Freeze for ErrorToResponse","synthetic":true,"types":["guard::errors::ErrorToResponse"]},{"text":"impl Freeze for Register","synthetic":true,"types":["guard::api::v1::auth::Register"]},{"text":"impl Freeze for Login","synthetic":true,"types":["guard::api::v1::auth::Login"]},{"text":"impl Freeze for Password","synthetic":true,"types":["guard::api::v1::auth::Password"]},{"text":"impl Freeze for signup","synthetic":true,"types":["guard::api::v1::auth::signup"]},{"text":"impl Freeze for signin","synthetic":true,"types":["guard::api::v1::auth::signin"]},{"text":"impl Freeze for signout","synthetic":true,"types":["guard::api::v1::auth::signout"]},{"text":"impl Freeze for delete_account","synthetic":true,"types":["guard::api::v1::auth::delete_account"]},{"text":"impl Freeze for AccountCheckPayload","synthetic":true,"types":["guard::api::v1::auth::AccountCheckPayload"]},{"text":"impl Freeze for AccountCheckResp","synthetic":true,"types":["guard::api::v1::auth::AccountCheckResp"]},{"text":"impl Freeze for username_exists","synthetic":true,"types":["guard::api::v1::auth::username_exists"]},{"text":"impl Freeze for email_exists","synthetic":true,"types":["guard::api::v1::auth::email_exists"]},{"text":"impl Freeze for Domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Domain"]},{"text":"impl Freeze for add_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::add_domain"]},{"text":"impl Freeze for Challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Challenge"]},{"text":"impl Freeze for get_challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::get_challenge"]},{"text":"impl Freeze for verify","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::verify"]},{"text":"impl Freeze for delete_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::delete_domain"]},{"text":"impl Freeze for UpdateDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::UpdateDuration"]},{"text":"impl Freeze for update_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::update_duration"]},{"text":"impl Freeze for GetDurationResp","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDurationResp"]},{"text":"impl Freeze for GetDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDuration"]},{"text":"impl Freeze for get_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::get_duration"]},{"text":"impl Freeze for AddLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::AddLevels"]},{"text":"impl Freeze for add_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::add_levels"]},{"text":"impl Freeze for update_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::update_levels"]},{"text":"impl Freeze for delete_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::delete_levels"]},{"text":"impl Freeze for GetLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::GetLevels"]},{"text":"impl Freeze for get_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::get_levels"]},{"text":"impl Freeze for Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::Levels"]},{"text":"impl Freeze for I32Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::I32Levels"]},{"text":"impl Freeze for MCaptchaID","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaID"]},{"text":"impl Freeze for MCaptchaDetails","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaDetails"]},{"text":"impl Freeze for add_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::add_mcaptcha"]},{"text":"impl Freeze for update_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::update_token"]},{"text":"impl Freeze for get_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::get_token"]},{"text":"impl Freeze for delete_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::delete_mcaptcha"]},{"text":"impl Freeze for PoWConfig","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::PoWConfig"]},{"text":"impl Freeze for GetConfigPayload","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::GetConfigPayload"]},{"text":"impl Freeze for get_config","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::get_config"]},{"text":"impl Freeze for BuildDetails","synthetic":true,"types":["guard::api::v1::meta::BuildDetails"]},{"text":"impl Freeze for BuildDetailsBuilder","synthetic":true,"types":["guard::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Freeze for build_details","synthetic":true,"types":["guard::api::v1::meta::build_details"]},{"text":"impl Freeze for Health","synthetic":true,"types":["guard::api::v1::meta::Health"]},{"text":"impl Freeze for HealthBuilder","synthetic":true,"types":["guard::api::v1::meta::HealthBuilder"]},{"text":"impl Freeze for health","synthetic":true,"types":["guard::api::v1::meta::health"]},{"text":"impl Freeze for Asset","synthetic":true,"types":["guard::docs::Asset"]},{"text":"impl Freeze for dist","synthetic":true,"types":["guard::docs::dist"]},{"text":"impl Freeze for spec","synthetic":true,"types":["guard::docs::spec"]},{"text":"impl Freeze for index","synthetic":true,"types":["guard::docs::index"]},{"text":"impl Freeze for Server","synthetic":true,"types":["guard::settings::Server"]},{"text":"impl Freeze for Captcha","synthetic":true,"types":["guard::settings::Captcha"]},{"text":"impl Freeze for DatabaseBuilder","synthetic":true,"types":["guard::settings::DatabaseBuilder"]},{"text":"impl Freeze for Database","synthetic":true,"types":["guard::settings::Database"]},{"text":"impl Freeze for Settings","synthetic":true,"types":["guard::settings::Settings"]},{"text":"impl Freeze for IndexPage","synthetic":true,"types":["guard::templates::auth::login::IndexPage"]},{"text":"impl Freeze for login","synthetic":true,"types":["guard::templates::auth::login::login"]},{"text":"impl Freeze for IndexPage","synthetic":true,"types":["guard::templates::auth::register::IndexPage"]},{"text":"impl Freeze for join","synthetic":true,"types":["guard::templates::auth::register::join"]},{"text":"impl Freeze for IndexPage","synthetic":true,"types":["guard::templates::panel::IndexPage"]},{"text":"impl Freeze for panel","synthetic":true,"types":["guard::templates::panel::panel"]},{"text":"impl Freeze for SETTINGS","synthetic":true,"types":["guard::SETTINGS"]},{"text":"impl Freeze for S","synthetic":true,"types":["guard::S"]},{"text":"impl Freeze for FILES","synthetic":true,"types":["guard::FILES"]},{"text":"impl Freeze for JS","synthetic":true,"types":["guard::JS"]},{"text":"impl Freeze for CSS","synthetic":true,"types":["guard::CSS"]}];
implementors["tests_migrate"] = [{"text":"impl Freeze for Data","synthetic":true,"types":["tests_migrate::data::Data"]},{"text":"impl Freeze for Server","synthetic":true,"types":["tests_migrate::settings::Server"]},{"text":"impl Freeze for Captcha","synthetic":true,"types":["tests_migrate::settings::Captcha"]},{"text":"impl Freeze for DatabaseBuilder","synthetic":true,"types":["tests_migrate::settings::DatabaseBuilder"]},{"text":"impl Freeze for Database","synthetic":true,"types":["tests_migrate::settings::Database"]},{"text":"impl Freeze for Settings","synthetic":true,"types":["tests_migrate::settings::Settings"]},{"text":"impl Freeze for SETTINGS","synthetic":true,"types":["tests_migrate::SETTINGS"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/implementors/core/marker/trait.Send.js b/implementors/core/marker/trait.Send.js
index f9759f2b..ceb504c0 100644
--- a/implementors/core/marker/trait.Send.js
+++ b/implementors/core/marker/trait.Send.js
@@ -1,5 +1,5 @@
(function() {var implementors = {};
implementors["frontend"] = [{"text":"impl Send for IndexPage","synthetic":true,"types":["frontend::signup::IndexPage"]},{"text":"impl<const N: usize> Send for Section<N>","synthetic":true,"types":["frontend::panel::section::Section"]},{"text":"impl Send for SubPanel","synthetic":true,"types":["frontend::panel::section::SubPanel"]},{"text":"impl Send for IndexPage","synthetic":true,"types":["frontend::panel::IndexPage"]},{"text":"impl Send for IndexPage","synthetic":true,"types":["frontend::IndexPage"]},{"text":"impl Send for FILES","synthetic":true,"types":["frontend::FILES"]}];
-implementors["guard"] = [{"text":"impl Send for Data","synthetic":true,"types":["guard::data::Data"]},{"text":"impl Send for ServiceError","synthetic":true,"types":["guard::errors::ServiceError"]},{"text":"impl Send for ErrorToResponse","synthetic":true,"types":["guard::errors::ErrorToResponse"]},{"text":"impl Send for Register","synthetic":true,"types":["guard::api::v1::auth::Register"]},{"text":"impl Send for Login","synthetic":true,"types":["guard::api::v1::auth::Login"]},{"text":"impl Send for Password","synthetic":true,"types":["guard::api::v1::auth::Password"]},{"text":"impl Send for signup","synthetic":true,"types":["guard::api::v1::auth::signup"]},{"text":"impl Send for signin","synthetic":true,"types":["guard::api::v1::auth::signin"]},{"text":"impl Send for signout","synthetic":true,"types":["guard::api::v1::auth::signout"]},{"text":"impl Send for delete_account","synthetic":true,"types":["guard::api::v1::auth::delete_account"]},{"text":"impl Send for AccountCheckPayload","synthetic":true,"types":["guard::api::v1::auth::AccountCheckPayload"]},{"text":"impl Send for AccountCheckResp","synthetic":true,"types":["guard::api::v1::auth::AccountCheckResp"]},{"text":"impl Send for username_exists","synthetic":true,"types":["guard::api::v1::auth::username_exists"]},{"text":"impl Send for email_exists","synthetic":true,"types":["guard::api::v1::auth::email_exists"]},{"text":"impl Send for Domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Domain"]},{"text":"impl Send for add_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::add_domain"]},{"text":"impl Send for Challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Challenge"]},{"text":"impl Send for get_challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::get_challenge"]},{"text":"impl Send for verify","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::verify"]},{"text":"impl Send for delete_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::delete_domain"]},{"text":"impl Send for UpdateDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::UpdateDuration"]},{"text":"impl Send for update_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::update_duration"]},{"text":"impl Send for GetDurationResp","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDurationResp"]},{"text":"impl Send for GetDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDuration"]},{"text":"impl Send for get_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::get_duration"]},{"text":"impl Send for AddLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::AddLevels"]},{"text":"impl Send for add_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::add_levels"]},{"text":"impl Send for update_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::update_levels"]},{"text":"impl Send for delete_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::delete_levels"]},{"text":"impl Send for GetLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::GetLevels"]},{"text":"impl Send for get_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::get_levels"]},{"text":"impl Send for Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::Levels"]},{"text":"impl Send for I32Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::I32Levels"]},{"text":"impl Send for MCaptchaID","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaID"]},{"text":"impl Send for MCaptchaDetails","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaDetails"]},{"text":"impl Send for add_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::add_mcaptcha"]},{"text":"impl Send for update_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::update_token"]},{"text":"impl Send for get_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::get_token"]},{"text":"impl Send for delete_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::delete_mcaptcha"]},{"text":"impl Send for PoWConfig","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::PoWConfig"]},{"text":"impl Send for GetConfigPayload","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::GetConfigPayload"]},{"text":"impl Send for get_config","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::get_config"]},{"text":"impl Send for BuildDetails","synthetic":true,"types":["guard::api::v1::meta::BuildDetails"]},{"text":"impl Send for BuildDetailsBuilder","synthetic":true,"types":["guard::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Send for build_details","synthetic":true,"types":["guard::api::v1::meta::build_details"]},{"text":"impl Send for Health","synthetic":true,"types":["guard::api::v1::meta::Health"]},{"text":"impl Send for HealthBuilder","synthetic":true,"types":["guard::api::v1::meta::HealthBuilder"]},{"text":"impl Send for health","synthetic":true,"types":["guard::api::v1::meta::health"]},{"text":"impl Send for Asset","synthetic":true,"types":["guard::docs::Asset"]},{"text":"impl Send for dist","synthetic":true,"types":["guard::docs::dist"]},{"text":"impl Send for spec","synthetic":true,"types":["guard::docs::spec"]},{"text":"impl Send for index","synthetic":true,"types":["guard::docs::index"]},{"text":"impl Send for Server","synthetic":true,"types":["guard::settings::Server"]},{"text":"impl Send for Captcha","synthetic":true,"types":["guard::settings::Captcha"]},{"text":"impl Send for DatabaseBuilder","synthetic":true,"types":["guard::settings::DatabaseBuilder"]},{"text":"impl Send for Database","synthetic":true,"types":["guard::settings::Database"]},{"text":"impl Send for Settings","synthetic":true,"types":["guard::settings::Settings"]},{"text":"impl Send for SETTINGS","synthetic":true,"types":["guard::SETTINGS"]},{"text":"impl Send for S","synthetic":true,"types":["guard::S"]}];
+implementors["guard"] = [{"text":"impl Send for Data","synthetic":true,"types":["guard::data::Data"]},{"text":"impl Send for ServiceError","synthetic":true,"types":["guard::errors::ServiceError"]},{"text":"impl Send for ErrorToResponse","synthetic":true,"types":["guard::errors::ErrorToResponse"]},{"text":"impl Send for Register","synthetic":true,"types":["guard::api::v1::auth::Register"]},{"text":"impl Send for Login","synthetic":true,"types":["guard::api::v1::auth::Login"]},{"text":"impl Send for Password","synthetic":true,"types":["guard::api::v1::auth::Password"]},{"text":"impl Send for signup","synthetic":true,"types":["guard::api::v1::auth::signup"]},{"text":"impl Send for signin","synthetic":true,"types":["guard::api::v1::auth::signin"]},{"text":"impl Send for signout","synthetic":true,"types":["guard::api::v1::auth::signout"]},{"text":"impl Send for delete_account","synthetic":true,"types":["guard::api::v1::auth::delete_account"]},{"text":"impl Send for AccountCheckPayload","synthetic":true,"types":["guard::api::v1::auth::AccountCheckPayload"]},{"text":"impl Send for AccountCheckResp","synthetic":true,"types":["guard::api::v1::auth::AccountCheckResp"]},{"text":"impl Send for username_exists","synthetic":true,"types":["guard::api::v1::auth::username_exists"]},{"text":"impl Send for email_exists","synthetic":true,"types":["guard::api::v1::auth::email_exists"]},{"text":"impl Send for Domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Domain"]},{"text":"impl Send for add_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::add_domain"]},{"text":"impl Send for Challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Challenge"]},{"text":"impl Send for get_challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::get_challenge"]},{"text":"impl Send for verify","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::verify"]},{"text":"impl Send for delete_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::delete_domain"]},{"text":"impl Send for UpdateDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::UpdateDuration"]},{"text":"impl Send for update_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::update_duration"]},{"text":"impl Send for GetDurationResp","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDurationResp"]},{"text":"impl Send for GetDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDuration"]},{"text":"impl Send for get_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::get_duration"]},{"text":"impl Send for AddLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::AddLevels"]},{"text":"impl Send for add_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::add_levels"]},{"text":"impl Send for update_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::update_levels"]},{"text":"impl Send for delete_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::delete_levels"]},{"text":"impl Send for GetLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::GetLevels"]},{"text":"impl Send for get_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::get_levels"]},{"text":"impl Send for Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::Levels"]},{"text":"impl Send for I32Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::I32Levels"]},{"text":"impl Send for MCaptchaID","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaID"]},{"text":"impl Send for MCaptchaDetails","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaDetails"]},{"text":"impl Send for add_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::add_mcaptcha"]},{"text":"impl Send for update_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::update_token"]},{"text":"impl Send for get_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::get_token"]},{"text":"impl Send for delete_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::delete_mcaptcha"]},{"text":"impl Send for PoWConfig","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::PoWConfig"]},{"text":"impl Send for GetConfigPayload","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::GetConfigPayload"]},{"text":"impl Send for get_config","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::get_config"]},{"text":"impl Send for BuildDetails","synthetic":true,"types":["guard::api::v1::meta::BuildDetails"]},{"text":"impl Send for BuildDetailsBuilder","synthetic":true,"types":["guard::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Send for build_details","synthetic":true,"types":["guard::api::v1::meta::build_details"]},{"text":"impl Send for Health","synthetic":true,"types":["guard::api::v1::meta::Health"]},{"text":"impl Send for HealthBuilder","synthetic":true,"types":["guard::api::v1::meta::HealthBuilder"]},{"text":"impl Send for health","synthetic":true,"types":["guard::api::v1::meta::health"]},{"text":"impl Send for Asset","synthetic":true,"types":["guard::docs::Asset"]},{"text":"impl Send for dist","synthetic":true,"types":["guard::docs::dist"]},{"text":"impl Send for spec","synthetic":true,"types":["guard::docs::spec"]},{"text":"impl Send for index","synthetic":true,"types":["guard::docs::index"]},{"text":"impl Send for Server","synthetic":true,"types":["guard::settings::Server"]},{"text":"impl Send for Captcha","synthetic":true,"types":["guard::settings::Captcha"]},{"text":"impl Send for DatabaseBuilder","synthetic":true,"types":["guard::settings::DatabaseBuilder"]},{"text":"impl Send for Database","synthetic":true,"types":["guard::settings::Database"]},{"text":"impl Send for Settings","synthetic":true,"types":["guard::settings::Settings"]},{"text":"impl Send for IndexPage","synthetic":true,"types":["guard::templates::auth::login::IndexPage"]},{"text":"impl Send for login","synthetic":true,"types":["guard::templates::auth::login::login"]},{"text":"impl Send for IndexPage","synthetic":true,"types":["guard::templates::auth::register::IndexPage"]},{"text":"impl Send for join","synthetic":true,"types":["guard::templates::auth::register::join"]},{"text":"impl Send for IndexPage","synthetic":true,"types":["guard::templates::panel::IndexPage"]},{"text":"impl Send for panel","synthetic":true,"types":["guard::templates::panel::panel"]},{"text":"impl Send for SETTINGS","synthetic":true,"types":["guard::SETTINGS"]},{"text":"impl Send for S","synthetic":true,"types":["guard::S"]},{"text":"impl Send for FILES","synthetic":true,"types":["guard::FILES"]},{"text":"impl Send for JS","synthetic":true,"types":["guard::JS"]},{"text":"impl Send for CSS","synthetic":true,"types":["guard::CSS"]}];
implementors["tests_migrate"] = [{"text":"impl Send for Data","synthetic":true,"types":["tests_migrate::data::Data"]},{"text":"impl Send for Server","synthetic":true,"types":["tests_migrate::settings::Server"]},{"text":"impl Send for Captcha","synthetic":true,"types":["tests_migrate::settings::Captcha"]},{"text":"impl Send for DatabaseBuilder","synthetic":true,"types":["tests_migrate::settings::DatabaseBuilder"]},{"text":"impl Send for Database","synthetic":true,"types":["tests_migrate::settings::Database"]},{"text":"impl Send for Settings","synthetic":true,"types":["tests_migrate::settings::Settings"]},{"text":"impl Send for SETTINGS","synthetic":true,"types":["tests_migrate::SETTINGS"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/implementors/core/marker/trait.Sync.js b/implementors/core/marker/trait.Sync.js
index 96894743..8083982d 100644
--- a/implementors/core/marker/trait.Sync.js
+++ b/implementors/core/marker/trait.Sync.js
@@ -1,5 +1,5 @@
(function() {var implementors = {};
implementors["frontend"] = [{"text":"impl Sync for IndexPage","synthetic":true,"types":["frontend::signup::IndexPage"]},{"text":"impl<const N: usize> Sync for Section<N>","synthetic":true,"types":["frontend::panel::section::Section"]},{"text":"impl Sync for SubPanel","synthetic":true,"types":["frontend::panel::section::SubPanel"]},{"text":"impl Sync for IndexPage","synthetic":true,"types":["frontend::panel::IndexPage"]},{"text":"impl Sync for IndexPage","synthetic":true,"types":["frontend::IndexPage"]},{"text":"impl Sync for FILES","synthetic":true,"types":["frontend::FILES"]}];
-implementors["guard"] = [{"text":"impl Sync for Data","synthetic":true,"types":["guard::data::Data"]},{"text":"impl Sync for ServiceError","synthetic":true,"types":["guard::errors::ServiceError"]},{"text":"impl Sync for ErrorToResponse","synthetic":true,"types":["guard::errors::ErrorToResponse"]},{"text":"impl Sync for Register","synthetic":true,"types":["guard::api::v1::auth::Register"]},{"text":"impl Sync for Login","synthetic":true,"types":["guard::api::v1::auth::Login"]},{"text":"impl Sync for Password","synthetic":true,"types":["guard::api::v1::auth::Password"]},{"text":"impl Sync for signup","synthetic":true,"types":["guard::api::v1::auth::signup"]},{"text":"impl Sync for signin","synthetic":true,"types":["guard::api::v1::auth::signin"]},{"text":"impl Sync for signout","synthetic":true,"types":["guard::api::v1::auth::signout"]},{"text":"impl Sync for delete_account","synthetic":true,"types":["guard::api::v1::auth::delete_account"]},{"text":"impl Sync for AccountCheckPayload","synthetic":true,"types":["guard::api::v1::auth::AccountCheckPayload"]},{"text":"impl Sync for AccountCheckResp","synthetic":true,"types":["guard::api::v1::auth::AccountCheckResp"]},{"text":"impl Sync for username_exists","synthetic":true,"types":["guard::api::v1::auth::username_exists"]},{"text":"impl Sync for email_exists","synthetic":true,"types":["guard::api::v1::auth::email_exists"]},{"text":"impl Sync for Domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Domain"]},{"text":"impl Sync for add_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::add_domain"]},{"text":"impl Sync for Challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Challenge"]},{"text":"impl Sync for get_challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::get_challenge"]},{"text":"impl Sync for verify","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::verify"]},{"text":"impl Sync for delete_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::delete_domain"]},{"text":"impl Sync for UpdateDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::UpdateDuration"]},{"text":"impl Sync for update_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::update_duration"]},{"text":"impl Sync for GetDurationResp","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDurationResp"]},{"text":"impl Sync for GetDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDuration"]},{"text":"impl Sync for get_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::get_duration"]},{"text":"impl Sync for AddLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::AddLevels"]},{"text":"impl Sync for add_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::add_levels"]},{"text":"impl Sync for update_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::update_levels"]},{"text":"impl Sync for delete_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::delete_levels"]},{"text":"impl Sync for GetLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::GetLevels"]},{"text":"impl Sync for get_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::get_levels"]},{"text":"impl Sync for Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::Levels"]},{"text":"impl Sync for I32Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::I32Levels"]},{"text":"impl Sync for MCaptchaID","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaID"]},{"text":"impl Sync for MCaptchaDetails","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaDetails"]},{"text":"impl Sync for add_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::add_mcaptcha"]},{"text":"impl Sync for update_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::update_token"]},{"text":"impl Sync for get_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::get_token"]},{"text":"impl Sync for delete_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::delete_mcaptcha"]},{"text":"impl Sync for PoWConfig","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::PoWConfig"]},{"text":"impl Sync for GetConfigPayload","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::GetConfigPayload"]},{"text":"impl Sync for get_config","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::get_config"]},{"text":"impl Sync for BuildDetails","synthetic":true,"types":["guard::api::v1::meta::BuildDetails"]},{"text":"impl Sync for BuildDetailsBuilder","synthetic":true,"types":["guard::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Sync for build_details","synthetic":true,"types":["guard::api::v1::meta::build_details"]},{"text":"impl Sync for Health","synthetic":true,"types":["guard::api::v1::meta::Health"]},{"text":"impl Sync for HealthBuilder","synthetic":true,"types":["guard::api::v1::meta::HealthBuilder"]},{"text":"impl Sync for health","synthetic":true,"types":["guard::api::v1::meta::health"]},{"text":"impl Sync for Asset","synthetic":true,"types":["guard::docs::Asset"]},{"text":"impl Sync for dist","synthetic":true,"types":["guard::docs::dist"]},{"text":"impl Sync for spec","synthetic":true,"types":["guard::docs::spec"]},{"text":"impl Sync for index","synthetic":true,"types":["guard::docs::index"]},{"text":"impl Sync for Server","synthetic":true,"types":["guard::settings::Server"]},{"text":"impl Sync for Captcha","synthetic":true,"types":["guard::settings::Captcha"]},{"text":"impl Sync for DatabaseBuilder","synthetic":true,"types":["guard::settings::DatabaseBuilder"]},{"text":"impl Sync for Database","synthetic":true,"types":["guard::settings::Database"]},{"text":"impl Sync for Settings","synthetic":true,"types":["guard::settings::Settings"]},{"text":"impl Sync for SETTINGS","synthetic":true,"types":["guard::SETTINGS"]},{"text":"impl Sync for S","synthetic":true,"types":["guard::S"]}];
+implementors["guard"] = [{"text":"impl Sync for Data","synthetic":true,"types":["guard::data::Data"]},{"text":"impl Sync for ServiceError","synthetic":true,"types":["guard::errors::ServiceError"]},{"text":"impl Sync for ErrorToResponse","synthetic":true,"types":["guard::errors::ErrorToResponse"]},{"text":"impl Sync for Register","synthetic":true,"types":["guard::api::v1::auth::Register"]},{"text":"impl Sync for Login","synthetic":true,"types":["guard::api::v1::auth::Login"]},{"text":"impl Sync for Password","synthetic":true,"types":["guard::api::v1::auth::Password"]},{"text":"impl Sync for signup","synthetic":true,"types":["guard::api::v1::auth::signup"]},{"text":"impl Sync for signin","synthetic":true,"types":["guard::api::v1::auth::signin"]},{"text":"impl Sync for signout","synthetic":true,"types":["guard::api::v1::auth::signout"]},{"text":"impl Sync for delete_account","synthetic":true,"types":["guard::api::v1::auth::delete_account"]},{"text":"impl Sync for AccountCheckPayload","synthetic":true,"types":["guard::api::v1::auth::AccountCheckPayload"]},{"text":"impl Sync for AccountCheckResp","synthetic":true,"types":["guard::api::v1::auth::AccountCheckResp"]},{"text":"impl Sync for username_exists","synthetic":true,"types":["guard::api::v1::auth::username_exists"]},{"text":"impl Sync for email_exists","synthetic":true,"types":["guard::api::v1::auth::email_exists"]},{"text":"impl Sync for Domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Domain"]},{"text":"impl Sync for add_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::add_domain"]},{"text":"impl Sync for Challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Challenge"]},{"text":"impl Sync for get_challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::get_challenge"]},{"text":"impl Sync for verify","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::verify"]},{"text":"impl Sync for delete_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::delete_domain"]},{"text":"impl Sync for UpdateDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::UpdateDuration"]},{"text":"impl Sync for update_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::update_duration"]},{"text":"impl Sync for GetDurationResp","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDurationResp"]},{"text":"impl Sync for GetDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDuration"]},{"text":"impl Sync for get_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::get_duration"]},{"text":"impl Sync for AddLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::AddLevels"]},{"text":"impl Sync for add_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::add_levels"]},{"text":"impl Sync for update_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::update_levels"]},{"text":"impl Sync for delete_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::delete_levels"]},{"text":"impl Sync for GetLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::GetLevels"]},{"text":"impl Sync for get_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::get_levels"]},{"text":"impl Sync for Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::Levels"]},{"text":"impl Sync for I32Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::I32Levels"]},{"text":"impl Sync for MCaptchaID","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaID"]},{"text":"impl Sync for MCaptchaDetails","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaDetails"]},{"text":"impl Sync for add_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::add_mcaptcha"]},{"text":"impl Sync for update_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::update_token"]},{"text":"impl Sync for get_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::get_token"]},{"text":"impl Sync for delete_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::delete_mcaptcha"]},{"text":"impl Sync for PoWConfig","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::PoWConfig"]},{"text":"impl Sync for GetConfigPayload","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::GetConfigPayload"]},{"text":"impl Sync for get_config","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::get_config"]},{"text":"impl Sync for BuildDetails","synthetic":true,"types":["guard::api::v1::meta::BuildDetails"]},{"text":"impl Sync for BuildDetailsBuilder","synthetic":true,"types":["guard::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Sync for build_details","synthetic":true,"types":["guard::api::v1::meta::build_details"]},{"text":"impl Sync for Health","synthetic":true,"types":["guard::api::v1::meta::Health"]},{"text":"impl Sync for HealthBuilder","synthetic":true,"types":["guard::api::v1::meta::HealthBuilder"]},{"text":"impl Sync for health","synthetic":true,"types":["guard::api::v1::meta::health"]},{"text":"impl Sync for Asset","synthetic":true,"types":["guard::docs::Asset"]},{"text":"impl Sync for dist","synthetic":true,"types":["guard::docs::dist"]},{"text":"impl Sync for spec","synthetic":true,"types":["guard::docs::spec"]},{"text":"impl Sync for index","synthetic":true,"types":["guard::docs::index"]},{"text":"impl Sync for Server","synthetic":true,"types":["guard::settings::Server"]},{"text":"impl Sync for Captcha","synthetic":true,"types":["guard::settings::Captcha"]},{"text":"impl Sync for DatabaseBuilder","synthetic":true,"types":["guard::settings::DatabaseBuilder"]},{"text":"impl Sync for Database","synthetic":true,"types":["guard::settings::Database"]},{"text":"impl Sync for Settings","synthetic":true,"types":["guard::settings::Settings"]},{"text":"impl Sync for IndexPage","synthetic":true,"types":["guard::templates::auth::login::IndexPage"]},{"text":"impl Sync for login","synthetic":true,"types":["guard::templates::auth::login::login"]},{"text":"impl Sync for IndexPage","synthetic":true,"types":["guard::templates::auth::register::IndexPage"]},{"text":"impl Sync for join","synthetic":true,"types":["guard::templates::auth::register::join"]},{"text":"impl Sync for IndexPage","synthetic":true,"types":["guard::templates::panel::IndexPage"]},{"text":"impl Sync for panel","synthetic":true,"types":["guard::templates::panel::panel"]},{"text":"impl Sync for SETTINGS","synthetic":true,"types":["guard::SETTINGS"]},{"text":"impl Sync for S","synthetic":true,"types":["guard::S"]},{"text":"impl Sync for FILES","synthetic":true,"types":["guard::FILES"]},{"text":"impl Sync for JS","synthetic":true,"types":["guard::JS"]},{"text":"impl Sync for CSS","synthetic":true,"types":["guard::CSS"]}];
implementors["tests_migrate"] = [{"text":"impl Sync for Data","synthetic":true,"types":["tests_migrate::data::Data"]},{"text":"impl Sync for Server","synthetic":true,"types":["tests_migrate::settings::Server"]},{"text":"impl Sync for Captcha","synthetic":true,"types":["tests_migrate::settings::Captcha"]},{"text":"impl Sync for DatabaseBuilder","synthetic":true,"types":["tests_migrate::settings::DatabaseBuilder"]},{"text":"impl Sync for Database","synthetic":true,"types":["tests_migrate::settings::Database"]},{"text":"impl Sync for Settings","synthetic":true,"types":["tests_migrate::settings::Settings"]},{"text":"impl Sync for SETTINGS","synthetic":true,"types":["tests_migrate::SETTINGS"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/implementors/core/marker/trait.Unpin.js b/implementors/core/marker/trait.Unpin.js
index 5f2b9eba..478fe542 100644
--- a/implementors/core/marker/trait.Unpin.js
+++ b/implementors/core/marker/trait.Unpin.js
@@ -1,5 +1,5 @@
(function() {var implementors = {};
implementors["frontend"] = [{"text":"impl Unpin for IndexPage","synthetic":true,"types":["frontend::signup::IndexPage"]},{"text":"impl<const N: usize> Unpin for Section<N>","synthetic":true,"types":["frontend::panel::section::Section"]},{"text":"impl Unpin for SubPanel","synthetic":true,"types":["frontend::panel::section::SubPanel"]},{"text":"impl Unpin for IndexPage","synthetic":true,"types":["frontend::panel::IndexPage"]},{"text":"impl Unpin for IndexPage","synthetic":true,"types":["frontend::IndexPage"]},{"text":"impl Unpin for FILES","synthetic":true,"types":["frontend::FILES"]}];
-implementors["guard"] = [{"text":"impl Unpin for Data","synthetic":true,"types":["guard::data::Data"]},{"text":"impl Unpin for ServiceError","synthetic":true,"types":["guard::errors::ServiceError"]},{"text":"impl Unpin for ErrorToResponse","synthetic":true,"types":["guard::errors::ErrorToResponse"]},{"text":"impl Unpin for Register","synthetic":true,"types":["guard::api::v1::auth::Register"]},{"text":"impl Unpin for Login","synthetic":true,"types":["guard::api::v1::auth::Login"]},{"text":"impl Unpin for Password","synthetic":true,"types":["guard::api::v1::auth::Password"]},{"text":"impl Unpin for signup","synthetic":true,"types":["guard::api::v1::auth::signup"]},{"text":"impl Unpin for signin","synthetic":true,"types":["guard::api::v1::auth::signin"]},{"text":"impl Unpin for signout","synthetic":true,"types":["guard::api::v1::auth::signout"]},{"text":"impl Unpin for delete_account","synthetic":true,"types":["guard::api::v1::auth::delete_account"]},{"text":"impl Unpin for AccountCheckPayload","synthetic":true,"types":["guard::api::v1::auth::AccountCheckPayload"]},{"text":"impl Unpin for AccountCheckResp","synthetic":true,"types":["guard::api::v1::auth::AccountCheckResp"]},{"text":"impl Unpin for username_exists","synthetic":true,"types":["guard::api::v1::auth::username_exists"]},{"text":"impl Unpin for email_exists","synthetic":true,"types":["guard::api::v1::auth::email_exists"]},{"text":"impl Unpin for Domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Domain"]},{"text":"impl Unpin for add_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::add_domain"]},{"text":"impl Unpin for Challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Challenge"]},{"text":"impl Unpin for get_challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::get_challenge"]},{"text":"impl Unpin for verify","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::verify"]},{"text":"impl Unpin for delete_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::delete_domain"]},{"text":"impl Unpin for UpdateDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::UpdateDuration"]},{"text":"impl Unpin for update_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::update_duration"]},{"text":"impl Unpin for GetDurationResp","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDurationResp"]},{"text":"impl Unpin for GetDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDuration"]},{"text":"impl Unpin for get_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::get_duration"]},{"text":"impl Unpin for AddLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::AddLevels"]},{"text":"impl Unpin for add_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::add_levels"]},{"text":"impl Unpin for update_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::update_levels"]},{"text":"impl Unpin for delete_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::delete_levels"]},{"text":"impl Unpin for GetLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::GetLevels"]},{"text":"impl Unpin for get_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::get_levels"]},{"text":"impl Unpin for Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::Levels"]},{"text":"impl Unpin for I32Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::I32Levels"]},{"text":"impl Unpin for MCaptchaID","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaID"]},{"text":"impl Unpin for MCaptchaDetails","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaDetails"]},{"text":"impl Unpin for add_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::add_mcaptcha"]},{"text":"impl Unpin for update_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::update_token"]},{"text":"impl Unpin for get_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::get_token"]},{"text":"impl Unpin for delete_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::delete_mcaptcha"]},{"text":"impl Unpin for PoWConfig","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::PoWConfig"]},{"text":"impl Unpin for GetConfigPayload","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::GetConfigPayload"]},{"text":"impl Unpin for get_config","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::get_config"]},{"text":"impl Unpin for BuildDetails","synthetic":true,"types":["guard::api::v1::meta::BuildDetails"]},{"text":"impl Unpin for BuildDetailsBuilder","synthetic":true,"types":["guard::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Unpin for build_details","synthetic":true,"types":["guard::api::v1::meta::build_details"]},{"text":"impl Unpin for Health","synthetic":true,"types":["guard::api::v1::meta::Health"]},{"text":"impl Unpin for HealthBuilder","synthetic":true,"types":["guard::api::v1::meta::HealthBuilder"]},{"text":"impl Unpin for health","synthetic":true,"types":["guard::api::v1::meta::health"]},{"text":"impl Unpin for Asset","synthetic":true,"types":["guard::docs::Asset"]},{"text":"impl Unpin for dist","synthetic":true,"types":["guard::docs::dist"]},{"text":"impl Unpin for spec","synthetic":true,"types":["guard::docs::spec"]},{"text":"impl Unpin for index","synthetic":true,"types":["guard::docs::index"]},{"text":"impl Unpin for Server","synthetic":true,"types":["guard::settings::Server"]},{"text":"impl Unpin for Captcha","synthetic":true,"types":["guard::settings::Captcha"]},{"text":"impl Unpin for DatabaseBuilder","synthetic":true,"types":["guard::settings::DatabaseBuilder"]},{"text":"impl Unpin for Database","synthetic":true,"types":["guard::settings::Database"]},{"text":"impl Unpin for Settings","synthetic":true,"types":["guard::settings::Settings"]},{"text":"impl Unpin for SETTINGS","synthetic":true,"types":["guard::SETTINGS"]},{"text":"impl Unpin for S","synthetic":true,"types":["guard::S"]}];
+implementors["guard"] = [{"text":"impl Unpin for Data","synthetic":true,"types":["guard::data::Data"]},{"text":"impl Unpin for ServiceError","synthetic":true,"types":["guard::errors::ServiceError"]},{"text":"impl Unpin for ErrorToResponse","synthetic":true,"types":["guard::errors::ErrorToResponse"]},{"text":"impl Unpin for Register","synthetic":true,"types":["guard::api::v1::auth::Register"]},{"text":"impl Unpin for Login","synthetic":true,"types":["guard::api::v1::auth::Login"]},{"text":"impl Unpin for Password","synthetic":true,"types":["guard::api::v1::auth::Password"]},{"text":"impl Unpin for signup","synthetic":true,"types":["guard::api::v1::auth::signup"]},{"text":"impl Unpin for signin","synthetic":true,"types":["guard::api::v1::auth::signin"]},{"text":"impl Unpin for signout","synthetic":true,"types":["guard::api::v1::auth::signout"]},{"text":"impl Unpin for delete_account","synthetic":true,"types":["guard::api::v1::auth::delete_account"]},{"text":"impl Unpin for AccountCheckPayload","synthetic":true,"types":["guard::api::v1::auth::AccountCheckPayload"]},{"text":"impl Unpin for AccountCheckResp","synthetic":true,"types":["guard::api::v1::auth::AccountCheckResp"]},{"text":"impl Unpin for username_exists","synthetic":true,"types":["guard::api::v1::auth::username_exists"]},{"text":"impl Unpin for email_exists","synthetic":true,"types":["guard::api::v1::auth::email_exists"]},{"text":"impl Unpin for Domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Domain"]},{"text":"impl Unpin for add_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::add_domain"]},{"text":"impl Unpin for Challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Challenge"]},{"text":"impl Unpin for get_challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::get_challenge"]},{"text":"impl Unpin for verify","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::verify"]},{"text":"impl Unpin for delete_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::delete_domain"]},{"text":"impl Unpin for UpdateDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::UpdateDuration"]},{"text":"impl Unpin for update_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::update_duration"]},{"text":"impl Unpin for GetDurationResp","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDurationResp"]},{"text":"impl Unpin for GetDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDuration"]},{"text":"impl Unpin for get_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::get_duration"]},{"text":"impl Unpin for AddLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::AddLevels"]},{"text":"impl Unpin for add_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::add_levels"]},{"text":"impl Unpin for update_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::update_levels"]},{"text":"impl Unpin for delete_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::delete_levels"]},{"text":"impl Unpin for GetLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::GetLevels"]},{"text":"impl Unpin for get_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::get_levels"]},{"text":"impl Unpin for Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::Levels"]},{"text":"impl Unpin for I32Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::I32Levels"]},{"text":"impl Unpin for MCaptchaID","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaID"]},{"text":"impl Unpin for MCaptchaDetails","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaDetails"]},{"text":"impl Unpin for add_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::add_mcaptcha"]},{"text":"impl Unpin for update_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::update_token"]},{"text":"impl Unpin for get_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::get_token"]},{"text":"impl Unpin for delete_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::delete_mcaptcha"]},{"text":"impl Unpin for PoWConfig","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::PoWConfig"]},{"text":"impl Unpin for GetConfigPayload","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::GetConfigPayload"]},{"text":"impl Unpin for get_config","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::get_config"]},{"text":"impl Unpin for BuildDetails","synthetic":true,"types":["guard::api::v1::meta::BuildDetails"]},{"text":"impl Unpin for BuildDetailsBuilder","synthetic":true,"types":["guard::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Unpin for build_details","synthetic":true,"types":["guard::api::v1::meta::build_details"]},{"text":"impl Unpin for Health","synthetic":true,"types":["guard::api::v1::meta::Health"]},{"text":"impl Unpin for HealthBuilder","synthetic":true,"types":["guard::api::v1::meta::HealthBuilder"]},{"text":"impl Unpin for health","synthetic":true,"types":["guard::api::v1::meta::health"]},{"text":"impl Unpin for Asset","synthetic":true,"types":["guard::docs::Asset"]},{"text":"impl Unpin for dist","synthetic":true,"types":["guard::docs::dist"]},{"text":"impl Unpin for spec","synthetic":true,"types":["guard::docs::spec"]},{"text":"impl Unpin for index","synthetic":true,"types":["guard::docs::index"]},{"text":"impl Unpin for Server","synthetic":true,"types":["guard::settings::Server"]},{"text":"impl Unpin for Captcha","synthetic":true,"types":["guard::settings::Captcha"]},{"text":"impl Unpin for DatabaseBuilder","synthetic":true,"types":["guard::settings::DatabaseBuilder"]},{"text":"impl Unpin for Database","synthetic":true,"types":["guard::settings::Database"]},{"text":"impl Unpin for Settings","synthetic":true,"types":["guard::settings::Settings"]},{"text":"impl Unpin for IndexPage","synthetic":true,"types":["guard::templates::auth::login::IndexPage"]},{"text":"impl Unpin for login","synthetic":true,"types":["guard::templates::auth::login::login"]},{"text":"impl Unpin for IndexPage","synthetic":true,"types":["guard::templates::auth::register::IndexPage"]},{"text":"impl Unpin for join","synthetic":true,"types":["guard::templates::auth::register::join"]},{"text":"impl Unpin for IndexPage","synthetic":true,"types":["guard::templates::panel::IndexPage"]},{"text":"impl Unpin for panel","synthetic":true,"types":["guard::templates::panel::panel"]},{"text":"impl Unpin for SETTINGS","synthetic":true,"types":["guard::SETTINGS"]},{"text":"impl Unpin for S","synthetic":true,"types":["guard::S"]},{"text":"impl Unpin for FILES","synthetic":true,"types":["guard::FILES"]},{"text":"impl Unpin for JS","synthetic":true,"types":["guard::JS"]},{"text":"impl Unpin for CSS","synthetic":true,"types":["guard::CSS"]}];
implementors["tests_migrate"] = [{"text":"impl Unpin for Data","synthetic":true,"types":["tests_migrate::data::Data"]},{"text":"impl Unpin for Server","synthetic":true,"types":["tests_migrate::settings::Server"]},{"text":"impl Unpin for Captcha","synthetic":true,"types":["tests_migrate::settings::Captcha"]},{"text":"impl Unpin for DatabaseBuilder","synthetic":true,"types":["tests_migrate::settings::DatabaseBuilder"]},{"text":"impl Unpin for Database","synthetic":true,"types":["tests_migrate::settings::Database"]},{"text":"impl Unpin for Settings","synthetic":true,"types":["tests_migrate::settings::Settings"]},{"text":"impl Unpin for SETTINGS","synthetic":true,"types":["tests_migrate::SETTINGS"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/implementors/core/ops/deref/trait.Deref.js b/implementors/core/ops/deref/trait.Deref.js
index 54dad809..b35eaabc 100644
--- a/implementors/core/ops/deref/trait.Deref.js
+++ b/implementors/core/ops/deref/trait.Deref.js
@@ -1,5 +1,5 @@
(function() {var implementors = {};
implementors["frontend"] = [{"text":"impl Deref for FILES","synthetic":false,"types":["frontend::FILES"]}];
-implementors["guard"] = [{"text":"impl Deref for SETTINGS","synthetic":false,"types":["guard::SETTINGS"]},{"text":"impl Deref for S","synthetic":false,"types":["guard::S"]}];
+implementors["guard"] = [{"text":"impl Deref for SETTINGS","synthetic":false,"types":["guard::SETTINGS"]},{"text":"impl Deref for S","synthetic":false,"types":["guard::S"]},{"text":"impl Deref for FILES","synthetic":false,"types":["guard::FILES"]},{"text":"impl Deref for JS","synthetic":false,"types":["guard::JS"]},{"text":"impl Deref for CSS","synthetic":false,"types":["guard::CSS"]}];
implementors["tests_migrate"] = [{"text":"impl Deref for SETTINGS","synthetic":false,"types":["tests_migrate::SETTINGS"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/implementors/lazy_static/trait.LazyStatic.js b/implementors/lazy_static/trait.LazyStatic.js
index ed98a42d..68151352 100644
--- a/implementors/lazy_static/trait.LazyStatic.js
+++ b/implementors/lazy_static/trait.LazyStatic.js
@@ -1,5 +1,5 @@
(function() {var implementors = {};
implementors["frontend"] = [{"text":"impl LazyStatic for FILES","synthetic":false,"types":["frontend::FILES"]}];
-implementors["guard"] = [{"text":"impl LazyStatic for SETTINGS","synthetic":false,"types":["guard::SETTINGS"]},{"text":"impl LazyStatic for S","synthetic":false,"types":["guard::S"]}];
+implementors["guard"] = [{"text":"impl LazyStatic for SETTINGS","synthetic":false,"types":["guard::SETTINGS"]},{"text":"impl LazyStatic for S","synthetic":false,"types":["guard::S"]},{"text":"impl LazyStatic for FILES","synthetic":false,"types":["guard::FILES"]},{"text":"impl LazyStatic for JS","synthetic":false,"types":["guard::JS"]},{"text":"impl LazyStatic for CSS","synthetic":false,"types":["guard::CSS"]}];
implementors["tests_migrate"] = [{"text":"impl LazyStatic for SETTINGS","synthetic":false,"types":["tests_migrate::SETTINGS"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/implementors/sailfish/private/trait.Sealed.js b/implementors/sailfish/private/trait.Sealed.js
index d620fa15..00aca003 100644
--- a/implementors/sailfish/private/trait.Sealed.js
+++ b/implementors/sailfish/private/trait.Sealed.js
@@ -1,3 +1,4 @@
(function() {var implementors = {};
implementors["frontend"] = [{"text":"impl Sealed for IndexPage","synthetic":false,"types":["frontend::IndexPage"]},{"text":"impl Sealed for IndexPage","synthetic":false,"types":["frontend::signup::IndexPage"]},{"text":"impl Sealed for IndexPage","synthetic":false,"types":["frontend::panel::IndexPage"]}];
+implementors["guard"] = [{"text":"impl Sealed for IndexPage","synthetic":false,"types":["guard::templates::auth::login::IndexPage"]},{"text":"impl Sealed for IndexPage","synthetic":false,"types":["guard::templates::auth::register::IndexPage"]},{"text":"impl Sealed for IndexPage","synthetic":false,"types":["guard::templates::panel::IndexPage"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/implementors/sailfish/trait.TemplateOnce.js b/implementors/sailfish/trait.TemplateOnce.js
index 1a330946..83f2823f 100644
--- a/implementors/sailfish/trait.TemplateOnce.js
+++ b/implementors/sailfish/trait.TemplateOnce.js
@@ -1,3 +1,4 @@
(function() {var implementors = {};
implementors["frontend"] = [{"text":"impl TemplateOnce for IndexPage","synthetic":false,"types":["frontend::IndexPage"]},{"text":"impl TemplateOnce for IndexPage","synthetic":false,"types":["frontend::signup::IndexPage"]},{"text":"impl TemplateOnce for IndexPage","synthetic":false,"types":["frontend::panel::IndexPage"]}];
+implementors["guard"] = [{"text":"impl TemplateOnce for IndexPage","synthetic":false,"types":["guard::templates::auth::login::IndexPage"]},{"text":"impl TemplateOnce for IndexPage","synthetic":false,"types":["guard::templates::auth::register::IndexPage"]},{"text":"impl TemplateOnce for IndexPage","synthetic":false,"types":["guard::templates::panel::IndexPage"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/implementors/std/panic/trait.RefUnwindSafe.js b/implementors/std/panic/trait.RefUnwindSafe.js
index a65ae3a5..cbf76209 100644
--- a/implementors/std/panic/trait.RefUnwindSafe.js
+++ b/implementors/std/panic/trait.RefUnwindSafe.js
@@ -1,5 +1,5 @@
(function() {var implementors = {};
implementors["frontend"] = [{"text":"impl RefUnwindSafe for IndexPage","synthetic":true,"types":["frontend::signup::IndexPage"]},{"text":"impl<const N: usize> RefUnwindSafe for Section<N>","synthetic":true,"types":["frontend::panel::section::Section"]},{"text":"impl RefUnwindSafe for SubPanel","synthetic":true,"types":["frontend::panel::section::SubPanel"]},{"text":"impl RefUnwindSafe for IndexPage","synthetic":true,"types":["frontend::panel::IndexPage"]},{"text":"impl RefUnwindSafe for IndexPage","synthetic":true,"types":["frontend::IndexPage"]},{"text":"impl RefUnwindSafe for FILES","synthetic":true,"types":["frontend::FILES"]}];
-implementors["guard"] = [{"text":"impl !RefUnwindSafe for Data","synthetic":true,"types":["guard::data::Data"]},{"text":"impl RefUnwindSafe for ServiceError","synthetic":true,"types":["guard::errors::ServiceError"]},{"text":"impl RefUnwindSafe for ErrorToResponse","synthetic":true,"types":["guard::errors::ErrorToResponse"]},{"text":"impl RefUnwindSafe for Register","synthetic":true,"types":["guard::api::v1::auth::Register"]},{"text":"impl RefUnwindSafe for Login","synthetic":true,"types":["guard::api::v1::auth::Login"]},{"text":"impl RefUnwindSafe for Password","synthetic":true,"types":["guard::api::v1::auth::Password"]},{"text":"impl RefUnwindSafe for signup","synthetic":true,"types":["guard::api::v1::auth::signup"]},{"text":"impl RefUnwindSafe for signin","synthetic":true,"types":["guard::api::v1::auth::signin"]},{"text":"impl RefUnwindSafe for signout","synthetic":true,"types":["guard::api::v1::auth::signout"]},{"text":"impl RefUnwindSafe for delete_account","synthetic":true,"types":["guard::api::v1::auth::delete_account"]},{"text":"impl RefUnwindSafe for AccountCheckPayload","synthetic":true,"types":["guard::api::v1::auth::AccountCheckPayload"]},{"text":"impl RefUnwindSafe for AccountCheckResp","synthetic":true,"types":["guard::api::v1::auth::AccountCheckResp"]},{"text":"impl RefUnwindSafe for username_exists","synthetic":true,"types":["guard::api::v1::auth::username_exists"]},{"text":"impl RefUnwindSafe for email_exists","synthetic":true,"types":["guard::api::v1::auth::email_exists"]},{"text":"impl RefUnwindSafe for Domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Domain"]},{"text":"impl RefUnwindSafe for add_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::add_domain"]},{"text":"impl RefUnwindSafe for Challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Challenge"]},{"text":"impl RefUnwindSafe for get_challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::get_challenge"]},{"text":"impl RefUnwindSafe for verify","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::verify"]},{"text":"impl RefUnwindSafe for delete_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::delete_domain"]},{"text":"impl RefUnwindSafe for UpdateDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::UpdateDuration"]},{"text":"impl RefUnwindSafe for update_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::update_duration"]},{"text":"impl RefUnwindSafe for GetDurationResp","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDurationResp"]},{"text":"impl RefUnwindSafe for GetDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDuration"]},{"text":"impl RefUnwindSafe for get_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::get_duration"]},{"text":"impl RefUnwindSafe for AddLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::AddLevels"]},{"text":"impl RefUnwindSafe for add_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::add_levels"]},{"text":"impl RefUnwindSafe for update_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::update_levels"]},{"text":"impl RefUnwindSafe for delete_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::delete_levels"]},{"text":"impl RefUnwindSafe for GetLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::GetLevels"]},{"text":"impl RefUnwindSafe for get_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::get_levels"]},{"text":"impl RefUnwindSafe for Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::Levels"]},{"text":"impl RefUnwindSafe for I32Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::I32Levels"]},{"text":"impl RefUnwindSafe for MCaptchaID","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaID"]},{"text":"impl RefUnwindSafe for MCaptchaDetails","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaDetails"]},{"text":"impl RefUnwindSafe for add_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::add_mcaptcha"]},{"text":"impl RefUnwindSafe for update_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::update_token"]},{"text":"impl RefUnwindSafe for get_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::get_token"]},{"text":"impl RefUnwindSafe for delete_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::delete_mcaptcha"]},{"text":"impl RefUnwindSafe for PoWConfig","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::PoWConfig"]},{"text":"impl RefUnwindSafe for GetConfigPayload","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::GetConfigPayload"]},{"text":"impl RefUnwindSafe for get_config","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::get_config"]},{"text":"impl RefUnwindSafe for BuildDetails","synthetic":true,"types":["guard::api::v1::meta::BuildDetails"]},{"text":"impl RefUnwindSafe for BuildDetailsBuilder","synthetic":true,"types":["guard::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl RefUnwindSafe for build_details","synthetic":true,"types":["guard::api::v1::meta::build_details"]},{"text":"impl RefUnwindSafe for Health","synthetic":true,"types":["guard::api::v1::meta::Health"]},{"text":"impl RefUnwindSafe for HealthBuilder","synthetic":true,"types":["guard::api::v1::meta::HealthBuilder"]},{"text":"impl RefUnwindSafe for health","synthetic":true,"types":["guard::api::v1::meta::health"]},{"text":"impl RefUnwindSafe for Asset","synthetic":true,"types":["guard::docs::Asset"]},{"text":"impl RefUnwindSafe for dist","synthetic":true,"types":["guard::docs::dist"]},{"text":"impl RefUnwindSafe for spec","synthetic":true,"types":["guard::docs::spec"]},{"text":"impl RefUnwindSafe for index","synthetic":true,"types":["guard::docs::index"]},{"text":"impl RefUnwindSafe for Server","synthetic":true,"types":["guard::settings::Server"]},{"text":"impl RefUnwindSafe for Captcha","synthetic":true,"types":["guard::settings::Captcha"]},{"text":"impl RefUnwindSafe for DatabaseBuilder","synthetic":true,"types":["guard::settings::DatabaseBuilder"]},{"text":"impl RefUnwindSafe for Database","synthetic":true,"types":["guard::settings::Database"]},{"text":"impl RefUnwindSafe for Settings","synthetic":true,"types":["guard::settings::Settings"]},{"text":"impl RefUnwindSafe for SETTINGS","synthetic":true,"types":["guard::SETTINGS"]},{"text":"impl RefUnwindSafe for S","synthetic":true,"types":["guard::S"]}];
+implementors["guard"] = [{"text":"impl !RefUnwindSafe for Data","synthetic":true,"types":["guard::data::Data"]},{"text":"impl RefUnwindSafe for ServiceError","synthetic":true,"types":["guard::errors::ServiceError"]},{"text":"impl RefUnwindSafe for ErrorToResponse","synthetic":true,"types":["guard::errors::ErrorToResponse"]},{"text":"impl RefUnwindSafe for Register","synthetic":true,"types":["guard::api::v1::auth::Register"]},{"text":"impl RefUnwindSafe for Login","synthetic":true,"types":["guard::api::v1::auth::Login"]},{"text":"impl RefUnwindSafe for Password","synthetic":true,"types":["guard::api::v1::auth::Password"]},{"text":"impl RefUnwindSafe for signup","synthetic":true,"types":["guard::api::v1::auth::signup"]},{"text":"impl RefUnwindSafe for signin","synthetic":true,"types":["guard::api::v1::auth::signin"]},{"text":"impl RefUnwindSafe for signout","synthetic":true,"types":["guard::api::v1::auth::signout"]},{"text":"impl RefUnwindSafe for delete_account","synthetic":true,"types":["guard::api::v1::auth::delete_account"]},{"text":"impl RefUnwindSafe for AccountCheckPayload","synthetic":true,"types":["guard::api::v1::auth::AccountCheckPayload"]},{"text":"impl RefUnwindSafe for AccountCheckResp","synthetic":true,"types":["guard::api::v1::auth::AccountCheckResp"]},{"text":"impl RefUnwindSafe for username_exists","synthetic":true,"types":["guard::api::v1::auth::username_exists"]},{"text":"impl RefUnwindSafe for email_exists","synthetic":true,"types":["guard::api::v1::auth::email_exists"]},{"text":"impl RefUnwindSafe for Domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Domain"]},{"text":"impl RefUnwindSafe for add_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::add_domain"]},{"text":"impl RefUnwindSafe for Challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Challenge"]},{"text":"impl RefUnwindSafe for get_challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::get_challenge"]},{"text":"impl RefUnwindSafe for verify","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::verify"]},{"text":"impl RefUnwindSafe for delete_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::delete_domain"]},{"text":"impl RefUnwindSafe for UpdateDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::UpdateDuration"]},{"text":"impl RefUnwindSafe for update_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::update_duration"]},{"text":"impl RefUnwindSafe for GetDurationResp","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDurationResp"]},{"text":"impl RefUnwindSafe for GetDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDuration"]},{"text":"impl RefUnwindSafe for get_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::get_duration"]},{"text":"impl RefUnwindSafe for AddLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::AddLevels"]},{"text":"impl RefUnwindSafe for add_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::add_levels"]},{"text":"impl RefUnwindSafe for update_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::update_levels"]},{"text":"impl RefUnwindSafe for delete_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::delete_levels"]},{"text":"impl RefUnwindSafe for GetLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::GetLevels"]},{"text":"impl RefUnwindSafe for get_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::get_levels"]},{"text":"impl RefUnwindSafe for Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::Levels"]},{"text":"impl RefUnwindSafe for I32Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::I32Levels"]},{"text":"impl RefUnwindSafe for MCaptchaID","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaID"]},{"text":"impl RefUnwindSafe for MCaptchaDetails","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaDetails"]},{"text":"impl RefUnwindSafe for add_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::add_mcaptcha"]},{"text":"impl RefUnwindSafe for update_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::update_token"]},{"text":"impl RefUnwindSafe for get_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::get_token"]},{"text":"impl RefUnwindSafe for delete_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::delete_mcaptcha"]},{"text":"impl RefUnwindSafe for PoWConfig","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::PoWConfig"]},{"text":"impl RefUnwindSafe for GetConfigPayload","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::GetConfigPayload"]},{"text":"impl RefUnwindSafe for get_config","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::get_config"]},{"text":"impl RefUnwindSafe for BuildDetails","synthetic":true,"types":["guard::api::v1::meta::BuildDetails"]},{"text":"impl RefUnwindSafe for BuildDetailsBuilder","synthetic":true,"types":["guard::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl RefUnwindSafe for build_details","synthetic":true,"types":["guard::api::v1::meta::build_details"]},{"text":"impl RefUnwindSafe for Health","synthetic":true,"types":["guard::api::v1::meta::Health"]},{"text":"impl RefUnwindSafe for HealthBuilder","synthetic":true,"types":["guard::api::v1::meta::HealthBuilder"]},{"text":"impl RefUnwindSafe for health","synthetic":true,"types":["guard::api::v1::meta::health"]},{"text":"impl RefUnwindSafe for Asset","synthetic":true,"types":["guard::docs::Asset"]},{"text":"impl RefUnwindSafe for dist","synthetic":true,"types":["guard::docs::dist"]},{"text":"impl RefUnwindSafe for spec","synthetic":true,"types":["guard::docs::spec"]},{"text":"impl RefUnwindSafe for index","synthetic":true,"types":["guard::docs::index"]},{"text":"impl RefUnwindSafe for Server","synthetic":true,"types":["guard::settings::Server"]},{"text":"impl RefUnwindSafe for Captcha","synthetic":true,"types":["guard::settings::Captcha"]},{"text":"impl RefUnwindSafe for DatabaseBuilder","synthetic":true,"types":["guard::settings::DatabaseBuilder"]},{"text":"impl RefUnwindSafe for Database","synthetic":true,"types":["guard::settings::Database"]},{"text":"impl RefUnwindSafe for Settings","synthetic":true,"types":["guard::settings::Settings"]},{"text":"impl RefUnwindSafe for IndexPage","synthetic":true,"types":["guard::templates::auth::login::IndexPage"]},{"text":"impl RefUnwindSafe for login","synthetic":true,"types":["guard::templates::auth::login::login"]},{"text":"impl RefUnwindSafe for IndexPage","synthetic":true,"types":["guard::templates::auth::register::IndexPage"]},{"text":"impl RefUnwindSafe for join","synthetic":true,"types":["guard::templates::auth::register::join"]},{"text":"impl RefUnwindSafe for IndexPage","synthetic":true,"types":["guard::templates::panel::IndexPage"]},{"text":"impl RefUnwindSafe for panel","synthetic":true,"types":["guard::templates::panel::panel"]},{"text":"impl RefUnwindSafe for SETTINGS","synthetic":true,"types":["guard::SETTINGS"]},{"text":"impl RefUnwindSafe for S","synthetic":true,"types":["guard::S"]},{"text":"impl RefUnwindSafe for FILES","synthetic":true,"types":["guard::FILES"]},{"text":"impl RefUnwindSafe for JS","synthetic":true,"types":["guard::JS"]},{"text":"impl RefUnwindSafe for CSS","synthetic":true,"types":["guard::CSS"]}];
implementors["tests_migrate"] = [{"text":"impl !RefUnwindSafe for Data","synthetic":true,"types":["tests_migrate::data::Data"]},{"text":"impl RefUnwindSafe for Server","synthetic":true,"types":["tests_migrate::settings::Server"]},{"text":"impl RefUnwindSafe for Captcha","synthetic":true,"types":["tests_migrate::settings::Captcha"]},{"text":"impl RefUnwindSafe for DatabaseBuilder","synthetic":true,"types":["tests_migrate::settings::DatabaseBuilder"]},{"text":"impl RefUnwindSafe for Database","synthetic":true,"types":["tests_migrate::settings::Database"]},{"text":"impl RefUnwindSafe for Settings","synthetic":true,"types":["tests_migrate::settings::Settings"]},{"text":"impl RefUnwindSafe for SETTINGS","synthetic":true,"types":["tests_migrate::SETTINGS"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/implementors/std/panic/trait.UnwindSafe.js b/implementors/std/panic/trait.UnwindSafe.js
index 5a5cfa62..aceae840 100644
--- a/implementors/std/panic/trait.UnwindSafe.js
+++ b/implementors/std/panic/trait.UnwindSafe.js
@@ -1,5 +1,5 @@
(function() {var implementors = {};
implementors["frontend"] = [{"text":"impl UnwindSafe for IndexPage","synthetic":true,"types":["frontend::signup::IndexPage"]},{"text":"impl<const N: usize> UnwindSafe for Section<N>","synthetic":true,"types":["frontend::panel::section::Section"]},{"text":"impl UnwindSafe for SubPanel","synthetic":true,"types":["frontend::panel::section::SubPanel"]},{"text":"impl UnwindSafe for IndexPage","synthetic":true,"types":["frontend::panel::IndexPage"]},{"text":"impl UnwindSafe for IndexPage","synthetic":true,"types":["frontend::IndexPage"]},{"text":"impl UnwindSafe for FILES","synthetic":true,"types":["frontend::FILES"]}];
-implementors["guard"] = [{"text":"impl !UnwindSafe for Data","synthetic":true,"types":["guard::data::Data"]},{"text":"impl UnwindSafe for ServiceError","synthetic":true,"types":["guard::errors::ServiceError"]},{"text":"impl UnwindSafe for ErrorToResponse","synthetic":true,"types":["guard::errors::ErrorToResponse"]},{"text":"impl UnwindSafe for Register","synthetic":true,"types":["guard::api::v1::auth::Register"]},{"text":"impl UnwindSafe for Login","synthetic":true,"types":["guard::api::v1::auth::Login"]},{"text":"impl UnwindSafe for Password","synthetic":true,"types":["guard::api::v1::auth::Password"]},{"text":"impl UnwindSafe for signup","synthetic":true,"types":["guard::api::v1::auth::signup"]},{"text":"impl UnwindSafe for signin","synthetic":true,"types":["guard::api::v1::auth::signin"]},{"text":"impl UnwindSafe for signout","synthetic":true,"types":["guard::api::v1::auth::signout"]},{"text":"impl UnwindSafe for delete_account","synthetic":true,"types":["guard::api::v1::auth::delete_account"]},{"text":"impl UnwindSafe for AccountCheckPayload","synthetic":true,"types":["guard::api::v1::auth::AccountCheckPayload"]},{"text":"impl UnwindSafe for AccountCheckResp","synthetic":true,"types":["guard::api::v1::auth::AccountCheckResp"]},{"text":"impl UnwindSafe for username_exists","synthetic":true,"types":["guard::api::v1::auth::username_exists"]},{"text":"impl UnwindSafe for email_exists","synthetic":true,"types":["guard::api::v1::auth::email_exists"]},{"text":"impl UnwindSafe for Domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Domain"]},{"text":"impl UnwindSafe for add_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::add_domain"]},{"text":"impl UnwindSafe for Challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Challenge"]},{"text":"impl UnwindSafe for get_challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::get_challenge"]},{"text":"impl UnwindSafe for verify","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::verify"]},{"text":"impl UnwindSafe for delete_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::delete_domain"]},{"text":"impl UnwindSafe for UpdateDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::UpdateDuration"]},{"text":"impl UnwindSafe for update_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::update_duration"]},{"text":"impl UnwindSafe for GetDurationResp","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDurationResp"]},{"text":"impl UnwindSafe for GetDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDuration"]},{"text":"impl UnwindSafe for get_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::get_duration"]},{"text":"impl UnwindSafe for AddLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::AddLevels"]},{"text":"impl UnwindSafe for add_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::add_levels"]},{"text":"impl UnwindSafe for update_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::update_levels"]},{"text":"impl UnwindSafe for delete_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::delete_levels"]},{"text":"impl UnwindSafe for GetLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::GetLevels"]},{"text":"impl UnwindSafe for get_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::get_levels"]},{"text":"impl UnwindSafe for Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::Levels"]},{"text":"impl UnwindSafe for I32Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::I32Levels"]},{"text":"impl UnwindSafe for MCaptchaID","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaID"]},{"text":"impl UnwindSafe for MCaptchaDetails","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaDetails"]},{"text":"impl UnwindSafe for add_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::add_mcaptcha"]},{"text":"impl UnwindSafe for update_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::update_token"]},{"text":"impl UnwindSafe for get_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::get_token"]},{"text":"impl UnwindSafe for delete_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::delete_mcaptcha"]},{"text":"impl UnwindSafe for PoWConfig","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::PoWConfig"]},{"text":"impl UnwindSafe for GetConfigPayload","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::GetConfigPayload"]},{"text":"impl UnwindSafe for get_config","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::get_config"]},{"text":"impl UnwindSafe for BuildDetails","synthetic":true,"types":["guard::api::v1::meta::BuildDetails"]},{"text":"impl UnwindSafe for BuildDetailsBuilder","synthetic":true,"types":["guard::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl UnwindSafe for build_details","synthetic":true,"types":["guard::api::v1::meta::build_details"]},{"text":"impl UnwindSafe for Health","synthetic":true,"types":["guard::api::v1::meta::Health"]},{"text":"impl UnwindSafe for HealthBuilder","synthetic":true,"types":["guard::api::v1::meta::HealthBuilder"]},{"text":"impl UnwindSafe for health","synthetic":true,"types":["guard::api::v1::meta::health"]},{"text":"impl UnwindSafe for Asset","synthetic":true,"types":["guard::docs::Asset"]},{"text":"impl UnwindSafe for dist","synthetic":true,"types":["guard::docs::dist"]},{"text":"impl UnwindSafe for spec","synthetic":true,"types":["guard::docs::spec"]},{"text":"impl UnwindSafe for index","synthetic":true,"types":["guard::docs::index"]},{"text":"impl UnwindSafe for Server","synthetic":true,"types":["guard::settings::Server"]},{"text":"impl UnwindSafe for Captcha","synthetic":true,"types":["guard::settings::Captcha"]},{"text":"impl UnwindSafe for DatabaseBuilder","synthetic":true,"types":["guard::settings::DatabaseBuilder"]},{"text":"impl UnwindSafe for Database","synthetic":true,"types":["guard::settings::Database"]},{"text":"impl UnwindSafe for Settings","synthetic":true,"types":["guard::settings::Settings"]},{"text":"impl UnwindSafe for SETTINGS","synthetic":true,"types":["guard::SETTINGS"]},{"text":"impl UnwindSafe for S","synthetic":true,"types":["guard::S"]}];
+implementors["guard"] = [{"text":"impl !UnwindSafe for Data","synthetic":true,"types":["guard::data::Data"]},{"text":"impl UnwindSafe for ServiceError","synthetic":true,"types":["guard::errors::ServiceError"]},{"text":"impl UnwindSafe for ErrorToResponse","synthetic":true,"types":["guard::errors::ErrorToResponse"]},{"text":"impl UnwindSafe for Register","synthetic":true,"types":["guard::api::v1::auth::Register"]},{"text":"impl UnwindSafe for Login","synthetic":true,"types":["guard::api::v1::auth::Login"]},{"text":"impl UnwindSafe for Password","synthetic":true,"types":["guard::api::v1::auth::Password"]},{"text":"impl UnwindSafe for signup","synthetic":true,"types":["guard::api::v1::auth::signup"]},{"text":"impl UnwindSafe for signin","synthetic":true,"types":["guard::api::v1::auth::signin"]},{"text":"impl UnwindSafe for signout","synthetic":true,"types":["guard::api::v1::auth::signout"]},{"text":"impl UnwindSafe for delete_account","synthetic":true,"types":["guard::api::v1::auth::delete_account"]},{"text":"impl UnwindSafe for AccountCheckPayload","synthetic":true,"types":["guard::api::v1::auth::AccountCheckPayload"]},{"text":"impl UnwindSafe for AccountCheckResp","synthetic":true,"types":["guard::api::v1::auth::AccountCheckResp"]},{"text":"impl UnwindSafe for username_exists","synthetic":true,"types":["guard::api::v1::auth::username_exists"]},{"text":"impl UnwindSafe for email_exists","synthetic":true,"types":["guard::api::v1::auth::email_exists"]},{"text":"impl UnwindSafe for Domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Domain"]},{"text":"impl UnwindSafe for add_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::add_domain"]},{"text":"impl UnwindSafe for Challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::Challenge"]},{"text":"impl UnwindSafe for get_challenge","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::get_challenge"]},{"text":"impl UnwindSafe for verify","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::verify"]},{"text":"impl UnwindSafe for delete_domain","synthetic":true,"types":["guard::api::v1::mcaptcha::domains::delete_domain"]},{"text":"impl UnwindSafe for UpdateDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::UpdateDuration"]},{"text":"impl UnwindSafe for update_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::update_duration"]},{"text":"impl UnwindSafe for GetDurationResp","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDurationResp"]},{"text":"impl UnwindSafe for GetDuration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::GetDuration"]},{"text":"impl UnwindSafe for get_duration","synthetic":true,"types":["guard::api::v1::mcaptcha::duration::get_duration"]},{"text":"impl UnwindSafe for AddLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::AddLevels"]},{"text":"impl UnwindSafe for add_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::add_levels"]},{"text":"impl UnwindSafe for update_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::update_levels"]},{"text":"impl UnwindSafe for delete_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::delete_levels"]},{"text":"impl UnwindSafe for GetLevels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::GetLevels"]},{"text":"impl UnwindSafe for get_levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::get_levels"]},{"text":"impl UnwindSafe for Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::Levels"]},{"text":"impl UnwindSafe for I32Levels","synthetic":true,"types":["guard::api::v1::mcaptcha::levels::I32Levels"]},{"text":"impl UnwindSafe for MCaptchaID","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaID"]},{"text":"impl UnwindSafe for MCaptchaDetails","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::MCaptchaDetails"]},{"text":"impl UnwindSafe for add_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::add_mcaptcha"]},{"text":"impl UnwindSafe for update_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::update_token"]},{"text":"impl UnwindSafe for get_token","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::get_token"]},{"text":"impl UnwindSafe for delete_mcaptcha","synthetic":true,"types":["guard::api::v1::mcaptcha::mcaptcha::delete_mcaptcha"]},{"text":"impl UnwindSafe for PoWConfig","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::PoWConfig"]},{"text":"impl UnwindSafe for GetConfigPayload","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::GetConfigPayload"]},{"text":"impl UnwindSafe for get_config","synthetic":true,"types":["guard::api::v1::mcaptcha::pow::get_config"]},{"text":"impl UnwindSafe for BuildDetails","synthetic":true,"types":["guard::api::v1::meta::BuildDetails"]},{"text":"impl UnwindSafe for BuildDetailsBuilder","synthetic":true,"types":["guard::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl UnwindSafe for build_details","synthetic":true,"types":["guard::api::v1::meta::build_details"]},{"text":"impl UnwindSafe for Health","synthetic":true,"types":["guard::api::v1::meta::Health"]},{"text":"impl UnwindSafe for HealthBuilder","synthetic":true,"types":["guard::api::v1::meta::HealthBuilder"]},{"text":"impl UnwindSafe for health","synthetic":true,"types":["guard::api::v1::meta::health"]},{"text":"impl UnwindSafe for Asset","synthetic":true,"types":["guard::docs::Asset"]},{"text":"impl UnwindSafe for dist","synthetic":true,"types":["guard::docs::dist"]},{"text":"impl UnwindSafe for spec","synthetic":true,"types":["guard::docs::spec"]},{"text":"impl UnwindSafe for index","synthetic":true,"types":["guard::docs::index"]},{"text":"impl UnwindSafe for Server","synthetic":true,"types":["guard::settings::Server"]},{"text":"impl UnwindSafe for Captcha","synthetic":true,"types":["guard::settings::Captcha"]},{"text":"impl UnwindSafe for DatabaseBuilder","synthetic":true,"types":["guard::settings::DatabaseBuilder"]},{"text":"impl UnwindSafe for Database","synthetic":true,"types":["guard::settings::Database"]},{"text":"impl UnwindSafe for Settings","synthetic":true,"types":["guard::settings::Settings"]},{"text":"impl UnwindSafe for IndexPage","synthetic":true,"types":["guard::templates::auth::login::IndexPage"]},{"text":"impl UnwindSafe for login","synthetic":true,"types":["guard::templates::auth::login::login"]},{"text":"impl UnwindSafe for IndexPage","synthetic":true,"types":["guard::templates::auth::register::IndexPage"]},{"text":"impl UnwindSafe for join","synthetic":true,"types":["guard::templates::auth::register::join"]},{"text":"impl UnwindSafe for IndexPage","synthetic":true,"types":["guard::templates::panel::IndexPage"]},{"text":"impl UnwindSafe for panel","synthetic":true,"types":["guard::templates::panel::panel"]},{"text":"impl UnwindSafe for SETTINGS","synthetic":true,"types":["guard::SETTINGS"]},{"text":"impl UnwindSafe for S","synthetic":true,"types":["guard::S"]},{"text":"impl UnwindSafe for FILES","synthetic":true,"types":["guard::FILES"]},{"text":"impl UnwindSafe for JS","synthetic":true,"types":["guard::JS"]},{"text":"impl UnwindSafe for CSS","synthetic":true,"types":["guard::CSS"]}];
implementors["tests_migrate"] = [{"text":"impl !UnwindSafe for Data","synthetic":true,"types":["tests_migrate::data::Data"]},{"text":"impl UnwindSafe for Server","synthetic":true,"types":["tests_migrate::settings::Server"]},{"text":"impl UnwindSafe for Captcha","synthetic":true,"types":["tests_migrate::settings::Captcha"]},{"text":"impl UnwindSafe for DatabaseBuilder","synthetic":true,"types":["tests_migrate::settings::DatabaseBuilder"]},{"text":"impl UnwindSafe for Database","synthetic":true,"types":["tests_migrate::settings::Database"]},{"text":"impl UnwindSafe for Settings","synthetic":true,"types":["tests_migrate::settings::Settings"]},{"text":"impl UnwindSafe for SETTINGS","synthetic":true,"types":["tests_migrate::SETTINGS"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/search-index.js b/search-index.js
index 19594708..6e3fd827 100644
--- a/search-index.js
+++ b/search-index.js
@@ -1,6 +1,6 @@
var searchIndex = JSON.parse('{\
"frontend":{"doc":"","i":[[0,"signup","frontend","",null,null],[3,"IndexPage","frontend::signup","",null,null],[12,"name","","",0,null],[12,"title","","",0,null],[11,"run","","",0,[[]]],[0,"panel","frontend","",null,null],[0,"section","frontend::panel","",null,null],[3,"Section","frontend::panel::section","",null,null],[12,"name","","",1,null],[12,"elements","","",1,null],[3,"SubPanel","","",null,null],[12,"name","","",2,null],[12,"icon","","",2,null],[7,"COMMENTS","","",null,null],[7,"USERS","","",null,null],[7,"PAGES","","",null,null],[7,"ADMIN_SECTION","","",null,null],[7,"SETTINGS_SECTION","","",null,null],[3,"IndexPage","frontend::panel","",null,null],[12,"name","","",3,null],[12,"title","","",3,null],[12,"active","","",3,null],[17,"TITLE","","",null,null],[11,"run","","",3,[[]]],[3,"IndexPage","frontend","",null,null],[12,"name","","",4,null],[12,"title","","",4,null],[11,"run","","",4,[[]]],[17,"BASE_DIR","","",null,null],[3,"FILES","","",null,null],[12,"__private_field","","",5,null],[5,"main","","",null,[[]]],[5,"root_path","","",null,[[["str",15]],["string",3]]],[5,"rel_path","","",null,[[["str",15]],["string",3]]],[6,"Literal","","",null,null],[11,"from","frontend::signup","",0,[[]]],[11,"into","","",0,[[]]],[11,"to_owned","","",0,[[]]],[11,"clone_into","","",0,[[]]],[11,"borrow","","",0,[[]]],[11,"borrow_mut","","",0,[[]]],[11,"try_from","","",0,[[],["result",4]]],[11,"try_into","","",0,[[],["result",4]]],[11,"type_id","","",0,[[],["typeid",3]]],[11,"from","frontend::panel::section","",1,[[]]],[11,"into","","",1,[[]]],[11,"borrow","","",1,[[]]],[11,"borrow_mut","","",1,[[]]],[11,"try_from","","",1,[[],["result",4]]],[11,"try_into","","",1,[[],["result",4]]],[11,"type_id","","",1,[[],["typeid",3]]],[11,"from","","",2,[[]]],[11,"into","","",2,[[]]],[11,"borrow","","",2,[[]]],[11,"borrow_mut","","",2,[[]]],[11,"try_from","","",2,[[],["result",4]]],[11,"try_into","","",2,[[],["result",4]]],[11,"type_id","","",2,[[],["typeid",3]]],[11,"from","frontend::panel","",3,[[]]],[11,"into","","",3,[[]]],[11,"to_owned","","",3,[[]]],[11,"clone_into","","",3,[[]]],[11,"borrow","","",3,[[]]],[11,"borrow_mut","","",3,[[]]],[11,"try_from","","",3,[[],["result",4]]],[11,"try_into","","",3,[[],["result",4]]],[11,"type_id","","",3,[[],["typeid",3]]],[11,"from","frontend","",4,[[]]],[11,"into","","",4,[[]]],[11,"to_owned","","",4,[[]]],[11,"clone_into","","",4,[[]]],[11,"borrow","","",4,[[]]],[11,"borrow_mut","","",4,[[]]],[11,"try_from","","",4,[[],["result",4]]],[11,"try_into","","",4,[[],["result",4]]],[11,"type_id","","",4,[[],["typeid",3]]],[11,"from","","",5,[[]]],[11,"into","","",5,[[]]],[11,"borrow","","",5,[[]]],[11,"borrow_mut","","",5,[[]]],[11,"try_from","","",5,[[],["result",4]]],[11,"try_into","","",5,[[],["result",4]]],[11,"type_id","","",5,[[],["typeid",3]]],[11,"clone","","",4,[[],["indexpage",3]]],[11,"clone","frontend::signup","",0,[[],["indexpage",3]]],[11,"clone","frontend::panel","",3,[[],["indexpage",3]]],[11,"default","frontend","",4,[[]]],[11,"default","frontend::signup","",0,[[]]],[11,"default","frontend::panel","",3,[[]]],[11,"deref","frontend","",5,[[],["files",3]]],[11,"initialize","","",5,[[]]],[11,"render_once","","",4,[[],["renderresult",6]]],[11,"render_once_to","","",4,[[["buffer",3]],[["rendererror",4],["result",4]]]],[11,"render_once","frontend::signup","",0,[[],["renderresult",6]]],[11,"render_once_to","","",0,[[["buffer",3]],[["rendererror",4],["result",4]]]],[11,"render_once","frontend::panel","",3,[[],["renderresult",6]]],[11,"render_once_to","","",3,[[["buffer",3]],[["rendererror",4],["result",4]]]]],"p":[[3,"IndexPage"],[3,"Section"],[3,"SubPanel"],[3,"IndexPage"],[3,"IndexPage"],[3,"FILES"]]},\
-"guard":{"doc":"","i":[[0,"data","guard","",null,null],[3,"Data","guard::data","",null,null],[12,"db","","",0,null],[12,"creds","","",0,null],[12,"captcha","","",0,null],[11,"new","","",0,[[]]],[0,"errors","guard","",null,null],[4,"ServiceError","guard::errors","",null,null],[13,"InternalServerError","","",1,null],[13,"NotAnEmail","","",1,null],[13,"NotAUrl","","",1,null],[13,"WrongPassword","","",1,null],[13,"UsernameNotFound","","",1,null],[13,"AuthorizationRequired","","",1,null],[13,"ProfainityError","","when the value passed contains profainity",1,null],[13,"BlacklistError","","when the value passed contains blacklisted words see …",1,null],[13,"UsernameCaseMappedError","","when the value passed contains characters not present in …",1,null],[13,"PasswordTooShort","","",1,null],[13,"PasswordTooLong","","",1,null],[13,"UsernameTaken","","when the a username is already taken",1,null],[13,"TokenNameTaken","","when the a token name is already taken",1,null],[13,"HostnameTaken","","when the a host name is already taken",1,null],[13,"TokenNotFound","","token not found",1,null],[13,"CaptchaError","","",1,null],[13,"ClientServerUnreachable","","",1,null],[13,"ChallengeCourruption","","",1,null],[13,"ChallengeVerificationFailure","","",1,null],[3,"ErrorToResponse","","",null,null],[12,"error","","",2,null],[5,"dup_error","","",null,[[["error",4],["serviceerror",4]],["serviceerror",4]]],[6,"ServiceResult","","",null,null],[0,"api","guard","",null,null],[0,"v1","guard::api","",null,null],[0,"auth","guard::api::v1","",null,null],[3,"Register","guard::api::v1::auth","",null,null],[12,"username","","",3,null],[12,"password","","",3,null],[12,"email","","",3,null],[3,"Login","","",null,null],[12,"username","","",4,null],[12,"password","","",4,null],[3,"Password","","",null,null],[12,"password","","",5,null],[3,"signup","","",null,null],[3,"signin","","",null,null],[3,"signout","","",null,null],[5,"is_authenticated","","Check if user is authenticated",null,[[["identity",3]],[["result",4],["serviceerror",4]]]],[3,"delete_account","","",null,null],[3,"AccountCheckPayload","","",null,null],[12,"val","","",6,null],[3,"AccountCheckResp","","",null,null],[12,"exists","","",7,null],[3,"username_exists","","",null,null],[3,"email_exists","","",null,null],[0,"mcaptcha","guard::api::v1","",null,null],[0,"domains","guard::api::v1::mcaptcha","",null,null],[3,"Domain","guard::api::v1::mcaptcha::domains","",null,null],[12,"name","","",8,null],[3,"add_domain","","",null,null],[3,"Challenge","","",null,null],[12,"verification_challenge","","",9,null],[3,"get_challenge","","",null,null],[3,"verify","","",null,null],[3,"delete_domain","","",null,null],[0,"duration","guard::api::v1::mcaptcha","",null,null],[3,"UpdateDuration","guard::api::v1::mcaptcha::duration","",null,null],[12,"token_name","","",10,null],[12,"duration","","",10,null],[3,"update_duration","","",null,null],[3,"GetDurationResp","","",null,null],[12,"duration","","",11,null],[3,"GetDuration","","",null,null],[12,"token","","",12,null],[3,"get_duration","","",null,null],[0,"levels","guard::api::v1::mcaptcha","",null,null],[3,"AddLevels","guard::api::v1::mcaptcha::levels","",null,null],[12,"levels","","",13,null],[12,"name","","",13,null],[3,"add_levels","","",null,null],[3,"update_levels","","",null,null],[3,"delete_levels","","",null,null],[3,"GetLevels","","",null,null],[12,"token","","",14,null],[3,"get_levels","","",null,null],[3,"Levels","","",null,null],[12,"levels","","",15,null],[3,"I32Levels","","",null,null],[12,"difficulty_factor","","",16,null],[12,"visitor_threshold","","",16,null],[5,"get_levels_util","","",null,[[["data",3],["str",15]]]],[0,"mcaptcha","guard::api::v1::mcaptcha","",null,null],[3,"MCaptchaID","guard::api::v1::mcaptcha::mcaptcha","",null,null],[12,"name","","",17,null],[12,"domain","","",17,null],[3,"MCaptchaDetails","","",null,null],[12,"name","","",18,null],[12,"key","","",18,null],[3,"add_mcaptcha","","",null,null],[3,"update_token","","",null,null],[5,"update_token_helper","","",null,[[["data",3],["str",15]]]],[3,"get_token","","",null,null],[3,"delete_mcaptcha","","",null,null],[0,"pow","guard::api::v1::mcaptcha","",null,null],[3,"PoWConfig","guard::api::v1::mcaptcha::pow","",null,null],[12,"name","","",19,null],[12,"domain","","",19,null],[3,"GetConfigPayload","","",null,null],[12,"key","","",20,null],[3,"get_config","","",null,null],[5,"get_random","guard::api::v1::mcaptcha","",null,[[["usize",15]],["string",3]]],[0,"meta","guard::api::v1","",null,null],[3,"BuildDetails","guard::api::v1::meta","",null,null],[12,"version","","",21,null],[12,"git_commit_hash","","",21,null],[3,"BuildDetailsBuilder","","Builder for BuildDetails.",null,null],[12,"version","","",22,null],[12,"git_commit_hash","","",22,null],[11,"version","","",22,[[["str",15]]]],[11,"git_commit_hash","","",22,[[["str",15]]]],[11,"build","","Builds a new BuildDetails.",22,[[],[["builddetails",3],["string",3],["result",4]]]],[3,"build_details","","",null,null],[3,"Health","","Health check return datatype",null,null],[12,"db","","",23,null],[3,"HealthBuilder","","Builder for Health.",null,null],[12,"db","","",24,null],[11,"db","","",24,[[["bool",15]]]],[11,"build","","Builds a new Health.",24,[[],[["string",3],["result",4],["health",3]]]],[3,"health","","",null,null],[5,"services","guard::api::v1","",null,[[["serviceconfig",3]]]],[0,"docs","guard","",null,null],[3,"Asset","guard::docs","",null,null],[11,"get","","",25,[[["str",15]],[["option",4],["cow",4]]]],[11,"iter","","",25,[[]]],[5,"handle_embedded_file","","",null,[[["str",15]],["httpresponse",3]]],[3,"dist","","",null,null],[3,"spec","","",null,null],[3,"index","","",null,null],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"settings","guard","",null,null],[3,"Server","guard::settings","",null,null],[12,"allow_registration","","",26,null],[12,"port","","",26,null],[12,"domain","","",26,null],[12,"cookie_secret","","",26,null],[12,"ip","","",26,null],[3,"Captcha","","",null,null],[12,"salt","","",27,null],[12,"gc","","",27,null],[11,"get_ip","","",26,[[],["string",3]]],[3,"DatabaseBuilder","","",null,null],[12,"port","","",28,null],[12,"hostname","","",28,null],[12,"username","","",28,null],[12,"password","","",28,null],[12,"name","","",28,null],[12,"url","","",28,null],[11,"extract_database_url","","",28,[[["url",3]]]],[3,"Database","","",null,null],[12,"url","","",29,null],[12,"pool","","",29,null],[3,"Settings","","",null,null],[12,"debug","","",30,null],[12,"database","","",30,null],[12,"server","","",30,null],[12,"pow","","",30,null],[11,"new","","",30,[[],[["result",4],["configerror",4]]]],[5,"set_from_database_url","","",null,[[["databasebuilder",3],["config",3]]]],[5,"set_database_url","","",null,[[["config",3]]]],[3,"Data","guard","",null,null],[12,"db","","",0,null],[12,"creds","","",0,null],[12,"captcha","","",0,null],[3,"Settings","","",null,null],[12,"debug","","",30,null],[12,"database","","",30,null],[12,"server","","",30,null],[12,"pow","","",30,null],[3,"SETTINGS","","",null,null],[12,"__private_field","","",31,null],[3,"S","","",null,null],[12,"__private_field","","",32,null],[7,"OPEN_API_DOC","","",null,null],[7,"GIT_COMMIT_HASH","","",null,null],[7,"VERSION","","",null,null],[7,"PKG_NAME","","",null,null],[7,"PKG_DESCRIPTION","","",null,null],[7,"PKG_HOMEPAGE","","",null,null],[7,"VERIFICATION_PATH","","",null,null],[5,"main","","",null,[[],["result",6]]],[5,"get_json_err","","",null,[[],["jsonconfig",3]]],[5,"get_identity_service","","",null,[[],[["cookieidentitypolicy",3],["identityservice",3]]]],[11,"from","guard::data","",0,[[]]],[11,"into","","",0,[[]]],[11,"to_owned","","",0,[[]]],[11,"clone_into","","",0,[[]]],[11,"borrow","","",0,[[]]],[11,"borrow_mut","","",0,[[]]],[11,"try_from","","",0,[[],["result",4]]],[11,"try_into","","",0,[[],["result",4]]],[11,"type_id","","",0,[[],["typeid",3]]],[11,"vzip","","",0,[[]]],[11,"from","guard::errors","",1,[[]]],[11,"into","","",1,[[]]],[11,"to_owned","","",1,[[]]],[11,"clone_into","","",1,[[]]],[11,"to_string","","",1,[[],["string",3]]],[11,"borrow","","",1,[[]]],[11,"borrow_mut","","",1,[[]]],[11,"try_from","","",1,[[],["result",4]]],[11,"try_into","","",1,[[],["result",4]]],[11,"type_id","","",1,[[],["typeid",3]]],[11,"vzip","","",1,[[]]],[11,"from","","",2,[[]]],[11,"into","","",2,[[]]],[11,"borrow","","",2,[[]]],[11,"borrow_mut","","",2,[[]]],[11,"try_from","","",2,[[],["result",4]]],[11,"try_into","","",2,[[],["result",4]]],[11,"type_id","","",2,[[],["typeid",3]]],[11,"vzip","","",2,[[]]],[11,"from","guard::api::v1::auth","",3,[[]]],[11,"into","","",3,[[]]],[11,"to_owned","","",3,[[]]],[11,"clone_into","","",3,[[]]],[11,"borrow","","",3,[[]]],[11,"borrow_mut","","",3,[[]]],[11,"try_from","","",3,[[],["result",4]]],[11,"try_into","","",3,[[],["result",4]]],[11,"type_id","","",3,[[],["typeid",3]]],[11,"vzip","","",3,[[]]],[11,"from","","",4,[[]]],[11,"into","","",4,[[]]],[11,"to_owned","","",4,[[]]],[11,"clone_into","","",4,[[]]],[11,"borrow","","",4,[[]]],[11,"borrow_mut","","",4,[[]]],[11,"try_from","","",4,[[],["result",4]]],[11,"try_into","","",4,[[],["result",4]]],[11,"type_id","","",4,[[],["typeid",3]]],[11,"vzip","","",4,[[]]],[11,"from","","",5,[[]]],[11,"into","","",5,[[]]],[11,"to_owned","","",5,[[]]],[11,"clone_into","","",5,[[]]],[11,"borrow","","",5,[[]]],[11,"borrow_mut","","",5,[[]]],[11,"try_from","","",5,[[],["result",4]]],[11,"try_into","","",5,[[],["result",4]]],[11,"type_id","","",5,[[],["typeid",3]]],[11,"vzip","","",5,[[]]],[11,"from","","",33,[[]]],[11,"into","","",33,[[]]],[11,"borrow","","",33,[[]]],[11,"borrow_mut","","",33,[[]]],[11,"try_from","","",33,[[],["result",4]]],[11,"try_into","","",33,[[],["result",4]]],[11,"type_id","","",33,[[],["typeid",3]]],[11,"vzip","","",33,[[]]],[11,"from","","",34,[[]]],[11,"into","","",34,[[]]],[11,"borrow","","",34,[[]]],[11,"borrow_mut","","",34,[[]]],[11,"try_from","","",34,[[],["result",4]]],[11,"try_into","","",34,[[],["result",4]]],[11,"type_id","","",34,[[],["typeid",3]]],[11,"vzip","","",34,[[]]],[11,"from","","",35,[[]]],[11,"into","","",35,[[]]],[11,"borrow","","",35,[[]]],[11,"borrow_mut","","",35,[[]]],[11,"try_from","","",35,[[],["result",4]]],[11,"try_into","","",35,[[],["result",4]]],[11,"type_id","","",35,[[],["typeid",3]]],[11,"vzip","","",35,[[]]],[11,"from","","",36,[[]]],[11,"into","","",36,[[]]],[11,"borrow","","",36,[[]]],[11,"borrow_mut","","",36,[[]]],[11,"try_from","","",36,[[],["result",4]]],[11,"try_into","","",36,[[],["result",4]]],[11,"type_id","","",36,[[],["typeid",3]]],[11,"vzip","","",36,[[]]],[11,"from","","",6,[[]]],[11,"into","","",6,[[]]],[11,"to_owned","","",6,[[]]],[11,"clone_into","","",6,[[]]],[11,"borrow","","",6,[[]]],[11,"borrow_mut","","",6,[[]]],[11,"try_from","","",6,[[],["result",4]]],[11,"try_into","","",6,[[],["result",4]]],[11,"type_id","","",6,[[],["typeid",3]]],[11,"vzip","","",6,[[]]],[11,"from","","",7,[[]]],[11,"into","","",7,[[]]],[11,"to_owned","","",7,[[]]],[11,"clone_into","","",7,[[]]],[11,"borrow","","",7,[[]]],[11,"borrow_mut","","",7,[[]]],[11,"try_from","","",7,[[],["result",4]]],[11,"try_into","","",7,[[],["result",4]]],[11,"type_id","","",7,[[],["typeid",3]]],[11,"vzip","","",7,[[]]],[11,"from","","",37,[[]]],[11,"into","","",37,[[]]],[11,"borrow","","",37,[[]]],[11,"borrow_mut","","",37,[[]]],[11,"try_from","","",37,[[],["result",4]]],[11,"try_into","","",37,[[],["result",4]]],[11,"type_id","","",37,[[],["typeid",3]]],[11,"vzip","","",37,[[]]],[11,"from","","",38,[[]]],[11,"into","","",38,[[]]],[11,"borrow","","",38,[[]]],[11,"borrow_mut","","",38,[[]]],[11,"try_from","","",38,[[],["result",4]]],[11,"try_into","","",38,[[],["result",4]]],[11,"type_id","","",38,[[],["typeid",3]]],[11,"vzip","","",38,[[]]],[11,"from","guard::api::v1::mcaptcha::domains","",8,[[]]],[11,"into","","",8,[[]]],[11,"to_owned","","",8,[[]]],[11,"clone_into","","",8,[[]]],[11,"borrow","","",8,[[]]],[11,"borrow_mut","","",8,[[]]],[11,"try_from","","",8,[[],["result",4]]],[11,"try_into","","",8,[[],["result",4]]],[11,"type_id","","",8,[[],["typeid",3]]],[11,"vzip","","",8,[[]]],[11,"from","","",39,[[]]],[11,"into","","",39,[[]]],[11,"borrow","","",39,[[]]],[11,"borrow_mut","","",39,[[]]],[11,"try_from","","",39,[[],["result",4]]],[11,"try_into","","",39,[[],["result",4]]],[11,"type_id","","",39,[[],["typeid",3]]],[11,"vzip","","",39,[[]]],[11,"from","","",9,[[]]],[11,"into","","",9,[[]]],[11,"to_owned","","",9,[[]]],[11,"clone_into","","",9,[[]]],[11,"borrow","","",9,[[]]],[11,"borrow_mut","","",9,[[]]],[11,"try_from","","",9,[[],["result",4]]],[11,"try_into","","",9,[[],["result",4]]],[11,"type_id","","",9,[[],["typeid",3]]],[11,"vzip","","",9,[[]]],[11,"from","","",40,[[]]],[11,"into","","",40,[[]]],[11,"borrow","","",40,[[]]],[11,"borrow_mut","","",40,[[]]],[11,"try_from","","",40,[[],["result",4]]],[11,"try_into","","",40,[[],["result",4]]],[11,"type_id","","",40,[[],["typeid",3]]],[11,"vzip","","",40,[[]]],[11,"from","","",41,[[]]],[11,"into","","",41,[[]]],[11,"borrow","","",41,[[]]],[11,"borrow_mut","","",41,[[]]],[11,"try_from","","",41,[[],["result",4]]],[11,"try_into","","",41,[[],["result",4]]],[11,"type_id","","",41,[[],["typeid",3]]],[11,"vzip","","",41,[[]]],[11,"from","","",42,[[]]],[11,"into","","",42,[[]]],[11,"borrow","","",42,[[]]],[11,"borrow_mut","","",42,[[]]],[11,"try_from","","",42,[[],["result",4]]],[11,"try_into","","",42,[[],["result",4]]],[11,"type_id","","",42,[[],["typeid",3]]],[11,"vzip","","",42,[[]]],[11,"from","guard::api::v1::mcaptcha::duration","",10,[[]]],[11,"into","","",10,[[]]],[11,"borrow","","",10,[[]]],[11,"borrow_mut","","",10,[[]]],[11,"try_from","","",10,[[],["result",4]]],[11,"try_into","","",10,[[],["result",4]]],[11,"type_id","","",10,[[],["typeid",3]]],[11,"vzip","","",10,[[]]],[11,"from","","",43,[[]]],[11,"into","","",43,[[]]],[11,"borrow","","",43,[[]]],[11,"borrow_mut","","",43,[[]]],[11,"try_from","","",43,[[],["result",4]]],[11,"try_into","","",43,[[],["result",4]]],[11,"type_id","","",43,[[],["typeid",3]]],[11,"vzip","","",43,[[]]],[11,"from","","",11,[[]]],[11,"into","","",11,[[]]],[11,"borrow","","",11,[[]]],[11,"borrow_mut","","",11,[[]]],[11,"try_from","","",11,[[],["result",4]]],[11,"try_into","","",11,[[],["result",4]]],[11,"type_id","","",11,[[],["typeid",3]]],[11,"vzip","","",11,[[]]],[11,"from","","",12,[[]]],[11,"into","","",12,[[]]],[11,"borrow","","",12,[[]]],[11,"borrow_mut","","",12,[[]]],[11,"try_from","","",12,[[],["result",4]]],[11,"try_into","","",12,[[],["result",4]]],[11,"type_id","","",12,[[],["typeid",3]]],[11,"vzip","","",12,[[]]],[11,"from","","",44,[[]]],[11,"into","","",44,[[]]],[11,"borrow","","",44,[[]]],[11,"borrow_mut","","",44,[[]]],[11,"try_from","","",44,[[],["result",4]]],[11,"try_into","","",44,[[],["result",4]]],[11,"type_id","","",44,[[],["typeid",3]]],[11,"vzip","","",44,[[]]],[11,"from","guard::api::v1::mcaptcha::levels","",13,[[]]],[11,"into","","",13,[[]]],[11,"borrow","","",13,[[]]],[11,"borrow_mut","","",13,[[]]],[11,"try_from","","",13,[[],["result",4]]],[11,"try_into","","",13,[[],["result",4]]],[11,"type_id","","",13,[[],["typeid",3]]],[11,"vzip","","",13,[[]]],[11,"from","","",45,[[]]],[11,"into","","",45,[[]]],[11,"borrow","","",45,[[]]],[11,"borrow_mut","","",45,[[]]],[11,"try_from","","",45,[[],["result",4]]],[11,"try_into","","",45,[[],["result",4]]],[11,"type_id","","",45,[[],["typeid",3]]],[11,"vzip","","",45,[[]]],[11,"from","","",46,[[]]],[11,"into","","",46,[[]]],[11,"borrow","","",46,[[]]],[11,"borrow_mut","","",46,[[]]],[11,"try_from","","",46,[[],["result",4]]],[11,"try_into","","",46,[[],["result",4]]],[11,"type_id","","",46,[[],["typeid",3]]],[11,"vzip","","",46,[[]]],[11,"from","","",47,[[]]],[11,"into","","",47,[[]]],[11,"borrow","","",47,[[]]],[11,"borrow_mut","","",47,[[]]],[11,"try_from","","",47,[[],["result",4]]],[11,"try_into","","",47,[[],["result",4]]],[11,"type_id","","",47,[[],["typeid",3]]],[11,"vzip","","",47,[[]]],[11,"from","","",14,[[]]],[11,"into","","",14,[[]]],[11,"borrow","","",14,[[]]],[11,"borrow_mut","","",14,[[]]],[11,"try_from","","",14,[[],["result",4]]],[11,"try_into","","",14,[[],["result",4]]],[11,"type_id","","",14,[[],["typeid",3]]],[11,"vzip","","",14,[[]]],[11,"from","","",48,[[]]],[11,"into","","",48,[[]]],[11,"borrow","","",48,[[]]],[11,"borrow_mut","","",48,[[]]],[11,"try_from","","",48,[[],["result",4]]],[11,"try_into","","",48,[[],["result",4]]],[11,"type_id","","",48,[[],["typeid",3]]],[11,"vzip","","",48,[[]]],[11,"from","","",15,[[]]],[11,"into","","",15,[[]]],[11,"borrow","","",15,[[]]],[11,"borrow_mut","","",15,[[]]],[11,"try_from","","",15,[[],["result",4]]],[11,"try_into","","",15,[[],["result",4]]],[11,"type_id","","",15,[[],["typeid",3]]],[11,"vzip","","",15,[[]]],[11,"from","","",16,[[]]],[11,"into","","",16,[[]]],[11,"borrow","","",16,[[]]],[11,"borrow_mut","","",16,[[]]],[11,"try_from","","",16,[[],["result",4]]],[11,"try_into","","",16,[[],["result",4]]],[11,"type_id","","",16,[[],["typeid",3]]],[11,"vzip","","",16,[[]]],[11,"from","guard::api::v1::mcaptcha::mcaptcha","",17,[[]]],[11,"into","","",17,[[]]],[11,"to_owned","","",17,[[]]],[11,"clone_into","","",17,[[]]],[11,"borrow","","",17,[[]]],[11,"borrow_mut","","",17,[[]]],[11,"try_from","","",17,[[],["result",4]]],[11,"try_into","","",17,[[],["result",4]]],[11,"type_id","","",17,[[],["typeid",3]]],[11,"vzip","","",17,[[]]],[11,"from","","",18,[[]]],[11,"into","","",18,[[]]],[11,"to_owned","","",18,[[]]],[11,"clone_into","","",18,[[]]],[11,"borrow","","",18,[[]]],[11,"borrow_mut","","",18,[[]]],[11,"try_from","","",18,[[],["result",4]]],[11,"try_into","","",18,[[],["result",4]]],[11,"type_id","","",18,[[],["typeid",3]]],[11,"vzip","","",18,[[]]],[11,"from","","",49,[[]]],[11,"into","","",49,[[]]],[11,"borrow","","",49,[[]]],[11,"borrow_mut","","",49,[[]]],[11,"try_from","","",49,[[],["result",4]]],[11,"try_into","","",49,[[],["result",4]]],[11,"type_id","","",49,[[],["typeid",3]]],[11,"vzip","","",49,[[]]],[11,"from","","",50,[[]]],[11,"into","","",50,[[]]],[11,"borrow","","",50,[[]]],[11,"borrow_mut","","",50,[[]]],[11,"try_from","","",50,[[],["result",4]]],[11,"try_into","","",50,[[],["result",4]]],[11,"type_id","","",50,[[],["typeid",3]]],[11,"vzip","","",50,[[]]],[11,"from","","",51,[[]]],[11,"into","","",51,[[]]],[11,"borrow","","",51,[[]]],[11,"borrow_mut","","",51,[[]]],[11,"try_from","","",51,[[],["result",4]]],[11,"try_into","","",51,[[],["result",4]]],[11,"type_id","","",51,[[],["typeid",3]]],[11,"vzip","","",51,[[]]],[11,"from","","",52,[[]]],[11,"into","","",52,[[]]],[11,"borrow","","",52,[[]]],[11,"borrow_mut","","",52,[[]]],[11,"try_from","","",52,[[],["result",4]]],[11,"try_into","","",52,[[],["result",4]]],[11,"type_id","","",52,[[],["typeid",3]]],[11,"vzip","","",52,[[]]],[11,"from","guard::api::v1::mcaptcha::pow","",19,[[]]],[11,"into","","",19,[[]]],[11,"to_owned","","",19,[[]]],[11,"clone_into","","",19,[[]]],[11,"borrow","","",19,[[]]],[11,"borrow_mut","","",19,[[]]],[11,"try_from","","",19,[[],["result",4]]],[11,"try_into","","",19,[[],["result",4]]],[11,"type_id","","",19,[[],["typeid",3]]],[11,"vzip","","",19,[[]]],[11,"from","","",20,[[]]],[11,"into","","",20,[[]]],[11,"to_owned","","",20,[[]]],[11,"clone_into","","",20,[[]]],[11,"borrow","","",20,[[]]],[11,"borrow_mut","","",20,[[]]],[11,"try_from","","",20,[[],["result",4]]],[11,"try_into","","",20,[[],["result",4]]],[11,"type_id","","",20,[[],["typeid",3]]],[11,"vzip","","",20,[[]]],[11,"from","","",53,[[]]],[11,"into","","",53,[[]]],[11,"borrow","","",53,[[]]],[11,"borrow_mut","","",53,[[]]],[11,"try_from","","",53,[[],["result",4]]],[11,"try_into","","",53,[[],["result",4]]],[11,"type_id","","",53,[[],["typeid",3]]],[11,"vzip","","",53,[[]]],[11,"from","guard::api::v1::meta","",21,[[]]],[11,"into","","",21,[[]]],[11,"to_owned","","",21,[[]]],[11,"clone_into","","",21,[[]]],[11,"borrow","","",21,[[]]],[11,"borrow_mut","","",21,[[]]],[11,"try_from","","",21,[[],["result",4]]],[11,"try_into","","",21,[[],["result",4]]],[11,"type_id","","",21,[[],["typeid",3]]],[11,"vzip","","",21,[[]]],[11,"from","","",22,[[]]],[11,"into","","",22,[[]]],[11,"to_owned","","",22,[[]]],[11,"clone_into","","",22,[[]]],[11,"borrow","","",22,[[]]],[11,"borrow_mut","","",22,[[]]],[11,"try_from","","",22,[[],["result",4]]],[11,"try_into","","",22,[[],["result",4]]],[11,"type_id","","",22,[[],["typeid",3]]],[11,"vzip","","",22,[[]]],[11,"from","","",54,[[]]],[11,"into","","",54,[[]]],[11,"borrow","","",54,[[]]],[11,"borrow_mut","","",54,[[]]],[11,"try_from","","",54,[[],["result",4]]],[11,"try_into","","",54,[[],["result",4]]],[11,"type_id","","",54,[[],["typeid",3]]],[11,"vzip","","",54,[[]]],[11,"from","","",23,[[]]],[11,"into","","",23,[[]]],[11,"to_owned","","",23,[[]]],[11,"clone_into","","",23,[[]]],[11,"borrow","","",23,[[]]],[11,"borrow_mut","","",23,[[]]],[11,"try_from","","",23,[[],["result",4]]],[11,"try_into","","",23,[[],["result",4]]],[11,"type_id","","",23,[[],["typeid",3]]],[11,"vzip","","",23,[[]]],[11,"from","","",24,[[]]],[11,"into","","",24,[[]]],[11,"to_owned","","",24,[[]]],[11,"clone_into","","",24,[[]]],[11,"borrow","","",24,[[]]],[11,"borrow_mut","","",24,[[]]],[11,"try_from","","",24,[[],["result",4]]],[11,"try_into","","",24,[[],["result",4]]],[11,"type_id","","",24,[[],["typeid",3]]],[11,"vzip","","",24,[[]]],[11,"from","","",55,[[]]],[11,"into","","",55,[[]]],[11,"borrow","","",55,[[]]],[11,"borrow_mut","","",55,[[]]],[11,"try_from","","",55,[[],["result",4]]],[11,"try_into","","",55,[[],["result",4]]],[11,"type_id","","",55,[[],["typeid",3]]],[11,"vzip","","",55,[[]]],[11,"from","guard::docs","",25,[[]]],[11,"into","","",25,[[]]],[11,"borrow","","",25,[[]]],[11,"borrow_mut","","",25,[[]]],[11,"try_from","","",25,[[],["result",4]]],[11,"try_into","","",25,[[],["result",4]]],[11,"type_id","","",25,[[],["typeid",3]]],[11,"vzip","","",25,[[]]],[11,"from","","",56,[[]]],[11,"into","","",56,[[]]],[11,"borrow","","",56,[[]]],[11,"borrow_mut","","",56,[[]]],[11,"try_from","","",56,[[],["result",4]]],[11,"try_into","","",56,[[],["result",4]]],[11,"type_id","","",56,[[],["typeid",3]]],[11,"vzip","","",56,[[]]],[11,"from","","",57,[[]]],[11,"into","","",57,[[]]],[11,"borrow","","",57,[[]]],[11,"borrow_mut","","",57,[[]]],[11,"try_from","","",57,[[],["result",4]]],[11,"try_into","","",57,[[],["result",4]]],[11,"type_id","","",57,[[],["typeid",3]]],[11,"vzip","","",57,[[]]],[11,"from","","",58,[[]]],[11,"into","","",58,[[]]],[11,"borrow","","",58,[[]]],[11,"borrow_mut","","",58,[[]]],[11,"try_from","","",58,[[],["result",4]]],[11,"try_into","","",58,[[],["result",4]]],[11,"type_id","","",58,[[],["typeid",3]]],[11,"vzip","","",58,[[]]],[11,"from","guard::settings","",26,[[]]],[11,"into","","",26,[[]]],[11,"to_owned","","",26,[[]]],[11,"clone_into","","",26,[[]]],[11,"borrow","","",26,[[]]],[11,"borrow_mut","","",26,[[]]],[11,"try_from","","",26,[[],["result",4]]],[11,"try_into","","",26,[[],["result",4]]],[11,"type_id","","",26,[[],["typeid",3]]],[11,"vzip","","",26,[[]]],[11,"from","","",27,[[]]],[11,"into","","",27,[[]]],[11,"to_owned","","",27,[[]]],[11,"clone_into","","",27,[[]]],[11,"borrow","","",27,[[]]],[11,"borrow_mut","","",27,[[]]],[11,"try_from","","",27,[[],["result",4]]],[11,"try_into","","",27,[[],["result",4]]],[11,"type_id","","",27,[[],["typeid",3]]],[11,"vzip","","",27,[[]]],[11,"from","","",28,[[]]],[11,"into","","",28,[[]]],[11,"to_owned","","",28,[[]]],[11,"clone_into","","",28,[[]]],[11,"borrow","","",28,[[]]],[11,"borrow_mut","","",28,[[]]],[11,"try_from","","",28,[[],["result",4]]],[11,"try_into","","",28,[[],["result",4]]],[11,"type_id","","",28,[[],["typeid",3]]],[11,"vzip","","",28,[[]]],[11,"from","","",29,[[]]],[11,"into","","",29,[[]]],[11,"to_owned","","",29,[[]]],[11,"clone_into","","",29,[[]]],[11,"borrow","","",29,[[]]],[11,"borrow_mut","","",29,[[]]],[11,"try_from","","",29,[[],["result",4]]],[11,"try_into","","",29,[[],["result",4]]],[11,"type_id","","",29,[[],["typeid",3]]],[11,"vzip","","",29,[[]]],[11,"from","","",30,[[]]],[11,"into","","",30,[[]]],[11,"to_owned","","",30,[[]]],[11,"clone_into","","",30,[[]]],[11,"borrow","","",30,[[]]],[11,"borrow_mut","","",30,[[]]],[11,"try_from","","",30,[[],["result",4]]],[11,"try_into","","",30,[[],["result",4]]],[11,"type_id","","",30,[[],["typeid",3]]],[11,"vzip","","",30,[[]]],[11,"from","guard","",31,[[]]],[11,"into","","",31,[[]]],[11,"borrow","","",31,[[]]],[11,"borrow_mut","","",31,[[]]],[11,"try_from","","",31,[[],["result",4]]],[11,"try_into","","",31,[[],["result",4]]],[11,"type_id","","",31,[[],["typeid",3]]],[11,"vzip","","",31,[[]]],[11,"from","","",32,[[]]],[11,"into","","",32,[[]]],[11,"borrow","","",32,[[]]],[11,"borrow_mut","","",32,[[]]],[11,"try_from","","",32,[[],["result",4]]],[11,"try_into","","",32,[[],["result",4]]],[11,"type_id","","",32,[[],["typeid",3]]],[11,"vzip","","",32,[[]]],[11,"from","guard::errors","",1,[[["credserror",4]],["serviceerror",4]]],[11,"from","","",1,[[["validationerrors",3]],["serviceerror",4]]],[11,"from","","",1,[[["sendrequesterror",4]],["serviceerror",4]]],[11,"from","","",1,[[["parseerror",4]],["serviceerror",4]]],[11,"from","","",1,[[["captchaerror",4]],["serviceerror",4]]],[11,"from","","",1,[[["error",4]]]],[11,"clone","guard::data","",0,[[],["data",3]]],[11,"clone","guard::errors","",1,[[],["serviceerror",4]]],[11,"clone","guard::api::v1::auth","",3,[[],["register",3]]],[11,"clone","","",4,[[],["login",3]]],[11,"clone","","",5,[[],["password",3]]],[11,"clone","","",6,[[],["accountcheckpayload",3]]],[11,"clone","","",7,[[],["accountcheckresp",3]]],[11,"clone","guard::api::v1::mcaptcha::domains","",8,[[],["domain",3]]],[11,"clone","","",9,[[],["challenge",3]]],[11,"clone","guard::api::v1::mcaptcha::mcaptcha","",17,[[],["mcaptchaid",3]]],[11,"clone","","",18,[[],["mcaptchadetails",3]]],[11,"clone","guard::api::v1::mcaptcha::pow","",19,[[],["powconfig",3]]],[11,"clone","","",20,[[],["getconfigpayload",3]]],[11,"clone","guard::api::v1::meta","",21,[[],["builddetails",3]]],[11,"clone","","",22,[[],["builddetailsbuilder",3]]],[11,"clone","","",23,[[],["health",3]]],[11,"clone","","",24,[[],["healthbuilder",3]]],[11,"clone","guard::settings","",26,[[],["server",3]]],[11,"clone","","",27,[[],["captcha",3]]],[11,"clone","","",28,[[],["databasebuilder",3]]],[11,"clone","","",29,[[],["database",3]]],[11,"clone","","",30,[[],["settings",3]]],[11,"default","guard::api::v1::meta","",22,[[],["builddetailsbuilder",3]]],[11,"default","","",24,[[],["healthbuilder",3]]],[11,"eq","guard::errors","",1,[[["serviceerror",4]],["bool",15]]],[11,"ne","","",1,[[["serviceerror",4]],["bool",15]]],[11,"deref","guard","",31,[[],["settings",3]]],[11,"deref","","",32,[[],["string",3]]],[11,"fmt","guard::errors","",1,[[["formatter",3]],["result",6]]],[11,"fmt","guard::api::v1::auth","",3,[[["formatter",3]],["result",6]]],[11,"fmt","","",4,[[["formatter",3]],["result",6]]],[11,"fmt","","",5,[[["formatter",3]],["result",6]]],[11,"fmt","","",6,[[["formatter",3]],["result",6]]],[11,"fmt","","",7,[[["formatter",3]],["result",6]]],[11,"fmt","guard::api::v1::mcaptcha::domains","",8,[[["formatter",3]],["result",6]]],[11,"fmt","","",9,[[["formatter",3]],["result",6]]],[11,"fmt","guard::api::v1::mcaptcha::mcaptcha","",17,[[["formatter",3]],["result",6]]],[11,"fmt","","",18,[[["formatter",3]],["result",6]]],[11,"fmt","guard::api::v1::mcaptcha::pow","",19,[[["formatter",3]],["result",6]]],[11,"fmt","","",20,[[["formatter",3]],["result",6]]],[11,"fmt","guard::api::v1::meta","",21,[[["formatter",3]],["result",6]]],[11,"fmt","","",23,[[["formatter",3]],["result",6]]],[11,"fmt","guard::settings","",26,[[["formatter",3]],["result",6]]],[11,"fmt","","",27,[[["formatter",3]],["result",6]]],[11,"fmt","","",28,[[["formatter",3]],["result",6]]],[11,"fmt","","",29,[[["formatter",3]],["result",6]]],[11,"fmt","","",30,[[["formatter",3]],["result",6]]],[11,"fmt","guard::errors","",1,[[["formatter",3]],["result",6]]],[11,"source","","",1,[[],[["option",4],["error",8]]]],[11,"serialize","","",2,[[],["result",4]]],[11,"serialize","guard::api::v1::auth","",3,[[],["result",4]]],[11,"serialize","","",4,[[],["result",4]]],[11,"serialize","","",5,[[],["result",4]]],[11,"serialize","","",6,[[],["result",4]]],[11,"serialize","","",7,[[],["result",4]]],[11,"serialize","guard::api::v1::mcaptcha::domains","",8,[[],["result",4]]],[11,"serialize","","",9,[[],["result",4]]],[11,"serialize","guard::api::v1::mcaptcha::duration","",10,[[],["result",4]]],[11,"serialize","","",11,[[],["result",4]]],[11,"serialize","","",12,[[],["result",4]]],[11,"serialize","guard::api::v1::mcaptcha::levels","",13,[[],["result",4]]],[11,"serialize","","",14,[[],["result",4]]],[11,"serialize","","",15,[[],["result",4]]],[11,"serialize","","",16,[[],["result",4]]],[11,"serialize","guard::api::v1::mcaptcha::mcaptcha","",17,[[],["result",4]]],[11,"serialize","","",18,[[],["result",4]]],[11,"serialize","guard::api::v1::mcaptcha::pow","",19,[[],["result",4]]],[11,"serialize","","",20,[[],["result",4]]],[11,"serialize","guard::api::v1::meta","",21,[[],["result",4]]],[11,"serialize","","",23,[[],["result",4]]],[11,"register","guard::api::v1::auth","",33,[[["appservice",3]]]],[11,"register","","",34,[[["appservice",3]]]],[11,"register","","",35,[[["appservice",3]]]],[11,"register","","",36,[[["appservice",3]]]],[11,"register","","",37,[[["appservice",3]]]],[11,"register","","",38,[[["appservice",3]]]],[11,"register","guard::api::v1::mcaptcha::domains","",39,[[["appservice",3]]]],[11,"register","","",40,[[["appservice",3]]]],[11,"register","","",41,[[["appservice",3]]]],[11,"register","","",42,[[["appservice",3]]]],[11,"register","guard::api::v1::mcaptcha::duration","",43,[[["appservice",3]]]],[11,"register","","",44,[[["appservice",3]]]],[11,"register","guard::api::v1::mcaptcha::levels","",45,[[["appservice",3]]]],[11,"register","","",46,[[["appservice",3]]]],[11,"register","","",47,[[["appservice",3]]]],[11,"register","","",48,[[["appservice",3]]]],[11,"register","guard::api::v1::mcaptcha::mcaptcha","",49,[[["appservice",3]]]],[11,"register","","",50,[[["appservice",3]]]],[11,"register","","",51,[[["appservice",3]]]],[11,"register","","",52,[[["appservice",3]]]],[11,"register","guard::api::v1::mcaptcha::pow","",53,[[["appservice",3]]]],[11,"register","guard::api::v1::meta","",54,[[["appservice",3]]]],[11,"register","","",55,[[["appservice",3]]]],[11,"register","guard::docs","",56,[[["appservice",3]]]],[11,"register","","",57,[[["appservice",3]]]],[11,"register","","",58,[[["appservice",3]]]],[11,"error_response","guard::errors","",1,[[],["httpresponse",3]]],[11,"status_code","","",1,[[],["statuscode",3]]],[11,"deserialize","","",2,[[],["result",4]]],[11,"deserialize","guard::api::v1::auth","",3,[[],["result",4]]],[11,"deserialize","","",4,[[],["result",4]]],[11,"deserialize","","",5,[[],["result",4]]],[11,"deserialize","","",6,[[],["result",4]]],[11,"deserialize","","",7,[[],["result",4]]],[11,"deserialize","guard::api::v1::mcaptcha::domains","",8,[[],["result",4]]],[11,"deserialize","","",9,[[],["result",4]]],[11,"deserialize","guard::api::v1::mcaptcha::duration","",10,[[],["result",4]]],[11,"deserialize","","",11,[[],["result",4]]],[11,"deserialize","","",12,[[],["result",4]]],[11,"deserialize","guard::api::v1::mcaptcha::levels","",13,[[],["result",4]]],[11,"deserialize","","",14,[[],["result",4]]],[11,"deserialize","","",15,[[],["result",4]]],[11,"deserialize","","",16,[[],["result",4]]],[11,"deserialize","guard::api::v1::mcaptcha::mcaptcha","",17,[[],["result",4]]],[11,"deserialize","","",18,[[],["result",4]]],[11,"deserialize","guard::api::v1::mcaptcha::pow","",19,[[],["result",4]]],[11,"deserialize","","",20,[[],["result",4]]],[11,"deserialize","guard::api::v1::meta","",21,[[],["result",4]]],[11,"deserialize","","",23,[[],["result",4]]],[11,"deserialize","guard::settings","",26,[[],["result",4]]],[11,"deserialize","","",27,[[],["result",4]]],[11,"deserialize","","",28,[[],["result",4]]],[11,"deserialize","","",29,[[],["result",4]]],[11,"deserialize","","",30,[[],["result",4]]],[11,"initialize","guard","",31,[[]]],[11,"initialize","","",32,[[]]],[11,"get","guard::docs","",25,[[["str",15]],[["option",4],["cow",4]]]],[11,"iter","","",25,[[],["filenames",4]]]],"p":[[3,"Data"],[4,"ServiceError"],[3,"ErrorToResponse"],[3,"Register"],[3,"Login"],[3,"Password"],[3,"AccountCheckPayload"],[3,"AccountCheckResp"],[3,"Domain"],[3,"Challenge"],[3,"UpdateDuration"],[3,"GetDurationResp"],[3,"GetDuration"],[3,"AddLevels"],[3,"GetLevels"],[3,"Levels"],[3,"I32Levels"],[3,"MCaptchaID"],[3,"MCaptchaDetails"],[3,"PoWConfig"],[3,"GetConfigPayload"],[3,"BuildDetails"],[3,"BuildDetailsBuilder"],[3,"Health"],[3,"HealthBuilder"],[3,"Asset"],[3,"Server"],[3,"Captcha"],[3,"DatabaseBuilder"],[3,"Database"],[3,"Settings"],[3,"SETTINGS"],[3,"S"],[3,"signup"],[3,"signin"],[3,"signout"],[3,"delete_account"],[3,"username_exists"],[3,"email_exists"],[3,"add_domain"],[3,"get_challenge"],[3,"verify"],[3,"delete_domain"],[3,"update_duration"],[3,"get_duration"],[3,"add_levels"],[3,"update_levels"],[3,"delete_levels"],[3,"get_levels"],[3,"add_mcaptcha"],[3,"update_token"],[3,"get_token"],[3,"delete_mcaptcha"],[3,"get_config"],[3,"build_details"],[3,"health"],[3,"dist"],[3,"spec"],[3,"index"]]},\
-"tests_migrate":{"doc":"","i":[[0,"data","tests_migrate","",null,null],[3,"Data","tests_migrate::data","",null,null],[12,"db","","",0,null],[12,"creds","","",0,null],[12,"captcha","","",0,null],[11,"new","","",0,[[]]],[0,"settings","tests_migrate","",null,null],[3,"Server","tests_migrate::settings","",null,null],[12,"allow_registration","","",1,null],[12,"port","","",1,null],[12,"domain","","",1,null],[12,"cookie_secret","","",1,null],[12,"ip","","",1,null],[3,"Captcha","","",null,null],[12,"salt","","",2,null],[12,"gc","","",2,null],[11,"get_ip","","",1,[[],["string",3]]],[3,"DatabaseBuilder","","",null,null],[12,"port","","",3,null],[12,"hostname","","",3,null],[12,"username","","",3,null],[12,"password","","",3,null],[12,"name","","",3,null],[12,"url","","",3,null],[11,"extract_database_url","","",3,[[["url",3]]]],[3,"Database","","",null,null],[12,"url","","",4,null],[12,"pool","","",4,null],[3,"Settings","","",null,null],[12,"debug","","",5,null],[12,"database","","",5,null],[12,"server","","",5,null],[12,"pow","","",5,null],[11,"new","","",5,[[],[["result",4],["configerror",4]]]],[5,"set_from_database_url","","",null,[[["config",3],["databasebuilder",3]]]],[5,"set_database_url","","",null,[[["config",3]]]],[3,"Data","tests_migrate","",null,null],[12,"db","","",0,null],[12,"creds","","",0,null],[12,"captcha","","",0,null],[3,"Settings","","",null,null],[12,"debug","","",5,null],[12,"database","","",5,null],[12,"server","","",5,null],[12,"pow","","",5,null],[3,"SETTINGS","","",null,null],[12,"__private_field","","",6,null],[5,"main","","",null,[[]]],[11,"from","tests_migrate::data","",0,[[]]],[11,"into","","",0,[[]]],[11,"to_owned","","",0,[[]]],[11,"clone_into","","",0,[[]]],[11,"borrow","","",0,[[]]],[11,"borrow_mut","","",0,[[]]],[11,"try_from","","",0,[[],["result",4]]],[11,"try_into","","",0,[[],["result",4]]],[11,"type_id","","",0,[[],["typeid",3]]],[11,"vzip","","",0,[[]]],[11,"from","tests_migrate::settings","",1,[[]]],[11,"into","","",1,[[]]],[11,"to_owned","","",1,[[]]],[11,"clone_into","","",1,[[]]],[11,"borrow","","",1,[[]]],[11,"borrow_mut","","",1,[[]]],[11,"try_from","","",1,[[],["result",4]]],[11,"try_into","","",1,[[],["result",4]]],[11,"type_id","","",1,[[],["typeid",3]]],[11,"vzip","","",1,[[]]],[11,"from","","",2,[[]]],[11,"into","","",2,[[]]],[11,"to_owned","","",2,[[]]],[11,"clone_into","","",2,[[]]],[11,"borrow","","",2,[[]]],[11,"borrow_mut","","",2,[[]]],[11,"try_from","","",2,[[],["result",4]]],[11,"try_into","","",2,[[],["result",4]]],[11,"type_id","","",2,[[],["typeid",3]]],[11,"vzip","","",2,[[]]],[11,"from","","",3,[[]]],[11,"into","","",3,[[]]],[11,"to_owned","","",3,[[]]],[11,"clone_into","","",3,[[]]],[11,"borrow","","",3,[[]]],[11,"borrow_mut","","",3,[[]]],[11,"try_from","","",3,[[],["result",4]]],[11,"try_into","","",3,[[],["result",4]]],[11,"type_id","","",3,[[],["typeid",3]]],[11,"vzip","","",3,[[]]],[11,"from","","",4,[[]]],[11,"into","","",4,[[]]],[11,"to_owned","","",4,[[]]],[11,"clone_into","","",4,[[]]],[11,"borrow","","",4,[[]]],[11,"borrow_mut","","",4,[[]]],[11,"try_from","","",4,[[],["result",4]]],[11,"try_into","","",4,[[],["result",4]]],[11,"type_id","","",4,[[],["typeid",3]]],[11,"vzip","","",4,[[]]],[11,"from","","",5,[[]]],[11,"into","","",5,[[]]],[11,"to_owned","","",5,[[]]],[11,"clone_into","","",5,[[]]],[11,"borrow","","",5,[[]]],[11,"borrow_mut","","",5,[[]]],[11,"try_from","","",5,[[],["result",4]]],[11,"try_into","","",5,[[],["result",4]]],[11,"type_id","","",5,[[],["typeid",3]]],[11,"vzip","","",5,[[]]],[11,"from","tests_migrate","",6,[[]]],[11,"into","","",6,[[]]],[11,"borrow","","",6,[[]]],[11,"borrow_mut","","",6,[[]]],[11,"try_from","","",6,[[],["result",4]]],[11,"try_into","","",6,[[],["result",4]]],[11,"type_id","","",6,[[],["typeid",3]]],[11,"vzip","","",6,[[]]],[11,"clone","tests_migrate::data","",0,[[],["data",3]]],[11,"clone","tests_migrate::settings","",1,[[],["server",3]]],[11,"clone","","",2,[[],["captcha",3]]],[11,"clone","","",3,[[],["databasebuilder",3]]],[11,"clone","","",4,[[],["database",3]]],[11,"clone","","",5,[[],["settings",3]]],[11,"deref","tests_migrate","",6,[[],["settings",3]]],[11,"fmt","tests_migrate::settings","",1,[[["formatter",3]],["result",6]]],[11,"fmt","","",2,[[["formatter",3]],["result",6]]],[11,"fmt","","",3,[[["formatter",3]],["result",6]]],[11,"fmt","","",4,[[["formatter",3]],["result",6]]],[11,"fmt","","",5,[[["formatter",3]],["result",6]]],[11,"initialize","tests_migrate","",6,[[]]],[11,"deserialize","tests_migrate::settings","",1,[[],["result",4]]],[11,"deserialize","","",2,[[],["result",4]]],[11,"deserialize","","",3,[[],["result",4]]],[11,"deserialize","","",4,[[],["result",4]]],[11,"deserialize","","",5,[[],["result",4]]]],"p":[[3,"Data"],[3,"Server"],[3,"Captcha"],[3,"DatabaseBuilder"],[3,"Database"],[3,"Settings"],[3,"SETTINGS"]]}\
+"guard":{"doc":"","i":[[0,"data","guard","",null,null],[3,"Data","guard::data","",null,null],[12,"db","","",0,null],[12,"creds","","",0,null],[12,"captcha","","",0,null],[11,"new","","",0,[[]]],[0,"errors","guard","",null,null],[4,"ServiceError","guard::errors","",null,null],[13,"InternalServerError","","",1,null],[13,"NotAnEmail","","",1,null],[13,"NotAUrl","","",1,null],[13,"WrongPassword","","",1,null],[13,"UsernameNotFound","","",1,null],[13,"AuthorizationRequired","","",1,null],[13,"ProfainityError","","when the value passed contains profainity",1,null],[13,"BlacklistError","","when the value passed contains blacklisted words see …",1,null],[13,"UsernameCaseMappedError","","when the value passed contains characters not present in …",1,null],[13,"PasswordTooShort","","",1,null],[13,"PasswordTooLong","","",1,null],[13,"UsernameTaken","","when the a username is already taken",1,null],[13,"TokenNameTaken","","when the a token name is already taken",1,null],[13,"HostnameTaken","","when the a host name is already taken",1,null],[13,"TokenNotFound","","token not found",1,null],[13,"CaptchaError","","",1,null],[13,"ClientServerUnreachable","","",1,null],[13,"ChallengeCourruption","","",1,null],[13,"ChallengeVerificationFailure","","",1,null],[3,"ErrorToResponse","","",null,null],[12,"error","","",2,null],[5,"dup_error","","",null,[[["error",4],["serviceerror",4]],["serviceerror",4]]],[6,"ServiceResult","","",null,null],[0,"api","guard","",null,null],[0,"v1","guard::api","",null,null],[0,"auth","guard::api::v1","",null,null],[3,"Register","guard::api::v1::auth","",null,null],[12,"username","","",3,null],[12,"password","","",3,null],[12,"email","","",3,null],[3,"Login","","",null,null],[12,"username","","",4,null],[12,"password","","",4,null],[3,"Password","","",null,null],[12,"password","","",5,null],[3,"signup","","",null,null],[3,"signin","","",null,null],[3,"signout","","",null,null],[5,"is_authenticated","","Check if user is authenticated",null,[[["identity",3]],[["result",4],["serviceerror",4]]]],[3,"delete_account","","",null,null],[3,"AccountCheckPayload","","",null,null],[12,"val","","",6,null],[3,"AccountCheckResp","","",null,null],[12,"exists","","",7,null],[3,"username_exists","","",null,null],[3,"email_exists","","",null,null],[0,"mcaptcha","guard::api::v1","",null,null],[0,"domains","guard::api::v1::mcaptcha","",null,null],[3,"Domain","guard::api::v1::mcaptcha::domains","",null,null],[12,"name","","",8,null],[3,"add_domain","","",null,null],[3,"Challenge","","",null,null],[12,"verification_challenge","","",9,null],[3,"get_challenge","","",null,null],[3,"verify","","",null,null],[3,"delete_domain","","",null,null],[0,"duration","guard::api::v1::mcaptcha","",null,null],[3,"UpdateDuration","guard::api::v1::mcaptcha::duration","",null,null],[12,"token_name","","",10,null],[12,"duration","","",10,null],[3,"update_duration","","",null,null],[3,"GetDurationResp","","",null,null],[12,"duration","","",11,null],[3,"GetDuration","","",null,null],[12,"token","","",12,null],[3,"get_duration","","",null,null],[0,"levels","guard::api::v1::mcaptcha","",null,null],[3,"AddLevels","guard::api::v1::mcaptcha::levels","",null,null],[12,"levels","","",13,null],[12,"name","","",13,null],[3,"add_levels","","",null,null],[3,"update_levels","","",null,null],[3,"delete_levels","","",null,null],[3,"GetLevels","","",null,null],[12,"token","","",14,null],[3,"get_levels","","",null,null],[3,"Levels","","",null,null],[12,"levels","","",15,null],[3,"I32Levels","","",null,null],[12,"difficulty_factor","","",16,null],[12,"visitor_threshold","","",16,null],[5,"get_levels_util","","",null,[[["data",3],["str",15]]]],[0,"mcaptcha","guard::api::v1::mcaptcha","",null,null],[3,"MCaptchaID","guard::api::v1::mcaptcha::mcaptcha","",null,null],[12,"name","","",17,null],[12,"domain","","",17,null],[3,"MCaptchaDetails","","",null,null],[12,"name","","",18,null],[12,"key","","",18,null],[3,"add_mcaptcha","","",null,null],[3,"update_token","","",null,null],[5,"update_token_helper","","",null,[[["data",3],["str",15]]]],[3,"get_token","","",null,null],[3,"delete_mcaptcha","","",null,null],[0,"pow","guard::api::v1::mcaptcha","",null,null],[3,"PoWConfig","guard::api::v1::mcaptcha::pow","",null,null],[12,"name","","",19,null],[12,"domain","","",19,null],[3,"GetConfigPayload","","",null,null],[12,"key","","",20,null],[3,"get_config","","",null,null],[5,"get_random","guard::api::v1::mcaptcha","",null,[[["usize",15]],["string",3]]],[0,"meta","guard::api::v1","",null,null],[3,"BuildDetails","guard::api::v1::meta","",null,null],[12,"version","","",21,null],[12,"git_commit_hash","","",21,null],[3,"BuildDetailsBuilder","","Builder for BuildDetails.",null,null],[12,"version","","",22,null],[12,"git_commit_hash","","",22,null],[11,"version","","",22,[[["str",15]]]],[11,"git_commit_hash","","",22,[[["str",15]]]],[11,"build","","Builds a new BuildDetails.",22,[[],[["string",3],["builddetails",3],["result",4]]]],[3,"build_details","","",null,null],[3,"Health","","Health check return datatype",null,null],[12,"db","","",23,null],[3,"HealthBuilder","","Builder for Health.",null,null],[12,"db","","",24,null],[11,"db","","",24,[[["bool",15]]]],[11,"build","","Builds a new Health.",24,[[],[["result",4],["health",3],["string",3]]]],[3,"health","","",null,null],[5,"services","guard::api::v1","",null,[[["serviceconfig",3]]]],[0,"docs","guard","",null,null],[3,"Asset","guard::docs","",null,null],[11,"get","","",25,[[["str",15]],[["cow",4],["option",4]]]],[11,"iter","","",25,[[]]],[5,"handle_embedded_file","","",null,[[["str",15]],["httpresponse",3]]],[3,"dist","","",null,null],[3,"spec","","",null,null],[3,"index","","",null,null],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"settings","guard","",null,null],[3,"Server","guard::settings","",null,null],[12,"allow_registration","","",26,null],[12,"port","","",26,null],[12,"domain","","",26,null],[12,"cookie_secret","","",26,null],[12,"ip","","",26,null],[3,"Captcha","","",null,null],[12,"salt","","",27,null],[12,"gc","","",27,null],[11,"get_ip","","",26,[[],["string",3]]],[3,"DatabaseBuilder","","",null,null],[12,"port","","",28,null],[12,"hostname","","",28,null],[12,"username","","",28,null],[12,"password","","",28,null],[12,"name","","",28,null],[12,"url","","",28,null],[11,"extract_database_url","","",28,[[["url",3]]]],[3,"Database","","",null,null],[12,"url","","",29,null],[12,"pool","","",29,null],[3,"Settings","","",null,null],[12,"debug","","",30,null],[12,"database","","",30,null],[12,"server","","",30,null],[12,"pow","","",30,null],[11,"new","","",30,[[],[["result",4],["configerror",4]]]],[5,"set_from_database_url","","",null,[[["databasebuilder",3],["config",3]]]],[5,"set_database_url","","",null,[[["config",3]]]],[0,"templates","guard","",null,null],[0,"auth","guard::templates","",null,null],[0,"login","guard::templates::auth","",null,null],[3,"IndexPage","guard::templates::auth::login","",null,null],[12,"name","","",31,null],[12,"title","","",31,null],[11,"run","","",31,[[],[["str",15],["result",4],["string",3]]]],[3,"login","","",null,null],[0,"register","guard::templates::auth","",null,null],[3,"IndexPage","guard::templates::auth::register","",null,null],[12,"name","","",32,null],[12,"title","","",32,null],[11,"run","","",32,[[],[["str",15],["result",4],["string",3]]]],[3,"join","","",null,null],[0,"panel","guard::templates","",null,null],[3,"IndexPage","guard::templates::panel","",null,null],[12,"name","","",33,null],[12,"title","","",33,null],[17,"TITLE","","",null,null],[11,"run","","",33,[[],[["str",15],["result",4],["string",3]]]],[3,"panel","","",null,null],[5,"services","guard::templates","",null,[[["serviceconfig",3]]]],[3,"Data","guard","",null,null],[12,"db","","",0,null],[12,"creds","","",0,null],[12,"captcha","","",0,null],[3,"Settings","","",null,null],[12,"debug","","",30,null],[12,"database","","",30,null],[12,"server","","",30,null],[12,"pow","","",30,null],[3,"SETTINGS","","",null,null],[12,"__private_field","","",34,null],[3,"S","","",null,null],[12,"__private_field","","",35,null],[3,"FILES","","",null,null],[12,"__private_field","","",36,null],[3,"JS","","",null,null],[12,"__private_field","","",37,null],[3,"CSS","","",null,null],[12,"__private_field","","",38,null],[7,"OPEN_API_DOC","","",null,null],[7,"GIT_COMMIT_HASH","","",null,null],[7,"VERSION","","",null,null],[7,"PKG_NAME","","",null,null],[7,"PKG_DESCRIPTION","","",null,null],[7,"PKG_HOMEPAGE","","",null,null],[7,"VERIFICATION_PATH","","",null,null],[5,"main","","",null,[[],["result",6]]],[5,"get_json_err","","",null,[[],["jsonconfig",3]]],[5,"get_identity_service","","",null,[[],[["cookieidentitypolicy",3],["identityservice",3]]]],[11,"from","guard::data","",0,[[]]],[11,"into","","",0,[[]]],[11,"to_owned","","",0,[[]]],[11,"clone_into","","",0,[[]]],[11,"borrow","","",0,[[]]],[11,"borrow_mut","","",0,[[]]],[11,"try_from","","",0,[[],["result",4]]],[11,"try_into","","",0,[[],["result",4]]],[11,"type_id","","",0,[[],["typeid",3]]],[11,"vzip","","",0,[[]]],[11,"from","guard::errors","",1,[[]]],[11,"into","","",1,[[]]],[11,"to_owned","","",1,[[]]],[11,"clone_into","","",1,[[]]],[11,"to_string","","",1,[[],["string",3]]],[11,"borrow","","",1,[[]]],[11,"borrow_mut","","",1,[[]]],[11,"try_from","","",1,[[],["result",4]]],[11,"try_into","","",1,[[],["result",4]]],[11,"type_id","","",1,[[],["typeid",3]]],[11,"vzip","","",1,[[]]],[11,"from","","",2,[[]]],[11,"into","","",2,[[]]],[11,"borrow","","",2,[[]]],[11,"borrow_mut","","",2,[[]]],[11,"try_from","","",2,[[],["result",4]]],[11,"try_into","","",2,[[],["result",4]]],[11,"type_id","","",2,[[],["typeid",3]]],[11,"vzip","","",2,[[]]],[11,"from","guard::api::v1::auth","",3,[[]]],[11,"into","","",3,[[]]],[11,"to_owned","","",3,[[]]],[11,"clone_into","","",3,[[]]],[11,"borrow","","",3,[[]]],[11,"borrow_mut","","",3,[[]]],[11,"try_from","","",3,[[],["result",4]]],[11,"try_into","","",3,[[],["result",4]]],[11,"type_id","","",3,[[],["typeid",3]]],[11,"vzip","","",3,[[]]],[11,"from","","",4,[[]]],[11,"into","","",4,[[]]],[11,"to_owned","","",4,[[]]],[11,"clone_into","","",4,[[]]],[11,"borrow","","",4,[[]]],[11,"borrow_mut","","",4,[[]]],[11,"try_from","","",4,[[],["result",4]]],[11,"try_into","","",4,[[],["result",4]]],[11,"type_id","","",4,[[],["typeid",3]]],[11,"vzip","","",4,[[]]],[11,"from","","",5,[[]]],[11,"into","","",5,[[]]],[11,"to_owned","","",5,[[]]],[11,"clone_into","","",5,[[]]],[11,"borrow","","",5,[[]]],[11,"borrow_mut","","",5,[[]]],[11,"try_from","","",5,[[],["result",4]]],[11,"try_into","","",5,[[],["result",4]]],[11,"type_id","","",5,[[],["typeid",3]]],[11,"vzip","","",5,[[]]],[11,"from","","",39,[[]]],[11,"into","","",39,[[]]],[11,"borrow","","",39,[[]]],[11,"borrow_mut","","",39,[[]]],[11,"try_from","","",39,[[],["result",4]]],[11,"try_into","","",39,[[],["result",4]]],[11,"type_id","","",39,[[],["typeid",3]]],[11,"vzip","","",39,[[]]],[11,"from","","",40,[[]]],[11,"into","","",40,[[]]],[11,"borrow","","",40,[[]]],[11,"borrow_mut","","",40,[[]]],[11,"try_from","","",40,[[],["result",4]]],[11,"try_into","","",40,[[],["result",4]]],[11,"type_id","","",40,[[],["typeid",3]]],[11,"vzip","","",40,[[]]],[11,"from","","",41,[[]]],[11,"into","","",41,[[]]],[11,"borrow","","",41,[[]]],[11,"borrow_mut","","",41,[[]]],[11,"try_from","","",41,[[],["result",4]]],[11,"try_into","","",41,[[],["result",4]]],[11,"type_id","","",41,[[],["typeid",3]]],[11,"vzip","","",41,[[]]],[11,"from","","",42,[[]]],[11,"into","","",42,[[]]],[11,"borrow","","",42,[[]]],[11,"borrow_mut","","",42,[[]]],[11,"try_from","","",42,[[],["result",4]]],[11,"try_into","","",42,[[],["result",4]]],[11,"type_id","","",42,[[],["typeid",3]]],[11,"vzip","","",42,[[]]],[11,"from","","",6,[[]]],[11,"into","","",6,[[]]],[11,"to_owned","","",6,[[]]],[11,"clone_into","","",6,[[]]],[11,"borrow","","",6,[[]]],[11,"borrow_mut","","",6,[[]]],[11,"try_from","","",6,[[],["result",4]]],[11,"try_into","","",6,[[],["result",4]]],[11,"type_id","","",6,[[],["typeid",3]]],[11,"vzip","","",6,[[]]],[11,"from","","",7,[[]]],[11,"into","","",7,[[]]],[11,"to_owned","","",7,[[]]],[11,"clone_into","","",7,[[]]],[11,"borrow","","",7,[[]]],[11,"borrow_mut","","",7,[[]]],[11,"try_from","","",7,[[],["result",4]]],[11,"try_into","","",7,[[],["result",4]]],[11,"type_id","","",7,[[],["typeid",3]]],[11,"vzip","","",7,[[]]],[11,"from","","",43,[[]]],[11,"into","","",43,[[]]],[11,"borrow","","",43,[[]]],[11,"borrow_mut","","",43,[[]]],[11,"try_from","","",43,[[],["result",4]]],[11,"try_into","","",43,[[],["result",4]]],[11,"type_id","","",43,[[],["typeid",3]]],[11,"vzip","","",43,[[]]],[11,"from","","",44,[[]]],[11,"into","","",44,[[]]],[11,"borrow","","",44,[[]]],[11,"borrow_mut","","",44,[[]]],[11,"try_from","","",44,[[],["result",4]]],[11,"try_into","","",44,[[],["result",4]]],[11,"type_id","","",44,[[],["typeid",3]]],[11,"vzip","","",44,[[]]],[11,"from","guard::api::v1::mcaptcha::domains","",8,[[]]],[11,"into","","",8,[[]]],[11,"to_owned","","",8,[[]]],[11,"clone_into","","",8,[[]]],[11,"borrow","","",8,[[]]],[11,"borrow_mut","","",8,[[]]],[11,"try_from","","",8,[[],["result",4]]],[11,"try_into","","",8,[[],["result",4]]],[11,"type_id","","",8,[[],["typeid",3]]],[11,"vzip","","",8,[[]]],[11,"from","","",45,[[]]],[11,"into","","",45,[[]]],[11,"borrow","","",45,[[]]],[11,"borrow_mut","","",45,[[]]],[11,"try_from","","",45,[[],["result",4]]],[11,"try_into","","",45,[[],["result",4]]],[11,"type_id","","",45,[[],["typeid",3]]],[11,"vzip","","",45,[[]]],[11,"from","","",9,[[]]],[11,"into","","",9,[[]]],[11,"to_owned","","",9,[[]]],[11,"clone_into","","",9,[[]]],[11,"borrow","","",9,[[]]],[11,"borrow_mut","","",9,[[]]],[11,"try_from","","",9,[[],["result",4]]],[11,"try_into","","",9,[[],["result",4]]],[11,"type_id","","",9,[[],["typeid",3]]],[11,"vzip","","",9,[[]]],[11,"from","","",46,[[]]],[11,"into","","",46,[[]]],[11,"borrow","","",46,[[]]],[11,"borrow_mut","","",46,[[]]],[11,"try_from","","",46,[[],["result",4]]],[11,"try_into","","",46,[[],["result",4]]],[11,"type_id","","",46,[[],["typeid",3]]],[11,"vzip","","",46,[[]]],[11,"from","","",47,[[]]],[11,"into","","",47,[[]]],[11,"borrow","","",47,[[]]],[11,"borrow_mut","","",47,[[]]],[11,"try_from","","",47,[[],["result",4]]],[11,"try_into","","",47,[[],["result",4]]],[11,"type_id","","",47,[[],["typeid",3]]],[11,"vzip","","",47,[[]]],[11,"from","","",48,[[]]],[11,"into","","",48,[[]]],[11,"borrow","","",48,[[]]],[11,"borrow_mut","","",48,[[]]],[11,"try_from","","",48,[[],["result",4]]],[11,"try_into","","",48,[[],["result",4]]],[11,"type_id","","",48,[[],["typeid",3]]],[11,"vzip","","",48,[[]]],[11,"from","guard::api::v1::mcaptcha::duration","",10,[[]]],[11,"into","","",10,[[]]],[11,"borrow","","",10,[[]]],[11,"borrow_mut","","",10,[[]]],[11,"try_from","","",10,[[],["result",4]]],[11,"try_into","","",10,[[],["result",4]]],[11,"type_id","","",10,[[],["typeid",3]]],[11,"vzip","","",10,[[]]],[11,"from","","",49,[[]]],[11,"into","","",49,[[]]],[11,"borrow","","",49,[[]]],[11,"borrow_mut","","",49,[[]]],[11,"try_from","","",49,[[],["result",4]]],[11,"try_into","","",49,[[],["result",4]]],[11,"type_id","","",49,[[],["typeid",3]]],[11,"vzip","","",49,[[]]],[11,"from","","",11,[[]]],[11,"into","","",11,[[]]],[11,"borrow","","",11,[[]]],[11,"borrow_mut","","",11,[[]]],[11,"try_from","","",11,[[],["result",4]]],[11,"try_into","","",11,[[],["result",4]]],[11,"type_id","","",11,[[],["typeid",3]]],[11,"vzip","","",11,[[]]],[11,"from","","",12,[[]]],[11,"into","","",12,[[]]],[11,"borrow","","",12,[[]]],[11,"borrow_mut","","",12,[[]]],[11,"try_from","","",12,[[],["result",4]]],[11,"try_into","","",12,[[],["result",4]]],[11,"type_id","","",12,[[],["typeid",3]]],[11,"vzip","","",12,[[]]],[11,"from","","",50,[[]]],[11,"into","","",50,[[]]],[11,"borrow","","",50,[[]]],[11,"borrow_mut","","",50,[[]]],[11,"try_from","","",50,[[],["result",4]]],[11,"try_into","","",50,[[],["result",4]]],[11,"type_id","","",50,[[],["typeid",3]]],[11,"vzip","","",50,[[]]],[11,"from","guard::api::v1::mcaptcha::levels","",13,[[]]],[11,"into","","",13,[[]]],[11,"borrow","","",13,[[]]],[11,"borrow_mut","","",13,[[]]],[11,"try_from","","",13,[[],["result",4]]],[11,"try_into","","",13,[[],["result",4]]],[11,"type_id","","",13,[[],["typeid",3]]],[11,"vzip","","",13,[[]]],[11,"from","","",51,[[]]],[11,"into","","",51,[[]]],[11,"borrow","","",51,[[]]],[11,"borrow_mut","","",51,[[]]],[11,"try_from","","",51,[[],["result",4]]],[11,"try_into","","",51,[[],["result",4]]],[11,"type_id","","",51,[[],["typeid",3]]],[11,"vzip","","",51,[[]]],[11,"from","","",52,[[]]],[11,"into","","",52,[[]]],[11,"borrow","","",52,[[]]],[11,"borrow_mut","","",52,[[]]],[11,"try_from","","",52,[[],["result",4]]],[11,"try_into","","",52,[[],["result",4]]],[11,"type_id","","",52,[[],["typeid",3]]],[11,"vzip","","",52,[[]]],[11,"from","","",53,[[]]],[11,"into","","",53,[[]]],[11,"borrow","","",53,[[]]],[11,"borrow_mut","","",53,[[]]],[11,"try_from","","",53,[[],["result",4]]],[11,"try_into","","",53,[[],["result",4]]],[11,"type_id","","",53,[[],["typeid",3]]],[11,"vzip","","",53,[[]]],[11,"from","","",14,[[]]],[11,"into","","",14,[[]]],[11,"borrow","","",14,[[]]],[11,"borrow_mut","","",14,[[]]],[11,"try_from","","",14,[[],["result",4]]],[11,"try_into","","",14,[[],["result",4]]],[11,"type_id","","",14,[[],["typeid",3]]],[11,"vzip","","",14,[[]]],[11,"from","","",54,[[]]],[11,"into","","",54,[[]]],[11,"borrow","","",54,[[]]],[11,"borrow_mut","","",54,[[]]],[11,"try_from","","",54,[[],["result",4]]],[11,"try_into","","",54,[[],["result",4]]],[11,"type_id","","",54,[[],["typeid",3]]],[11,"vzip","","",54,[[]]],[11,"from","","",15,[[]]],[11,"into","","",15,[[]]],[11,"borrow","","",15,[[]]],[11,"borrow_mut","","",15,[[]]],[11,"try_from","","",15,[[],["result",4]]],[11,"try_into","","",15,[[],["result",4]]],[11,"type_id","","",15,[[],["typeid",3]]],[11,"vzip","","",15,[[]]],[11,"from","","",16,[[]]],[11,"into","","",16,[[]]],[11,"borrow","","",16,[[]]],[11,"borrow_mut","","",16,[[]]],[11,"try_from","","",16,[[],["result",4]]],[11,"try_into","","",16,[[],["result",4]]],[11,"type_id","","",16,[[],["typeid",3]]],[11,"vzip","","",16,[[]]],[11,"from","guard::api::v1::mcaptcha::mcaptcha","",17,[[]]],[11,"into","","",17,[[]]],[11,"to_owned","","",17,[[]]],[11,"clone_into","","",17,[[]]],[11,"borrow","","",17,[[]]],[11,"borrow_mut","","",17,[[]]],[11,"try_from","","",17,[[],["result",4]]],[11,"try_into","","",17,[[],["result",4]]],[11,"type_id","","",17,[[],["typeid",3]]],[11,"vzip","","",17,[[]]],[11,"from","","",18,[[]]],[11,"into","","",18,[[]]],[11,"to_owned","","",18,[[]]],[11,"clone_into","","",18,[[]]],[11,"borrow","","",18,[[]]],[11,"borrow_mut","","",18,[[]]],[11,"try_from","","",18,[[],["result",4]]],[11,"try_into","","",18,[[],["result",4]]],[11,"type_id","","",18,[[],["typeid",3]]],[11,"vzip","","",18,[[]]],[11,"from","","",55,[[]]],[11,"into","","",55,[[]]],[11,"borrow","","",55,[[]]],[11,"borrow_mut","","",55,[[]]],[11,"try_from","","",55,[[],["result",4]]],[11,"try_into","","",55,[[],["result",4]]],[11,"type_id","","",55,[[],["typeid",3]]],[11,"vzip","","",55,[[]]],[11,"from","","",56,[[]]],[11,"into","","",56,[[]]],[11,"borrow","","",56,[[]]],[11,"borrow_mut","","",56,[[]]],[11,"try_from","","",56,[[],["result",4]]],[11,"try_into","","",56,[[],["result",4]]],[11,"type_id","","",56,[[],["typeid",3]]],[11,"vzip","","",56,[[]]],[11,"from","","",57,[[]]],[11,"into","","",57,[[]]],[11,"borrow","","",57,[[]]],[11,"borrow_mut","","",57,[[]]],[11,"try_from","","",57,[[],["result",4]]],[11,"try_into","","",57,[[],["result",4]]],[11,"type_id","","",57,[[],["typeid",3]]],[11,"vzip","","",57,[[]]],[11,"from","","",58,[[]]],[11,"into","","",58,[[]]],[11,"borrow","","",58,[[]]],[11,"borrow_mut","","",58,[[]]],[11,"try_from","","",58,[[],["result",4]]],[11,"try_into","","",58,[[],["result",4]]],[11,"type_id","","",58,[[],["typeid",3]]],[11,"vzip","","",58,[[]]],[11,"from","guard::api::v1::mcaptcha::pow","",19,[[]]],[11,"into","","",19,[[]]],[11,"to_owned","","",19,[[]]],[11,"clone_into","","",19,[[]]],[11,"borrow","","",19,[[]]],[11,"borrow_mut","","",19,[[]]],[11,"try_from","","",19,[[],["result",4]]],[11,"try_into","","",19,[[],["result",4]]],[11,"type_id","","",19,[[],["typeid",3]]],[11,"vzip","","",19,[[]]],[11,"from","","",20,[[]]],[11,"into","","",20,[[]]],[11,"to_owned","","",20,[[]]],[11,"clone_into","","",20,[[]]],[11,"borrow","","",20,[[]]],[11,"borrow_mut","","",20,[[]]],[11,"try_from","","",20,[[],["result",4]]],[11,"try_into","","",20,[[],["result",4]]],[11,"type_id","","",20,[[],["typeid",3]]],[11,"vzip","","",20,[[]]],[11,"from","","",59,[[]]],[11,"into","","",59,[[]]],[11,"borrow","","",59,[[]]],[11,"borrow_mut","","",59,[[]]],[11,"try_from","","",59,[[],["result",4]]],[11,"try_into","","",59,[[],["result",4]]],[11,"type_id","","",59,[[],["typeid",3]]],[11,"vzip","","",59,[[]]],[11,"from","guard::api::v1::meta","",21,[[]]],[11,"into","","",21,[[]]],[11,"to_owned","","",21,[[]]],[11,"clone_into","","",21,[[]]],[11,"borrow","","",21,[[]]],[11,"borrow_mut","","",21,[[]]],[11,"try_from","","",21,[[],["result",4]]],[11,"try_into","","",21,[[],["result",4]]],[11,"type_id","","",21,[[],["typeid",3]]],[11,"vzip","","",21,[[]]],[11,"from","","",22,[[]]],[11,"into","","",22,[[]]],[11,"to_owned","","",22,[[]]],[11,"clone_into","","",22,[[]]],[11,"borrow","","",22,[[]]],[11,"borrow_mut","","",22,[[]]],[11,"try_from","","",22,[[],["result",4]]],[11,"try_into","","",22,[[],["result",4]]],[11,"type_id","","",22,[[],["typeid",3]]],[11,"vzip","","",22,[[]]],[11,"from","","",60,[[]]],[11,"into","","",60,[[]]],[11,"borrow","","",60,[[]]],[11,"borrow_mut","","",60,[[]]],[11,"try_from","","",60,[[],["result",4]]],[11,"try_into","","",60,[[],["result",4]]],[11,"type_id","","",60,[[],["typeid",3]]],[11,"vzip","","",60,[[]]],[11,"from","","",23,[[]]],[11,"into","","",23,[[]]],[11,"to_owned","","",23,[[]]],[11,"clone_into","","",23,[[]]],[11,"borrow","","",23,[[]]],[11,"borrow_mut","","",23,[[]]],[11,"try_from","","",23,[[],["result",4]]],[11,"try_into","","",23,[[],["result",4]]],[11,"type_id","","",23,[[],["typeid",3]]],[11,"vzip","","",23,[[]]],[11,"from","","",24,[[]]],[11,"into","","",24,[[]]],[11,"to_owned","","",24,[[]]],[11,"clone_into","","",24,[[]]],[11,"borrow","","",24,[[]]],[11,"borrow_mut","","",24,[[]]],[11,"try_from","","",24,[[],["result",4]]],[11,"try_into","","",24,[[],["result",4]]],[11,"type_id","","",24,[[],["typeid",3]]],[11,"vzip","","",24,[[]]],[11,"from","","",61,[[]]],[11,"into","","",61,[[]]],[11,"borrow","","",61,[[]]],[11,"borrow_mut","","",61,[[]]],[11,"try_from","","",61,[[],["result",4]]],[11,"try_into","","",61,[[],["result",4]]],[11,"type_id","","",61,[[],["typeid",3]]],[11,"vzip","","",61,[[]]],[11,"from","guard::docs","",25,[[]]],[11,"into","","",25,[[]]],[11,"borrow","","",25,[[]]],[11,"borrow_mut","","",25,[[]]],[11,"try_from","","",25,[[],["result",4]]],[11,"try_into","","",25,[[],["result",4]]],[11,"type_id","","",25,[[],["typeid",3]]],[11,"vzip","","",25,[[]]],[11,"from","","",62,[[]]],[11,"into","","",62,[[]]],[11,"borrow","","",62,[[]]],[11,"borrow_mut","","",62,[[]]],[11,"try_from","","",62,[[],["result",4]]],[11,"try_into","","",62,[[],["result",4]]],[11,"type_id","","",62,[[],["typeid",3]]],[11,"vzip","","",62,[[]]],[11,"from","","",63,[[]]],[11,"into","","",63,[[]]],[11,"borrow","","",63,[[]]],[11,"borrow_mut","","",63,[[]]],[11,"try_from","","",63,[[],["result",4]]],[11,"try_into","","",63,[[],["result",4]]],[11,"type_id","","",63,[[],["typeid",3]]],[11,"vzip","","",63,[[]]],[11,"from","","",64,[[]]],[11,"into","","",64,[[]]],[11,"borrow","","",64,[[]]],[11,"borrow_mut","","",64,[[]]],[11,"try_from","","",64,[[],["result",4]]],[11,"try_into","","",64,[[],["result",4]]],[11,"type_id","","",64,[[],["typeid",3]]],[11,"vzip","","",64,[[]]],[11,"from","guard::settings","",26,[[]]],[11,"into","","",26,[[]]],[11,"to_owned","","",26,[[]]],[11,"clone_into","","",26,[[]]],[11,"borrow","","",26,[[]]],[11,"borrow_mut","","",26,[[]]],[11,"try_from","","",26,[[],["result",4]]],[11,"try_into","","",26,[[],["result",4]]],[11,"type_id","","",26,[[],["typeid",3]]],[11,"vzip","","",26,[[]]],[11,"from","","",27,[[]]],[11,"into","","",27,[[]]],[11,"to_owned","","",27,[[]]],[11,"clone_into","","",27,[[]]],[11,"borrow","","",27,[[]]],[11,"borrow_mut","","",27,[[]]],[11,"try_from","","",27,[[],["result",4]]],[11,"try_into","","",27,[[],["result",4]]],[11,"type_id","","",27,[[],["typeid",3]]],[11,"vzip","","",27,[[]]],[11,"from","","",28,[[]]],[11,"into","","",28,[[]]],[11,"to_owned","","",28,[[]]],[11,"clone_into","","",28,[[]]],[11,"borrow","","",28,[[]]],[11,"borrow_mut","","",28,[[]]],[11,"try_from","","",28,[[],["result",4]]],[11,"try_into","","",28,[[],["result",4]]],[11,"type_id","","",28,[[],["typeid",3]]],[11,"vzip","","",28,[[]]],[11,"from","","",29,[[]]],[11,"into","","",29,[[]]],[11,"to_owned","","",29,[[]]],[11,"clone_into","","",29,[[]]],[11,"borrow","","",29,[[]]],[11,"borrow_mut","","",29,[[]]],[11,"try_from","","",29,[[],["result",4]]],[11,"try_into","","",29,[[],["result",4]]],[11,"type_id","","",29,[[],["typeid",3]]],[11,"vzip","","",29,[[]]],[11,"from","","",30,[[]]],[11,"into","","",30,[[]]],[11,"to_owned","","",30,[[]]],[11,"clone_into","","",30,[[]]],[11,"borrow","","",30,[[]]],[11,"borrow_mut","","",30,[[]]],[11,"try_from","","",30,[[],["result",4]]],[11,"try_into","","",30,[[],["result",4]]],[11,"type_id","","",30,[[],["typeid",3]]],[11,"vzip","","",30,[[]]],[11,"from","guard::templates::auth::login","",31,[[]]],[11,"into","","",31,[[]]],[11,"to_owned","","",31,[[]]],[11,"clone_into","","",31,[[]]],[11,"borrow","","",31,[[]]],[11,"borrow_mut","","",31,[[]]],[11,"try_from","","",31,[[],["result",4]]],[11,"try_into","","",31,[[],["result",4]]],[11,"type_id","","",31,[[],["typeid",3]]],[11,"vzip","","",31,[[]]],[11,"from","","",65,[[]]],[11,"into","","",65,[[]]],[11,"borrow","","",65,[[]]],[11,"borrow_mut","","",65,[[]]],[11,"try_from","","",65,[[],["result",4]]],[11,"try_into","","",65,[[],["result",4]]],[11,"type_id","","",65,[[],["typeid",3]]],[11,"vzip","","",65,[[]]],[11,"from","guard::templates::auth::register","",32,[[]]],[11,"into","","",32,[[]]],[11,"to_owned","","",32,[[]]],[11,"clone_into","","",32,[[]]],[11,"borrow","","",32,[[]]],[11,"borrow_mut","","",32,[[]]],[11,"try_from","","",32,[[],["result",4]]],[11,"try_into","","",32,[[],["result",4]]],[11,"type_id","","",32,[[],["typeid",3]]],[11,"vzip","","",32,[[]]],[11,"from","","",66,[[]]],[11,"into","","",66,[[]]],[11,"borrow","","",66,[[]]],[11,"borrow_mut","","",66,[[]]],[11,"try_from","","",66,[[],["result",4]]],[11,"try_into","","",66,[[],["result",4]]],[11,"type_id","","",66,[[],["typeid",3]]],[11,"vzip","","",66,[[]]],[11,"from","guard::templates::panel","",33,[[]]],[11,"into","","",33,[[]]],[11,"to_owned","","",33,[[]]],[11,"clone_into","","",33,[[]]],[11,"borrow","","",33,[[]]],[11,"borrow_mut","","",33,[[]]],[11,"try_from","","",33,[[],["result",4]]],[11,"try_into","","",33,[[],["result",4]]],[11,"type_id","","",33,[[],["typeid",3]]],[11,"vzip","","",33,[[]]],[11,"from","","",67,[[]]],[11,"into","","",67,[[]]],[11,"borrow","","",67,[[]]],[11,"borrow_mut","","",67,[[]]],[11,"try_from","","",67,[[],["result",4]]],[11,"try_into","","",67,[[],["result",4]]],[11,"type_id","","",67,[[],["typeid",3]]],[11,"vzip","","",67,[[]]],[11,"from","guard","",34,[[]]],[11,"into","","",34,[[]]],[11,"borrow","","",34,[[]]],[11,"borrow_mut","","",34,[[]]],[11,"try_from","","",34,[[],["result",4]]],[11,"try_into","","",34,[[],["result",4]]],[11,"type_id","","",34,[[],["typeid",3]]],[11,"vzip","","",34,[[]]],[11,"from","","",35,[[]]],[11,"into","","",35,[[]]],[11,"borrow","","",35,[[]]],[11,"borrow_mut","","",35,[[]]],[11,"try_from","","",35,[[],["result",4]]],[11,"try_into","","",35,[[],["result",4]]],[11,"type_id","","",35,[[],["typeid",3]]],[11,"vzip","","",35,[[]]],[11,"from","","",36,[[]]],[11,"into","","",36,[[]]],[11,"borrow","","",36,[[]]],[11,"borrow_mut","","",36,[[]]],[11,"try_from","","",36,[[],["result",4]]],[11,"try_into","","",36,[[],["result",4]]],[11,"type_id","","",36,[[],["typeid",3]]],[11,"vzip","","",36,[[]]],[11,"from","","",37,[[]]],[11,"into","","",37,[[]]],[11,"borrow","","",37,[[]]],[11,"borrow_mut","","",37,[[]]],[11,"try_from","","",37,[[],["result",4]]],[11,"try_into","","",37,[[],["result",4]]],[11,"type_id","","",37,[[],["typeid",3]]],[11,"vzip","","",37,[[]]],[11,"from","","",38,[[]]],[11,"into","","",38,[[]]],[11,"borrow","","",38,[[]]],[11,"borrow_mut","","",38,[[]]],[11,"try_from","","",38,[[],["result",4]]],[11,"try_into","","",38,[[],["result",4]]],[11,"type_id","","",38,[[],["typeid",3]]],[11,"vzip","","",38,[[]]],[11,"from","guard::errors","",1,[[["credserror",4]],["serviceerror",4]]],[11,"from","","",1,[[["validationerrors",3]],["serviceerror",4]]],[11,"from","","",1,[[["sendrequesterror",4]],["serviceerror",4]]],[11,"from","","",1,[[["parseerror",4]],["serviceerror",4]]],[11,"from","","",1,[[["captchaerror",4]],["serviceerror",4]]],[11,"from","","",1,[[["error",4]]]],[11,"clone","guard::data","",0,[[],["data",3]]],[11,"clone","guard::errors","",1,[[],["serviceerror",4]]],[11,"clone","guard::api::v1::auth","",3,[[],["register",3]]],[11,"clone","","",4,[[],["login",3]]],[11,"clone","","",5,[[],["password",3]]],[11,"clone","","",6,[[],["accountcheckpayload",3]]],[11,"clone","","",7,[[],["accountcheckresp",3]]],[11,"clone","guard::api::v1::mcaptcha::domains","",8,[[],["domain",3]]],[11,"clone","","",9,[[],["challenge",3]]],[11,"clone","guard::api::v1::mcaptcha::mcaptcha","",17,[[],["mcaptchaid",3]]],[11,"clone","","",18,[[],["mcaptchadetails",3]]],[11,"clone","guard::api::v1::mcaptcha::pow","",19,[[],["powconfig",3]]],[11,"clone","","",20,[[],["getconfigpayload",3]]],[11,"clone","guard::api::v1::meta","",21,[[],["builddetails",3]]],[11,"clone","","",22,[[],["builddetailsbuilder",3]]],[11,"clone","","",23,[[],["health",3]]],[11,"clone","","",24,[[],["healthbuilder",3]]],[11,"clone","guard::settings","",26,[[],["server",3]]],[11,"clone","","",27,[[],["captcha",3]]],[11,"clone","","",28,[[],["databasebuilder",3]]],[11,"clone","","",29,[[],["database",3]]],[11,"clone","","",30,[[],["settings",3]]],[11,"clone","guard::templates::auth::login","",31,[[],["indexpage",3]]],[11,"clone","guard::templates::auth::register","",32,[[],["indexpage",3]]],[11,"clone","guard::templates::panel","",33,[[],["indexpage",3]]],[11,"default","guard::api::v1::meta","",22,[[],["builddetailsbuilder",3]]],[11,"default","","",24,[[],["healthbuilder",3]]],[11,"default","guard::templates::auth::login","",31,[[]]],[11,"default","guard::templates::auth::register","",32,[[]]],[11,"default","guard::templates::panel","",33,[[]]],[11,"eq","guard::errors","",1,[[["serviceerror",4]],["bool",15]]],[11,"ne","","",1,[[["serviceerror",4]],["bool",15]]],[11,"deref","guard","",34,[[],["settings",3]]],[11,"deref","","",35,[[],["string",3]]],[11,"deref","","",36,[[],["filemap",3]]],[11,"deref","","",37,[[],["str",15]]],[11,"deref","","",38,[[],["str",15]]],[11,"fmt","guard::errors","",1,[[["formatter",3]],["result",6]]],[11,"fmt","guard::api::v1::auth","",3,[[["formatter",3]],["result",6]]],[11,"fmt","","",4,[[["formatter",3]],["result",6]]],[11,"fmt","","",5,[[["formatter",3]],["result",6]]],[11,"fmt","","",6,[[["formatter",3]],["result",6]]],[11,"fmt","","",7,[[["formatter",3]],["result",6]]],[11,"fmt","guard::api::v1::mcaptcha::domains","",8,[[["formatter",3]],["result",6]]],[11,"fmt","","",9,[[["formatter",3]],["result",6]]],[11,"fmt","guard::api::v1::mcaptcha::mcaptcha","",17,[[["formatter",3]],["result",6]]],[11,"fmt","","",18,[[["formatter",3]],["result",6]]],[11,"fmt","guard::api::v1::mcaptcha::pow","",19,[[["formatter",3]],["result",6]]],[11,"fmt","","",20,[[["formatter",3]],["result",6]]],[11,"fmt","guard::api::v1::meta","",21,[[["formatter",3]],["result",6]]],[11,"fmt","","",23,[[["formatter",3]],["result",6]]],[11,"fmt","guard::settings","",26,[[["formatter",3]],["result",6]]],[11,"fmt","","",27,[[["formatter",3]],["result",6]]],[11,"fmt","","",28,[[["formatter",3]],["result",6]]],[11,"fmt","","",29,[[["formatter",3]],["result",6]]],[11,"fmt","","",30,[[["formatter",3]],["result",6]]],[11,"fmt","guard::errors","",1,[[["formatter",3]],["result",6]]],[11,"source","","",1,[[],[["option",4],["error",8]]]],[11,"serialize","","",2,[[],["result",4]]],[11,"serialize","guard::api::v1::auth","",3,[[],["result",4]]],[11,"serialize","","",4,[[],["result",4]]],[11,"serialize","","",5,[[],["result",4]]],[11,"serialize","","",6,[[],["result",4]]],[11,"serialize","","",7,[[],["result",4]]],[11,"serialize","guard::api::v1::mcaptcha::domains","",8,[[],["result",4]]],[11,"serialize","","",9,[[],["result",4]]],[11,"serialize","guard::api::v1::mcaptcha::duration","",10,[[],["result",4]]],[11,"serialize","","",11,[[],["result",4]]],[11,"serialize","","",12,[[],["result",4]]],[11,"serialize","guard::api::v1::mcaptcha::levels","",13,[[],["result",4]]],[11,"serialize","","",14,[[],["result",4]]],[11,"serialize","","",15,[[],["result",4]]],[11,"serialize","","",16,[[],["result",4]]],[11,"serialize","guard::api::v1::mcaptcha::mcaptcha","",17,[[],["result",4]]],[11,"serialize","","",18,[[],["result",4]]],[11,"serialize","guard::api::v1::mcaptcha::pow","",19,[[],["result",4]]],[11,"serialize","","",20,[[],["result",4]]],[11,"serialize","guard::api::v1::meta","",21,[[],["result",4]]],[11,"serialize","","",23,[[],["result",4]]],[11,"register","guard::api::v1::auth","",39,[[["appservice",3]]]],[11,"register","","",40,[[["appservice",3]]]],[11,"register","","",41,[[["appservice",3]]]],[11,"register","","",42,[[["appservice",3]]]],[11,"register","","",43,[[["appservice",3]]]],[11,"register","","",44,[[["appservice",3]]]],[11,"register","guard::api::v1::mcaptcha::domains","",45,[[["appservice",3]]]],[11,"register","","",46,[[["appservice",3]]]],[11,"register","","",47,[[["appservice",3]]]],[11,"register","","",48,[[["appservice",3]]]],[11,"register","guard::api::v1::mcaptcha::duration","",49,[[["appservice",3]]]],[11,"register","","",50,[[["appservice",3]]]],[11,"register","guard::api::v1::mcaptcha::levels","",51,[[["appservice",3]]]],[11,"register","","",52,[[["appservice",3]]]],[11,"register","","",53,[[["appservice",3]]]],[11,"register","","",54,[[["appservice",3]]]],[11,"register","guard::api::v1::mcaptcha::mcaptcha","",55,[[["appservice",3]]]],[11,"register","","",56,[[["appservice",3]]]],[11,"register","","",57,[[["appservice",3]]]],[11,"register","","",58,[[["appservice",3]]]],[11,"register","guard::api::v1::mcaptcha::pow","",59,[[["appservice",3]]]],[11,"register","guard::api::v1::meta","",60,[[["appservice",3]]]],[11,"register","","",61,[[["appservice",3]]]],[11,"register","guard::docs","",62,[[["appservice",3]]]],[11,"register","","",63,[[["appservice",3]]]],[11,"register","","",64,[[["appservice",3]]]],[11,"register","guard::templates::auth::login","",65,[[["appservice",3]]]],[11,"register","guard::templates::auth::register","",66,[[["appservice",3]]]],[11,"register","guard::templates::panel","",67,[[["appservice",3]]]],[11,"error_response","guard::errors","",1,[[],["httpresponse",3]]],[11,"status_code","","",1,[[],["statuscode",3]]],[11,"deserialize","","",2,[[],["result",4]]],[11,"deserialize","guard::api::v1::auth","",3,[[],["result",4]]],[11,"deserialize","","",4,[[],["result",4]]],[11,"deserialize","","",5,[[],["result",4]]],[11,"deserialize","","",6,[[],["result",4]]],[11,"deserialize","","",7,[[],["result",4]]],[11,"deserialize","guard::api::v1::mcaptcha::domains","",8,[[],["result",4]]],[11,"deserialize","","",9,[[],["result",4]]],[11,"deserialize","guard::api::v1::mcaptcha::duration","",10,[[],["result",4]]],[11,"deserialize","","",11,[[],["result",4]]],[11,"deserialize","","",12,[[],["result",4]]],[11,"deserialize","guard::api::v1::mcaptcha::levels","",13,[[],["result",4]]],[11,"deserialize","","",14,[[],["result",4]]],[11,"deserialize","","",15,[[],["result",4]]],[11,"deserialize","","",16,[[],["result",4]]],[11,"deserialize","guard::api::v1::mcaptcha::mcaptcha","",17,[[],["result",4]]],[11,"deserialize","","",18,[[],["result",4]]],[11,"deserialize","guard::api::v1::mcaptcha::pow","",19,[[],["result",4]]],[11,"deserialize","","",20,[[],["result",4]]],[11,"deserialize","guard::api::v1::meta","",21,[[],["result",4]]],[11,"deserialize","","",23,[[],["result",4]]],[11,"deserialize","guard::settings","",26,[[],["result",4]]],[11,"deserialize","","",27,[[],["result",4]]],[11,"deserialize","","",28,[[],["result",4]]],[11,"deserialize","","",29,[[],["result",4]]],[11,"deserialize","","",30,[[],["result",4]]],[11,"initialize","guard","",34,[[]]],[11,"initialize","","",35,[[]]],[11,"initialize","","",36,[[]]],[11,"initialize","","",37,[[]]],[11,"initialize","","",38,[[]]],[11,"get","guard::docs","",25,[[["str",15]],[["cow",4],["option",4]]]],[11,"iter","","",25,[[],["filenames",4]]],[11,"render_once","guard::templates::auth::login","",31,[[],["renderresult",6]]],[11,"render_once_to","","",31,[[["buffer",3]],[["result",4],["rendererror",4]]]],[11,"render_once","guard::templates::auth::register","",32,[[],["renderresult",6]]],[11,"render_once_to","","",32,[[["buffer",3]],[["result",4],["rendererror",4]]]],[11,"render_once","guard::templates::panel","",33,[[],["renderresult",6]]],[11,"render_once_to","","",33,[[["buffer",3]],[["result",4],["rendererror",4]]]]],"p":[[3,"Data"],[4,"ServiceError"],[3,"ErrorToResponse"],[3,"Register"],[3,"Login"],[3,"Password"],[3,"AccountCheckPayload"],[3,"AccountCheckResp"],[3,"Domain"],[3,"Challenge"],[3,"UpdateDuration"],[3,"GetDurationResp"],[3,"GetDuration"],[3,"AddLevels"],[3,"GetLevels"],[3,"Levels"],[3,"I32Levels"],[3,"MCaptchaID"],[3,"MCaptchaDetails"],[3,"PoWConfig"],[3,"GetConfigPayload"],[3,"BuildDetails"],[3,"BuildDetailsBuilder"],[3,"Health"],[3,"HealthBuilder"],[3,"Asset"],[3,"Server"],[3,"Captcha"],[3,"DatabaseBuilder"],[3,"Database"],[3,"Settings"],[3,"IndexPage"],[3,"IndexPage"],[3,"IndexPage"],[3,"SETTINGS"],[3,"S"],[3,"FILES"],[3,"JS"],[3,"CSS"],[3,"signup"],[3,"signin"],[3,"signout"],[3,"delete_account"],[3,"username_exists"],[3,"email_exists"],[3,"add_domain"],[3,"get_challenge"],[3,"verify"],[3,"delete_domain"],[3,"update_duration"],[3,"get_duration"],[3,"add_levels"],[3,"update_levels"],[3,"delete_levels"],[3,"get_levels"],[3,"add_mcaptcha"],[3,"update_token"],[3,"get_token"],[3,"delete_mcaptcha"],[3,"get_config"],[3,"build_details"],[3,"health"],[3,"dist"],[3,"spec"],[3,"index"],[3,"login"],[3,"join"],[3,"panel"]]},\
+"tests_migrate":{"doc":"","i":[[0,"data","tests_migrate","",null,null],[3,"Data","tests_migrate::data","",null,null],[12,"db","","",0,null],[12,"creds","","",0,null],[12,"captcha","","",0,null],[11,"new","","",0,[[]]],[0,"settings","tests_migrate","",null,null],[3,"Server","tests_migrate::settings","",null,null],[12,"allow_registration","","",1,null],[12,"port","","",1,null],[12,"domain","","",1,null],[12,"cookie_secret","","",1,null],[12,"ip","","",1,null],[3,"Captcha","","",null,null],[12,"salt","","",2,null],[12,"gc","","",2,null],[11,"get_ip","","",1,[[],["string",3]]],[3,"DatabaseBuilder","","",null,null],[12,"port","","",3,null],[12,"hostname","","",3,null],[12,"username","","",3,null],[12,"password","","",3,null],[12,"name","","",3,null],[12,"url","","",3,null],[11,"extract_database_url","","",3,[[["url",3]]]],[3,"Database","","",null,null],[12,"url","","",4,null],[12,"pool","","",4,null],[3,"Settings","","",null,null],[12,"debug","","",5,null],[12,"database","","",5,null],[12,"server","","",5,null],[12,"pow","","",5,null],[11,"new","","",5,[[],[["result",4],["configerror",4]]]],[5,"set_from_database_url","","",null,[[["databasebuilder",3],["config",3]]]],[5,"set_database_url","","",null,[[["config",3]]]],[3,"Data","tests_migrate","",null,null],[12,"db","","",0,null],[12,"creds","","",0,null],[12,"captcha","","",0,null],[3,"Settings","","",null,null],[12,"debug","","",5,null],[12,"database","","",5,null],[12,"server","","",5,null],[12,"pow","","",5,null],[3,"SETTINGS","","",null,null],[12,"__private_field","","",6,null],[5,"main","","",null,[[]]],[11,"from","tests_migrate::data","",0,[[]]],[11,"into","","",0,[[]]],[11,"to_owned","","",0,[[]]],[11,"clone_into","","",0,[[]]],[11,"borrow","","",0,[[]]],[11,"borrow_mut","","",0,[[]]],[11,"try_from","","",0,[[],["result",4]]],[11,"try_into","","",0,[[],["result",4]]],[11,"type_id","","",0,[[],["typeid",3]]],[11,"vzip","","",0,[[]]],[11,"from","tests_migrate::settings","",1,[[]]],[11,"into","","",1,[[]]],[11,"to_owned","","",1,[[]]],[11,"clone_into","","",1,[[]]],[11,"borrow","","",1,[[]]],[11,"borrow_mut","","",1,[[]]],[11,"try_from","","",1,[[],["result",4]]],[11,"try_into","","",1,[[],["result",4]]],[11,"type_id","","",1,[[],["typeid",3]]],[11,"vzip","","",1,[[]]],[11,"from","","",2,[[]]],[11,"into","","",2,[[]]],[11,"to_owned","","",2,[[]]],[11,"clone_into","","",2,[[]]],[11,"borrow","","",2,[[]]],[11,"borrow_mut","","",2,[[]]],[11,"try_from","","",2,[[],["result",4]]],[11,"try_into","","",2,[[],["result",4]]],[11,"type_id","","",2,[[],["typeid",3]]],[11,"vzip","","",2,[[]]],[11,"from","","",3,[[]]],[11,"into","","",3,[[]]],[11,"to_owned","","",3,[[]]],[11,"clone_into","","",3,[[]]],[11,"borrow","","",3,[[]]],[11,"borrow_mut","","",3,[[]]],[11,"try_from","","",3,[[],["result",4]]],[11,"try_into","","",3,[[],["result",4]]],[11,"type_id","","",3,[[],["typeid",3]]],[11,"vzip","","",3,[[]]],[11,"from","","",4,[[]]],[11,"into","","",4,[[]]],[11,"to_owned","","",4,[[]]],[11,"clone_into","","",4,[[]]],[11,"borrow","","",4,[[]]],[11,"borrow_mut","","",4,[[]]],[11,"try_from","","",4,[[],["result",4]]],[11,"try_into","","",4,[[],["result",4]]],[11,"type_id","","",4,[[],["typeid",3]]],[11,"vzip","","",4,[[]]],[11,"from","","",5,[[]]],[11,"into","","",5,[[]]],[11,"to_owned","","",5,[[]]],[11,"clone_into","","",5,[[]]],[11,"borrow","","",5,[[]]],[11,"borrow_mut","","",5,[[]]],[11,"try_from","","",5,[[],["result",4]]],[11,"try_into","","",5,[[],["result",4]]],[11,"type_id","","",5,[[],["typeid",3]]],[11,"vzip","","",5,[[]]],[11,"from","tests_migrate","",6,[[]]],[11,"into","","",6,[[]]],[11,"borrow","","",6,[[]]],[11,"borrow_mut","","",6,[[]]],[11,"try_from","","",6,[[],["result",4]]],[11,"try_into","","",6,[[],["result",4]]],[11,"type_id","","",6,[[],["typeid",3]]],[11,"vzip","","",6,[[]]],[11,"clone","tests_migrate::data","",0,[[],["data",3]]],[11,"clone","tests_migrate::settings","",1,[[],["server",3]]],[11,"clone","","",2,[[],["captcha",3]]],[11,"clone","","",3,[[],["databasebuilder",3]]],[11,"clone","","",4,[[],["database",3]]],[11,"clone","","",5,[[],["settings",3]]],[11,"deref","tests_migrate","",6,[[],["settings",3]]],[11,"fmt","tests_migrate::settings","",1,[[["formatter",3]],["result",6]]],[11,"fmt","","",2,[[["formatter",3]],["result",6]]],[11,"fmt","","",3,[[["formatter",3]],["result",6]]],[11,"fmt","","",4,[[["formatter",3]],["result",6]]],[11,"fmt","","",5,[[["formatter",3]],["result",6]]],[11,"initialize","tests_migrate","",6,[[]]],[11,"deserialize","tests_migrate::settings","",1,[[],["result",4]]],[11,"deserialize","","",2,[[],["result",4]]],[11,"deserialize","","",3,[[],["result",4]]],[11,"deserialize","","",4,[[],["result",4]]],[11,"deserialize","","",5,[[],["result",4]]]],"p":[[3,"Data"],[3,"Server"],[3,"Captcha"],[3,"DatabaseBuilder"],[3,"Database"],[3,"Settings"],[3,"SETTINGS"]]}\
}');
addSearchOptions(searchIndex);initSearch(searchIndex);
\ No newline at end of file
diff --git a/source-files.js b/source-files.js
index f153302b..fa022527 100644
--- a/source-files.js
+++ b/source-files.js
@@ -1,5 +1,5 @@
var N = null;var sourcesIndex = {};
sourcesIndex["frontend"] = {"name":"","files":["main.rs"]};
-sourcesIndex["guard"] = {"name":"","dirs":[{"name":"api","dirs":[{"name":"v1","dirs":[{"name":"mcaptcha","files":["domains.rs","duration.rs","levels.rs","mcaptcha.rs","mod.rs","pow.rs"]}],"files":["auth.rs","meta.rs","mod.rs"]}],"files":["mod.rs"]}],"files":["data.rs","docs.rs","errors.rs","main.rs","settings.rs"]};
+sourcesIndex["guard"] = {"name":"","dirs":[{"name":"api","dirs":[{"name":"v1","dirs":[{"name":"mcaptcha","files":["domains.rs","duration.rs","levels.rs","mcaptcha.rs","mod.rs","pow.rs"]}],"files":["auth.rs","meta.rs","mod.rs"]}],"files":["mod.rs"]},{"name":"templates","dirs":[{"name":"auth","files":["login.rs","mod.rs","register.rs"]},{"name":"panel","files":["mod.rs"]}],"files":["mod.rs"]}],"files":["data.rs","docs.rs","errors.rs","main.rs","settings.rs"]};
sourcesIndex["tests_migrate"] = {"name":"","files":["data.rs","settings.rs","tests-migrate.rs"]};
createSourceSidebar();
diff --git a/src/guard/main.rs.html b/src/guard/main.rs.html
index 733992c6..6b603a55 100644
--- a/src/guard/main.rs.html
+++ b/src/guard/main.rs.html
@@ -116,6 +116,13 @@
113114115
+116
+117
+118
+119
+120
+121
+122
+/*
+* Copyright (C) 2021 Aravinth Manivannan <realaravinth@batsense.net>
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Affero General Public License as
+* published by the Free Software Foundation, either version 3 of the
+* License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Affero General Public License for more details.
+*
+* You should have received a copy of the GNU Affero General Public License
+* along with this program. If not, see <https://www.gnu.org/licenses/>.
+*/
+
+useactix_web::web::ServiceConfig;
+
+modauth;
+modpanel;
+
+pubfnservices(cfg: &mutServiceConfig) {
+ cfg.service(auth::login::login);
+ cfg.service(auth::register::join);
+ cfg.service(panel::panel);
+}
+
+
+
\ No newline at end of file
diff --git a/src/guard/templates/panel/mod.rs.html b/src/guard/templates/panel/mod.rs.html
new file mode 100644
index 00000000..b9c22c51
--- /dev/null
+++ b/src/guard/templates/panel/mod.rs.html
@@ -0,0 +1,77 @@
+mod.rs - source
+
+