aboutsummaryrefslogblamecommitdiffstats
path: root/lib/protocols/Directory.ml
blob: 232a47e3af3bb696507ff462f8a7117e61580601 (plain) (tree)
1
2
3
4
5
6
7
8
9
                                  

                                                                                


                                                   

                       
                                                  
                                                                                       
                                              
                                                        
class type implementation = object
  method list : (string BatFingerTree.t, Concepts.Condition.condition) result
  method find : string -> (Handle.t option, Concepts.Condition.condition) result
end

type Handle.protocol += Directory of implementation
type t = implementation

let make impl = Directory (impl :> implementation)
let from handle = Handle.into handle (function Directory impl -> Some impl | _ -> None)
let list i = Handle.invoke i (fun o -> o#list)
let find i name = Handle.invoke i (fun o -> o#find name)