Skip to content
This repository has been archived by the owner on Oct 6, 2024. It is now read-only.

Edge cases with :camel #73

Open
Elrendio opened this issue Jan 11, 2022 · 1 comment · May be fixed by #104
Open

Edge cases with :camel #73

Elrendio opened this issue Jan 11, 2022 · 1 comment · May be fixed by #104

Comments

@Elrendio
Copy link

Hey 👋

Thanks for the awesome crate 🙏

Reading from the code they're seems to be some un-intentional edge cases with :camel. For example:

  1. my__ident will be converted to MyIdent and not My_Ident.
  2. _my_ident will be converted MyIdent intead of _MyIdent (maybe intentional)

I don't think any of the PascalCase, the CamelCase nor the snake_case conventions specify those edge cases.

My use case for 1 is the following:
We have a data base containing a table with quite a lot of colums, the columns name are therefore scoped with scope_with_multiple_words__my_name. The database is accessed with diesel, the column name is therefore taken as such. I need to convert those columns to a Grpc enum, the enum variants are scoped as: ScopeWithMultipleWords_MyName

I don't have a specific use case for 2, just found that it was weird to remove the first _ if someone intentionally put it there.

Would you be open to such change? If yes, I can submit a PR 😊

(I do realise it's a breaking change, I just don't think there's a lot of people with ident containing two or more consecutive underscore)

@Elrendio Elrendio changed the title Precise behavior for snake_case edges cases Edge cases with :camel Jan 11, 2022
@mdeville mdeville linked a pull request Oct 4, 2024 that will close this issue
@mdeville
Copy link

mdeville commented Oct 4, 2024

@Elrendio Here's a proposed solution in #104

You can add test cases in this playground to see it this fits your need
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=7f87df1a5cfad900ab78270d2b90e28f

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants