package conan
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=6247de95f13d4e08d82970ebf15a0d307d566138a99254a7475b21867adae356
sha512=f1c783b686b883b9e28abcc551cc6e45ae6df7557d2ef56a371493566bdb57e5765c5b94bfb138871f556814f870664c1c3617122e83df8e83d0d20b032fecb3
doc/conan.string/Conan_string/index.html
Module Conan_stringSource
recognition.
Conan_string is a system-free implementation of the file recognition. This implementation does not uses any syscalls - and it can be safely used into a MirageOS example.
So Conan_string does not have an access to a database. The user must rebuild a Conan.Tree.t by himself/herself via tree_of_string for example. Then, from this tree, the user is able to recognize a payload as a simple string with run:
let v =
{file|0 byte 0x66
>1 byte 0x6f
>>1 byte 0x6f foo header
|file}
let tree = match Conan_string.tree_of_string v with
| Ok tree -> tree
| Error (`Msg err) -> failwith err
let database = Conan.Tree.database ~tree
let m = match Conan_string.run ~database contents with
| Ok m -> m
| Error (`Msg err) -> failwith errtree_of_string str tries to parse the given str as a decision tree according to the libmagic format.
val run :
database:Conan.Process.database ->
string ->
(Conan.Metadata.t, [> `Msg of string ]) resultrun ~database contents tries to recognize the given contents with the help of database. The databse can be made via Conan.Process.database. Indeed, a Conan.Tree.t can have some indirect decision paths so we must pre-process the tree to agglomerate such indirections.