Move color and rectangle structs to separate module

This commit is contained in:
Tim Visée
2017-12-30 21:29:24 +01:00
parent 08b42805ff
commit be0b3aa41f
3 changed files with 46 additions and 50 deletions

22
src/color.rs Normal file
View File

@@ -0,0 +1,22 @@
/// Color struct.
///
/// Represents a color with RGB values from 0 to 255.
impl Color {
/// Constructor.
///
/// The Red, Green and Blue values must be between 0 and 255.
pub fn from(r: u8, g: u8, b: u8) -> Color {
Color {
r,
g,
b,
}
}
/// Get a hexadecimal representation of the color,
/// such as `FFFFFF` for white and `FF0000` for red.
pub fn as_hex(&self) -> String {
format!("{:02X}{:02X}{:02X}", self.r, self.g, self.b)
}
}

View File

@@ -3,6 +3,8 @@ extern crate clap;
extern crate image;
mod app;
mod color;
mod rect;
use std::io::Error;
use std::io::prelude::*;
@@ -19,6 +21,8 @@ use clap::{Arg, ArgMatches, App};
use image::{DynamicImage, FilterType, Pixel};
use app::*;
use color::Color;
use rect::Rect;
@@ -546,53 +550,3 @@ impl PixClient {
// Ok(buffer)
// }
}
/// Color structure.
#[derive(Copy, Clone)]
struct Color {
r: u8,
g: u8,
b: u8,
}
impl Color {
/// Create a new color instance
pub fn from(r: u8, g: u8, b: u8) -> Color {
Color {
r,
g,
b,
}
}
/// Get a hexadecimal representation of the color,
/// such as `FFFFFF` for white and `FF0000` for red.
pub fn as_hex(&self) -> String {
format!("{:02X}{:02X}{:02X}", self.r, self.g, self.b)
}
}
/// Rectangle struct.
#[derive(Copy, Clone)]
pub struct Rect {
// TODO: Make these properties private
pub x: u32,
pub y: u32,
pub w: u32,
pub h: u32,
}
impl Rect {
pub fn from(x: u32, y: u32, w: u32, h: u32) -> Rect {
Rect {
x,
y,
w,
h,
}
}
}

20
src/rect.rs Normal file
View File

@@ -0,0 +1,20 @@
/// Rectangle struct.
#[derive(Copy, Clone)]
pub struct Rect {
// TODO: Make these properties private
pub x: u32,
pub y: u32,
pub w: u32,
pub h: u32,
}
impl Rect {
pub fn from(x: u32, y: u32, w: u32, h: u32) -> Rect {
Rect {
x,
y,
w,
h,
}
}
}