New nodes: Logical boolean operations (OR, AND, XOR, NOT) (#1399)

* Add Boolean Operations Nodes

Adds OR AND XOR and NOT operators

* Fix operand naming

Inputs to the 'Min' 'Max' 'Equality' and boolean operations nodes were
previously named 'First' and 'Second' and are now called 'Operand A' and
'Operand B'

* Rename Equality to Equals

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
isiko
2023-08-29 23:55:14 -07:00
committed by GitHub
co-authored by Keavon Chambers
parent 48fdaddc37
commit 3419e739af
5 changed files with 98 additions and 10 deletions
+34
View File
@@ -7,3 +7,37 @@ fn log_to_console<T: core::fmt::Debug>(value: T) -> T {
debug!("{:#?}", value);
value
}
pub struct LogicOrNode<Second> {
second: Second,
}
#[node_macro::node_fn(LogicOrNode)]
fn logic_or(first: bool, second: bool) -> bool {
first || second
}
pub struct LogicAndNode<Second> {
second: Second,
}
#[node_macro::node_fn(LogicAndNode)]
fn logic_and(first: bool, second: bool) -> bool {
first && second
}
pub struct LogicXorNode<Second> {
second: Second,
}
#[node_macro::node_fn(LogicXorNode)]
fn logic_xor(first: bool, second: bool) -> bool {
first ^ second
}
pub struct LogicNotNode;
#[node_macro::node_fn(LogicNotNode)]
fn logic_not(first: bool) -> bool {
!first
}
+1 -1
View File
@@ -183,7 +183,7 @@ fn max<T: core::cmp::PartialOrd>(first: T, second: T) -> T {
}
}
// Equality
// Equals
pub struct EqParameterNode<Second> {
second: Second,
}