···11use std::cmp::Ordering;
2233-use autosurgeon::{Hydrate, Reconcile};
43use serde::{Deserialize, Serialize};
5465use crate::{
···156155/// Any function that takes a `NodeId` can `panic`, but this should
157156/// only happen with improper `NodeId` management within `tree`, and
158157/// should have nothing to do with library user's code.
159159-#[derive(Debug, Serialize, Deserialize, Reconcile, Hydrate)]
158158+#[derive(Debug, Serialize, Deserialize)]
159159+#[cfg_attr(
160160+ feature = "automerge",
161161+ derive(autosurgeon::Reconcile, autosurgeon::Hydrate)
162162+)]
160163pub struct Tree<T> {
161164 root: Option<NodeId>,
162165 pub(crate) nodes: Vec<Option<Node<T>>>,