diff options
Diffstat (limited to 'markers.go')
| -rw-r--r-- | markers.go | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/markers.go b/markers.go deleted file mode 100644 index e62fe52..0000000 --- a/markers.go +++ /dev/null @@ -1,44 +0,0 @@ -// SPDX-FileCopyrightText: 2026 Stefan Majewsky <majewsky@gmx.net> -// SPDX-License-Identifier: Apache-2.0 - -package oblast - -// seal is a private type that appears in interface definitions below, -// to ensure that only types from this package can implement these interfaces. -type seal struct{} - -// TableInfo is a marker for struct types that correspond to tables. -// Put this as an embedded field on your struct type and put the table name in the field's `db` tag. -// -// // For example, this struct type... -// type LogEntry struct { -// oblast.TableInfo `db:"log_entries"` -// oblast.PrimaryKeyInfo `db:"id"` -// ID int64 `db:"id,auto"` -// CreatedAt time.Time `db:"created_at"` -// Message string `db:"message"` -// } -// // ...corresponds to this table schema (shown here in PostgreSQL syntax): -// CREATE TABLE log_entries ( -// id BIGSERIAL NOT NULL PRIMARY KEY, -// created_at TIMESTAMPTZ NOT NULL, -// message TEXT NOT NULL -// ); -// -// This marker is required for all operations that use autogenerated SQL statements. -type TableInfo struct{} - -// isTable implements the IsTable interface. -func (TableInfo) isTable(seal) {} - -// IsTable is implemented by all types that have an embedded field of type [TableInfo]. -type IsTable interface { - isTable(seal) -} - -// PrimaryKeyInfo is a marker for struct types that correspond to tables with a primary key. -// Put this as an embedded field on your struct type and list the columns of the primary key in the field's `db` tag, -// as shown on the example for type [TableInfo]. -// -// This marker is required for all UPDATE and DELETE operations that use autogenerated SQL statements. -type PrimaryKeyInfo struct{} |
