@@ -50,7 +50,10 @@ fn main() {
5050 users : vec ! [
5151 User {
5252 id: 1 ,
53- profile: Some ( Profile { display_name: "Ada" . into( ) , age: 31 } ) ,
53+ profile: Some ( Profile {
54+ display_name: "Ada" . into( ) ,
55+ age: 31 ,
56+ } ) ,
5457 tags: vec![ "admin" . into( ) , "founder" . into( ) ] ,
5558 } ,
5659 User {
@@ -59,7 +62,10 @@ fn main() {
5962 tags: vec![ "guest" . into( ) ] ,
6063 } ,
6164 ] ,
62- settings : Some ( Settings { theme : "dark" . into ( ) , db : Some ( DbConfig ( 5432 , "postgres://localhost" . into ( ) ) ) } ) ,
65+ settings : Some ( Settings {
66+ theme : "dark" . into ( ) ,
67+ db : Some ( DbConfig ( 5432 , "postgres://localhost" . into ( ) ) ) ,
68+ } ) ,
6369 connection : Connection :: Connecting ( 42 ) ,
6470 name : "MegaApp" . into ( ) ,
6571 } ;
@@ -69,7 +75,10 @@ fn main() {
6975 . compose ( KeyPaths :: failable_readable ( |v : & Vec < User > | v. first ( ) ) )
7076 . compose ( User :: profile_fr ( ) )
7177 . compose ( Profile :: display_name_r ( ) ) ;
72- println ! ( "first_user_profile_name = {:?}" , first_user_profile_name. get( & app) ) ;
78+ println ! (
79+ "first_user_profile_name = {:?}" ,
80+ first_user_profile_name. get( & app)
81+ ) ;
7382
7483 // 2) Mutate nested Option chain via failable writable
7584 let settings_fw = App :: settings_fw ( ) ;
@@ -82,7 +91,10 @@ fn main() {
8291 }
8392 }
8493 }
85- println ! ( "db after bump = {:?}" , app. settings. as_ref( ) . and_then( |s| s. db. as_ref( ) ) ) ;
94+ println ! (
95+ "db after bump = {:?}" ,
96+ app. settings. as_ref( ) . and_then( |s| s. db. as_ref( ) )
97+ ) ;
8698
8799 // 3) Compose writable + enum case (prism) to mutate only when connected
88100 app. connection = Connection :: Connected ( "10.0.0.1" . into ( ) ) ;
@@ -103,21 +115,30 @@ fn main() {
103115 // 5) Iterate immutably and mutably via derived vec keypaths
104116 let users_r = App :: users_r ( ) ;
105117 if let Some ( mut iter) = users_r. iter :: < User > ( & app) {
106- if let Some ( u0) = iter. next ( ) { println ! ( "first user id = {}" , u0. id) ; }
118+ if let Some ( u0) = iter. next ( ) {
119+ println ! ( "first user id = {}" , u0. id) ;
120+ }
107121 }
108122 let users_w = App :: users_w ( ) ;
109123 if let Some ( iter) = users_w. iter_mut :: < User > ( & mut app) {
110- for u in iter { u. tags . push ( "seen" . into ( ) ) ; }
124+ for u in iter {
125+ u. tags . push ( "seen" . into ( ) ) ;
126+ }
111127 }
112128 println ! ( "users after tag = {:?}" , app. users) ;
113129
114130 // 6) Compose across many levels: first user -> profile -> age (if present) and increment
115131 let first_user_fr = KeyPaths :: failable_readable ( |v : & Vec < User > | v. first ( ) ) ;
116132 let profile_fr = User :: profile_fr ( ) ;
117133 let age_w = Profile :: age_w ( ) ;
118- if let Some ( u0) = first_user_fr. get ( & app. users ) { // borrow helper
134+ if let Some ( u0) = first_user_fr. get ( & app. users ) {
135+ // borrow helper
119136 let mut app_ref = & mut app. users [ 0 ] ;
120- if let Some ( p) = profile_fr. get_mut ( & mut app_ref) { if let Some ( age) = age_w. get_mut ( p) { * age += 1 ; } }
137+ if let Some ( p) = profile_fr. get_mut ( & mut app_ref) {
138+ if let Some ( age) = age_w. get_mut ( p) {
139+ * age += 1 ;
140+ }
141+ }
121142 }
122143 println ! ( "first user after bday = {:?}" , app. users. first( ) ) ;
123144
@@ -127,15 +148,19 @@ fn main() {
127148 println ! ( "embedded = {:?}" , new_conn) ;
128149
129150 // 8) Additional enum with casepaths: Status
130- let mut st = Status :: Active ( User { id : 99 , profile : None , tags : vec ! [ ] } ) ;
151+ let mut st = Status :: Active ( User {
152+ id : 99 ,
153+ profile : None ,
154+ tags : vec ! [ ] ,
155+ } ) ;
131156 let st_active = Status :: active_case_r ( ) ;
132157 let st_active_name = st_active. compose ( User :: id_r ( ) ) ;
133158 println ! ( "status active user id = {:?}" , st_active_name. get( & st) ) ;
134159
135160 let st_pending = Status :: pending_case_w ( ) ;
136161 st = Status :: Pending ( 5 ) ;
137- if let Some ( v) = st_pending. get_mut ( & mut st) { * v += 1 ; }
162+ if let Some ( v) = st_pending. get_mut ( & mut st) {
163+ * v += 1 ;
164+ }
138165 println ! ( "status after pending increment = {:?}" , st) ;
139166}
140-
141-
0 commit comments