Skip to content

Commit 604f4ac

Browse files
committed
Add encode function for Package.t
1 parent aabb02a commit 604f4ac

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

src/dune_engine/package.ml

+35
Original file line numberDiff line numberDiff line change
@@ -547,6 +547,41 @@ let name t = t.id.name
547547

548548
let dir t = t.id.dir
549549

550+
let encode
551+
{ id = _
552+
; loc = _
553+
; has_opam_file = _
554+
; synopsis
555+
; description
556+
; depends
557+
; conflicts
558+
; depopts
559+
; info
560+
; version
561+
; tags
562+
; deprecated_package_names
563+
; sites
564+
} =
565+
let open Dune_lang.Encoder in
566+
let fields =
567+
record_fields
568+
[ field_o "synopsis" string synopsis
569+
; field_o "description" string description
570+
; field_l "depends" Dependency.encode depends
571+
; field_l "conflicts" Dependency.encode conflicts
572+
; field_l "depopts" Dependency.encode depopts
573+
; field_o "version" string version
574+
; field_l "tags" string tags
575+
; field_l "deprecated_package_names" Name.encode
576+
(Name.Map.keys deprecated_package_names)
577+
; field_l "sits"
578+
(pair Section.Site.encode Section.encode)
579+
(Section.Site.Map.to_list sites)
580+
]
581+
@ Info.encode info
582+
in
583+
constr "package" (list sexp) fields
584+
550585
let decode ~dir =
551586
let open Dune_lang.Decoder in
552587
let name_map syntax of_list_map to_string name decode print_value error_msg =

src/dune_engine/package.mli

+2
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,8 @@ val dir : t -> Path.Source.t
154154

155155
val file : dir:Path.t -> name:Name.t -> Path.t
156156

157+
val encode : t Dune_lang.Encoder.t
158+
157159
val decode : dir:Path.Source.t -> t Dune_lang.Decoder.t
158160

159161
val opam_file : t -> Path.Source.t

0 commit comments

Comments
 (0)