Module As_part

module As_part: sig .. end
Project parts.

See Assemblage.Part.



Part kinds


type kind = [ `Base | `Bin | `Dir | `Doc | `Lib | `Pkg | `Run | `Unit ] 
val pp_kind : Format.formatter -> kind -> unit

Usage


type usage = [ `Build | `Dev | `Doc | `Other of string | `Outcome | `Test ] 
val pp_usage : Format.formatter -> usage -> unit

Metadata


type meta 
val meta_key : unit -> ('a -> meta) * (meta -> 'a option)
val meta_nil : meta

Parts


type +[< kind ] t 
val v_kind : ?usage:usage ->
?exists:bool As_conf.value ->
?args:As_args.t ->
?meta:meta ->
?needs:[< kind ] t list ->
?root:As_path.rel As_conf.value ->
?actions:(kind t -> As_action.t list As_conf.value) ->
?check:(kind t -> bool As_conf.value) ->
string -> ([< kind ] as 'a) -> 'a t
val v : ?usage:usage ->
?exists:bool As_conf.value ->
?args:As_args.t ->
?meta:meta ->
?needs:[< kind ] t list ->
?root:As_path.rel As_conf.value ->
?actions:(kind t -> As_action.t list As_conf.value) ->
?check:(kind t -> bool As_conf.value) ->
string -> [< kind > `Base ] t
val kind : [< kind ] t -> kind
val name : [< kind ] t -> string
val usage : [< kind ] t -> usage
val exists : [< kind ] t -> bool As_conf.value
val meta : [< kind ] t -> meta
val get_meta : (meta -> 'a option) -> [< kind ] t -> 'a
val needs : [< kind ] t -> kind t list
val root : [< kind ] t -> As_path.rel As_conf.value
val root_path : [< kind ] t -> As_path.t As_conf.value
val args : [< kind ] t -> As_args.t
val actions : [< kind ] t -> As_action.t list As_conf.value
val check : [< kind ] t -> bool As_conf.value
val id : [< kind ] t -> int
val equal : [< kind ] t -> [< kind ] t -> bool
val compare : [< kind ] t -> [< kind ] t -> int
val deps : [< kind ] t -> As_conf.Key.Set.t
val ctx : [< kind ] t -> As_ctx.t
val redefine : ?check:(kind t -> bool As_conf.value) ->
?actions:(kind t -> As_action.t list As_conf.value) ->
([< kind ] as 'a) t -> 'a t

Part integration


val integrate : ?add_need:(kind t -> bool) ->
([< kind ] as 'a) t ->
[< kind ] t -> 'a t

Coercions


val coerce : ([< kind ] as 'a) -> [< kind ] t -> 'a t
val coerce_if : ([< kind ] as 'a) ->
[< kind ] t -> 'a t option

File part


val file : ?usage:usage ->
?exists:bool As_conf.value ->
As_path.t -> [< kind > `Base ] t

Part lists


val list_actions : kind t list -> As_action.t list As_conf.value
val list_uniquify : kind t list -> kind t list
val list_keep : (([< kind ] as 'a) t -> bool) ->
'a t list -> 'a t list
val list_keep_map : (([< kind ] as 'a) t -> 'b option) ->
'a t list -> 'b list
val list_keep_kind : ([< kind ] as 'a) ->
[< kind ] t list -> 'a t list
val list_keep_kinds : kind list ->
([< kind ] as 'a) t list -> 'a t list
val list_fold : ('a -> ([< kind ] as 'b) t -> 'a) ->
'a -> 'b t list -> 'a
val list_fold_kind : ([< kind ] as 'b) ->
('a -> 'b t -> 'a) -> 'a -> [< kind ] t list -> 'a
val list_fold_rec : ('a -> kind t -> 'a) ->
'a -> kind t list -> 'a
val list_fold_kind_rec : ([< kind ] as 'b) ->
('a -> 'b t -> 'a) -> 'a -> kind t list -> 'a

Part sets and maps


module Set: sig .. end
module Map: sig .. end