sley-protocol 0.4.1

Native-Rust implementation of Git's wire protocol: pkt-line framing and protocol v0/v1/v2 codecs.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use sley_core::Result;
use std::io::Write;

use crate::pktline::{PktLineFrame, line_from_str, trim_trailing_lf, write_pkt_line_payload};

pub(crate) const V1_VERSION_TEXT: &str = "version 1";

pub(crate) fn is_v1_version_payload(payload: &[u8]) -> bool {
    trim_trailing_lf(payload) == V1_VERSION_TEXT.as_bytes()
}

pub(crate) fn encode_v1_version_frame() -> Result<PktLineFrame> {
    PktLineFrame::data(line_from_str(V1_VERSION_TEXT))
}

pub(crate) fn write_v1_version_line(writer: &mut impl Write) -> Result<()> {
    write_pkt_line_payload(writer, b"version 1\n")
}