summaryrefslogtreecommitdiff
path: root/src/Asset.hs
blob: 550438b5163ecf713c97e851f7b659b4cf1667ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
module Asset (
    Asset(..),
    AssetPath(..),
) where

import Data.Text (Text)
import Data.Text qualified as T

import Script.Expr.Class

data Asset = Asset
    { assetPath :: AssetPath
    }

newtype AssetPath = AssetPath FilePath

textAssetPath :: AssetPath -> Text
textAssetPath (AssetPath path) = T.pack path

instance ExprType Asset where
    textExprType _ = "asset"
    textExprValue asset = "asset:" <> textAssetPath (assetPath asset)

    recordMembers =
        [ ( "path", RecordSelector $ assetPath )
        ]

instance ExprType AssetPath where
    textExprType _ = "filepath"
    textExprValue = ("filepath:" <>) . textAssetPath