mirror of
https://github.com/nikita-volkov/hasql.git
synced 2024-11-22 01:52:45 +03:00
Init
This commit is contained in:
commit
02015ca5e3
10
.travis.yml
Normal file
10
.travis.yml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
language: haskell
|
||||||
|
|
||||||
|
ghc:
|
||||||
|
- 7.6
|
||||||
|
- 7.8
|
||||||
|
|
||||||
|
install:
|
||||||
|
- cabal install happy # a "haskell-src-exts" implicit dependency workaround
|
||||||
|
- cabal install --only-dependencies --enable-tests --enable-benchmarks --force-reinstalls
|
||||||
|
|
22
LICENSE
Normal file
22
LICENSE
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
Copyright (c) 2014, Nikita Volkov
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person
|
||||||
|
obtaining a copy of this software and associated documentation
|
||||||
|
files (the "Software"), to deal in the Software without
|
||||||
|
restriction, including without limitation the rights to use,
|
||||||
|
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the
|
||||||
|
Software is furnished to do so, subject to the following
|
||||||
|
conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||||
|
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
|
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
OTHER DEALINGS IN THE SOFTWARE.
|
55
high-sql.cabal
Normal file
55
high-sql.cabal
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
name:
|
||||||
|
high-sql
|
||||||
|
version:
|
||||||
|
0.1.0
|
||||||
|
synopsis:
|
||||||
|
description:
|
||||||
|
category:
|
||||||
|
homepage:
|
||||||
|
https://github.com/nikita-volkov/high-sql
|
||||||
|
bug-reports:
|
||||||
|
https://github.com/nikita-volkov/high-sql/issues
|
||||||
|
author:
|
||||||
|
Nikita Volkov <nikita.y.volkov@mail.ru>
|
||||||
|
maintainer:
|
||||||
|
Nikita Volkov <nikita.y.volkov@mail.ru>
|
||||||
|
copyright:
|
||||||
|
(c) 2014, Nikita Volkov
|
||||||
|
license:
|
||||||
|
MIT
|
||||||
|
license-file:
|
||||||
|
LICENSE
|
||||||
|
build-type:
|
||||||
|
Simple
|
||||||
|
cabal-version:
|
||||||
|
>=1.10
|
||||||
|
|
||||||
|
|
||||||
|
source-repository head
|
||||||
|
type:
|
||||||
|
git
|
||||||
|
location:
|
||||||
|
git://github.com/nikita-volkov/high-sql.git
|
||||||
|
|
||||||
|
|
||||||
|
library
|
||||||
|
hs-source-dirs:
|
||||||
|
library
|
||||||
|
other-modules:
|
||||||
|
HighSQL.Prelude
|
||||||
|
exposed-modules:
|
||||||
|
HighSQL
|
||||||
|
HighSQL.Backend
|
||||||
|
build-depends:
|
||||||
|
-- database:
|
||||||
|
ex-pool == 0.2.*,
|
||||||
|
-- errors:
|
||||||
|
loch-th == 0.2.*,
|
||||||
|
placeholders == 0.1.*,
|
||||||
|
-- general:
|
||||||
|
mtl-prelude == 0.1.*,
|
||||||
|
base-prelude == 0.1.*
|
||||||
|
default-extensions:
|
||||||
|
Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFunctor, DeriveGeneric, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, ImpredicativeTypes, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples
|
||||||
|
default-language:
|
||||||
|
Haskell2010
|
18
library/HighSQL.hs
Normal file
18
library/HighSQL.hs
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
module HighSQL where
|
||||||
|
|
||||||
|
import HighSQL.Prelude hiding (read, Read, write, Write)
|
||||||
|
import qualified HighSQL.Backend as Backend
|
||||||
|
import qualified Data.Pool as Pool
|
||||||
|
|
||||||
|
|
||||||
|
-- |
|
||||||
|
-- A session, in which transactions are executed.
|
||||||
|
-- It maintains the shared state between transactions.
|
||||||
|
type S =
|
||||||
|
ReaderT (Pool.Pool Backend.Connection)
|
||||||
|
|
||||||
|
-- |
|
||||||
|
-- Run the session monad transformer in the base monad.
|
||||||
|
session :: Backend.Backend -> S m r -> m r
|
||||||
|
session b s =
|
||||||
|
$notImplemented
|
10
library/HighSQL/Backend.hs
Normal file
10
library/HighSQL/Backend.hs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
-- |
|
||||||
|
-- An open API for implementation of specific drivers.
|
||||||
|
module HighSQL.Backend where
|
||||||
|
|
||||||
|
import HighSQL.Prelude
|
||||||
|
|
||||||
|
|
||||||
|
data Backend
|
||||||
|
|
||||||
|
data Connection
|
31
library/HighSQL/Prelude.hs
Normal file
31
library/HighSQL/Prelude.hs
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
module HighSQL.Prelude
|
||||||
|
(
|
||||||
|
module Exports,
|
||||||
|
bug,
|
||||||
|
bottom,
|
||||||
|
)
|
||||||
|
where
|
||||||
|
|
||||||
|
|
||||||
|
-- base-prelude
|
||||||
|
-------------------------
|
||||||
|
import BasePrelude as Exports
|
||||||
|
|
||||||
|
-- mtl-prelude
|
||||||
|
-------------------------
|
||||||
|
import MTLPrelude as Exports hiding (shift)
|
||||||
|
|
||||||
|
-- placeholders
|
||||||
|
-------------------------
|
||||||
|
import Development.Placeholders as Exports
|
||||||
|
|
||||||
|
-- custom
|
||||||
|
-------------------------
|
||||||
|
import qualified Debug.Trace.LocationTH
|
||||||
|
|
||||||
|
|
||||||
|
bug = [e| $(Debug.Trace.LocationTH.failure) . (msg <>) |]
|
||||||
|
where
|
||||||
|
msg = "A \"stream\" package bug: " :: String
|
||||||
|
|
||||||
|
bottom = [e| $bug "Bottom evaluated" |]
|
Loading…
Reference in New Issue
Block a user