vector_core/community/
metadata.rs1use serde::{Deserialize, Serialize};
8
9use super::{Community, CommunityImage};
10
11#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
13pub struct CommunityMetadata {
14 pub name: String,
15 #[serde(default)]
17 pub relays: Vec<String>,
18 #[serde(default, skip_serializing_if = "Option::is_none")]
20 pub description: Option<String>,
21 #[serde(default, skip_serializing_if = "Option::is_none")]
23 pub icon: Option<CommunityImage>,
24 #[serde(default, skip_serializing_if = "Option::is_none")]
26 pub banner: Option<CommunityImage>,
27 #[serde(default, skip_serializing_if = "Option::is_none")]
30 pub owner_attestation: Option<String>,
31}
32
33impl CommunityMetadata {
34 pub fn of(community: &Community) -> Self {
36 CommunityMetadata {
37 name: community.name.clone(),
38 relays: community.relays.clone(),
39 description: community.description.clone(),
40 icon: community.icon.clone(),
41 banner: community.banner.clone(),
42 owner_attestation: community.owner_attestation.clone(),
43 }
44 }
45}
46
47#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
49pub struct ChannelMetadata {
50 pub name: String,
51}