@@ -47,7 +47,7 @@ type CacheMap<T> = std::sync::Mutex<HashMap<std::path::PathBuf, T>>;
4747
4848lazy_static ! {
4949 static ref SCHEMA_CACHE : CacheMap <schema:: Schema > = CacheMap :: default ( ) ;
50- static ref QUERY_CACHE : CacheMap <( String , graphql_parser:: query:: Document ) > =
50+ static ref QUERY_CACHE : CacheMap <( String , graphql_parser:: query:: Document < ' static , String > ) > =
5151 CacheMap :: default ( ) ;
5252}
5353
@@ -63,17 +63,18 @@ pub fn generate_module_token_stream(
6363 . extension ( )
6464 . and_then ( std:: ffi:: OsStr :: to_str)
6565 . unwrap_or ( "INVALID" ) ;
66+ let schema_string;
6667
6768 // Check the schema cache.
6869 let schema: schema:: Schema = {
6970 let mut lock = SCHEMA_CACHE . lock ( ) . expect ( "schema cache is poisoned" ) ;
7071 match lock. entry ( schema_path. to_path_buf ( ) ) {
7172 hash_map:: Entry :: Occupied ( o) => o. get ( ) . clone ( ) ,
7273 hash_map:: Entry :: Vacant ( v) => {
73- let schema_string = read_file ( v. key ( ) ) ?;
74+ schema_string = read_file ( v. key ( ) ) ?;
7475 let schema = match schema_extension {
7576 "graphql" | "gql" => {
76- let s = graphql_parser:: schema:: parse_schema ( & schema_string) . map_err ( |parser_error| GeneralError ( format ! ( "Parser error: {}" , parser_error) ) ) ?;
77+ let s = graphql_parser:: schema:: parse_schema :: < & str > ( & schema_string) . map_err ( |parser_error| GeneralError ( format ! ( "Parser error: {}" , parser_error) ) ) ?;
7778 schema:: Schema :: from ( s)
7879 }
7980 "json" => {
@@ -96,7 +97,8 @@ pub fn generate_module_token_stream(
9697 hash_map:: Entry :: Vacant ( v) => {
9798 let query_string = read_file ( v. key ( ) ) ?;
9899 let query = graphql_parser:: parse_query ( & query_string)
99- . map_err ( |err| GeneralError ( format ! ( "Query parser error: {}" , err) ) ) ?;
100+ . map_err ( |err| GeneralError ( format ! ( "Query parser error: {}" , err) ) ) ?
101+ . into_static ( ) ;
100102 v. insert ( ( query_string, query) ) . clone ( )
101103 }
102104 }
0 commit comments