pub trait Topological: ListHashes {
// Provided methods
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor)) { ... }
fn topology(&self) -> TopoVec { ... }
fn byte_node(&self) -> ByteNode
where Self: ToOutput { ... }
fn to_resolve(&self) -> Arc<dyn Resolve> ⓘ { ... }
}Expand description
Central trait responsible for providing access to walking the object tree.
Provided Methods§
Sourcefn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
List what objects this one refers to.
Each referred object is also expected to be Traversible.
Sourcefn byte_node(&self) -> ByteNodewhere
Self: ToOutput,
fn byte_node(&self) -> ByteNodewhere
Self: ToOutput,
Useful in Resolve::resolve and FetchBytes::fetch_bytes.
Sourcefn to_resolve(&self) -> Arc<dyn Resolve> ⓘ
fn to_resolve(&self) -> Arc<dyn Resolve> ⓘ
Reconstruct a Resolve usable for Parse::parseing this object based on references.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
impl Topological for ()
impl Topological for Bytes
Available on crate feature
bytes only.impl Topological for BytesMut
Available on crate feature
bytes only.impl Topological for CStr
impl Topological for CString
impl Topological for Infallible
impl Topological for NonZero<i8>
impl Topological for NonZero<i16>
impl Topological for NonZero<i32>
impl Topological for NonZero<i64>
impl Topological for NonZero<i128>
impl Topological for NonZero<u8>
impl Topological for NonZero<u16>
impl Topological for NonZero<u32>
impl Topological for NonZero<u64>
impl Topological for NonZero<u128>
impl Topological for Ordering
impl Topological for String
impl Topological for Ulid
Available on crate feature
ulid only.impl Topological for bool
impl Topological for char
impl Topological for f32
impl Topological for f64
impl Topological for i8
impl Topological for i16
impl Topological for i32
impl Topological for i64
impl Topological for i128
impl Topological for str
impl Topological for u8
impl Topological for u16
impl Topological for u32
impl Topological for u64
impl Topological for u128
Source§impl<'a, B: 'a + ToOwned + Topological + ?Sized> Topological for Cow<'a, B>
impl<'a, B: 'a + ToOwned + Topological + ?Sized> Topological for Cow<'a, B>
Source§impl<A, O: BitOrder> Topological for BitArray<A, O>
Available on crate feature bitvec only.
impl<A, O: BitOrder> Topological for BitArray<A, O>
Available on crate feature
bitvec only.fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<A: Topological, B: Topological, C: Topological, D: Topological, E: Topological, F: Topological, G: Topological, H: Topological, I: Topological, J: Topological, K: Topological, L: Topological> Topological for (A, B, C, D, E, F, G, H, I, J, K, L)
impl<A: Topological, B: Topological, C: Topological, D: Topological, E: Topological, F: Topological, G: Topological, H: Topological, I: Topological, J: Topological, K: Topological, L: Topological> Topological for (A, B, C, D, E, F, G, H, I, J, K, L)
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<A: Topological, B: Topological, C: Topological, D: Topological, E: Topological, F: Topological, G: Topological, H: Topological, I: Topological, J: Topological, K: Topological> Topological for (A, B, C, D, E, F, G, H, I, J, K)
impl<A: Topological, B: Topological, C: Topological, D: Topological, E: Topological, F: Topological, G: Topological, H: Topological, I: Topological, J: Topological, K: Topological> Topological for (A, B, C, D, E, F, G, H, I, J, K)
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<A: Topological, B: Topological, C: Topological, D: Topological, E: Topological, F: Topological, G: Topological, H: Topological, I: Topological, J: Topological> Topological for (A, B, C, D, E, F, G, H, I, J)
impl<A: Topological, B: Topological, C: Topological, D: Topological, E: Topological, F: Topological, G: Topological, H: Topological, I: Topological, J: Topological> Topological for (A, B, C, D, E, F, G, H, I, J)
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<A: Topological, B: Topological, C: Topological, D: Topological, E: Topological, F: Topological, G: Topological, H: Topological, I: Topological> Topological for (A, B, C, D, E, F, G, H, I)
impl<A: Topological, B: Topological, C: Topological, D: Topological, E: Topological, F: Topological, G: Topological, H: Topological, I: Topological> Topological for (A, B, C, D, E, F, G, H, I)
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<A: Topological, B: Topological, C: Topological, D: Topological, E: Topological, F: Topological, G: Topological, H: Topological> Topological for (A, B, C, D, E, F, G, H)
impl<A: Topological, B: Topological, C: Topological, D: Topological, E: Topological, F: Topological, G: Topological, H: Topological> Topological for (A, B, C, D, E, F, G, H)
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<A: Topological, B: Topological, C: Topological, D: Topological, E: Topological, F: Topological, G: Topological> Topological for (A, B, C, D, E, F, G)
impl<A: Topological, B: Topological, C: Topological, D: Topological, E: Topological, F: Topological, G: Topological> Topological for (A, B, C, D, E, F, G)
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<A: Topological, B: Topological, C: Topological, D: Topological, E: Topological, F: Topological> Topological for (A, B, C, D, E, F)
impl<A: Topological, B: Topological, C: Topological, D: Topological, E: Topological, F: Topological> Topological for (A, B, C, D, E, F)
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<A: Topological, B: Topological, C: Topological, D: Topological, E: Topological> Topological for (A, B, C, D, E)
impl<A: Topological, B: Topological, C: Topological, D: Topological, E: Topological> Topological for (A, B, C, D, E)
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<A: Topological, B: Topological, C: Topological, D: Topological> Topological for (A, B, C, D)
impl<A: Topological, B: Topological, C: Topological, D: Topological> Topological for (A, B, C, D)
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<A: Topological, B: Topological, C: Topological> Topological for (A, B, C)
impl<A: Topological, B: Topological, C: Topological> Topological for (A, B, C)
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<A: Topological, B: Topological> Topological for (A, B)
impl<A: Topological, B: Topological> Topological for (A, B)
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<K: Topological, V: Topological> Topological for BTreeMap<K, V>
impl<K: Topological, V: Topological> Topological for BTreeMap<K, V>
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<K: Topological, V: Topological> Topological for IndexMap<K, V>
Available on crate feature indexmap only.
impl<K: Topological, V: Topological> Topological for IndexMap<K, V>
Available on crate feature
indexmap only.fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<T: ?Sized + Topological> Topological for &T
impl<T: ?Sized + Topological> Topological for &T
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<T: ?Sized + Topological> Topological for Arc<T>
impl<T: ?Sized + Topological> Topological for Arc<T>
Source§impl<T: ?Sized + Topological> Topological for Box<T>
impl<T: ?Sized + Topological> Topological for Box<T>
impl<T: ?Sized> Topological for PhantomData<T>
Source§impl<T: Topological, N: ArrayLength> Topological for GenericArray<T, N>
impl<T: Topological, N: ArrayLength> Topological for GenericArray<T, N>
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<T: Topological, const N: usize> Topological for [T; N]
impl<T: Topological, const N: usize> Topological for [T; N]
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<T: Topological> Topological for (T,)
impl<T: Topological> Topological for (T,)
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<T: Topological> Topological for BTreeSet<T>
impl<T: Topological> Topological for BTreeSet<T>
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<T: Topological> Topological for IndexSet<T>
Available on crate feature indexmap only.
impl<T: Topological> Topological for IndexSet<T>
Available on crate feature
indexmap only.fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<T: Topological> Topological for Option<T>
impl<T: Topological> Topological for Option<T>
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<T: Topological> Topological for Vec<T>
impl<T: Topological> Topological for Vec<T>
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<T: Topological> Topological for VecDeque<T>
impl<T: Topological> Topological for VecDeque<T>
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<T: Topological> Topological for [T]
impl<T: Topological> Topological for [T]
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
Source§impl<T: Traversible> Topological for Arc<dyn SingularFetch<T = T>>
impl<T: Traversible> Topological for Arc<dyn SingularFetch<T = T>>
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
impl<T> Topological for dyn Send + Sync + ExtraFor<T>
impl<const S: usize> Topological for CidGeneric<S>
Available on crate feature
cid only.We can’t directly interpret this as our pointers, treating Cid as just data.