GPS Exchange Format library/CLI in OCaml
at main 2.6 kB view raw
1(** GPX Eio I/O operations 2 3 This module provides GPX I/O operations using Eio's effects-based 4 concurrent I/O system. All operations are structured concurrency 5 compatible and work with Eio's resource management. 6*) 7 8(** {1 File Operations} *) 9 10(** Read GPX from file path. 11 @param fs Filesystem capability 12 @param path File path to read 13 @param ?validate Optional validation flag (default: false) 14 @return GPX document or error *) 15val read_file : ?validate:bool -> fs:[> Eio.Fs.dir_ty ] Eio.Path.t -> string -> Gpx.t 16 17(** Write GPX to file path. 18 @param fs Filesystem capability 19 @param path File path to write 20 @param gpx GPX document to write 21 @param ?validate Optional validation flag (default: false) 22 @raises Gpx.Gpx_error on write failure *) 23val write_file : ?validate:bool -> fs:[> Eio.Fs.dir_ty ] Eio.Path.t -> string -> Gpx.t -> unit 24 25(** {1 Stream Operations} 26 27 Read/write GPX from/to Eio flows. *) 28 29(** Read GPX from Eio source. 30 @param source Input flow to read from 31 @param ?validate Optional validation flag (default: false) 32 @return GPX document *) 33val read_source : ?validate:bool -> [> Eio.Flow.source_ty ] Eio.Resource.t -> Gpx.t 34 35(** Write GPX to Eio sink. 36 @param sink Output flow to write to 37 @param gpx GPX document to write 38 @param ?validate Optional validation flag (default: false) *) 39val write_sink : ?validate:bool -> [> Eio.Flow.sink_ty ] Eio.Resource.t -> Gpx.t -> unit 40 41(** {1 Utility Functions} *) 42 43(** Check if file exists. 44 @param fs Filesystem capability 45 @param path File path to check 46 @return [true] if file exists and is readable *) 47val file_exists : fs:[> Eio.Fs.dir_ty ] Eio.Path.t -> string -> bool 48 49(** Get file size. 50 @param fs Filesystem capability 51 @param path File path 52 @return File size in bytes *) 53val file_size : fs:[> Eio.Fs.dir_ty ] Eio.Path.t -> string -> int 54 55(** Create backup of existing file. 56 @param fs Filesystem capability 57 @param path Original file path 58 @return Backup file path *) 59val create_backup : fs:[> Eio.Fs.dir_ty ] Eio.Path.t -> string -> string 60 61(** Write GPX to file with automatic backup. 62 Creates a backup of existing file before writing new content. 63 @param fs Filesystem capability 64 @param path File path to write 65 @param gpx GPX document to write 66 @param ?validate Optional validation flag (default: false) 67 @return Backup file path (empty string if no backup needed) *) 68val write_file_with_backup : ?validate:bool -> fs:[> Eio.Fs.dir_ty ] Eio.Path.t -> string -> Gpx.t -> string