From 46d6970c458dad14f2969b78b74ea6a797cb32e2 Mon Sep 17 00:00:00 2001 From: ngtkana Date: Fri, 13 Dec 2024 11:32:20 +0000 Subject: [PATCH] deploy: c60ba8b339d761f52ff044326c469fe671b67ec8 --- dependencies.js | 2 +- help.html | 4 +- implementors/riff/slice_ext/trait.SliceExt.js | 3 + implementors/serde/ser/trait.Serialize.js | 2 +- riff/all.html | 2 +- riff/index.html | 4 +- riff/sidebar-items.js | 2 +- riff/slice_ext/trait.SliceExt.html | 11 ++ riff/trait.SliceExt.html | 46 +++++++ search-index.js | 4 +- settings.html | 4 +- snippetter/struct.CrateMetadata.html | 4 +- source-files.js | 2 +- src/riff/lib.rs.html | 4 + src/riff/slice_ext.rs.html | 123 ++++++++++++++++++ 15 files changed, 202 insertions(+), 15 deletions(-) create mode 100644 implementors/riff/slice_ext/trait.SliceExt.js create mode 100644 riff/slice_ext/trait.SliceExt.html create mode 100644 riff/trait.SliceExt.html create mode 100644 src/riff/slice_ext.rs.html diff --git a/dependencies.js b/dependencies.js index 8fa71b98..12d224cd 100644 --- a/dependencies.js +++ b/dependencies.js @@ -1 +1 @@ -dependencies = {"manacher":{"dependencies":[],"tags":[]},"gss":{"dependencies":[],"tags":[]},"cht":{"dependencies":[],"tags":[]},"naive_poly":{"dependencies":[],"tags":[]},"riff":{"dependencies":[],"tags":[]},"lagrange":{"dependencies":["fp"],"tags":[]},"graph":{"dependencies":[],"tags":[]},"convex_hull":{"dependencies":[],"tags":[]},"interval_heap":{"dependencies":[],"tags":[]},"tree_fold":{"dependencies":[],"tags":[]},"trial":{"dependencies":[],"tags":[]},"bsgs":{"dependencies":[],"tags":[]},"lazy_segtree":{"dependencies":[],"tags":[]},"wavelet_matrix":{"dependencies":[],"tags":[]},"cipolla":{"dependencies":[],"tags":[]},"hungarian":{"dependencies":[],"tags":[]},"veb":{"dependencies":[],"tags":[]},"newton":{"dependencies":[],"tags":[]},"splay_tree":{"dependencies":[],"tags":[]},"gco":{"dependencies":["dinic"],"tags":[]},"z_algo":{"dependencies":[],"tags":[]},"euclid":{"dependencies":[],"tags":[]},"swag":{"dependencies":[],"tags":[]},"low_link":{"dependencies":[],"tags":[]},"vec_lines":{"dependencies":[],"tags":[]},"mincost_flow":{"dependencies":[],"tags":[]},"hopkarp":{"dependencies":[],"tags":[]},"rbtree":{"dependencies":[],"tags":[]},"link_cut_tree":{"dependencies":[],"tags":[]},"dual_segtree":{"dependencies":[],"tags":[]},"lin_ineq":{"dependencies":[],"tags":[]},"monotone_minima":{"dependencies":[],"tags":[]},"rb":{"dependencies":[],"tags":[]},"io":{"dependencies":[],"tags":[]},"rational":{"dependencies":[],"tags":[]},"lazy_segbeats":{"dependencies":[],"tags":[]},"segtree":{"dependencies":[],"tags":[]},"zeta":{"dependencies":[],"tags":[]},"partially_persistent_union_find":{"dependencies":[],"tags":[]},"numeric_search":{"dependencies":[],"tags":[]},"heap_tricks":{"dependencies":[],"tags":[]},"bitvec":{"dependencies":[],"tags":[]},"fps":{"dependencies":["fp"],"tags":[]},"erato":{"dependencies":[],"tags":[]},"suffix_array":{"dependencies":[],"tags":[]},"avl_tree":{"dependencies":[],"tags":[]},"union_find":{"dependencies":[],"tags":[]},"dinic":{"dependencies":[],"tags":[]},"segbeats":{"dependencies":[],"tags":[]},"hld":{"dependencies":[],"tags":[]},"uf_checklist":{"dependencies":["union_find"],"tags":[]},"fp":{"dependencies":[],"tags":[]},"binary":{"dependencies":[],"tags":[]},"elim":{"dependencies":[],"tags":[]},"next_permutation":{"dependencies":[],"tags":[]},"skew-heap":{"dependencies":[],"tags":[]},"lg":{"dependencies":[],"tags":[]},"randtools":{"dependencies":[],"tags":[]},"accum":{"dependencies":[],"tags":[]},"heap_slope_trick":{"dependencies":[],"tags":[]},"trie":{"dependencies":[],"tags":[]},"segbeats_task3":{"dependencies":[],"tags":[]},"sparse_table":{"dependencies":[],"tags":[]}} \ No newline at end of file +dependencies = {"trial":{"dependencies":[],"tags":[]},"hld":{"dependencies":[],"tags":[]},"accum":{"dependencies":[],"tags":[]},"next_permutation":{"dependencies":[],"tags":[]},"riff":{"dependencies":[],"tags":[]},"skew-heap":{"dependencies":[],"tags":[]},"hungarian":{"dependencies":[],"tags":[]},"numeric_search":{"dependencies":[],"tags":[]},"bitvec":{"dependencies":[],"tags":[]},"suffix_array":{"dependencies":[],"tags":[]},"segbeats":{"dependencies":[],"tags":[]},"newton":{"dependencies":[],"tags":[]},"tree_fold":{"dependencies":[],"tags":[]},"naive_poly":{"dependencies":[],"tags":[]},"uf_checklist":{"dependencies":["union_find"],"tags":[]},"erato":{"dependencies":[],"tags":[]},"veb":{"dependencies":[],"tags":[]},"union_find":{"dependencies":[],"tags":[]},"lin_ineq":{"dependencies":[],"tags":[]},"rb":{"dependencies":[],"tags":[]},"z_algo":{"dependencies":[],"tags":[]},"lg":{"dependencies":[],"tags":[]},"trie":{"dependencies":[],"tags":[]},"avl_tree":{"dependencies":[],"tags":[]},"low_link":{"dependencies":[],"tags":[]},"binary":{"dependencies":[],"tags":[]},"bsgs":{"dependencies":[],"tags":[]},"convex_hull":{"dependencies":[],"tags":[]},"rbtree":{"dependencies":[],"tags":[]},"link_cut_tree":{"dependencies":[],"tags":[]},"segtree":{"dependencies":[],"tags":[]},"vec_lines":{"dependencies":[],"tags":[]},"splay_tree":{"dependencies":[],"tags":[]},"lazy_segbeats":{"dependencies":[],"tags":[]},"euclid":{"dependencies":[],"tags":[]},"dinic":{"dependencies":[],"tags":[]},"lagrange":{"dependencies":["fp"],"tags":[]},"gco":{"dependencies":["dinic"],"tags":[]},"fp":{"dependencies":[],"tags":[]},"manacher":{"dependencies":[],"tags":[]},"zeta":{"dependencies":[],"tags":[]},"graph":{"dependencies":[],"tags":[]},"elim":{"dependencies":[],"tags":[]},"fps":{"dependencies":["fp"],"tags":[]},"heap_tricks":{"dependencies":[],"tags":[]},"io":{"dependencies":[],"tags":[]},"partially_persistent_union_find":{"dependencies":[],"tags":[]},"dual_segtree":{"dependencies":[],"tags":[]},"randtools":{"dependencies":[],"tags":[]},"mincost_flow":{"dependencies":[],"tags":[]},"monotone_minima":{"dependencies":[],"tags":[]},"gss":{"dependencies":[],"tags":[]},"segbeats_task3":{"dependencies":[],"tags":[]},"sparse_table":{"dependencies":[],"tags":[]},"lazy_segtree":{"dependencies":[],"tags":[]},"swag":{"dependencies":[],"tags":[]},"heap_slope_trick":{"dependencies":[],"tags":[]},"cipolla":{"dependencies":[],"tags":[]},"rational":{"dependencies":[],"tags":[]},"interval_heap":{"dependencies":[],"tags":[]},"wavelet_matrix":{"dependencies":[],"tags":[]},"hopkarp":{"dependencies":[],"tags":[]},"cht":{"dependencies":[],"tags":[]}} \ No newline at end of file diff --git a/help.html b/help.html index 5d8bdcdf..13de129a 100644 --- a/help.html +++ b/help.html @@ -1,4 +1,4 @@ -Rustdoc help
Rustdoc help
-

