feat(ir): replace Rpl with GraphIr

Semi-broken as atm the CLI just does nothing except printing the parsed
IR, instead of actually executing it.
This commit is contained in:
multisn8 2024-01-12 17:23:17 +01:00
parent ccbccfb11b
commit fcf7e909ee
Signed by: multisamplednight
GPG key ID: 6D525AA147CBDAE2
14 changed files with 198 additions and 143 deletions

View file

@ -0,0 +1,47 @@
use serde::{Deserialize, Serialize};
pub mod read;
pub mod write;
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum Kind {
Read(read::Read),
Write(write::Write),
Math(Math),
Blend(Blend),
Noise(Noise),
Filter(Filter),
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum Math {
Add,
Subtract,
Multiply,
Divide,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum Blend {
Normal,
Multiply,
Additive,
Overlay,
Screen,
Subtractive,
Difference,
Darken,
Lighten,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum Noise {
Perlin,
Simplex,
Voronoi,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum Filter {
Invert,
}

View file

@ -0,0 +1,19 @@
use serde::{Deserialize, Serialize};
use std::path::PathBuf;
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct Read {
pub source: SourceType,
pub format: SourceFormat,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum SourceType {
File(PathBuf),
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum SourceFormat {
Jpeg,
Png,
}

View file

@ -0,0 +1,19 @@
use serde::{Deserialize, Serialize};
use std::path::PathBuf;
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct Write {
pub target: TargetType,
pub format: TargetFormat,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum TargetType {
File(PathBuf),
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum TargetFormat {
Jpeg,
Png,
}