@@ -7,43 +7,29 @@ use dotenv::dotenv;
77use proc_macro:: TokenStream ;
88use syn:: { ItemFn , __private:: ToTokens } ;
99
10- use crate :: generator:: generate_body_function_from_head;
10+ use crate :: generator:: { generate_body_function_from_head, minimal_llm_function } ;
1111
12+ /// This macro gets an input like "String, "This is a llm generated function"" and returns a function that returns a String
1213#[ proc_macro]
13- pub fn implement ( _item : TokenStream ) -> TokenStream {
14- // TODO: Evaluate the use of dotenv in this crate
14+ pub fn auto_generate ( item : TokenStream ) -> TokenStream {
1515 dotenv ( ) . ok ( ) ;
1616
17- let implemented_fn = generate_body_function_from_head ( _item. to_string ( ) , None ) . unwrap ( ) ;
17+ let res = minimal_llm_function ( item. to_string ( ) ) ;
18+ // println!("{:?}", res);
1819
19- // println!("{}", implemented_fn);
20-
21- implemented_fn. parse ( ) . unwrap ( )
20+ res. parse ( ) . unwrap ( )
2221}
2322
2423#[ proc_macro_attribute]
2524pub fn auto_implement ( args : TokenStream , input : TokenStream ) -> TokenStream {
26- // env::vars()
27- // .map(|v| format!("{}: {}\n", v.0, v.1))
28- // .for_each(|v| print!("{}", v));
29-
30- // let this_file = file!();
31- // column!();
32-
33- // println!("This file: {}", this_file);
34-
3525 let ast: ItemFn = syn:: parse ( input) . expect ( "Failed to parse input as a function" ) ;
3626
3727 let context = args. to_string ( ) ;
3828
39- // println!("Context: {}", context);
40-
4129 let mut prompt_input = String :: new ( ) ;
4230
4331 let fn_header = ast. sig . to_token_stream ( ) . to_string ( ) ;
4432
45- // println!("Function header: {}", fn_header);
46-
4733 for attr in ast. attrs {
4834 let data = attr. to_token_stream ( ) . to_string ( ) ;
4935
@@ -53,27 +39,9 @@ pub fn auto_implement(args: TokenStream, input: TokenStream) -> TokenStream {
5339
5440 prompt_input. push_str ( & fn_header) ;
5541
56- // println!("Information extracted: {:?}", prompt_input);
57-
5842 dotenv ( ) . ok ( ) ;
5943
6044 let implemented_fn = generate_body_function_from_head ( prompt_input, Some ( context) ) . unwrap ( ) ;
6145
62- // println!("\n{}\n", implemented_fn);
63-
64- // #[allow(long_running_const_eval)]
65-
66- // loop {
67- // let mut line = String::new();
68- // let b1 = std::io::stdin().read_line(&mut line).unwrap();
69- // println!("no of bytes read , {}", b1);
70- // }
71-
72- // static line = String::new();
73- // println!("Enter your name :");
74- //
75- // println!("Hello , {}", line);
76- // println!("no of bytes read , {}", b1);
77-
7846 implemented_fn. parse ( ) . unwrap ( )
7947}
0 commit comments