module Autodocodec.Nix.Render
( toNixExpressionViaCodec,
toNixExpressionVia,
objectToNixExpressionViaCodec,
objectToNixExpressionVia,
renderExpression,
)
where
import Autodocodec
import Autodocodec.Nix.Expression as Nix
import Data.Map (Map)
import Data.Text (Text)
toNixExpressionViaCodec :: (HasCodec a) => a -> Nix.Expression
toNixExpressionViaCodec :: forall a. HasCodec a => a -> Expression
toNixExpressionViaCodec = ValueCodec a a -> a -> Expression
forall a void. ValueCodec a void -> a -> Expression
toNixExpressionVia ValueCodec a a
forall value. HasCodec value => JSONCodec value
codec
toNixExpressionVia :: ValueCodec a void -> a -> Nix.Expression
toNixExpressionVia :: forall a void. ValueCodec a void -> a -> Expression
toNixExpressionVia ValueCodec a void
c = Value -> Expression
jsonValueExpression (Value -> Expression) -> (a -> Value) -> a -> Expression
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ValueCodec a void -> a -> Value
forall a void. ValueCodec a void -> a -> Value
toJSONVia ValueCodec a void
c
objectToNixExpressionViaCodec :: (HasObjectCodec a) => a -> Map Text Nix.Expression
objectToNixExpressionViaCodec :: forall a. HasObjectCodec a => a -> Map Text Expression
objectToNixExpressionViaCodec = ObjectCodec a a -> a -> Map Text Expression
forall a void. ObjectCodec a void -> a -> Map Text Expression
objectToNixExpressionVia ObjectCodec a a
forall object. HasObjectCodec object => JSONObjectCodec object
objectCodec
objectToNixExpressionVia :: ObjectCodec a void -> a -> Map Text Nix.Expression
objectToNixExpressionVia :: forall a void. ObjectCodec a void -> a -> Map Text Expression
objectToNixExpressionVia ObjectCodec a void
c = Object -> Map Text Expression
jsonObjectExpression (Object -> Map Text Expression)
-> (a -> Object) -> a -> Map Text Expression
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ObjectCodec a void -> a -> Object
forall a void. ObjectCodec a void -> a -> Object
toJSONObjectVia ObjectCodec a void
c