You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: mod.rs
    path of file: ./repos/surrealdb/src/rpc
    
    the code of the file until where you have to start completion: pub mod args;
pub mod connection;
pub mod failure;
pub mod format;
pub mod request;
pub mod response;

use
    
pub(crate) async fn notifications(canceller: CancellationToken) {
	// Listen to the notifications channel
	if let Some(channel) = DB.get().unwrap().notifications() {
		// Loop continuously
		loop {
			tokio::select! {
				//
				biased;
				// Check if this has shutdown
				_ = canceller.cancelled() => break,
				// Receive a notification on the channel
				Ok(notification) = channel.recv() => {
					// Find which WebSocket the notification belongs to
					if let Some(id) = LIVE_QUERIES.read().await.get(&notification.id) {
						// Check to see if the WebSocket exists
						if let Some(rpc) = WEBSOCKETS.read().await.get(id) {
							// Serialize the message to send
							let message = success(None, notification);
							// Add metrics
							let cx = TelemetryContext::new();
							let not_ctx = NotificationContext::default()
								  .with_live_id(id.to_string());
							let cx = Arc::new(cx.with_value(not_ctx));
							// Get the WebSocket output format
							let format = rpc.read().await.format;
							// get the WebSocket sending channel
							let sender = rpc.read().await.channels.0.clone();
							// Send the notification to the client
							message.send(cx, format, &sender).await
						}
					}
				},
			}
		}
	}
}