lc_chains/router_chain/
destination.rs1use std::sync::Arc;
5
6use crate::base::BaseChain;
7
8pub struct RouteDestination {
10 name: String,
12 description: String,
14 chain: Arc<dyn BaseChain>,
16 keywords: Vec<String>,
18}
19
20impl RouteDestination {
21 pub fn new(
23 name: impl Into<String>,
24 description: impl Into<String>,
25 chain: Arc<dyn BaseChain>,
26 ) -> Self {
27 Self {
28 name: name.into(),
29 description: description.into(),
30 chain,
31 keywords: Vec::new(),
32 }
33 }
34
35 pub fn with_keywords(mut self, keywords: Vec<&str>) -> Self {
37 self.keywords = keywords.into_iter().map(String::from).collect();
38 self
39 }
40
41 pub fn name(&self) -> &str {
43 &self.name
44 }
45
46 pub fn description(&self) -> &str {
48 &self.description
49 }
50
51 pub fn chain(&self) -> &Arc<dyn BaseChain> {
53 &self.chain
54 }
55
56 pub fn keywords(&self) -> &[String] {
58 &self.keywords
59 }
60}