11mod cargo;
2+ mod coloring;
23mod config;
34mod dot;
45mod graph;
56mod template;
67
78use crate :: {
89 cargo:: { CargoOptions , cargo_bloat_output, cargo_tree_output, get_dep_graph, get_size_map} ,
10+ coloring:: { NodeColoringScheme , NodeColoringValues } ,
911 config:: Config ,
1012 dot:: { output_dot, output_svg} ,
1113 graph:: {
@@ -16,70 +18,6 @@ use crate::{
1618} ;
1719use anyhow:: Context ;
1820use clap:: Parser ;
19- use colorgrad:: BasisGradient ;
20-
21- #[ cfg_attr( feature = "config" , derive( serde_with:: DeserializeFromStr ) ) ]
22- #[ derive( Clone , Copy , strum:: EnumString ) ]
23- #[ strum( serialize_all = "kebab-case" ) ]
24- enum NodeColoringScheme {
25- CumSum ,
26- DepCount ,
27- RevDepCount ,
28- }
29-
30- impl From < NodeColoringScheme > for & ' static str {
31- fn from ( value : NodeColoringScheme ) -> Self {
32- match value {
33- NodeColoringScheme :: CumSum => "cumulative sum" ,
34- NodeColoringScheme :: DepCount => "dependency count" ,
35- NodeColoringScheme :: RevDepCount => "reverse dependency count" ,
36- }
37- }
38- }
39-
40- #[ cfg_attr( feature = "config" , derive( serde_with:: DeserializeFromStr ) ) ]
41- #[ derive( Default , Clone ) ]
42- enum NodeColoringGradient {
43- #[ default]
44- Reds ,
45- Oranges ,
46- Purples ,
47- Greens ,
48- Blues ,
49- Custom ( BasisGradient ) ,
50- }
51-
52- impl std:: str:: FromStr for NodeColoringGradient {
53- type Err = colorgrad:: GradientBuilderError ;
54-
55- fn from_str ( s : & str ) -> Result < NodeColoringGradient , Self :: Err > {
56- match s {
57- "reds" => Ok ( Self :: Reds ) ,
58- "oranges" => Ok ( Self :: Oranges ) ,
59- "purples" => Ok ( Self :: Purples ) ,
60- "greens" => Ok ( Self :: Greens ) ,
61- "blues" => Ok ( Self :: Blues ) ,
62- _ => colorgrad:: GradientBuilder :: new ( )
63- . css ( s)
64- . build ( )
65- . map ( Self :: Custom ) ,
66- }
67- }
68- }
69-
70- impl From < NodeColoringGradient > for BasisGradient {
71- fn from ( value : NodeColoringGradient ) -> Self {
72- use colorgrad:: preset:: * ;
73- match value {
74- NodeColoringGradient :: Reds => reds ( ) ,
75- NodeColoringGradient :: Oranges => oranges ( ) ,
76- NodeColoringGradient :: Purples => purples ( ) ,
77- NodeColoringGradient :: Greens => greens ( ) ,
78- NodeColoringGradient :: Blues => blues ( ) ,
79- NodeColoringGradient :: Custom ( gradient) => gradient,
80- }
81- }
82- }
8321
8422#[ derive( Parser ) ]
8523#[ command( version, about, long_about = None ) ]
@@ -94,13 +32,6 @@ struct Args {
9432 config : Config ,
9533}
9634
97- struct NodeColoringValues {
98- values : Vec < usize > ,
99- gamma : f32 ,
100- max : usize ,
101- gradient : BasisGradient ,
102- }
103-
10435fn main ( ) -> anyhow:: Result < ( ) > {
10536 let args = Args :: parse ( ) ;
10637
0 commit comments