Move color and rectangle structs to separate module
This commit is contained in:
22
src/color.rs
Normal file
22
src/color.rs
Normal 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)
|
||||
}
|
||||
}
|
||||
54
src/main.rs
54
src/main.rs
@@ -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
20
src/rect.rs
Normal 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,
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user