@@ -79,18 +79,22 @@ pub(crate) trait MaybeBuildObjectPath: MaybeBuildPath {
7979} 
8080
8181pub ( crate )  trait  MaybeBuildPath  { 
82-     fn  new_array ( )  -> impl  MaybeBuildArrayPath ; 
83-     fn  new_object ( )  -> impl  MaybeBuildObjectPath ; 
82+     type  A :  MaybeBuildArrayPath ; 
83+     type  O :  MaybeBuildObjectPath ; 
84+     fn  new_array ( )  -> Self :: A ; 
85+     fn  new_object ( )  -> Self :: O ; 
8486} 
8587
8688pub ( crate )  struct  NoopBuildPath ; 
8789
8890impl  MaybeBuildPath  for  NoopBuildPath  { 
89-     fn  new_array ( )  -> NoopBuildPath  { 
91+     type  A  = NoopBuildPath ; 
92+     type  O  = NoopBuildPath ; 
93+     fn  new_array ( )  -> Self :: A  { 
9094        NoopBuildPath 
9195    } 
9296
93-     fn  new_object ( )  -> NoopBuildPath  { 
97+     fn  new_object ( )  -> Self :: O  { 
9498        NoopBuildPath 
9599    } 
96100} 
@@ -117,11 +121,13 @@ pub(crate) struct ActiveBuildPath {
117121} 
118122
119123impl  MaybeBuildPath  for  ActiveBuildPath  { 
120-     fn  new_array ( )  -> ActiveBuildPath  { 
124+     type  A  = ActiveBuildPath ; 
125+     type  O  = ActiveObjectBuildPath ; 
126+     fn  new_array ( )  -> Self :: A  { 
121127        ActiveBuildPath :: default ( ) 
122128    } 
123129
124-     fn  new_object ( )  -> ActiveObjectBuildPath  { 
130+     fn  new_object ( )  -> Self :: O  { 
125131        ActiveObjectBuildPath :: default ( ) 
126132    } 
127133} 
@@ -143,11 +149,13 @@ pub(crate) struct ActiveObjectBuildPath {
143149} 
144150
145151impl  MaybeBuildPath  for  ActiveObjectBuildPath  { 
146-     fn  new_array ( )  -> ActiveBuildPath  { 
152+     type  A  = ActiveBuildPath ; 
153+     type  O  = ActiveObjectBuildPath ; 
154+     fn  new_array ( )  -> Self :: A  { 
147155        ActiveBuildPath :: default ( ) 
148156    } 
149157
150-     fn  new_object ( )  -> ActiveObjectBuildPath  { 
158+     fn  new_object ( )  -> Self :: O  { 
151159        ActiveObjectBuildPath :: default ( ) 
152160    } 
153161} 
0 commit comments