DataLiteCore swift package
This commit is contained in:
parent
b0e52a72b7
commit
6f955b2c43
70 changed files with 7939 additions and 1 deletions
36
Sources/DataLiteCore/Protocols/SQLiteRawBindable.swift
Normal file
36
Sources/DataLiteCore/Protocols/SQLiteRawBindable.swift
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
import Foundation
|
||||
|
||||
/// A type that can be used as a parameter in an SQL statement.
|
||||
///
|
||||
/// Conforming types provide a raw SQLite-compatible representation of their values,
|
||||
/// enabling them to be directly bound to SQL statements.
|
||||
///
|
||||
/// **Example implementation:**
|
||||
///
|
||||
/// ```swift
|
||||
/// struct Device: SQLiteRawBindable {
|
||||
/// var model: String
|
||||
///
|
||||
/// var sqliteRawValue: SQLiteRawValue {
|
||||
/// return .text(model)
|
||||
/// }
|
||||
/// }
|
||||
/// ```
|
||||
public protocol SQLiteRawBindable: SQLiteLiteralable {
|
||||
/// The raw SQLite representation of the value.
|
||||
///
|
||||
/// This property provides a value that is compatible with SQLite's internal representation,
|
||||
/// such as text, integer, real, blob, or null. It is used when binding the conforming
|
||||
/// type to SQL statements.
|
||||
var sqliteRawValue: SQLiteRawValue { get }
|
||||
}
|
||||
|
||||
public extension SQLiteRawBindable {
|
||||
/// The string representation of the value as an SQLite literal.
|
||||
///
|
||||
/// This property leverages the `sqliteRawValue` to produce a valid SQLite-compatible literal,
|
||||
/// formatted appropriately for use in SQL queries.
|
||||
var sqliteLiteral: String {
|
||||
sqliteRawValue.sqliteLiteral
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue