This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use crate::cmd::{Parse, ParseError, Unknown}; | |
use crate::{Command, Connection, Db, Frame, Shutdown}; | |
use bytes::Bytes; | |
use std::pin::Pin; | |
use tokio::select; | |
use tokio::sync::broadcast; | |
use tokio_stream::{Stream, StreamExt, StreamMap}; | |
/// Subscribes the client to one or more channels. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use crate::cmd::{Parse, ParseError}; | |
use crate::{Connection, Db, Frame}; | |
use bytes::Bytes; | |
use std::time::Duration; | |
use tracing::{debug, instrument}; | |
/// Set `key` to hold the string `value`. | |
/// | |
/// If `key` already holds a value, it is overwritten, regardless of its type. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use crate::{Connection, Db, Frame, Parse}; | |
use bytes::Bytes; | |
/// Posts a message to the given channel. | |
/// | |
/// Send a message into a channel without any knowledge of individual consumers. | |
/// Consumers may subscribe to channels in order to receive the messages. | |
/// | |
/// Channel names have no relation to the key-value namespace. Publishing on a |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use crate::{Connection, Frame, Parse, ParseError}; | |
use bytes::Bytes; | |
use tracing::instrument; | |
/// Returns PONG if no argument is provided, otherwise | |
/// return a copy of the argument as a bulk. | |
/// | |
/// This command is often used to test if a connection | |
/// is still alive, or to measure latency. | |
#[derive(Debug, Default)] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use crate::{Connection, Db, Frame, Parse}; | |
use bytes::Bytes; | |
use tracing::{debug, instrument}; | |
/// Get the value of key. | |
/// | |
/// If the key does not exist the special value nil is returned. An error is | |
/// returned if the value stored at key is not a string, because GET only | |
/// handles string values. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
mod get; | |
pub use get::Get; | |
mod publish; | |
pub use publish::Publish; | |
mod set; | |
pub use set::Set; | |
mod subscribe; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use std::rc::Rc; | |
use std::cell::RefCell; | |
impl Solution { | |
pub fn preorder_traversal(root: Option<Rc<RefCell<TreeNode>>>) -> Vec<i32> { | |
let mut result = vec![]; | |
fn helper(root: Option<Rc<RefCell<TreeNode>>>, result: &mut Vec<i32>) -> (){ | |
if let Some(curr) = root{ | |
let curr = curr.borrow(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use std::rc::Rc; | |
use std::cell::RefCell; | |
impl Solution { | |
pub fn has_path_sum(root: Option<Rc<RefCell<TreeNode>>>, target_sum: i32) -> bool { | |
if let Some(curr_node) = root { | |
let curr_node = curr_node.borrow(); | |
if curr_node.left.is_none() && curr_node.right.is_none() && curr_node.val == target_sum { | |
return true | |
} | |
return Self::has_path_sum(curr_node.left.clone(), target_sum - curr_node.val) || |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use crate::client::Client; | |
use crate::Result; | |
use bytes::Bytes; | |
use tokio::sync::mpsc::{channel, Receiver, Sender}; | |
use tokio::sync::oneshot; | |
/// Create a new client request buffer | |
/// | |
/// The `Client` performs Redis commands directly on the TCP connection. Only a |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//! Minimal blocking Redis client implementation | |
//! | |
//! Provides a blocking connect and methods for issuing the supported commands. | |
use bytes::Bytes; | |
use std::time::Duration; | |
use tokio::net::ToSocketAddrs; | |
use tokio::runtime::Runtime; | |
pub use crate::client::Message; |