added the remaining doctests for main lib
This commit is contained in:
		
							parent
							
								
									c68cff2728
								
							
						
					
					
						commit
						99ede02159
					
				
					 1 changed files with 26 additions and 9 deletions
				
			
		
							
								
								
									
										35
									
								
								src/lib.rs
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								src/lib.rs
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -49,7 +49,7 @@ use std::{
 | 
			
		|||
///
 | 
			
		||||
/// let data = Example { code: 123, message: "hello".to_string() };
 | 
			
		||||
/// let json = miniserde::json::to_string(&data);
 | 
			
		||||
/// let request = Request::post("example.org/api").body(&json);
 | 
			
		||||
/// let request = Request::post("example.org/api", &json);
 | 
			
		||||
/// assert_eq!(
 | 
			
		||||
///     format!("{request}"),
 | 
			
		||||
///     "POST /api HTTP/1.1\r\nHost: example.org\r\n\r\n{\"code\":123,\"message\":\"hello\"}"
 | 
			
		||||
| 
						 | 
				
			
			@ -72,7 +72,7 @@ impl<'a> Request<'a> {
 | 
			
		|||
    ///
 | 
			
		||||
    /// Convenience functions are provided for each HTTP method [`Request::get`], [`Request::post`] etc.
 | 
			
		||||
    ///
 | 
			
		||||
    /// # Usage
 | 
			
		||||
    /// # Examples
 | 
			
		||||
    ///
 | 
			
		||||
    /// ```rust
 | 
			
		||||
    /// # use request::*;
 | 
			
		||||
| 
						 | 
				
			
			@ -90,11 +90,11 @@ impl<'a> Request<'a> {
 | 
			
		|||
 | 
			
		||||
    /// Add a body to the request.
 | 
			
		||||
    ///
 | 
			
		||||
    /// # Usage
 | 
			
		||||
    /// # Examples
 | 
			
		||||
    ///
 | 
			
		||||
    /// ```rust
 | 
			
		||||
    /// # use request::*;
 | 
			
		||||
    /// let request = Request::post("example.org").body("Hello Server!");
 | 
			
		||||
    /// let request = Request::new("example.org", Method::POST).body("Hello Server!");
 | 
			
		||||
    /// assert_eq!(format!("{request}"), "POST / HTTP/1.1\r\nHost: example.org\r\n\r\nHello Server!");
 | 
			
		||||
    /// ```
 | 
			
		||||
    pub fn body(self, body: &'a str) -> Self {
 | 
			
		||||
| 
						 | 
				
			
			@ -105,7 +105,7 @@ impl<'a> Request<'a> {
 | 
			
		|||
 | 
			
		||||
    /// Add a header to the request.
 | 
			
		||||
    ///
 | 
			
		||||
    /// # Usage
 | 
			
		||||
    /// # Examples
 | 
			
		||||
    ///
 | 
			
		||||
    /// ```rust
 | 
			
		||||
    /// # use request::*;
 | 
			
		||||
| 
						 | 
				
			
			@ -119,7 +119,7 @@ impl<'a> Request<'a> {
 | 
			
		|||
 | 
			
		||||
    /// Construct a new GET request.
 | 
			
		||||
    ///
 | 
			
		||||
    /// # Usage
 | 
			
		||||
    /// # Examples
 | 
			
		||||
    ///
 | 
			
		||||
    /// ```rust
 | 
			
		||||
    /// # use request::*;
 | 
			
		||||
| 
						 | 
				
			
			@ -131,11 +131,29 @@ impl<'a> Request<'a> {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    /// Construct a new POST request.
 | 
			
		||||
    pub fn post(url: &'a str) -> Self {
 | 
			
		||||
        Request::new(url, Method::POST)
 | 
			
		||||
    ///
 | 
			
		||||
    /// # Examples
 | 
			
		||||
    ///
 | 
			
		||||
    /// ```rust
 | 
			
		||||
    /// # use request::*;
 | 
			
		||||
    /// let request = Request::post("example.org", r#"{ "hello": "world"}"#);
 | 
			
		||||
    /// assert_eq!(format!("{request}"), "POST / HTTP/1.1\r\nHost: example.org\r\n\r\n{ \"hello\": \"world\"}")
 | 
			
		||||
    /// ```
 | 
			
		||||
    pub fn post(url: &'a str, body: &'a str) -> Self {
 | 
			
		||||
        Request::new(url, Method::POST).body(body)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// Dispatch the request.
 | 
			
		||||
    ///
 | 
			
		||||
    /// # Examples
 | 
			
		||||
    ///
 | 
			
		||||
    /// ```rust
 | 
			
		||||
    /// # use request::*;
 | 
			
		||||
    /// // ... start a local server on port 8000 ...
 | 
			
		||||
    /// let request = Request::get("localhost:8000");
 | 
			
		||||
    /// let response = request.send().expect("request failed");
 | 
			
		||||
    /// assert_eq!(response.status, 200);
 | 
			
		||||
    /// ```
 | 
			
		||||
    pub fn send(&self) -> Result<Response, IoError> {
 | 
			
		||||
        // format the message
 | 
			
		||||
        let message = format!("{self}");
 | 
			
		||||
| 
						 | 
				
			
			@ -153,7 +171,6 @@ impl<'a> Request<'a> {
 | 
			
		|||
        let lines = BufReader::new(stream)
 | 
			
		||||
            .lines()
 | 
			
		||||
            .map(|l| l.unwrap())
 | 
			
		||||
            .inspect(|l| println!("{l}"))
 | 
			
		||||
            .collect::<Vec<_>>();
 | 
			
		||||
        let received = lines.join("\n");
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue