willbe/entity/
workspace_md_extension.rs1#[ allow( clippy::std_instead_of_alloc, clippy::std_instead_of_core ) ]
3mod private
4{
5 #[ allow( clippy::wildcard_imports ) ]
6 use crate::*;
7
8 pub trait WorkspaceMdExtension
10 {
11 fn discord_url( &self ) -> Option< String >;
13
14 fn master_branch( &self ) -> Option< String >;
16
17 fn repository_url( &self ) -> Option< String >;
19
20 fn workspace_name( &self ) -> Option< String >;
22 }
23
24 impl WorkspaceMdExtension for Workspace
25 {
26 fn discord_url( &self ) -> Option< String >
27 {
28 self
29 .metadata
30 .workspace_metadata[ "discord_url" ]
31 .as_str()
32 .map( std::string::ToString::to_string )
33 }
34
35 fn master_branch( &self ) -> Option< String >
36 {
37 self
38 .metadata
39 .workspace_metadata
40 .get( "master_branch" )
41 .and_then( | b | b.as_str() )
42 .map( std::string::ToString::to_string )
43 }
44
45 fn repository_url( &self ) -> Option< String >
46 {
47 self
48 .metadata
49 .workspace_metadata
50 .get( "repo_url" )
51 .and_then( | b | b.as_str() )
52 .map( std::string::ToString::to_string )
53 }
54
55 fn workspace_name( &self ) -> Option< String >
56 {
57 self
58 .metadata
59 .workspace_metadata
60 .get( "workspace_name" )
61 .and_then( | b | b.as_str() )
62 .map( std::string::ToString::to_string )
63 }
64 }
65
66}
67
68
69crate::mod_interface!
70{
71 own use WorkspaceMdExtension;
72}