Skip to content

Commit cc9c455

Browse files
committed
Initial release v0.1.0
0 parents  commit cc9c455

43 files changed

Lines changed: 9227 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.clang-format

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
AccessModifierOffset: -4
2+
AlignAfterOpenBracket: DontAlign
3+
AllowShortFunctionsOnASingleLine: All
4+
BasedOnStyle: Microsoft
5+
BraceWrapping:
6+
AfterClass: true
7+
AfterControlStatement: true
8+
AfterEnum: true
9+
AfterNamespace: true
10+
AfterStruct: true
11+
AfterUnion: true
12+
AfterCaseLabel : true
13+
BeforeCatch: true
14+
BeforeElse: true
15+
IndentBraces: false
16+
SplitEmptyFunction: true
17+
SplitEmptyRecord: true
18+
BreakBeforeBraces: Custom
19+
ColumnLimit: 0
20+
Cpp11BracedListStyle: true
21+
FixNamespaceComments: true
22+
IndentCaseLabels: true
23+
IndentPPDirectives: AfterHash
24+
IndentWidth: 4
25+
MaxEmptyLinesToKeep: 1
26+
NamespaceIndentation: All
27+
PointerAlignment: Left
28+
SortIncludes: false
29+
SortUsingDeclarations: false
30+
SpaceAfterCStyleCast: false
31+
SpaceBeforeAssignmentOperators: true
32+
SpaceBeforeParens: ControlStatements
33+
SpaceInEmptyParentheses: false
34+
SpacesInCStyleCastParentheses: false
35+
SpacesInParentheses: true
36+
SpacesInSquareBrackets: false
37+
TabWidth: 4
38+
UseTab: true
39+
KeepEmptyLines:
40+
AtStartOfBlock: false
41+
AtStartOfFile: false
42+
AtEndOfFile: false
43+
SpaceBeforeRangeBasedForLoopColon: true
44+
SpacesInContainerLiterals: false
45+
SeparateDefinitionBlocks: Always

.editorconfig

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# EditorConfig is awesome: https://EditorConfig.org
2+
3+
# C++ specific settings
4+
[*.{cpp,hpp,h,cc,cxx,inl}]
5+
indent_style = tab
6+
indent_size = 4
7+
end_of_line = lf

