Skip to content

Commit 9cacb00

Browse files
authored
fix(writers): Assert unimplemented interface at compile-time (#857)
1 parent 1265554 commit 9cacb00

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

plugins/destination/plugin.go

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,26 @@ type ManagedWriter interface {
3333

3434
type UnimplementedManagedWriter struct{}
3535

36+
var _ ManagedWriter = UnimplementedManagedWriter{}
37+
38+
func (UnimplementedManagedWriter) WriteTableBatch(context.Context, *schema.Table, []arrow.Record) error {
39+
panic("WriteTableBatch not implemented")
40+
}
41+
3642
type UnmanagedWriter interface {
3743
Write(ctx context.Context, tables schema.Tables, res <-chan arrow.Record) error
3844
Metrics() Metrics
3945
}
4046

41-
type UnimplementedUnmanagedWriter struct{}
47+
var _ UnmanagedWriter = UnimplementedUnmanagedWriter{}
4248

43-
func (*UnimplementedManagedWriter) WriteTableBatch(context.Context, *arrow.Schema, []arrow.Record) error {
44-
panic("WriteTableBatch not implemented")
45-
}
49+
type UnimplementedUnmanagedWriter struct{}
4650

47-
func (*UnimplementedUnmanagedWriter) Write(context.Context, schema.Schemas, <-chan arrow.Record) error {
51+
func (UnimplementedUnmanagedWriter) Write(context.Context, schema.Tables, <-chan arrow.Record) error {
4852
panic("Write not implemented")
4953
}
5054

51-
func (*UnimplementedUnmanagedWriter) Metrics() Metrics {
55+
func (UnimplementedUnmanagedWriter) Metrics() Metrics {
5256
panic("Metrics not implemented")
5357
}
5458

0 commit comments

Comments
 (0)