pgcopy 0.0.2

PostgreSQL binary COPY format generator
Documentation
use std::io;

use byteorder::{WriteBytesExt, NetworkEndian};

use crate::types;

impl types::Type for i16 {
    fn to_writer<W: io::Write>(&self, writer: &mut W) -> io::Result<()> {
        writer.write_i32::<NetworkEndian>(2)?;
        writer.write_i16::<NetworkEndian>(*self)
    }
}
impl types::SmallInt for i16 {}

impl types::Type for i32 {
    fn to_writer<W: io::Write>(&self, writer: &mut W) -> io::Result<()> {
        writer.write_i32::<NetworkEndian>(4)?;
        writer.write_i32::<NetworkEndian>(*self)
    }
}
impl types::Integer for i32 {}

impl types::Type for i64 {
    fn to_writer<W: io::Write>(&self, writer: &mut W) -> io::Result<()> {
        writer.write_i32::<NetworkEndian>(8)?;
        writer.write_i64::<NetworkEndian>(*self)
    }
}
impl types::BigInt for i64 {}

impl types::Type for f32 {
    fn to_writer<W: io::Write>(&self, writer: &mut W) -> io::Result<()> {
        writer.write_i32::<NetworkEndian>(4)?;
        writer.write_f32::<NetworkEndian>(*self)
    }
}
impl types::Real for f32 {}

impl types::Type for f64 {
    fn to_writer<W: io::Write>(&self, writer: &mut W) -> io::Result<()> {
        writer.write_i32::<NetworkEndian>(8)?;
        writer.write_f64::<NetworkEndian>(*self)
    }
}
impl types::Double for f64 {}