Rustdoc help

Back
\ No newline at end of file +

Rustdoc help

Back
\ No newline at end of file diff --git a/implementors/riff/slice_ext/trait.SliceExt.js b/implementors/riff/slice_ext/trait.SliceExt.js new file mode 100644 index 00000000..fd2b2c4a --- /dev/null +++ b/implementors/riff/slice_ext/trait.SliceExt.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"riff":[] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/serde/ser/trait.Serialize.js b/implementors/serde/ser/trait.Serialize.js index 42cbdf38..19f94c3c 100644 --- a/implementors/serde/ser/trait.Serialize.js +++ b/implementors/serde/ser/trait.Serialize.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"snippetter":[["impl Serialize for CrateMetadata"]] +"snippetter":[["impl Serialize for CrateMetadata"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/riff/all.html b/riff/all.html index cb0c313c..ce88fb41 100644 --- a/riff/all.html +++ b/riff/all.html @@ -32,4 +32,4 @@ }); -
\ No newline at end of file +
\ No newline at end of file diff --git a/riff/index.html b/riff/index.html index 57c15a48..6d22b9c1 100644 --- a/riff/index.html +++ b/riff/index.html @@ -32,5 +32,5 @@ }); -

Crate riff

source ·
Expand description

Future and otherworldly Rust features.

-

Traits

Functions

\ No newline at end of file +

Crate riff

source ·
Expand description

Future and otherworldly Rust features.

+

Traits

Functions

\ No newline at end of file diff --git a/riff/sidebar-items.js b/riff/sidebar-items.js index 531778ef..5c84a9da 100644 --- a/riff/sidebar-items.js +++ b/riff/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"fn":["bitmask_combinations","bitmask_subsets","i2powm1"],"trait":["BinarySearch","ChangeMinMax","PopIf","Unsigned"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"fn":["bitmask_combinations","bitmask_subsets","i2powm1"],"trait":["BinarySearch","ChangeMinMax","PopIf","SliceExt","Unsigned"]}; \ No newline at end of file diff --git a/riff/slice_ext/trait.SliceExt.html b/riff/slice_ext/trait.SliceExt.html new file mode 100644 index 00000000..e379cb88 --- /dev/null +++ b/riff/slice_ext/trait.SliceExt.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

Redirecting to ../../riff/trait.SliceExt.html...

+ + + \ No newline at end of file diff --git a/riff/trait.SliceExt.html b/riff/trait.SliceExt.html new file mode 100644 index 00000000..45604ce6 --- /dev/null +++ b/riff/trait.SliceExt.html @@ -0,0 +1,46 @@ +SliceExt in riff - Rust
+ + + + + +

Trait riff::SliceExt

source ·
pub trait SliceExt {
+    type Item;
+
+    // Required method
+    fn chunk_by<F>(&self, f: F) -> SliceChunkBy<'_, Self::Item, F>
+       where F: FnMut(&Self::Item, &Self::Item) -> bool;
+}
Expand description

A trait for slices.

+

Required Associated Types§

Required Methods§

source

fn chunk_by<F>(&self, f: F) -> SliceChunkBy<'_, Self::Item, F>where + F: FnMut(&Self::Item, &Self::Item) -> bool,

Groups adjacent elements by a predicate. +(Rust 1.77.0)

+

Implementations on Foreign Types§

source§

impl<T> SliceExt for [T]

§

type Item = T

source§

fn chunk_by<F>(&self, f: F) -> SliceChunkBy<'_, Self::Item, F>where + F: FnMut(&Self::Item, &Self::Item) -> bool,

Implementors§

