blob: 72ffd54357f376f68cbb55857c2cce5cad796d69 (
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
31
32
33
|
module Asset (
Asset(..),
AssetPath(..),
) where
import Data.Text (Text)
import Data.Text qualified as T
import Data.Typeable
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
exprExpansionConvTo = cast textAssetPath
|