You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am trying to interface with the Canvas LMS GraphQL API, but when I try to create queries in rust with this library, there are name collisions between the id and _id fields present in most types (corresponding to two types of identifiers in the API). After a bit of investigating, it appears that the heck library used by this crate will rename _id to id when running to_snake_case():
Welcome to evcxr.For help,type:help
>> :dep heck
Compiling heck v0.5.0
>> use heck::ToSnakeCase;
>> "_id".to_snake_case()"id"
Then, this new name is blindly accepted by graphql-client regardless of if there is already a type named id in the query, causing compiler errors due to field redefinition. I can get around this for now by using the CLI to generate the types and then manually renaming the _id field, but it would be nice if graphql-client could recognize situations like this and adjust. I'm not sure what the best solution to this is, perhaps not renaming a field if doing so would cause a collision could be the simplest fix?
The text was updated successfully, but these errors were encountered:
I am trying to interface with the Canvas LMS GraphQL API, but when I try to create queries in rust with this library, there are name collisions between the
id
and_id
fields present in most types (corresponding to two types of identifiers in the API). After a bit of investigating, it appears that theheck
library used by this crate will rename_id
toid
when runningto_snake_case()
:Then, this new name is blindly accepted by graphql-client regardless of if there is already a type named
id
in the query, causing compiler errors due to field redefinition. I can get around this for now by using the CLI to generate the types and then manually renaming the_id
field, but it would be nice if graphql-client could recognize situations like this and adjust. I'm not sure what the best solution to this is, perhaps not renaming a field if doing so would cause a collision could be the simplest fix?The text was updated successfully, but these errors were encountered: