diff options
author | stuebinm | 2021-12-04 03:01:37 +0100 |
---|---|---|
committer | stuebinm | 2021-12-04 03:01:37 +0100 |
commit | c61f8b2ac2ecf5ff96401e1a913d41a6d5a4a343 (patch) | |
tree | a16f484c98b13aa4acbba83de1a7d3986aedd83c /lib/Tiled2.hs | |
parent | 79ec579b3295bf7bc24bfb878759e1ba906d2e98 (diff) |
refuse doubled names
Diffstat (limited to '')
-rw-r--r-- | lib/Tiled2.hs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/Tiled2.hs b/lib/Tiled2.hs index 7e8f773..44f2db7 100644 --- a/lib/Tiled2.hs +++ b/lib/Tiled2.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE LambdaCase #-} @@ -24,6 +25,7 @@ import qualified Data.ByteString.Lazy as LB import Data.Char (toLower) import Data.Map (Map) import Data.Maybe (fromMaybe) +import Data.Proxy (Proxy) import Data.String (IsString (fromString)) import Data.Text (Text) import qualified Data.Text as T @@ -395,12 +397,23 @@ instance HasProperties Tiledmap where adjustProperties f tiledmap = tiledmap { tiledmapProperties = f (getProperties tiledmap) } +class HasTypeName a where + typeName :: Proxy a -> Text +instance HasTypeName Layer where + typeName _ = "layer" +instance HasTypeName Tileset where + typeName _ = "tileset" +instance HasTypeName Property where + typeName _ = "property" + class HasName a where getName :: a -> Text instance HasName Layer where getName = layerName instance HasName Tileset where getName = tilesetName +instance HasName Property where + getName (Property n _) = n class IsProperty a where asProperty :: a -> PropertyValue |