Thanks to visit codestin.com
Credit goes to github.com

Skip to content

css_ast/csskit_derive/csskit_proc_macro: Add "constrainable" generics.#825

Merged
keithamus merged 1 commit intomainfrom
constrainable
Jan 23, 2026
Merged

css_ast/csskit_derive/csskit_proc_macro: Add "constrainable" generics.#825
keithamus merged 1 commit intomainfrom
constrainable

Conversation

@keithamus
Copy link
Member

The current system of #[in_range] is a little clunky, and has problems with
extensibility - as adding new variants would require new attributes and touching
proc macros, which is contributor unfriendly.

This change introduces a set of generics that replace these, instead. This is a
much simpler way to handle this and more closely follows the rest of the
codebase conventions: derives Parse/Peek etc.

The current system of `#[in_range]` is a little clunky, and has problems with
extensibility - as adding new variants would require new attributes and touching
proc macros, which is contributor unfriendly.

This change introduces a set of generics that replace these, instead. This is a
much simpler way to handle this and more closely follows the rest of the
codebase conventions: derives Parse/Peek etc.
@keithamus keithamus enabled auto-merge (squash) January 23, 2026 22:26
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All CI jobs have passed. Approving.

@keithamus keithamus merged commit 82e7eac into main Jan 23, 2026
17 checks passed
@keithamus keithamus deleted the constrainable branch January 23, 2026 22:32
github-actions bot pushed a commit that referenced this pull request Jan 23, 2026
## [0.0.15] - 2026-01-23

