Matrix protocol in OCaml, Eio specialised
at main 83 lines 2.1 kB view raw
1(** Room directory and alias operations. *) 2 3(** {1 Room Aliases} *) 4 5(** Alias resolution result. *) 6type alias_info = { 7 room_id : Matrix_proto.Id.Room_id.t; 8 servers : string list; 9} 10 11(** Resolve a room alias to a room ID. 12 13 Returns the room ID and a list of servers that know about the room. *) 14val resolve_alias : 15 Client.t -> 16 alias:Matrix_proto.Id.Room_alias.t -> 17 (alias_info, Error.t) result 18 19(** Create a room alias pointing to a room. *) 20val create_alias : 21 Client.t -> 22 alias:Matrix_proto.Id.Room_alias.t -> 23 room_id:Matrix_proto.Id.Room_id.t -> 24 (unit, Error.t) result 25 26(** Delete a room alias. *) 27val delete_alias : 28 Client.t -> 29 alias:Matrix_proto.Id.Room_alias.t -> 30 (unit, Error.t) result 31 32(** {1 Room Visibility} *) 33 34(** Room visibility in the directory. *) 35type visibility = [ `Public | `Private ] 36 37(** Get a room's visibility in the directory. *) 38val get_visibility : 39 Client.t -> 40 room_id:Matrix_proto.Id.Room_id.t -> 41 (visibility, Error.t) result 42 43(** Set a room's visibility in the directory. 44 45 Requires appropriate permissions in the room. *) 46val set_visibility : 47 Client.t -> 48 room_id:Matrix_proto.Id.Room_id.t -> 49 visibility:visibility -> 50 (unit, Error.t) result 51 52(** {1 Room Directory Search} *) 53 54(** Search filter for public rooms. *) 55type search_filter = { 56 generic_search_term : string option; 57 (** Search term to filter room names and topics. *) 58 room_types : string list option; 59 (** Filter by room types (e.g., "m.space"). None includes all types. *) 60} 61 62(** Public room search result. *) 63type search_result = { 64 chunk : Rooms.public_room list; 65 next_batch : string option; 66 prev_batch : string option; 67 total_room_count_estimate : int option; 68} 69 70(** Search the public room directory. 71 72 @param server Server to query (default: local homeserver). 73 @param limit Maximum number of rooms to return. 74 @param since Pagination token. 75 @param filter Search filter. *) 76val search : 77 Client.t -> 78 ?server:string -> 79 ?limit:int -> 80 ?since:string -> 81 ?filter:search_filter -> 82 unit -> 83 (search_result, Error.t) result