/*
    This file is part of jellything (https://codeberg.org/metamuffin/jellything)
    which is licensed under the GNU Affero General Public License (version 3); see /COPYING.
    Copyright (C) 2026 metamuffin <metamuffin.org>
*/

use jellyobject::{Object, Tag};
use std::borrow::Cow;
use std::collections::BTreeMap;

#[derive(Debug)]
pub struct Nku<'a> {
    pub node: Cow<'a, Object>,
    pub userdata: Cow<'a, Object>,
    pub role: Option<&'a str>,
}

pub struct Stats {
    pub all: StatsBin,
    pub by_kind: BTreeMap<Tag, StatsBin>,
}

pub struct StatsBin {
    pub count: usize,
    pub sum_duration: f64,
    pub max_duration: f64,
    pub max_duration_node: String,
    pub sum_size: u64,
    pub max_size: u64,
    pub max_size_node: String,
}
