struct StaticTopTreeDataBuilder<C>where
C: Cluster,{
compressed: Vec<MaybeUninit<InnerValue<<C as Cluster>::Path>>>,
raked: Vec<MaybeUninit<InnerValue<<C as Cluster>::Point>>>,
light_points: Vec<<C as Cluster>::Point>,
}Fields§
§compressed: Vec<MaybeUninit<InnerValue<<C as Cluster>::Path>>>§raked: Vec<MaybeUninit<InnerValue<<C as Cluster>::Point>>>§light_points: Vec<<C as Cluster>::Point>Implementations§
Source§impl<C> StaticTopTreeDataBuilder<C>where
C: Cluster,
impl<C> StaticTopTreeDataBuilder<C>where
C: Cluster,
Sourcefn new(tree: &StaticTopTree) -> Self
fn new(tree: &StaticTopTree) -> Self
Examples found in repository?
crates/competitive/src/tree/static_top_tree.rs (line 558)
550 pub fn new(
551 tree: &'a StaticTopTree,
552 vertices: Vec<<C as Cluster>::Vertex>,
553 edges: Vec<<C as Cluster>::Edge>,
554 ) -> Self {
555 assert_eq!(vertices.len(), tree.vertices_size());
556 assert_eq!(edges.len(), tree.edges_size());
557
558 let mut data: StaticTopTreeDataBuilder<C> = StaticTopTreeDataBuilder::new(tree);
559 let path = tree.init_compress(
560 &mut data,
561 &vertices,
562 &edges,
563 tree.compress_roots[tree.root].expect("root compress tree must exist"),
564 );
565 let all_point = C::add_edge(&path);
566 Self {
567 tree,
568 vertices,
569 edges,
570 compressed: unsafe { assume_init_vec(data.compressed) },
571 raked: unsafe { assume_init_vec(data.raked) },
572 light_points: data.light_points,
573 all_point,
574 }
575 }Auto Trait Implementations§
impl<C> Freeze for StaticTopTreeDataBuilder<C>where
Vec<MaybeUninit<InnerValue<<C as Cluster>::Path>>>: Freeze,
Vec<MaybeUninit<InnerValue<<C as Cluster>::Point>>>: Freeze,
Vec<<C as Cluster>::Point>: Freeze,
impl<C> RefUnwindSafe for StaticTopTreeDataBuilder<C>where
Vec<MaybeUninit<InnerValue<<C as Cluster>::Path>>>: RefUnwindSafe,
Vec<MaybeUninit<InnerValue<<C as Cluster>::Point>>>: RefUnwindSafe,
Vec<<C as Cluster>::Point>: RefUnwindSafe,
impl<C> Send for StaticTopTreeDataBuilder<C>where
Vec<MaybeUninit<InnerValue<<C as Cluster>::Path>>>: Send,
Vec<MaybeUninit<InnerValue<<C as Cluster>::Point>>>: Send,
Vec<<C as Cluster>::Point>: Send,
impl<C> Sync for StaticTopTreeDataBuilder<C>where
Vec<MaybeUninit<InnerValue<<C as Cluster>::Path>>>: Sync,
Vec<MaybeUninit<InnerValue<<C as Cluster>::Point>>>: Sync,
Vec<<C as Cluster>::Point>: Sync,
impl<C> Unpin for StaticTopTreeDataBuilder<C>where
Vec<MaybeUninit<InnerValue<<C as Cluster>::Path>>>: Unpin,
Vec<MaybeUninit<InnerValue<<C as Cluster>::Point>>>: Unpin,
Vec<<C as Cluster>::Point>: Unpin,
impl<C> UnsafeUnpin for StaticTopTreeDataBuilder<C>where
Vec<MaybeUninit<InnerValue<<C as Cluster>::Path>>>: UnsafeUnpin,
Vec<MaybeUninit<InnerValue<<C as Cluster>::Point>>>: UnsafeUnpin,
Vec<<C as Cluster>::Point>: UnsafeUnpin,
impl<C> UnwindSafe for StaticTopTreeDataBuilder<C>where
Vec<MaybeUninit<InnerValue<<C as Cluster>::Path>>>: UnwindSafe,
Vec<MaybeUninit<InnerValue<<C as Cluster>::Point>>>: UnwindSafe,
Vec<<C as Cluster>::Point>: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more