pub fn new(j: J) -> Self {
        if <J as Join>::is_unconstrained() {
            log::warn!(
                "`Join` possibly iterating through all indices, you might've made a join with all `MaybeJoin`s, which is unbounded in length."
            );
        }

        // SAFETY: We do not swap out the mask or the values, nor do we allow it by
        // exposing them.
        let (keys, values) = unsafe { j.open() };
        JoinIter {
            keys: keys.iter(),
            values,
        }
    }
/// Create a new join iterator.
Create a new join iterator.
Create a new join iterator .
pub fn new(j: J) -> Self {
        if <J as Join>::is_unconstrained() {
            log::warn!(
                "`Join` possibly iterating through all indices, you might've made a join with all `MaybeJoin`s, which is unbounded in length."
            );
        }
        // SAFETY: We do not swap out the mask or the values, nor do we allow it by
        // exposing them.
        let (keys, values) = unsafe { j.open() };
        JoinIter {
            keys: keys.iter(),
            values,
        }
    }
pub fn new ( j : J ) -> Self { if < J as Join > :: is_unconstrained ( ) { log :: warn ! ( " " ) ; } // SAFETY: We do not swap out the mask or the values, nor do we allow it by // exposing them. let ( keys , values ) = unsafe { j . open ( ) } ; JoinIter { keys : keys . iter ( ) , values , } }
Create a new join iterator.
Create a new join iterator .
j
J