### Css_ast
- css_ast/csskit_derives: Add derive(NodeWithMetadata) (#824) ([#824](#824))
- css_ast/csskit_derive/csskit_proc_macro: Add "constrainable" generics. (#825) ([#825](#825))

[forcebuild]
@keithamus keithamus mentioned this pull request Jan 23, 2026
github-actions bot pushed a commit that referenced this pull request Jan 23, 2026
## [0.0.15] - 2026-01-23

### Css_ast
- css_ast/csskit_derives: Add derive(NodeWithMetadata) (#824) ([#824](#824))
- css_ast/csskit_derive/csskit_proc_macro: Add "constrainable" generics. (#825) ([#825](#825))
github-actions bot pushed a commit that referenced this pull request Jan 25, 2026
## [0.0.15] - 2026-01-25

### Css_ast
- css_ast/csskit_derives: Add derive(NodeWithMetadata) (#824) ([#824](#824))
- css_ast/csskit_derive/csskit_proc_macro: Add "constrainable" generics. (#825) ([#825](#825))
- css_ast/css_lexer: Preserve sign in an+b, otherwise compact (#828) ([#828](#828))
- css_ast: Don't preserve sign for integer An+B selectors. (#829) ([#829](#829))

### Css_lexer
- csskit_transform/css_lexer: Check compacted lengths to determine if replacement is shorter. (#827) ([#827](#827))

[forcebuild]
github-actions bot pushed a commit that referenced this pull request Jan 25, 2026
## [0.0.15] - 2026-01-25

### Css_ast
- css_ast/csskit_derives: Add derive(NodeWithMetadata) (#824) ([#824](#824))
- css_ast/csskit_derive/csskit_proc_macro: Add "constrainable" generics. (#825) ([#825](#825))
- css_ast/css_lexer: Preserve sign in an+b, otherwise compact (#828) ([#828](#828))
- css_ast: Don't preserve sign for integer An+B selectors. (#829) ([#829](#829))

### Css_lexer
- csskit_transform/css_lexer: Check compacted lengths to determine if replacement is shorter. (#827) ([#827](#827))
github-actions bot pushed a commit that referenced this pull request Jan 26, 2026
## [0.0.15] - 2026-01-26

### Css_ast
- css_ast/csskit_derives: Add derive(NodeWithMetadata) (#824) ([#824](#824))
- css_ast/csskit_derive/csskit_proc_macro: Add "constrainable" generics. (#825) ([#825](#825))
- css_ast/css_lexer: Preserve sign in an+b, otherwise compact (#828) ([#828](#828))
- css_ast: Don't preserve sign for integer An+B selectors. (#829) ([#829](#829))
- Regenerate css_ast/src/values from csswg drafts (#830) ([#830](#830))

### Css_lexer
- csskit_transform/css_lexer: Check compacted lengths to determine if replacement is shorter. (#827) ([#827](#827))

### Csskit
- chore(deps): update dependencies (patch) (#831) ([#831](#831))

[forcebuild]
github-actions bot pushed a commit that referenced this pull request Jan 26, 2026
## [0.0.15] - 2026-01-26

### Css_ast
- css_ast/csskit_derives: Add derive(NodeWithMetadata) (#824) ([#824](#824))
- css_ast/csskit_derive/csskit_proc_macro: Add "constrainable" generics. (#825) ([#825](#825))
- css_ast/css_lexer: Preserve sign in an+b, otherwise compact (#828) ([#828](#828))
- css_ast: Don't preserve sign for integer An+B selectors. (#829) ([#829](#829))
- Regenerate css_ast/src/values from csswg drafts (#830) ([#830](#830))

### Css_lexer
- csskit_transform/css_lexer: Check compacted lengths to determine if replacement is shorter. (#827) ([#827](#827))

### Csskit
- chore(deps): update dependencies (patch) (#831) ([#831](#831))
github-actions bot pushed a commit that referenced this pull request Jan 26, 2026
## [0.0.15] - 2026-01-26

### Css_ast
- css_ast/csskit_derives: Add derive(NodeWithMetadata) (#824) ([#824](#824))
- css_ast/csskit_derive/csskit_proc_macro: Add "constrainable" generics. (#825) ([#825](#825))
- css_ast/css_lexer: Preserve sign in an+b, otherwise compact (#828) ([#828](#828))
- css_ast: Don't preserve sign for integer An+B selectors. (#829) ([#829](#829))
- Regenerate css_ast/src/values from csswg drafts (#830) ([#830](#830))

### Css_lexer
- csskit_transform/css_lexer: Check compacted lengths to determine if replacement is shorter. (#827) ([#827](#827))

### Csskit
- chore(deps): update dependencies (patch) (#831) ([#831](#831))

### Csskit_vscode
- chore(deps): update dependency oxlint to v1.40.0 (#834) ([#834](#834))

[forcebuild]
github-actions bot pushed a commit that referenced this pull request Jan 26, 2026
## [0.0.15] - 2026-01-26

### Css_ast
- css_ast/csskit_derives: Add derive(NodeWithMetadata) (#824) ([#824](#824))
- css_ast/csskit_derive/csskit_proc_macro: Add "constrainable" generics. (#825) ([#825](#825))
- css_ast/css_lexer: Preserve sign in an+b, otherwise compact (#828) ([#828](#828))
- css_ast: Don't preserve sign for integer An+B selectors. (#829) ([#829](#829))
- Regenerate css_ast/src/values from csswg drafts (#830) ([#830](#830))

### Css_lexer
- csskit_transform/css_lexer: Check compacted lengths to determine if replacement is shorter. (#827) ([#827](#827))

### Csskit
- chore(deps): update dependencies (patch) (#831) ([#831](#831))

### Csskit_vscode
- chore(deps): update dependency oxlint to v1.40.0 (#834) ([#834](#834))
github-actions bot pushed a commit that referenced this pull request Jan 26, 2026
## [0.0.15] - 2026-01-26

### Css_ast
- css_ast/csskit_derives: Add derive(NodeWithMetadata) (#824) ([#824](#824))
- css_ast/csskit_derive/csskit_proc_macro: Add "constrainable" generics. (#825) ([#825](#825))
- css_ast/css_lexer: Preserve sign in an+b, otherwise compact (#828) ([#828](#828))
- css_ast: Don't preserve sign for integer An+B selectors. (#829) ([#829](#829))
- Regenerate css_ast/src/values from csswg drafts (#830) ([#830](#830))

### Css_lexer
- csskit_transform/css_lexer: Check compacted lengths to determine if replacement is shorter. (#827) ([#827](#827))
- css_lexer: De-duplicate escape sequence consumption (#835) ([#835](#835))

### Csskit
- chore(deps): update dependencies (patch) (#831) ([#831](#831))

### Csskit_vscode
- chore(deps): update dependency oxlint to v1.40.0 (#834) ([#834](#834))

[forcebuild]
github-actions bot pushed a commit that referenced this pull request Jan 26, 2026
## [0.0.15] - 2026-01-26

### Css_ast
- css_ast/csskit_derives: Add derive(NodeWithMetadata) (#824) ([#824](#824))
- css_ast/csskit_derive/csskit_proc_macro: Add "constrainable" generics. (#825) ([#825](#825))
- css_ast/css_lexer: Preserve sign in an+b, otherwise compact (#828) ([#828](#828))
- css_ast: Don't preserve sign for integer An+B selectors. (#829) ([#829](#829))
- Regenerate css_ast/src/values from csswg drafts (#830) ([#830](#830))

### Css_lexer
- csskit_transform/css_lexer: Check compacted lengths to determine if replacement is shorter. (#827) ([#827](#827))
- css_lexer: De-duplicate escape sequence consumption (#835) ([#835](#835))

### Csskit
- chore(deps): update dependencies (patch) (#831) ([#831](#831))

### Csskit_vscode
- chore(deps): update dependency oxlint to v1.40.0 (#834) ([#834](#834))
keithamus added a commit that referenced this pull request Jan 28, 2026
## [0.0.15] - 2026-01-26

### Css_ast
- css_ast/csskit_derives: Add derive(NodeWithMetadata) (#824) ([#824](#824))
- css_ast/csskit_derive/csskit_proc_macro: Add "constrainable" generics. (#825) ([#825](#825))
- css_ast/css_lexer: Preserve sign in an+b, otherwise compact (#828) ([#828](#828))
- css_ast: Don't preserve sign for integer An+B selectors. (#829) ([#829](#829))
- Regenerate css_ast/src/values from csswg drafts (#830) ([#830](#830))

### Css_lexer
- csskit_transform/css_lexer: Check compacted lengths to determine if replacement is shorter. (#827) ([#827](#827))
- css_lexer: De-duplicate escape sequence consumption (#835) ([#835](#835))

### Csskit
- chore(deps): update dependencies (patch) (#831) ([#831](#831))

### Csskit_vscode
- chore(deps): update dependency oxlint to v1.40.0 (#834) ([#834](#834))

[forcebuild]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant