mirror of
https://github.com/typeable/country-codes.git
synced 2024-09-11 05:35:35 +03:00
Add Generic, ToSchema and To/FromJSONKey instances
This commit is contained in:
parent
f41fa75ba9
commit
a85df94fc3
@ -32,6 +32,7 @@ library
|
||||
, aeson >= 0.5
|
||||
, deepseq >= 1.4
|
||||
, shakespeare == 2.0.*
|
||||
, openapi3
|
||||
ghc-options: -Wall
|
||||
other-modules: Data.CountryCodes.ISO31661
|
||||
exposed-modules: Data.CountryCodes
|
||||
|
@ -1,4 +1,6 @@
|
||||
{-# LANGUAGE DeriveDataTypeable, OverloadedStrings, NoImplicitPrelude, PatternGuards, FlexibleInstances, MultiParamTypeClasses #-}
|
||||
{-# LANGUAGE DeriveDataTypeable, OverloadedStrings, NoImplicitPrelude
|
||||
, DeriveGeneric, DeriveAnyClass, PatternGuards, FlexibleInstances
|
||||
, MultiParamTypeClasses, StandaloneDeriving #-}
|
||||
-- | This file is generated from the Wikipedia page
|
||||
-- <http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2>
|
||||
module Data.CountryCodes.ISO31661 (
|
||||
@ -14,11 +16,13 @@ module Data.CountryCodes.ISO31661 (
|
||||
|
||||
import Control.Applicative (pure)
|
||||
import Control.DeepSeq (NFData(..))
|
||||
import Data.Aeson
|
||||
import Data.Typeable
|
||||
import qualified Data.Text as T
|
||||
import Prelude (Show,Read,Eq,Ord,Bounded,Enum,error,($),(++),Maybe(..),(.),fail,seq)
|
||||
import Text.Shakespeare.I18N
|
||||
import Data.Aeson
|
||||
import Data.Typeable
|
||||
import Data.Text as T
|
||||
import Data.OpenApi
|
||||
import GHC.Generics
|
||||
import Prelude (Show,Read,Eq,Ord,Bounded,Enum,error,($),(++),Maybe(..),(.),fail,seq)
|
||||
import Text.Shakespeare.I18N
|
||||
|
||||
data CountryCode =
|
||||
AD
|
||||
@ -278,7 +282,7 @@ data CountryCode =
|
||||
| XK
|
||||
| XC
|
||||
| WE
|
||||
deriving (Show,Read,Eq,Ord,Bounded,Enum,Typeable)
|
||||
deriving (Show,Read,Eq,Ord,Bounded,Enum,Typeable, Generic, ToSchema)
|
||||
|
||||
-- | Maybe get the CountryCode from the text code.
|
||||
fromMText :: T.Text -> Maybe CountryCode
|
||||
@ -1583,13 +1587,16 @@ countryList = [("Afghanistan",AF)
|
||||
|
||||
-- | to json: as a simple string
|
||||
instance ToJSON CountryCode where
|
||||
toJSON =toJSON . toText
|
||||
toJSON = toJSON . toText
|
||||
|
||||
-- | from json: as a simple string
|
||||
instance FromJSON CountryCode where
|
||||
parseJSON (String s)
|
||||
| Just a <- fromMText s=pure a
|
||||
parseJSON _ =fail "CountryCode"
|
||||
parseJSON _ = fail "CountryCode"
|
||||
|
||||
deriving instance ToJSONKey CountryCode
|
||||
deriving instance FromJSONKey CountryCode
|
||||
|
||||
-- | show user readable name, in English (ignoring locale for now)
|
||||
instance RenderMessage master CountryCode where
|
||||
|
65
stack.yaml
65
stack.yaml
@ -1,64 +1,9 @@
|
||||
# This file was automatically generated by 'stack init'
|
||||
#
|
||||
# Some commonly used options have been documented as comments in this file.
|
||||
# For advanced use and comprehensive documentation of the format, please see:
|
||||
# https://docs.haskellstack.org/en/stable/yaml_configuration/
|
||||
resolver: lts-18.18
|
||||
|
||||
# Resolver to choose a 'specific' stackage snapshot or a compiler version.
|
||||
# A snapshot resolver dictates the compiler version and the set of packages
|
||||
# to be used for project dependencies. For example:
|
||||
#
|
||||
# resolver: lts-3.5
|
||||
# resolver: nightly-2015-09-21
|
||||
# resolver: ghc-7.10.2
|
||||
#
|
||||
# The location of a snapshot can be provided as a file or url. Stack assumes
|
||||
# a snapshot provided as a file might change, whereas a url resource does not.
|
||||
#
|
||||
# resolver: ./custom-snapshot.yaml
|
||||
# resolver: https://example.com/snapshots/2018-01-01.yaml
|
||||
resolver: lts-13.7
|
||||
|
||||
# User packages to be built.
|
||||
# Various formats can be used as shown in the example below.
|
||||
#
|
||||
# packages:
|
||||
# - some-directory
|
||||
# - https://example.com/foo/bar/baz-0.0.2.tar.gz
|
||||
# - location:
|
||||
# git: https://github.com/commercialhaskell/stack.git
|
||||
# commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a
|
||||
# - location: https://github.com/commercialhaskell/stack/commit/e7b331f14bcffb8367cd58fbfc8b40ec7642100a
|
||||
# subdirs:
|
||||
# - auto-update
|
||||
# - wai
|
||||
packages:
|
||||
- .
|
||||
# Dependency packages to be pulled from upstream that are not in the resolver
|
||||
# using the same syntax as the packages field.
|
||||
# (e.g., acme-missiles-0.3)
|
||||
# extra-deps: []
|
||||
|
||||
# Override default flag values for local packages and extra-deps
|
||||
# flags: {}
|
||||
|
||||
# Extra package databases containing global packages
|
||||
# extra-package-dbs: []
|
||||
|
||||
# Control whether we use the GHC we find on the path
|
||||
# system-ghc: true
|
||||
#
|
||||
# Require a specific version of stack, using version ranges
|
||||
# require-stack-version: -any # Default
|
||||
# require-stack-version: ">=1.9"
|
||||
#
|
||||
# Override the architecture used by stack, especially useful on Windows
|
||||
# arch: i386
|
||||
# arch: x86_64
|
||||
#
|
||||
# Extra directories used by stack for building
|
||||
# extra-include-dirs: [/path/to/dir]
|
||||
# extra-lib-dirs: [/path/to/dir]
|
||||
#
|
||||
# Allow a newer minor version of GHC than the snapshot specifies
|
||||
# compiler-check: newer-minor
|
||||
extra-deps:
|
||||
- git: https://github.com/typeable/openapi3.git
|
||||
# nix-sha256: 1aqn5dia4aqwpmr3v0rcb8kzhknp5674hhay8h7p76206dx83ykg
|
||||
commit: bb1c64f8501535143c92907166fdc9f8df6d51b9
|
||||
|
Loading…
Reference in New Issue
Block a user