at eio-update 2.2 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 path File path to read 12 @param ?validate Optional validation flag (default: false) 13 @return GPX document or error *) 14val read_file : ?validate:bool -> _ Eio.Path.t -> Gpx.t 15 16(** Write GPX to file path. 17 @param path File path to write 18 @param gpx GPX document to write 19 @param ?validate Optional validation flag (default: false) 20 @raises Gpx.Gpx_error on write failure *) 21val write_file : ?validate:bool -> _ Eio.Path.t -> Gpx.t -> unit 22 23(** {1 Stream Operations} 24 25 Read/write GPX from/to Eio flows. *) 26 27(** Read GPX from Eio source. 28 @param source Input flow to read from 29 @param ?validate Optional validation flag (default: false) 30 @return GPX document *) 31val read_source : ?validate:bool -> [> Eio.Flow.source_ty ] Eio.Resource.t -> Gpx.t 32 33(** Write GPX to Eio sink. 34 @param sink Output flow to write to 35 @param gpx GPX document to write 36 @param ?validate Optional validation flag (default: false) *) 37val write_sink : ?validate:bool -> [> Eio.Flow.sink_ty ] Eio.Resource.t -> Gpx.t -> unit 38 39(** {1 Utility Functions} *) 40 41(** Check if file exists. 42 @param path File path to check 43 @return [true] if file exists and is readable *) 44val file_exists : _ Eio.Path.t -> bool 45 46(** Get file size. 47 @param path File path 48 @return File size in bytes *) 49val file_size : _ Eio.Path.t -> int 50 51(** Create backup of existing file. 52 @param path Original file path 53 @return Backup file path *) 54val create_backup : 'a Eio.Path.t -> 'a Eio.Path.t option 55 56(** Write GPX to file with automatic backup. 57 Creates a backup of existing file before writing new content. 58 @param path File path to write 59 @param gpx GPX document to write 60 @param ?validate Optional validation flag (default: false) 61 @return Backup file path ([None] if no backup needed) *) 62val write_file_with_backup : ?validate:bool -> 'a Eio.Path.t -> Gpx.t -> 'a Eio.Path.t option