Developer Resources

  • Blog posts
  • Code snippets
  • Hier kann ihre Werbung stehen
import { createContext, ReactNode, useContext } from "react";
import { NavigationNode } from "src/navigation/types";

interface GlobalData {
  navigation: NavigationNode;
}

interface Props extends GlobalData {
  children: ReactNode;
}

const context = createContext<GlobalData>({} as GlobalData);

export function GlobalProvider({ children, ...props }: Props) {
  return (
    <context.Provider value={props}>
      {children}
    </context.Provider>
  );
}

export function useGlobalData() {
  return useContext(context);
}
fn send_response(stream: &mut TcpStream, response: Response) -> Result<usize, std::io::Error> {
    let mut writer = BufWriter::new(stream);

    let headers = response
        .headers
        .iter()
        .fold(String::new(), |acc, (header, value)| {
            acc + header + ":" + value + "\n"
        });

    let status_line_and_headers = format!(
        "{} {} {}\n{}\n",
        response.http_version, response.status, response.status_text, headers
    );

    writer.write(status_line_and_headers.as_bytes())?;

    if let Some(body) = response.body {
        writer.write(&body)
    } else {
        Ok(0)
    }
}