\ No newline at end of file diff --git a/search-index.js b/search-index.js index a9eb12bc..6bfb433e 100644 --- a/search-index.js +++ b/search-index.js @@ -22,7 +22,7 @@ var searchIndex = JSON.parse('{\ "hld":{"doc":"Heavy-Light Decomposition","t":"DDLLLLLLLLLLLMMLLLLLLMLLLLLLLL","n":["Hld","PathSegments","between","borrow","borrow","borrow_mut","borrow_mut","dist","from","from","from_edge_iterator","from_edges","from_short_parents","head","index","into","into","into_iter","lca","ledacy_iter_v","next","parent","path_segments","path_segments_by_index","try_from","try_from","try_into","try_into","type_id","type_id"],"q":[[0,"hld"]],"d":["Heavy-Light Decomposition","Iterator","j lies between i and k","","","","","Returns the distance between two vertices","Returns the argument unchanged.","Returns the argument unchanged.","Iterator version of from_edges","From the set of undirected edges $(u _ 0, v _ 0), \\\\dots ( …","From $p _ 1, \\\\dots, p _ { n - 1 }$. Root is always $0$.","vertex id -> head vertex id","vertex id -> vertex index (in the hld order)","Calls U::from(self).","Calls U::from(self).","","Returns the lca","deprecated","","vertex id -> parent vertex id","Decompose the (directed) path from --> to to the path …","Variation of path_segments that returns the index.","","","","","",""],"i":[0,0,1,1,7,1,7,1,1,7,1,1,1,1,1,1,7,7,1,1,7,1,1,1,1,7,1,7,1,7],"f":[0,0,[[1,2,2,2],3],[[]],[[]],[[]],[[]],[[1,2,2],2],[[]],[[]],[[2,4]],[2],[[[5,[2]]]],0,0,[[]],[[]],[[]],[[1,2,2],2],[[1,2,2],6],[7,8],0,[[1,2,2],7],[[1,2,2],6],[[],9],[[],9],[[],9],[[],9],[[],10],[[],10]],"c":[],"p":[[3,"Hld"],[15,"usize"],[15,"bool"],[8,"ExactSizeIterator"],[3,"Vec"],[8,"Iterator"],[3,"PathSegments"],[4,"Option"],[4,"Result"],[3,"TypeId"]]},\ "hopkarp":{"doc":"Finds a maximum cardinality bipartite matching by …","t":"DMLLLLMLLLMLLFLMMLLLL","n":["HopkarpResult","backward","borrow","borrow_mut","clone","clone_into","count","default","eq","fmt","forward","from","hash","hopkarp","into","left","right","to_owned","try_from","try_into","type_id"],"q":[[0,"hopkarp"]],"d":["Summary of the result of Hopcroft―Karp’s algorithm.","","","","","","Cardinality of a maximum cardinality bipartite matching.","","","","","Returns the argument unchanged.","","Takes a forward adjacency list and the length of the right …","Calls U::from(self).","","","","","",""],"i":[0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1],"f":[0,0,[[]],[[]],[1,1],[[]],0,[[],1],[[1,1],2],[[1,3],4],0,[[]],[[1,5]],[6,1],[[]],0,0,[[]],[[],7],[[],7],[[],8]],"c":[],"p":[[3,"HopkarpResult"],[15,"bool"],[3,"Formatter"],[6,"Result"],[8,"Hasher"],[15,"usize"],[4,"Result"],[3,"TypeId"]]},\ "hungarian":{"doc":"Solve an assignment problem by Hungarian algorithm.","t":"DIMLLLLLLMLFKLMMLLLLMK","n":["HungarianResult","Value","backward","borrow","borrow_mut","clone","clone_into","eq","fmt","forward","from","hungarian","infinity","into","left","right","to_owned","try_from","try_into","type_id","value","zero"],"q":[[0,"hungarian"]],"d":["A value object to represent the optimal solution of an …","A trait to adapt a value type to hungarian","Takes the second component of a match and returns the …","","","","","","","Takes the first component of a match and returns the …","Returns the argument unchanged.","See the crate level documentation","","Calls U::from(self).","A left half of an optimal potential.","A right half of an optimal potential.","","","","","The value of an optimal solution.",""],"i":[0,0,3,3,3,3,3,3,3,3,3,0,2,3,3,3,3,3,3,3,3,2],"f":[0,0,0,[[]],[[]],[[[3,[[0,[1,2]]]]],[[3,[[0,[1,2]]]]]],[[]],[[[3,[[0,[4,2]]]],[3,[[0,[4,2]]]]],5],[[[3,[[0,[6,2]]]],7],8],0,[[]],[[],[[3,[2]]]],[[]],[[]],0,0,[[]],[[],9],[[],9],[[],10],0,[[]]],"c":[],"p":[[8,"Clone"],[8,"Value"],[3,"HungarianResult"],[8,"PartialEq"],[15,"bool"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[4,"Result"],[3,"TypeId"]]},\ -"interval_heap":{"doc":"Interval Heaps","t":"DLLLLLLLLLLLLLLLLLLLLLLL","n":["IntervalHeap","borrow","borrow_mut","clone","clone_into","default","eq","extend","fmt","from","from","from_iter","into","into_iter","new","peek_max","peek_min","pop_max","pop_min","push","to_owned","try_from","try_into","type_id"],"q":[[0,"interval_heap"]],"d":["Interval heap (double-ended priority queue)","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","Constructs a new, empty interval heap.","Returns $\\\\max(S)$.","Returns $\\\\min(S)$.","Removes and returns $\\\\max(S)$.","Removes and returns $\\\\min(S)$.","$S \\\\leftarrow S \\\\cup \\\\{\\\\!\\\\{x\\\\}\\\\!\\\\}$.","","","",""],"i":[0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3],"f":[0,[[]],[[]],[[[3,[[0,[1,2]]]]],[[3,[[0,[1,2]]]]]],[[]],[[],[[3,[2]]]],[[[3,[[0,[4,2]]]],[3,[[0,[4,2]]]]],5],[[[3,[2]],6]],[[[3,[[0,[7,2]]]],8],9],[[]],[[[10,[2]]],[[3,[2]]]],[6,[[3,[2]]]],[[]],[[[3,[2]]]],[[],[[3,[2]]]],[[[3,[2]]],[[11,[2]]]],[[[3,[2]]],[[11,[2]]]],[[[3,[2]]],[[11,[2]]]],[[[3,[2]]],[[11,[2]]]],[[[3,[2]],2]],[[]],[[],12],[[],12],[[],13]],"c":[],"p":[[8,"Clone"],[8,"Ord"],[3,"IntervalHeap"],[8,"PartialEq"],[15,"bool"],[8,"IntoIterator"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[3,"Vec"],[4,"Option"],[4,"Result"],[3,"TypeId"]]},\ +"interval_heap":{"doc":"Interval Heaps","t":"DLLLLLLLLLLLLLLLLLLLLLLL","n":["IntervalHeap","borrow","borrow_mut","clone","clone_into","default","eq","extend","fmt","from","from","from_iter","into","into_iter","new","peek_max","peek_min","pop_max","pop_min","push","to_owned","try_from","try_into","type_id"],"q":[[0,"interval_heap"]],"d":["Interval heap (double-ended priority queue)","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","Constructs a new, empty interval heap.","Returns $\\\\max(S)$.","Returns $\\\\min(S)$.","Removes and returns $\\\\max(S)$.","Removes and returns $\\\\min(S)$.","$S \\\\leftarrow S \\\\cup \\\\{\\\\!\\\\{x\\\\}\\\\!\\\\}$.","","","",""],"i":[0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3],"f":[0,[[]],[[]],[[[3,[[0,[1,2]]]]],[[3,[[0,[1,2]]]]]],[[]],[[],[[3,[2]]]],[[[3,[[0,[4,2]]]],[3,[[0,[4,2]]]]],5],[[[3,[2]],6]],[[[3,[[0,[7,2]]]],8],9],[[[10,[2]]],[[3,[2]]]],[[]],[6,[[3,[2]]]],[[]],[[[3,[2]]]],[[],[[3,[2]]]],[[[3,[2]]],[[11,[2]]]],[[[3,[2]]],[[11,[2]]]],[[[3,[2]]],[[11,[2]]]],[[[3,[2]]],[[11,[2]]]],[[[3,[2]],2]],[[]],[[],12],[[],12],[[],13]],"c":[],"p":[[8,"Clone"],[8,"Ord"],[3,"IntervalHeap"],[8,"PartialEq"],[15,"bool"],[8,"IntoIterator"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[3,"Vec"],[4,"Option"],[4,"Result"],[3,"TypeId"]]},\ "io":{"doc":"Read input from stdin and parse it.","t":"IFK","n":["ParseLine","input","parse_line"],"q":[[0,"io"]],"d":["Trait for types that can be parsed.","Read input from stdin and parse it.",""],"i":[0,0,1],"f":[0,[[],1],[2]],"c":[],"p":[[8,"ParseLine"],[15,"str"]]},\ "lagrange":{"doc":"ラグランジュ補完","t":"FFFF","n":["evaluate","interpolate","interpolate_first_n","interpolate_one_point_first_n"],"q":[[0,"lagrange"]],"d":["多項式の係数から 1 …","x 座標の異なるような N 点の評価から、N - 1 …","0..N の評価から、N - 1 …","0..N での評価から決まる N - 1 …"],"i":[0,0,0,0],"f":[[1,1],[[],[[2,[1]]]],[[],[[2,[1]]]],[1,1]],"c":[],"p":[[3,"Fp"],[3,"Vec"]]},\ "lazy_segbeats":{"doc":"","t":"IDLLLLLLLLLLKKKLFLLLLLLLLK","n":["Elm","Segbeats","borrow","borrow_mut","change_max","change_min","clone","clone_into","eq","fmt","from","into","max_value","min_value","mul_u32","new","open","query_max","query_min","query_sum","range_add","to_owned","try_from","try_into","type_id","zero"],"q":[[0,"lazy_segbeats"]],"d":["","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","",""],"i":[0,0,2,2,2,2,2,2,2,2,2,2,1,1,1,2,0,2,2,2,2,2,2,2,2,1],"f":[0,0,[[]],[[]],[[[2,[1]],[0,[3,[5,[4]]]],1]],[[[2,[1]],[0,[3,[5,[4]]]],1]],[[[2,[3]]],[[2,[3]]]],[[]],[[[2,[6]],[2,[6]]],7],[[[2,[8]],9],10],[[]],[[]],[[]],[[]],[11],[[],[[2,[1]]]],[[4,[5,[4]]],[[12,[4]]]],[[[2,[1]],[5,[4]]],1],[[[2,[1]],[5,[4]]],1],[[[2,[1]],[5,[4]]],1],[[[2,[1]],[0,[3,[5,[4]]]],1]],[[]],[[],13],[[],13],[[],14],[[]]],"c":[],"p":[[8,"Elm"],[3,"Segbeats"],[8,"Clone"],[15,"usize"],[8,"RangeBounds"],[8,"PartialEq"],[15,"bool"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[15,"u32"],[3,"Range"],[4,"Result"],[3,"TypeId"]]},\ @@ -43,7 +43,7 @@ var searchIndex = JSON.parse('{\ "rational":{"doc":"","t":"DILLLLLLLLLLLLLLLLLLLLLKKLLLLLLLLLKLLLLLLLLLLLLLLK","n":["Rational","Signed","add","add","add","add","add_assign","borrow","borrow_mut","clone","clone_into","cmp","decompose","default","div","div","div","div","div_assign","eq","fmt","from","from_str","generic_abs","generic_signum","into","into_f64","mul","mul","mul","mul","mul_assign","neg","new","one","partial_cmp","product","product","sub","sub","sub","sub","sub_assign","sum","sum","to_owned","try_from","try_into","type_id","zero"],"q":[[0,"rational"]],"d":["","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1],"f":[0,0,[[[2,[1]],[2,[1]]]],[[[2,[1]],[2,[1]]],[[2,[1]]]],[[[2,[1]],[2,[1]]]],[[[2,[1]],[2,[1]]]],[[[2,[1]],[2,[1]]]],[[]],[[]],[[[2,[[0,[3,1]]]]],[[2,[[0,[3,1]]]]]],[[]],[[[2,[1]],[2,[1]]],4],[[[2,[1]]]],[[],[[2,[[0,[5,1]]]]]],[[[2,[1]],[2,[1]]]],[[[2,[1]],[2,[1]]]],[[[2,[1]],[2,[1]]]],[[[2,[1]],[2,[1]]],[[2,[1]]]],[[[2,[1]],[2,[1]]]],[[[2,[1]],[2,[1]]],6],[[[2,[1]],7],8],[[]],[9,[[10,[[2,[1]]]]]],[[]],[[]],[[]],[[[2,[1]]],11],[[[2,[1]],[2,[1]]]],[[[2,[1]],[2,[1]]]],[[[2,[1]],[2,[1]]]],[[[2,[1]],[2,[1]]],[[2,[1]]]],[[[2,[1]],[2,[1]]]],[[[2,[1]]]],[[1,1],[[2,[1]]]],[[]],[[[2,[1]],[2,[1]]],[[12,[4]]]],[13,[[2,[1]]]],[13,[[2,[1]]]],[[[2,[1]],[2,[1]]],[[2,[1]]]],[[[2,[1]],[2,[1]]]],[[[2,[1]],[2,[1]]]],[[[2,[1]],[2,[1]]]],[[[2,[1]],[2,[1]]]],[13,[[2,[1]]]],[13,[[2,[1]]]],[[]],[[],10],[[],10],[[],14],[[]]],"c":[],"p":[[8,"Signed"],[3,"Rational"],[8,"Clone"],[4,"Ordering"],[8,"Default"],[15,"bool"],[3,"Formatter"],[6,"Result"],[15,"str"],[4,"Result"],[15,"f64"],[4,"Option"],[8,"Iterator"],[3,"TypeId"]]},\ "rb":{"doc":"Containers for storing data in a red-black tree.","t":"QDIDDIDQQLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLKLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLL","n":["Acc","Multimap","MultimapOp","MultimapSeg","Multiset","Op","Seg","Value","Value","append","binary_search","binary_search","binary_search","binary_search_ptr","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","default","default","default","default","display","fmt","fmt","fmt","fold","from","from","from","from","from_iter","identity","insert","insert","insert","insert","into","into","into","into","into_iter","into_iter","into_iter","into_iter","is_empty","is_empty","is_empty","is_empty","iter","iter","iter","iter","join","len","len","len","len","lower_bound","lower_bound","lower_bound","mul","new","new","new","new","nth","nth","nth","nth","nth_mut","nth_mut","partition_point","partition_point","partition_point","remove","remove","remove","remove","remove_nth","remove_nth","remove_nth","split_off","table","to_acc","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","upper_bound","upper_bound","upper_bound"],"q":[[0,"rb"]],"d":["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[6,0,0,0,0,0,0,6,1,2,7,10,11,7,7,10,11,2,7,10,11,2,7,10,11,2,2,10,11,2,2,7,10,11,2,2,1,7,10,11,2,7,10,11,2,7,10,11,2,7,10,11,2,7,10,11,2,6,7,10,11,2,7,10,11,1,7,10,11,2,7,10,11,2,7,2,7,10,11,7,10,11,2,7,10,11,2,2,6,7,10,11,2,7,10,11,2,7,10,11,2,7,10,11],"f":[0,0,0,0,0,0,0,0,0,[[[2,[1]],[2,[1]]]],[[[7,[[0,[3,[5,[[0,[3,4]]]]]],3,6]],[0,[3,4]]],[[9,[8]]]],[[[10,[[0,[3,[5,[[0,[3,4]]]]]],3]],[0,[3,4]]],[[9,[8]]]],[[[11,[[0,[3,[5,[[0,[3,4]]]]]],3]],[0,[3,4]]],[[9,[8,8]]]],[[[7,[[0,[3,[5,[[0,[3,4]]]]]],3,6]],[0,[3,4]]],[[9,[8]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[[7,[3,6]]]],[[],[[10,[3]]]],[[],[[11,[3]]]],[[],[[2,[1]]]],[[[2,[1]]],[[0,[1]]]],[[[10,[[0,[3,12]],12]],13],14],[[[11,[[0,[3,12]]]],13],14],[[[2,[1]],13],14],[[[2,[1]],[15,[8]]]],[[]],[[]],[[]],[[]],[16,[[2,[1]]]],[[]],[[[7,[3,6]],3]],[[[10,[3]],3]],[[[11,[3]],3]],[[[2,[1]],8]],[[]],[[]],[[]],[[]],[[[7,[3,6]]]],[[[10,[3]]]],[[[11,[3]]]],[[[2,[1]]]],[[[7,[3,6]]],17],[[[10,[3]]],17],[[[11,[3]]],17],[[[2,[1]]],17],[[[7,[3,6]]],[[0,[3,6]]]],[[[10,[3]]],[[0,[3]]]],[[[11,[3]]],[[0,[3]]]],[[[2,[1]]],[[0,[1]]]],[[18,18]],[[[7,[3,6]]],8],[[[10,[3]]],8],[[[11,[3]]],8],[[[2,[1]]],8],[[[7,[3,6]],3],8],[[[10,[3]],3],8],[[[11,[3]],3],8],[[]],[[],[[7,[3,6]]]],[[],[[10,[3]]]],[[],[[11,[3]]]],[[],[[2,[1]]]],[[[7,[3,6]],8]],[[[10,[3]],8]],[[[11,[3]],8],3],[[[2,[1]],8]],[[[7,[3,6]],8]],[[[2,[1]],8],[[0,[1]]]],[[[7,[3,6]],19],8],[[[10,[3]],19],8],[[[11,[3]],19],8],[[[7,[[0,[3,[5,[[0,[3,4]]]]]],3,6]],[0,[3,4]]],18],[[[10,[[0,[3,[5,[[0,[3,4]]]]]],3]],[0,[3,4]]],18],[[[11,[[0,[3,[5,[[0,[3,4]]]]]],3]],[0,[3,4]]],[[18,[[0,[3,[5,[[0,[3,4]]]]]],3]]]],[[[2,[1]],8]],[[[7,[3,6]],8]],[[[10,[3]],8]],[[[11,[3]],8],3],[[[2,[1]],8],[[2,[1]]]],[[[2,[1]]],[[0,[1]]]],[[]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],20],[[],20],[[],20],[[],20],[[[7,[3,6]],3],8],[[[10,[3]],3],8],[[[11,[3]],3],8]],"c":[],"p":[[8,"Op"],[3,"Seg"],[8,"Ord"],[8,"Sized"],[8,"Borrow"],[8,"MultimapOp"],[3,"MultimapSeg"],[15,"usize"],[4,"Result"],[3,"Multimap"],[3,"Multiset"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[8,"RangeBounds"],[8,"IntoIterator"],[15,"bool"],[4,"Option"],[8,"FnMut"],[3,"TypeId"]]},\ "rbtree":{"doc":"赤黒木","t":"DDIDQQLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLKLLLLLLLLLLL","n":["Iter","Nop","Op","RbTree","Summary","Value","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","default","delete","eq","fmt","fold","from","from","from","from_iter","get","hash","insert","into","into","into","into_iter","into_iter","is_empty","iter","len","merge","merge3","new","next","op","op","partition_point","push_back","push_front","singleton","split","split3","summarize","summarize","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id"],"q":[[0,"rbtree"]],"d":["iter の返す型","…","…","赤黒木です。","中間ノードに持たせる値","葉に持たせる値","","","","","","","","","","i 番目の Nil …","","","range の範囲で畳み込みます。","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","…","i 番目の要素をコピーして返します。","","i 番目に新しい Nil ノードを挿入します。","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","空ならば true、さもなくば false …","…","長さ、すなわち Nil …","2 つの赤黒木をマージします。","3 つの赤黒木をマージします。","空の赤黒木を生成します。","","演算","","中間ノードの情報で二分探索します。","新しいノードを末尾に挿入します。","新しいノードを先頭に挿入します。","Nil …","i 番目で分割します。","l, r 番目で 3 つに分割します。","葉の値から中間ノードの値への変換","","","","","","","","","","",""],"i":[0,0,0,0,2,2,3,20,16,3,20,16,3,3,3,3,3,3,3,3,20,16,3,3,3,3,3,20,16,3,16,3,3,3,3,3,3,16,2,20,3,3,3,3,3,3,2,20,3,3,20,16,3,20,16,3,20,16],"f":[0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[[3,[1,2]]],[[3,[1,2]]]],[[]],[[],[[3,[2]]]],[[[3,[2]],4]],[[[3,[5,2]],[3,[5,2]]],6],[[[3,[7,2]],8],9],[[[3,[2]],[10,[4]]],11],[[]],[[]],[[]],[12,[[3,[2]]]],[[[3,[13,2]],4],13],[[[3,[14,2]],15]],[[[3,[2]],4]],[[]],[[]],[[]],[[[3,[2]]]],[[]],[[[3,[2]]],6],[[[3,[2]]],[[16,[2]]]],[[[3,[2]]],4],[[[3,[2]],[3,[2]]],[[3,[2]]]],[[[3,[2]],[3,[2]],[3,[2]]],[[3,[2]]]],[[],[[3,[2]]]],[[[16,[2]]],11],[[]],[[]],[[[3,[2]],17],4],[[[3,[2]]]],[[[3,[2]]]],[[],[[3,[2]]]],[[[3,[2]],4]],[[[3,[2]],4,4]],[[]],[[]],[[]],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],19],[[],19],[[],19]],"c":[],"p":[[8,"Clone"],[8,"Op"],[3,"RbTree"],[15,"usize"],[8,"PartialEq"],[15,"bool"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[8,"RangeBounds"],[4,"Option"],[8,"IntoIterator"],[8,"Copy"],[8,"Hash"],[8,"Hasher"],[3,"Iter"],[8,"Fn"],[4,"Result"],[3,"TypeId"],[3,"Nop"]]},\ -"riff":{"doc":"Future and otherworldly Rust features.","t":"SIISSIIQSLLFFLLLLFLLLLLLLLLLLLKKKLLLLLLLLLLLLK","n":["BITS","BinarySearch","ChangeMinMax","MAX","ONE","PopIf","Unsigned","Value","ZERO","bit_length","bit_length","bitmask_combinations","bitmask_subsets","change_max","change_max","change_min","change_min","i2powm1","lower_bound","lower_bound","lower_bound_by","lower_bound_by","lower_bound_by_key","lower_bound_by_key","lower_bound_value","lower_bound_value","lower_bound_value_by","lower_bound_value_by","lower_bound_value_by_key","lower_bound_value_by_key","partition_point","partition_point_value","pop_if","upper_bound","upper_bound","upper_bound_by","upper_bound_by","upper_bound_by_key","upper_bound_by_key","upper_bound_value","upper_bound_value","upper_bound_value_by","upper_bound_value_by","upper_bound_value_by_key","upper_bound_value_by_key","wrapping_neg"],"q":[[0,"riff"]],"d":["","{lower,upper}_bound, etc","change_min and change_max","","","Conditional pop function.","Unsigned integer types.","","","","","Generates all the $k$-subsets of $[0, N[$","Generates all the subsets of bs.","","","","","Returns $2^n - 1$.","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[2,0,0,2,2,0,0,8,2,2,2,0,0,9,9,9,9,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,8,10,10,10,10,10,10,10,10,10,10,10,10,2],"f":[0,0,0,0,0,0,0,0,0,[[],1],[[],1],[[1,1],[[0,[2]]]],[2,[[0,[2]]]],[[]],[[]],[[]],[[]],[1,2],[3,4],[3,4],[5,4],[5,4],[[3,5],4],[[3,5],4],[3,[[6,[3]]]],[3,[[6,[3]]]],[5,6],[5,6],[[3,5],6],[[3,5],6],[5,4],[5,6],[7,6],[3,4],[3,4],[5,4],[5,4],[[3,5],4],[[3,5],4],[3,[[6,[3]]]],[3,[[6,[3]]]],[5,6],[5,6],[[3,5],6],[[3,5],6],[[]]],"c":[],"p":[[15,"u32"],[8,"Unsigned"],[8,"Ord"],[15,"usize"],[8,"FnMut"],[4,"Option"],[8,"FnOnce"],[8,"PopIf"],[8,"ChangeMinMax"],[8,"BinarySearch"]]},\ +"riff":{"doc":"Future and otherworldly Rust features.","t":"SIIQSSIIIQSLLFFLLLLKFLLLLLLLLLLLLKKKLLLLLLLLLLLLK","n":["BITS","BinarySearch","ChangeMinMax","Item","MAX","ONE","PopIf","SliceExt","Unsigned","Value","ZERO","bit_length","bit_length","bitmask_combinations","bitmask_subsets","change_max","change_max","change_min","change_min","chunk_by","i2powm1","lower_bound","lower_bound","lower_bound_by","lower_bound_by","lower_bound_by_key","lower_bound_by_key","lower_bound_value","lower_bound_value","lower_bound_value_by","lower_bound_value_by","lower_bound_value_by_key","lower_bound_value_by_key","partition_point","partition_point_value","pop_if","upper_bound","upper_bound","upper_bound_by","upper_bound_by","upper_bound_by_key","upper_bound_by_key","upper_bound_value","upper_bound_value","upper_bound_value_by","upper_bound_value_by","upper_bound_value_by_key","upper_bound_value_by_key","wrapping_neg"],"q":[[0,"riff"]],"d":["","{lower,upper}_bound, etc","change_min and change_max","","","","Conditional pop function.","A trait for slices.","Unsigned integer types.","","","","","Generates all the $k$-subsets of $[0, N[$","Generates all the subsets of bs.","","","","","Groups adjacent elements by a predicate. (Rust 1.77.0)","Returns $2^n - 1$.","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[2,0,0,8,2,2,0,0,0,9,2,2,2,0,0,10,10,10,10,8,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,9,11,11,11,11,11,11,11,11,11,11,11,11,2],"f":[0,0,0,0,0,0,0,0,0,0,0,[[],1],[[],1],[[1,1],[[0,[2]]]],[2,[[0,[2]]]],[[]],[[]],[[]],[[]],[3,[[0,[3]]]],[1,2],[4,5],[4,5],[3,5],[3,5],[[4,3],5],[[4,3],5],[4,[[6,[4]]]],[4,[[6,[4]]]],[3,6],[3,6],[[4,3],6],[[4,3],6],[3,5],[3,6],[7,6],[4,5],[4,5],[3,5],[3,5],[[4,3],5],[[4,3],5],[4,[[6,[4]]]],[4,[[6,[4]]]],[3,6],[3,6],[[4,3],6],[[4,3],6],[[]]],"c":[],"p":[[15,"u32"],[8,"Unsigned"],[8,"FnMut"],[8,"Ord"],[15,"usize"],[4,"Option"],[8,"FnOnce"],[8,"SliceExt"],[8,"PopIf"],[8,"ChangeMinMax"],[8,"BinarySearch"]]},\ "segbeats":{"doc":"","t":"IDLLLLLLLLLLKKKLFLLLLLLLK","n":["Elm","Segbeats","borrow","borrow_mut","change_max","change_min","clone","clone_into","eq","fmt","from","into","max_value","min_value","mul_u32","new","open","query_max","query_min","query_sum","to_owned","try_from","try_into","type_id","zero"],"q":[[0,"segbeats"]],"d":["","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","",""],"i":[0,0,2,2,2,2,2,2,2,2,2,2,1,1,1,2,0,2,2,2,2,2,2,2,1],"f":[0,0,[[]],[[]],[[[2,[1]],[0,[3,[5,[4]]]],1]],[[[2,[1]],[0,[3,[5,[4]]]],1]],[[[2,[3]]],[[2,[3]]]],[[]],[[[2,[6]],[2,[6]]],7],[[[2,[8]],9],10],[[]],[[]],[[]],[[]],[11],[[],[[2,[1]]]],[[4,[5,[4]]],[[12,[4]]]],[[[2,[1]],[5,[4]]],1],[[[2,[1]],[5,[4]]],1],[[[2,[1]],[5,[4]]],1],[[]],[[],13],[[],13],[[],14],[[]]],"c":[],"p":[[8,"Elm"],[3,"Segbeats"],[8,"Clone"],[15,"usize"],[8,"RangeBounds"],[8,"PartialEq"],[15,"bool"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[15,"u32"],[3,"Range"],[4,"Result"],[3,"TypeId"]]},\ "segbeats_task3":{"doc":"","t":"IDLLLLLLLLLLLKKKLFLLLLLLLLK","n":["Elm","Segbeats","borrow","borrow_mut","change_max","change_min","clone","clone_into","count_changes","eq","fmt","from","into","max_value","min_value","mul_u32","new","open","query_max","query_min","query_sum","range_add","to_owned","try_from","try_into","type_id","zero"],"q":[[0,"segbeats_task3"]],"d":["","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","",""],"i":[0,0,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,0,2,2,2,2,2,2,2,2,1],"f":[0,0,[[]],[[]],[[[2,[1]],[0,[3,[5,[4]]]],1]],[[[2,[1]],[0,[3,[5,[4]]]],1]],[[[2,[3]]],[[2,[3]]]],[[]],[[[2,[1]],[5,[4]]],6],[[[2,[7]],[2,[7]]],8],[[[2,[1]],9],10],[[]],[[]],[[]],[[]],[11],[[],[[2,[1]]]],[[4,[5,[4]]],[[12,[4]]]],[[[2,[1]],[5,[4]]],1],[[[2,[1]],[5,[4]]],1],[[[2,[1]],[5,[4]]],1],[[[2,[1]],[0,[3,[5,[4]]]],1]],[[]],[[],13],[[],13],[[],14],[[]]],"c":[],"p":[[8,"Elm"],[3,"Segbeats"],[8,"Clone"],[15,"usize"],[8,"RangeBounds"],[15,"u64"],[8,"PartialEq"],[15,"bool"],[3,"Formatter"],[6,"Result"],[15,"u32"],[3,"Range"],[4,"Result"],[3,"TypeId"]]},\ "segtree":{"doc":"Segment tree and its variants.","t":"DDDIDDDQLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLL","n":["Dense2dEntry","Dense2dSegtree","Entry","Op","Segtree","SegtreeWithCompression","Sparse2dSegtree","Value","apply","as_slice","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","collect_map","collect_map","collect_vec","deref","deref","deref_mut","deref_mut","drop","drop","entry","entry","entry","fmt","fmt","fmt","fmt","fmt","fold","fold","fold","fold","from","from","from","from","from","from","from_iter","from_iter","from_iter","from_len","identity","index","index","index","index","index","into","into","into","into","into","into","iter","iter","iter","iter","keys","max_right","min_left","mul","new","new","new","new","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id"],"q":[[0,"segtree"]],"d":["The result of Dense2dSegtree::entry.","A dense 2D segment tree.","The result of Segtree::entry.","A trait for segment tree operations.","A segment tree. Use as_slice() to debug.","A sparse (compressed) segment tree. Use collect_map() to …","A segment tree of segment trees (2D segment tree). The …","The value type.","Apply a function to $x_{k, l}$.","Returns a slice of $x_0, x_1, \\\\ldots, x_{n-1}$.","","","","","","","","","","","","","Collects the key-value pairs into a BTreeMap.","Collects the key-value pairs into a BTreeMap.","Collect to a $2$-dimensional vector.","","","","","","","Returns the entry of $x_i$.","Returns the entry of $x_k$. If $k$ is not found, it panics.","Returns the entry of $x_{i, j}$.","","","","","","Returns $x_l \\\\cdot x_{l+1} \\\\cdot \\\\ldots \\\\cdot x_{r-1}$.","Folds $\\\\left \\\\lbrace x_k \\\\mid k \\\\in \\\\text{{range}} \\\\right …","Folds $\\\\left \\\\lbrace x_{k, l} \\\\mid (k, l) \\\\in …","Fold $\\\\left \\\\lbrace x_{i, j} \\\\mid i \\\\in \\\\text{{range}}_i, …","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Constructs a new segment tree with the specified length.","Returns the identity value $e$.","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns an iterator of $x_0, x_1, \\\\ldots, x_{n-1}$.","Returns an iterator of $(k, x_k)$.","Returns the iterator of $(k, l, x_{k, l})$.","Returns an iterator that returns the rows $(x_{i, 0}, x_…","Returns the keys.","Returns the maximum $r$ s.t. $f(x _ l \\\\cdot \\\\dots \\\\cdot x …","Returns the minimum $l$ s.t. $f(x _ l \\\\cdot \\\\dots \\\\cdot x …","Multiplies two values: $x \\\\cdot y$.","Constructs with the specified values.","Constructs with the specified key-value pairs.","Constructs with the specified key-value pairs.","Constructs with the specified values.","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,0,0,0,3,4,6,6,11,7,4,9,12,6,11,7,4,9,12,7,4,9,11,12,11,12,11,12,6,7,9,6,11,7,4,9,6,7,4,9,6,11,7,4,9,12,6,7,4,6,3,6,7,4,4,9,6,11,7,4,9,12,6,7,4,9,7,6,6,3,6,7,4,9,6,11,7,4,9,12,6,11,7,4,9,12,6,11,7,4,9,12],"f":[0,0,0,0,0,0,0,0,[[[4,[[0,[1,2]],[0,[1,2]],3]],[0,[1,2]],[0,[1,2]],5]],[[[6,[3]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[7,[2,1,3]]],[[8,[2,1]]]],[[[4,[2,[0,[1,2]],2,[0,[1,2]],3]]],8],[[[9,[3]]],[[10,[10]]]],[[[11,[3]]]],[[[12,[3]]]],[[[11,[3]]]],[[[12,[3]]]],[[[11,[3]]]],[[[12,[3]]]],[[[6,[3]],13],[[11,[3]]]],[[[7,[1,3]],1],[[11,[3]]]],[[[9,[3]],13,13],[[12,[3]]]],[[[6,[3]],14],15],[[[11,[3]],14],15],[[[7,[16,3]],14],15],[[[4,[16,16,3]],14],15],[[[9,[3]],14],15],[[[6,[3]],[17,[13]]]],[[[7,[1,3]],[17,[1]]]],[[[4,[[0,[1,2]],[0,[1,2]],3]],[17,[[0,[1,2]]]],[0,[[17,[[0,[1,2]]]],2]]]],[[[9,[3]],[17,[13]],[17,[13]]]],[[]],[[]],[[]],[[]],[[]],[[]],[18,[[6,[3]]]],[18,[[7,[[0,[2,1]],3]]]],[18,[[4,[[0,[1,2]],[0,[1,2]],3]]]],[13,[[6,[3]]]],[[]],[[[6,[3]],13]],[[[7,[1,3]],1]],[[[4,[1,1,3]]]],[[[4,[1,1,3]],1]],[[[9,[3]],13]],[[]],[[]],[[]],[[]],[[]],[[]],[[[6,[3]]],19],[[[7,[1,3]]],20],[[[4,[[0,[1,2]],[0,[1,2]],3]]],20],[[[9,[3]]],20],[[[7,[1,3]]]],[[[6,[3]],13,5],13],[[[6,[3]],13,5],13],[[]],[[],[[6,[3]]]],[[],[[7,[2,1,3]]]],[[],[[4,[[0,[1,2]],[0,[1,2]],3]]]],[[],[[9,[3]]]],[[],21],[[],21],[[],21],[[],21],[[],21],[[],21],[[],21],[[],21],[[],21],[[],21],[[],21],[[],21],[[],22],[[],22],[[],22],[[],22],[[],22],[[],22]],"c":[],"p":[[8,"Ord"],[8,"Clone"],[8,"Op"],[3,"Sparse2dSegtree"],[8,"FnMut"],[3,"Segtree"],[3,"SegtreeWithCompression"],[3,"BTreeMap"],[3,"Dense2dSegtree"],[3,"Vec"],[3,"Entry"],[3,"Dense2dEntry"],[15,"usize"],[3,"Formatter"],[6,"Result"],[8,"Debug"],[8,"RangeBounds"],[8,"IntoIterator"],[3,"Iter"],[8,"Iterator"],[4,"Result"],[3,"TypeId"]]},\ diff --git a/settings.html b/settings.html index 23653185..f8ed25a3 100644 --- a/settings.html +++ b/settings.html @@ -1,4 +1,4 @@ -Rustdoc settings
Rustdoc settings
-

Rustdoc settings

Back
\ No newline at end of file +

Rustdoc settings

Back
\ No newline at end of file diff --git a/snippetter/struct.CrateMetadata.html b/snippetter/struct.CrateMetadata.html index eb626dc7..bb6dff84 100644 --- a/snippetter/struct.CrateMetadata.html +++ b/snippetter/struct.CrateMetadata.html @@ -37,8 +37,8 @@ pub(crate) tags: Vec<String>, }

Fields§

§dependencies: Vec<String>§tags: Vec<String>

Trait Implementations§

source§

impl Clone for CrateMetadata

source§

fn clone(&self) -> CrateMetadata

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

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

Performs copy-assignment from source. Read more
source§

impl Debug for CrateMetadata

source§

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

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

impl PartialEq<CrateMetadata> for CrateMetadata

source§

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

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

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

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

impl Serialize for CrateMetadata

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl StructuralPartialEq for CrateMetadata

Auto Trait Implementations§

§

impl RefUnwindSafe for CrateMetadata

§

impl Send for CrateMetadata

§

impl Sync for CrateMetadata

§

impl Unpin for CrateMetadata

§

impl UnwindSafe for CrateMetadata

Blanket Implementations§

source§

impl<T> Any for Twhere +sufficient, and should not be overridden without very good reason.

source§

impl Serialize for CrateMetadata

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl StructuralPartialEq for CrateMetadata

Auto Trait Implementations§

§

impl RefUnwindSafe for CrateMetadata

§

impl Send for CrateMetadata

§

impl Sync for CrateMetadata

§

impl Unpin for CrateMetadata

§

impl UnwindSafe for CrateMetadata

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/source-files.js b/source-files.js index cbf1973b..9913f181 100644 --- a/source-files.js +++ b/source-files.js @@ -43,7 +43,7 @@ var sourcesIndex = JSON.parse('{\ "rational":["",[],["lib.rs"]],\ "rb":["",[],["balance.rs","lib.rs","map.rs","seq.rs"]],\ "rbtree":["",[],["lib.rs","nonempty.rs"]],\ -"riff":["",[],["binary_search.rs","bitmask_iterators.rs","bitmask_operations.rs","change_min_max.rs","lib.rs","numeric_traits.rs","pop_if.rs"]],\ +"riff":["",[],["binary_search.rs","bitmask_iterators.rs","bitmask_operations.rs","change_min_max.rs","lib.rs","numeric_traits.rs","pop_if.rs","slice_ext.rs"]],\ "segbeats":["",[],["lib.rs"]],\ "segbeats_task3":["",[],["lib.rs"]],\ "segtree":["",[],["lib.rs"]],\ diff --git a/src/riff/lib.rs.html b/src/riff/lib.rs.html index 7b31e689..7a7196a7 100644 --- a/src/riff/lib.rs.html +++ b/src/riff/lib.rs.html @@ -48,6 +48,8 @@ 14 15 16 +17 +18
//! Future and otherworldly Rust features.
 
 mod binary_search;
@@ -56,6 +58,7 @@
 mod change_min_max;
 mod numeric_traits;
 mod pop_if;
+mod slice_ext;
 
 pub use binary_search::BinarySearch;
 pub use bitmask_iterators::bitmask_combinations;
@@ -64,4 +67,5 @@
 pub use change_min_max::ChangeMinMax;
 pub use numeric_traits::Unsigned;
 pub use pop_if::PopIf;
+pub use slice_ext::SliceExt;
 
\ No newline at end of file diff --git a/src/riff/slice_ext.rs.html b/src/riff/slice_ext.rs.html new file mode 100644 index 00000000..ccebe280 --- /dev/null +++ b/src/riff/slice_ext.rs.html @@ -0,0 +1,123 @@ +slice_ext.rs - source
+ + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+
/// A trait for slices.
+pub trait SliceExt {
+    type Item;
+    /// Groups adjacent elements by a predicate.
+    /// (Rust 1.77.0)
+    fn chunk_by<F>(&self, f: F) -> SliceChunkBy<'_, Self::Item, F>
+    where
+        F: FnMut(&Self::Item, &Self::Item) -> bool;
+}
+impl<T> SliceExt for [T] {
+    type Item = T;
+
+    fn chunk_by<F>(&self, f: F) -> SliceChunkBy<'_, Self::Item, F>
+    where
+        F: FnMut(&Self::Item, &Self::Item) -> bool,
+    {
+        SliceChunkBy { a: self, f }
+    }
+}
+
+pub struct SliceChunkBy<'a, T, F> {
+    a: &'a [T],
+    f: F,
+}
+impl<'a, T, F> Iterator for SliceChunkBy<'a, T, F>
+where
+    F: FnMut(&T, &T) -> bool,
+{
+    type Item = &'a [T];
+
+    fn next(&mut self) -> Option<Self::Item> {
+        let Self { a, f } = self;
+        if a.is_empty() {
+            return None;
+        }
+        let mut end = 1;
+        while end < a.len() && f(&a[end - 1], &a[end]) {
+            end += 1;
+        }
+        let (prefix, rest) = a.split_at(end);
+        self.a = rest;
+        Some(prefix)
+    }
+}
+
\ No newline at end of file