mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-11-03 18:32:25 -06:00 
			
		
		
		
	
		
			
				
	
	
		
			59 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package schema
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"database/sql"
 | 
						|
	"reflect"
 | 
						|
)
 | 
						|
 | 
						|
type Model interface {
 | 
						|
	ScanRows(ctx context.Context, rows *sql.Rows) (int, error)
 | 
						|
	Value() interface{}
 | 
						|
}
 | 
						|
 | 
						|
type Query interface {
 | 
						|
	QueryAppender
 | 
						|
	Operation() string
 | 
						|
	GetModel() Model
 | 
						|
	GetTableName() string
 | 
						|
}
 | 
						|
 | 
						|
//------------------------------------------------------------------------------
 | 
						|
 | 
						|
type BeforeAppendModelHook interface {
 | 
						|
	BeforeAppendModel(ctx context.Context, query Query) error
 | 
						|
}
 | 
						|
 | 
						|
var beforeAppendModelHookType = reflect.TypeOf((*BeforeAppendModelHook)(nil)).Elem()
 | 
						|
 | 
						|
//------------------------------------------------------------------------------
 | 
						|
 | 
						|
type BeforeScanHook interface {
 | 
						|
	BeforeScan(context.Context) error
 | 
						|
}
 | 
						|
 | 
						|
var beforeScanHookType = reflect.TypeOf((*BeforeScanHook)(nil)).Elem()
 | 
						|
 | 
						|
//------------------------------------------------------------------------------
 | 
						|
 | 
						|
type AfterScanHook interface {
 | 
						|
	AfterScan(context.Context) error
 | 
						|
}
 | 
						|
 | 
						|
var afterScanHookType = reflect.TypeOf((*AfterScanHook)(nil)).Elem()
 | 
						|
 | 
						|
//------------------------------------------------------------------------------
 | 
						|
 | 
						|
type BeforeScanRowHook interface {
 | 
						|
	BeforeScanRow(context.Context) error
 | 
						|
}
 | 
						|
 | 
						|
var beforeScanRowHookType = reflect.TypeOf((*BeforeScanRowHook)(nil)).Elem()
 | 
						|
 | 
						|
//------------------------------------------------------------------------------
 | 
						|
 | 
						|
type AfterScanRowHook interface {
 | 
						|
	AfterScanRow(context.Context) error
 | 
						|
}
 | 
						|
 | 
						|
var afterScanRowHookType = reflect.TypeOf((*AfterScanRowHook)(nil)).Elem()
 |