feat: new registry
This commit is contained in:
9
internal/registry_new/conversion.go
Normal file
9
internal/registry_new/conversion.go
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
package registrynew
|
||||||
|
|
||||||
|
// Conversion
|
||||||
|
type Conversion interface {
|
||||||
|
InRepr() string
|
||||||
|
OutRepr() string
|
||||||
|
|
||||||
|
Run(Expr) (Expr, error)
|
||||||
|
}
|
||||||
12
internal/registry_new/engine.go
Normal file
12
internal/registry_new/engine.go
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
package registrynew
|
||||||
|
|
||||||
|
type Process interface {
|
||||||
|
Get() (Expr, error)
|
||||||
|
Step(int) bool
|
||||||
|
}
|
||||||
|
|
||||||
|
type Engine interface {
|
||||||
|
Load(Expr) Process
|
||||||
|
Name() string
|
||||||
|
InRepr() string
|
||||||
|
}
|
||||||
7
internal/registry_new/expr.go
Normal file
7
internal/registry_new/expr.go
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
package registrynew
|
||||||
|
|
||||||
|
type Expr interface {
|
||||||
|
Repr() string
|
||||||
|
|
||||||
|
Data() any
|
||||||
|
}
|
||||||
5
internal/registry_new/marshaler.go
Normal file
5
internal/registry_new/marshaler.go
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
package registrynew
|
||||||
|
|
||||||
|
type Marshaler interface {
|
||||||
|
InType() string
|
||||||
|
}
|
||||||
10
internal/registry_new/registry.go
Normal file
10
internal/registry_new/registry.go
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
package registrynew
|
||||||
|
|
||||||
|
import "iter"
|
||||||
|
|
||||||
|
type Registry interface {
|
||||||
|
ListEngines() iter.Seq[string]
|
||||||
|
GetEngine(name string) (Engine, error)
|
||||||
|
|
||||||
|
ListReprs() iter.Seq[string]
|
||||||
|
}
|
||||||
4
internal/registry_new/repr.go
Normal file
4
internal/registry_new/repr.go
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
package registrynew
|
||||||
|
|
||||||
|
type Repr interface {
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user