#[cfg(feature = "minimal")]
use crate::element::{BigSumValue, CountValue};
#[cfg(feature = "minimal")]
use crate::{
element::{MaxReferenceHop, SumValue},
reference_path::ReferencePathType,
Element, ElementFlags,
};
impl Element {
#[cfg(feature = "minimal")]
pub fn empty_tree() -> Self {
Element::new_tree(Default::default())
}
#[cfg(feature = "minimal")]
pub fn empty_tree_with_flags(flags: Option<ElementFlags>) -> Self {
Element::new_tree_with_flags(Default::default(), flags)
}
#[cfg(feature = "minimal")]
pub fn empty_sum_tree() -> Self {
Element::new_sum_tree(Default::default())
}
#[cfg(feature = "minimal")]
pub fn empty_big_sum_tree() -> Self {
Element::new_big_sum_tree(Default::default())
}
#[cfg(feature = "minimal")]
pub fn empty_count_tree() -> Self {
Element::new_count_tree(Default::default())
}
#[cfg(feature = "minimal")]
pub fn empty_count_sum_tree() -> Self {
Element::new_count_sum_tree(Default::default())
}
#[cfg(feature = "minimal")]
pub fn empty_sum_tree_with_flags(flags: Option<ElementFlags>) -> Self {
Element::new_sum_tree_with_flags(Default::default(), flags)
}
#[cfg(feature = "minimal")]
pub fn empty_big_sum_tree_with_flags(flags: Option<ElementFlags>) -> Self {
Element::new_big_sum_tree_with_flags(Default::default(), flags)
}
#[cfg(feature = "minimal")]
pub fn empty_count_tree_with_flags(flags: Option<ElementFlags>) -> Self {
Element::new_count_tree_with_flags(Default::default(), flags)
}
#[cfg(feature = "minimal")]
pub fn empty_count_sum_tree_with_flags(flags: Option<ElementFlags>) -> Self {
Element::new_count_sum_tree_with_flags(Default::default(), flags)
}
#[cfg(feature = "minimal")]
pub fn new_item(item_value: Vec<u8>) -> Self {
Element::Item(item_value, None)
}
#[cfg(feature = "minimal")]
pub fn new_item_with_flags(item_value: Vec<u8>, flags: Option<ElementFlags>) -> Self {
Element::Item(item_value, flags)
}
#[cfg(feature = "minimal")]
pub fn new_sum_item(value: i64) -> Self {
Element::SumItem(value, None)
}
#[cfg(feature = "minimal")]
pub fn new_sum_item_with_flags(value: i64, flags: Option<ElementFlags>) -> Self {
Element::SumItem(value, flags)
}
#[cfg(feature = "minimal")]
pub fn new_reference(reference_path: ReferencePathType) -> Self {
Element::Reference(reference_path, None, None)
}
#[cfg(feature = "minimal")]
pub fn new_reference_with_flags(
reference_path: ReferencePathType,
flags: Option<ElementFlags>,
) -> Self {
Element::Reference(reference_path, None, flags)
}
#[cfg(feature = "minimal")]
pub fn new_reference_with_hops(
reference_path: ReferencePathType,
max_reference_hop: MaxReferenceHop,
) -> Self {
Element::Reference(reference_path, max_reference_hop, None)
}
#[cfg(feature = "minimal")]
pub fn new_reference_with_max_hops_and_flags(
reference_path: ReferencePathType,
max_reference_hop: MaxReferenceHop,
flags: Option<ElementFlags>,
) -> Self {
Element::Reference(reference_path, max_reference_hop, flags)
}
#[cfg(feature = "minimal")]
pub fn new_tree(maybe_root_key: Option<Vec<u8>>) -> Self {
Element::Tree(maybe_root_key, None)
}
#[cfg(feature = "minimal")]
pub fn new_tree_with_flags(
maybe_root_key: Option<Vec<u8>>,
flags: Option<ElementFlags>,
) -> Self {
Element::Tree(maybe_root_key, flags)
}
#[cfg(feature = "minimal")]
pub fn new_sum_tree(maybe_root_key: Option<Vec<u8>>) -> Self {
Element::SumTree(maybe_root_key, 0, None)
}
#[cfg(feature = "minimal")]
pub fn new_sum_tree_with_flags(
maybe_root_key: Option<Vec<u8>>,
flags: Option<ElementFlags>,
) -> Self {
Element::SumTree(maybe_root_key, 0, flags)
}
#[cfg(feature = "minimal")]
pub fn new_sum_tree_with_flags_and_sum_value(
maybe_root_key: Option<Vec<u8>>,
sum_value: SumValue,
flags: Option<ElementFlags>,
) -> Self {
Element::SumTree(maybe_root_key, sum_value, flags)
}
#[cfg(feature = "minimal")]
pub fn new_big_sum_tree(maybe_root_key: Option<Vec<u8>>) -> Self {
Element::BigSumTree(maybe_root_key, 0, None)
}
#[cfg(feature = "minimal")]
pub fn new_big_sum_tree_with_flags(
maybe_root_key: Option<Vec<u8>>,
flags: Option<ElementFlags>,
) -> Self {
Element::BigSumTree(maybe_root_key, 0, flags)
}
#[cfg(feature = "minimal")]
pub fn new_big_sum_tree_with_flags_and_sum_value(
maybe_root_key: Option<Vec<u8>>,
big_sum_value: BigSumValue,
flags: Option<ElementFlags>,
) -> Self {
Element::BigSumTree(maybe_root_key, big_sum_value, flags)
}
#[cfg(feature = "minimal")]
pub fn new_count_tree(maybe_root_key: Option<Vec<u8>>) -> Self {
Element::CountTree(maybe_root_key, 0, None)
}
#[cfg(feature = "minimal")]
pub fn new_count_tree_with_flags(
maybe_root_key: Option<Vec<u8>>,
flags: Option<ElementFlags>,
) -> Self {
Element::CountTree(maybe_root_key, 0, flags)
}
#[cfg(feature = "minimal")]
pub fn new_count_tree_with_flags_and_count_value(
maybe_root_key: Option<Vec<u8>>,
count_value: CountValue,
flags: Option<ElementFlags>,
) -> Self {
Element::CountTree(maybe_root_key, count_value, flags)
}
#[cfg(feature = "minimal")]
pub fn new_count_sum_tree(maybe_root_key: Option<Vec<u8>>) -> Self {
Element::CountSumTree(maybe_root_key, 0, 0, None)
}
#[cfg(feature = "minimal")]
pub fn new_count_sum_tree_with_flags(
maybe_root_key: Option<Vec<u8>>,
flags: Option<ElementFlags>,
) -> Self {
Element::CountSumTree(maybe_root_key, 0, 0, flags)
}
#[cfg(feature = "minimal")]
pub fn new_count_sum_tree_with_flags_and_sum_and_count_value(
maybe_root_key: Option<Vec<u8>>,
count_value: CountValue,
sum_value: SumValue,
flags: Option<ElementFlags>,
) -> Self {
Element::CountSumTree(maybe_root_key, count_value, sum_value, flags)
}
}