diff options
Diffstat (limited to 'hybring.cr')
-rw-r--r-- | hybring.cr | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/hybring.cr b/hybring.cr new file mode 100644 index 0000000..220559f --- /dev/null +++ b/hybring.cr @@ -0,0 +1,34 @@ +# Hybrid web ring +# Copyright (C) 2023 Nguyễn Gia Phong +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. + +@[Link("sqlite3")] +lib SQLite + type Database = Void* + type Statement = Void* + fun open = sqlite3_open(filename : LibC::Char*, db : Database*) : LibC::Int + fun prepare = sqlite3_prepare(db : Database, query : LibC::Char*, + length : LibC::Int, stmt : Statement*, + query_tail : LibC::Char*) + fun close = sqlite3_close(db : Database) : LibC::Int +end + +DB_INIT = "CREATE TABLE IF NOT EXISTS foo (id INTEGER PRIMARY KEY);"; + +SQLite.open "foo.db", out db +begin +ensure + SQLite.close db +end |