Alpha: add utility list conversion to operation application results
This commit is contained in:
parent
6a4c4f83b4
commit
ac7f4da1ab
@ -890,6 +890,25 @@ let rec unpack_contents_list :
|
|||||||
let ops, ress = unpack_contents_list rest in
|
let ops, ress = unpack_contents_list rest in
|
||||||
Cons (op, ops), Cons_result (res, ress)
|
Cons (op, ops), Cons_result (res, ress)
|
||||||
|
|
||||||
|
let rec to_list = function
|
||||||
|
| Contents_result_list (Single_result o) -> [Contents_result o]
|
||||||
|
| Contents_result_list (Cons_result (o, os)) ->
|
||||||
|
Contents_result o :: to_list (Contents_result_list os)
|
||||||
|
|
||||||
|
let rec of_list = function
|
||||||
|
| [] -> assert false
|
||||||
|
| [Contents_result o] -> Contents_result_list (Single_result o)
|
||||||
|
| (Contents_result o) :: os ->
|
||||||
|
let Contents_result_list os = of_list os in
|
||||||
|
match o, os with
|
||||||
|
| Manager_operation_result _, Single_result (Manager_operation_result _) ->
|
||||||
|
Contents_result_list (Cons_result (o, os))
|
||||||
|
| Manager_operation_result _, Cons_result _ ->
|
||||||
|
Contents_result_list (Cons_result (o, os))
|
||||||
|
| _ ->
|
||||||
|
Pervasives.failwith "Operation result list of length > 1 \
|
||||||
|
should only contains manager operations result."
|
||||||
|
|
||||||
let operation_data_and_metadata_encoding =
|
let operation_data_and_metadata_encoding =
|
||||||
def "operation.alpha.operation_with_metadata" @@
|
def "operation.alpha.operation_with_metadata" @@
|
||||||
union [
|
union [
|
||||||
|
@ -140,6 +140,12 @@ val unpack_contents_list :
|
|||||||
'kind contents_and_result_list ->
|
'kind contents_and_result_list ->
|
||||||
'kind contents_list * 'kind contents_result_list
|
'kind contents_list * 'kind contents_result_list
|
||||||
|
|
||||||
|
val to_list :
|
||||||
|
packed_contents_result_list -> packed_contents_result list
|
||||||
|
|
||||||
|
val of_list :
|
||||||
|
packed_contents_result list -> packed_contents_result_list
|
||||||
|
|
||||||
type ('a, 'b) eq = Eq : ('a, 'a) eq
|
type ('a, 'b) eq = Eq : ('a, 'a) eq
|
||||||
val kind_equal_list :
|
val kind_equal_list :
|
||||||
'kind contents_list -> 'kind2 contents_result_list -> ('kind, 'kind2) eq option
|
'kind contents_list -> 'kind2 contents_result_list -> ('kind, 'kind2) eq option
|
||||||
|
Loading…
Reference in New Issue
Block a user