.gitattributes

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Enforce LF line endings for all text files (matches .editorconfig)
2+
* text=auto eol=lf
3+
4+
# Windows-specific files that require CRLF
5+
*.bat text eol=crlf
6+
*.cmd text eol=crlf
7+
*.ps1 text eol=crlf
8+
9+
# Binary files
10+
*.png binary
11+
*.jpg binary
12+
*.jpeg binary
13+
*.gif binary
14+
*.ico binary
15+
*.exe binary
16+
*.dll binary
17+
*.so binary
18+
*.dylib binary
19+
*.a binary
20+
*.lib binary
21+
*.o binary
22+
*.obj binary
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
name: Bug Report
2+
description: Report a bug or unexpected behavior
3+
title: "[Bug]: "
4+
labels: ["bug"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for taking the time to report a bug! Please fill out the information below to help us investigate.
10+
11+
- type: textarea
12+
id: description
13+
attributes:
14+
label: Bug Description
15+
description: A clear and concise description of what the bug is.
16+
placeholder: Tell us what you see!
17+
validations:
18+
required: true
19+
20+
- type: textarea
21+
id: reproduction
22+
attributes:
23+
label: Steps to Reproduce
24+
description: Steps to reproduce the behavior
25+
placeholder: |
26+
1. Include nfx-stringbuilder headers...
27+
2. Create Decimal/Int128 instance...
28+
3. See error...
29+
validations:
30+
required: true
31+
32+
- type: textarea
33+
id: expected
34+
attributes:
35+
label: Expected Behavior
36+
description: What did you expect to happen?
37+
placeholder: I expected...
38+
validations:
39+
required: true
40+
41+
- type: textarea
42+
id: actual
43+
attributes:
44+
label: Actual Behavior
45+
description: What actually happened?
46+
placeholder: Instead, I got...
47+
validations:
48+
required: true
49+
50+
- type: textarea
51+
id: code
52+
attributes:
53+
label: Code Sample
54+
description: Minimal code to reproduce the issue
55+
render: cpp
56+
placeholder: |
57+
#include <nfx/string/StringBuilder.h>
58+
59+
int main() {
60+
using namespace nfx::string;
61+
62+
auto lease = StringBuilderPool::lease();
63+
auto builder = lease.create();
64+
builder << "Hello" << ", " << "World";
65+
// Your code here that reproduces the issue
66+
}
67+
validations:
68+
required: false
69+
70+
- type: dropdown
71+
id: os
72+
attributes:
73+
label: Operating System
74+
description: What OS are you running?
75+
options:
76+
- Windows
77+
- Linux
78+
- macOS
79+
- Other
80+
multiple: true
81+
validations:
82+
required: true
83+
84+
- type: input
85+
id: compiler
86+
attributes:
87+
label: Compiler
88+
description: Which compiler and version? (e.g., GCC 14.2.0, MSVC 19.44, Clang 19.1)
89+
placeholder: "GCC 14.2.0"
90+
validations:
91+
required: true
92+
93+
- type: input
94+
id: cmake
95+
attributes:
96+
label: CMake Version
97+
description: What version of CMake are you using?
98+
placeholder: "3.30.0"
99+
validations:
100+
required: false
101+
102+
- type: input
103+
id: version
104+
attributes:
105+
label: nfx-stringbuilder Version
106+
description: Which version of nfx-stringbuilder are you using?
107+
placeholder: "1.0.0"
108+
validations:
109+
required: true
110+
111+
- type: textarea
112+
id: additional
113+
attributes:
114+
label: Additional Context
115+
description: Add any other context about the problem here (error messages, stack traces, etc.)
116+
placeholder: Error output, logs, screenshots, etc.
117+
validations:
118+
required: false

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: 💬 Discussions
4+
url: https://github.com/nfx-libs/nfx-stringbuilder/discussions
5+
about: Ask questions and discuss ideas with the community
6+
- name: 📚 Documentation
7+
url: https://nfx-libs.github.io/nfx-stringbuilder/
8+
about: Browse the full documentation
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
name: Feature Request
2+
description: Suggest a new feature or enhancement
3+
title: "[Feature]: "
4+
labels: ["enhancement"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for suggesting a feature! Please describe what you'd like to see added.
10+
11+
- type: textarea
12+
id: problem
13+
attributes:
14+
label: Problem Statement
15+
description: Is your feature request related to a problem? Please describe.
16+
placeholder: I'm always frustrated when...
17+
validations:
18+
required: false
19+
20+
- type: textarea
21+
id: solution
22+
attributes:
23+
label: Proposed Solution
24+
description: Describe the solution you'd like
25+
placeholder: I would like to see...
26+
validations:
27+
required: true
28+
29+
- type: textarea
30+
id: alternatives
31+
attributes:
32+
label: Alternatives Considered
33+
description: Describe alternatives you've considered
34+
placeholder: I also thought about...
35+
validations:
36+
required: false
37+
38+
- type: textarea
39+
id: example
40+
attributes:
41+
label: API Example
42+
description: How would you like to use this feature? (code example)
43+
render: cpp
44+
placeholder: |
45+
#include <nfx/string/StringBuilder.h>
46+
47+
int main() {
48+
using namespace nfx::string;
49+
50+
// Example usage of proposed feature
51+
auto lease = StringBuilderPool::lease();
52+
auto builder = lease.create();
53+
builder << "Example" << " usage";
54+
55+
// Your proposed API usage here
56+
}
57+
validations:
58+
required: false
59+
60+
- type: dropdown
61+
id: priority
62+
attributes:
63+
label: Priority
64+
description: How important is this feature to you?
65+
options:
66+
- Critical - Blocking my use of the library
67+
- High - Would significantly improve my workflow
68+
- Medium - Nice to have
69+
- Low - Minor improvement
70+
validations:
71+
required: false
72+
73+
- type: dropdown
74+
id: breaking
75+
attributes:
76+
label: Breaking Change
77+
description: Would this be a breaking change to existing APIs?
78+
options:
79+
- "No - Fully backward compatible"
80+
- "Yes - Would break existing code"
81+
- "Not sure"
82+
validations:
83+
required: false
84+
85+
- type: textarea
86+
id: additional
87+
attributes:
88+
label: Additional Context
89+
description: Add any other context, screenshots, or references about the feature request here
90+
placeholder: Links to similar features in other libraries, use cases, etc.
91+
validations:
92+
required: false
93+
94+
- type: checkboxes
95+
id: contribution
96+
attributes:
97+
label: Contribution
98+
description: Would you be willing to contribute this feature?
99+
options:
100+
- label: I am willing to submit a pull request for this feature
101+
required: false

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
## Description
2+
3+
<!-- Provide a brief description of the changes in this PR -->
4+
5+
## Type of Change
6+
7+
<!-- Mark relevant items with an [x] -->
8+
9+
- [ ] Bug fix (non-breaking change which fixes an issue)
10+
- [ ] New feature (non-breaking change which adds functionality)
11+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
12+
- [ ] Documentation update
13+
- [ ] Performance improvement
14+
- [ ] Code refactoring
15+
- [ ] Build/CI configuration change
16+
- [ ] Other (please describe):
17+
18+
## Related Issues
19+
20+
<!-- Link to related issues using #issue_number -->
21+
22+
Fixes #
23+
Relates to #
24+
25+
## Changes Made
26+
27+
<!-- Describe the changes in detail -->
28+
29+
-
30+
-
31+
-
32+
33+
## Testing
34+
35+
<!-- Describe how you tested your changes -->
36+
37+
- [ ] All existing tests pass
38+
- [ ] Added new tests for changes
39+
- [ ] Tested on Windows
40+
- [ ] Tested on Linux
41+
- [ ] Tested on macOS
42+
- [ ] Benchmarks run (if performance-related)
43+
44+
### Test Configuration
45+
46+
- **Compiler(s)**:
47+
- **CMake version**:
48+
- **Build type**: Debug / Release / RelWithDebInfo
49+
50+
## Documentation
51+
52+
<!-- Check all that apply -->
53+
54+
- [ ] Updated code comments
55+
- [ ] Updated Doxygen documentation
56+
- [ ] Updated README.md
57+
- [ ] Updated CHANGELOG.md
58+
- [ ] No documentation needed
59+
60+
## Breaking Changes
61+
62+
<!-- If this is a breaking change, describe the impact and migration path -->
63+
64+
**Impact**:
65+
66+
**Migration guide**:
67+
68+
## Checklist
69+
70+
<!-- Ensure all items are checked before requesting review -->
71+
72+
- [ ] Code follows the project's coding style
73+
- [ ] Self-review of code completed
74+
- [ ] No compiler warnings introduced
75+
- [ ] Changes are properly documented
76+
- [ ] All tests pass locally
77+
- [ ] No unnecessary debug code or comments left behind
78+
- [ ] Commit messages are clear and descriptive
79+
80+
## Screenshots / Output
81+
82+
<!-- If applicable, add screenshots or command output to demonstrate the changes -->
83+
84+
```
85+
# Paste relevant output here
86+
```
87+
88+
## Additional Notes
89+
90+
<!-- Any additional information that reviewers should know -->

0 commit comments

Comments
 (0)