5 Commits

Author SHA1 Message Date
Joel Wetzell
afa32b8c2f Merge pull request #1 from jwetzell/processor/number-parsing
add processors  to parse strings into various number types
2025-12-01 20:34:09 -06:00
Joel Wetzell
d3244fbe90 add processes to parse strings into various number 2025-12-01 20:31:56 -06:00
Joel Wetzell
d6e73d1bb0 add release notes config 2025-12-01 20:22:04 -06:00
Joel Wetzell
067412ec9f add pr labeler 2025-12-01 20:21:48 -06:00
Joel Wetzell
0741cd2293 switch changle log to github-native 2025-12-01 20:08:40 -06:00
7 changed files with 166 additions and 0 deletions

11
.github/labeler.yml vendored Normal file
View File

@@ -0,0 +1,11 @@
framing:
- changed-files:
- any-glob-to-any-file: 'internal/framing/**'
processing:
- changed-files:
- any-glob-to-any-file: 'internal/processing/**'
cli:
- changed-files:
- any-glob-to-any-file: 'cmd/showbridge/**'

19
.github/release.yml vendored Normal file
View File

@@ -0,0 +1,19 @@
changelog:
exclude:
authors:
- dependabot
labels:
- dependencies
categories:
- title: Framing 🖼️
labels:
- framing
- title: Processing 🏭
labels:
- processing
- title: CLI ⌨️
labels:
- cmd
- title: Other Changes
labels:
- '*'

18
.github/workflows/label-pr.yaml vendored Normal file
View File

@@ -0,0 +1,18 @@
# Taken from https://github.com/go-gitea/gitea
name: Add labels to PR
on:
pull_request_target:
types: [opened, synchronize, reopened]
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
labeler:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/labeler@634933edcd8ababfe52f92936142cc22ac488b1b # v6.0.1
with:
sync-labels: true

View File

@@ -24,6 +24,7 @@ archives:
changelog: changelog:
sort: asc sort: asc
use: github-native
release: release:
draft: true draft: true

View File

@@ -0,0 +1,39 @@
package processing
import (
"context"
"fmt"
"strconv"
)
type FloatParse struct {
config ProcessorConfig
}
func (fp *FloatParse) Process(ctx context.Context, payload any) (any, error) {
payloadString, ok := payload.(string)
if !ok {
return nil, fmt.Errorf("float.parse processor only accepts a string")
}
// TODO(jwetzell): make bitSize configurable
payloadFloat, err := strconv.ParseFloat(payloadString, 64)
if err != nil {
return nil, err
}
return payloadFloat, nil
}
func (fp *FloatParse) Type() string {
return fp.config.Type
}
func init() {
RegisterProcessor(ProcessorRegistration{
Type: "float.parse",
New: func(config ProcessorConfig) (Processor, error) {
return &FloatParse{config: config}, nil
},
})
}

View File

@@ -0,0 +1,39 @@
package processing
import (
"context"
"fmt"
"strconv"
)
type IntParse struct {
config ProcessorConfig
}
func (ip *IntParse) Process(ctx context.Context, payload any) (any, error) {
payloadString, ok := payload.(string)
if !ok {
return nil, fmt.Errorf("int.parse processor only accepts a string")
}
// TODO(jwetzell): make base and bitSize configurable
payloadInt, err := strconv.ParseInt(payloadString, 10, 64)
if err != nil {
return nil, err
}
return payloadInt, nil
}
func (ip *IntParse) Type() string {
return ip.config.Type
}
func init() {
RegisterProcessor(ProcessorRegistration{
Type: "int.parse",
New: func(config ProcessorConfig) (Processor, error) {
return &IntParse{config: config}, nil
},
})
}

View File

@@ -0,0 +1,39 @@
package processing
import (
"context"
"fmt"
"strconv"
)
type UintParse struct {
config ProcessorConfig
}
func (up *UintParse) Process(ctx context.Context, payload any) (any, error) {
payloadString, ok := payload.(string)
if !ok {
return nil, fmt.Errorf("uint.parse processor only accepts a string")
}
// TODO(jwetzell): make base and bitSize configurable
payloadUint, err := strconv.ParseUint(payloadString, 10, 64)
if err != nil {
return nil, err
}
return payloadUint, nil
}
func (up *UintParse) Type() string {
return up.config.Type
}
func init() {
RegisterProcessor(ProcessorRegistration{
Type: "uint.parse",
New: func(config ProcessorConfig) (Processor, error) {
return &UintParse{config: config}, nil
},
})
}