1use crate::fs::util::{path_to_entry_key, path_to_entry_prefix};
2use iroh_docs::store::FilterKind;
3use iroh_docs::Author;
4use iroh_docs::DocTicket;
5use iroh_docs::NamespaceId;
6use serde::{Deserialize, Serialize};
7
8#[derive(Serialize, Deserialize, Debug, Clone)]
9pub struct ExportedUser {
11 pub(crate) author: Author,
12 pub(crate) home_replica: Option<NamespaceId>,
13 pub(crate) home_replica_ticket: Option<DocTicket>,
14}
15
16#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
17pub enum EmbeddingModality {
19 Text,
21 Image,
23 Audio,
25}
26
27pub fn home_replica_filters() -> Vec<FilterKind> {
34 let profile_filter = FilterKind::Exact(path_to_entry_key(&"/profile.toml".into()));
35 let posts_filter = FilterKind::Prefix(path_to_entry_prefix(&"/posts/".into()));
36 vec![profile_filter, posts_filter]
37}