mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-08 04:52:10 +00:00
Merge pull request #1458 from brett19/fix/solid-error-sm-status
fix: SolidError::sm_status and a port-invariant variant (fixes #1452)
This commit is contained in:
@@ -1616,7 +1616,9 @@ pub(crate) fn counts(b: &Brep) -> [usize; 10] {
|
||||
pub(crate) fn build_status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
SolidError::InvalidInput { .. } => f64::from(solidcore::error::SM_ERR_INVALID_INPUT),
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => {
|
||||
f64::from(solidcore::error::SM_ERR_INVALID_INPUT)
|
||||
}
|
||||
_ => f64::from(solidcore::error::SM_ERR),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -241,7 +241,7 @@ fn decode(
|
||||
fn rust_status(e: &SolidError) -> (i64, Option<String>) {
|
||||
match e {
|
||||
SolidError::Upstream { code, .. } => (i64::from(*code), None),
|
||||
SolidError::InvalidInput { .. } => (
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => (
|
||||
SM_ERR_INVALID_INPUT,
|
||||
Some(format!("SM_ERR_INVALID_INPUT ({e})")),
|
||||
),
|
||||
|
||||
@@ -158,7 +158,7 @@ fn status<T>(r: &Result<T, SolidError>, notes: &mut Vec<String>) -> Result<f64,
|
||||
Err(Deferred((*unit).to_string(), (*upstream).to_string()))
|
||||
}
|
||||
Err(SolidError::Upstream { code, .. }) => Ok(f64::from(*code)),
|
||||
Err(SolidError::InvalidInput { .. }) => {
|
||||
Err(SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. }) => {
|
||||
Ok(f64::from(solidcore::error::SM_ERR_INVALID_INPUT))
|
||||
}
|
||||
Err(e) => {
|
||||
|
||||
@@ -391,7 +391,7 @@ fn v3(a: [f64; 3]) -> Vec3 {
|
||||
fn status_of(e: &SolidError) -> Option<f64> {
|
||||
match e {
|
||||
SolidError::Upstream { code, .. } => Some(f64::from(*code)),
|
||||
SolidError::InvalidInput { reason, .. } if *reason != NULL_DEREF => Some(1007.0),
|
||||
SolidError::InvalidInput { reason, .. } | SolidError::PortInvariant { reason, .. } if *reason != NULL_DEREF => Some(1007.0),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
@@ -402,7 +402,7 @@ pub(super) fn rust_err(e: &SolidError) -> Output {
|
||||
if let Some(o) = Output::unported(e) {
|
||||
return o;
|
||||
}
|
||||
if matches!(e, SolidError::InvalidInput { reason, .. } if *reason == NULL_DEREF) {
|
||||
if matches!(e, SolidError::InvalidInput { reason, .. } | SolidError::PortInvariant { reason, .. } if *reason == NULL_DEREF) {
|
||||
return Output::err("refused");
|
||||
}
|
||||
match status_of(e) {
|
||||
@@ -930,7 +930,7 @@ fn run_rust(i: &Inputs) -> Result<Output, HarnessError> {
|
||||
match corner::check_nx1_degeneracy(&k, &mut t.brep, v, e) {
|
||||
Ok(f) => Ok(vec![flag(f)]),
|
||||
Err(e) if e.is_unported() => Err(e),
|
||||
Err(e) if matches!(&e, SolidError::InvalidInput { reason, .. } if *reason == NULL_DEREF) => {
|
||||
Err(e) if matches!(&e, SolidError::InvalidInput { reason, .. } | SolidError::PortInvariant { reason, .. } if *reason == NULL_DEREF) => {
|
||||
Err(e)
|
||||
}
|
||||
Err(e) => Ok(vec![model_status(&e)]),
|
||||
@@ -1898,7 +1898,7 @@ fn corner_err(e: &SolidError) -> Result<f64, Box<Output>> {
|
||||
if let Some(o) = Output::unported(e) {
|
||||
return Err(Box::new(o));
|
||||
}
|
||||
if matches!(e, SolidError::InvalidInput { reason, .. } if *reason == NULL_DEREF) {
|
||||
if matches!(e, SolidError::InvalidInput { reason, .. } | SolidError::PortInvariant { reason, .. } if *reason == NULL_DEREF) {
|
||||
return Err(Box::new(Output::err("refused")));
|
||||
}
|
||||
Ok(model_status(e))
|
||||
|
||||
@@ -539,7 +539,7 @@ fn run_rust(i: &Inputs) -> Result<Output, HarnessError> {
|
||||
// every InvalidInput of the op is a null dereference upstream (the empty list is
|
||||
// screened above): a missing radial (`NULL_DEREF`) or, from unit
|
||||
// `topology.edgeuse_p1`, a missing edge; the shim refuses both
|
||||
Err(SolidError::InvalidInput { .. }) => Ok(Output::err("refused")),
|
||||
Err(SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. }) => Ok(Output::err("refused")),
|
||||
Err(e) => Ok(rust_err(&e)),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -459,7 +459,7 @@ fn surface_of(s: &InlineSrf) -> Result<Surface, HarnessError> {
|
||||
/// The `SmStatus` of a Rust error; `-1` for one upstream cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -853,7 +853,7 @@ fn rust(input: &Inputs) -> Result<Output, HarnessError> {
|
||||
return Ok(deferred);
|
||||
}
|
||||
match error {
|
||||
SolidError::InvalidInput { .. } => 1007,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007,
|
||||
SolidError::Upstream { code, .. } => code,
|
||||
other => return Err(HarnessError::new(other.to_string())),
|
||||
}
|
||||
|
||||
@@ -643,7 +643,7 @@ fn point(out: &mut Vec<f64>, p: Vec3) {
|
||||
}
|
||||
pub(super) fn status(error: SolidError) -> SolidResult<f64> {
|
||||
match error {
|
||||
SolidError::InvalidInput { .. } => Ok(1007.0),
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => Ok(1007.0),
|
||||
SolidError::Upstream { code, .. } => Ok(f64::from(code)),
|
||||
error => Err(error),
|
||||
}
|
||||
@@ -892,7 +892,7 @@ fn setback_fillet_edges(
|
||||
}
|
||||
// SmApiSetBevelCorners ignores the ordinary StitchAndOrient return status.
|
||||
match stitch_and_orient(k, body, &StitchAndOrientOptions::default()) {
|
||||
Ok(()) | Err(SolidError::Upstream { .. } | SolidError::InvalidInput { .. }) => Ok(()),
|
||||
Ok(()) | Err(SolidError::Upstream { .. } | SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. }) => Ok(()),
|
||||
Err(error) => Err(error.into()),
|
||||
}
|
||||
}
|
||||
@@ -987,7 +987,7 @@ fn law_fillet_edges(
|
||||
session.do_fillet(k)?;
|
||||
}
|
||||
match stitch_and_orient(k, body, &StitchAndOrientOptions::default()) {
|
||||
Ok(()) | Err(SolidError::Upstream { .. } | SolidError::InvalidInput { .. }) => Ok(()),
|
||||
Ok(()) | Err(SolidError::Upstream { .. } | SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. }) => Ok(()),
|
||||
Err(error) => Err(error),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1181,7 +1181,7 @@ fn uv(p: [f64; 2]) -> Point2 {
|
||||
/// The `SmStatus` of a Rust error; `-1` for one upstream cannot return.
|
||||
pub(crate) fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -971,7 +971,7 @@ fn dump_curve(o: &mut Vec<f64>, c: Option<&Curve>) {
|
||||
/// The `SmStatus` of a Rust error; `-1` for one upstream cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -1410,7 +1410,7 @@ fn dump_surface(o: &mut Vec<f64>, s: Option<&Surface>) -> Result<(), HarnessErro
|
||||
/// The `SmStatus` of a Rust error; `-1` for one upstream cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -357,7 +357,7 @@ impl From<HarnessError> for Fail {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -656,7 +656,7 @@ fn cpp(i: &Inputs) -> Result<Output, HarnessError> {
|
||||
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
@@ -959,7 +959,7 @@ fn rust_brep(
|
||||
put_crv(&k, o, copy.as_ref().or(edge_curve));
|
||||
Ok(())
|
||||
}
|
||||
Err(SolidError::InvalidInput { .. }) => {
|
||||
Err(SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. }) => {
|
||||
o.push(-2.0);
|
||||
Ok(())
|
||||
}
|
||||
@@ -1031,7 +1031,7 @@ fn rust_brep(
|
||||
let side = EdgeuseId::from_index(eid(r[3])?);
|
||||
let one = |res: Result<usize, SolidError>| match res {
|
||||
Ok(v) => Ok(v as f64),
|
||||
Err(SolidError::InvalidInput { .. }) => Ok(-2.0),
|
||||
Err(SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. }) => Ok(-2.0),
|
||||
Err(e) => Err(e),
|
||||
};
|
||||
(|| -> Result<(), SolidError> {
|
||||
@@ -1051,7 +1051,7 @@ fn rust_brep(
|
||||
o.extend([b(tangent), b(opposite)]);
|
||||
Ok(())
|
||||
}
|
||||
Err(SolidError::InvalidInput { .. }) => {
|
||||
Err(SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. }) => {
|
||||
o.push(-2.0);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -464,7 +464,7 @@ fn cpp(i: &Inputs) -> Result<Output, HarnessError> {
|
||||
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -275,7 +275,7 @@ impl FilletSolverOps for HarnessSolver {
|
||||
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -368,7 +368,7 @@ fn setup<T>(r: solidcore::Result<T>, what: &str) -> Result<T, Fail> {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> i64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007,
|
||||
SolidError::Upstream { code, .. } => i64::from(*code),
|
||||
_ => -1,
|
||||
}
|
||||
|
||||
@@ -735,7 +735,7 @@ fn rust_edgeuse(i: &Inputs) -> Result<Output, HarnessError> {
|
||||
return Ok(o);
|
||||
}
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => Ok(Output::err("null_deref")),
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => Ok(Output::err("null_deref")),
|
||||
e => Err(harness(format!("rust: {e}"))),
|
||||
}
|
||||
}
|
||||
@@ -1041,7 +1041,7 @@ fn surface_of(s: &SrfIn) -> Result<Surface, HarnessError> {
|
||||
/// The `SmStatus` of a Rust error; `-1` for one upstream cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -659,7 +659,7 @@ fn run_rust(k: &Kernel, mut h: Hcr, r: &Resolved) -> Result<(f64, Vec<f64>), Sol
|
||||
};
|
||||
match res {
|
||||
Ok(()) => {}
|
||||
Err(e) if e.is_unported() || matches!(e, SolidError::InvalidInput { .. }) => return Err(e),
|
||||
Err(e) if e.is_unported() || matches!(e, SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. }) => return Err(e),
|
||||
Err(SolidError::Upstream { code, .. }) => status = f64::from(code),
|
||||
Err(e) => return Err(e),
|
||||
}
|
||||
|
||||
@@ -422,7 +422,7 @@ fn ub_242(i: &Inputs) -> Result<bool, HarnessError> {
|
||||
/// The `SmStatus` of a Rust error; `-1` for one upstream cannot return.
|
||||
fn status(e: &SolidError) -> i64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => SM_ERR_INVALID_INPUT,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => SM_ERR_INVALID_INPUT,
|
||||
SolidError::Upstream { code, .. } => i64::from(*code),
|
||||
_ => -1,
|
||||
}
|
||||
@@ -759,7 +759,7 @@ fn rust_call_with(k: &mut Kernel, i: &Inputs, seen: &dyn Fn(&SolidError)) -> Res
|
||||
Ok(record(0, o))
|
||||
}
|
||||
// Rejected: no result (`cleared`) and the list untouched.
|
||||
Err(e) if matches!(e, SolidError::InvalidInput { .. }) => {
|
||||
Err(e) if matches!(e, SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. }) => {
|
||||
seen(&e);
|
||||
Ok(record(status(&e), vec![1, count(v.len())?]))
|
||||
}
|
||||
|
||||
@@ -258,7 +258,7 @@ fn output(raw: &[f64]) -> Result<Output, HarnessError> {
|
||||
fn status(e: &SolidError) -> i64 {
|
||||
match e {
|
||||
SolidError::Upstream { code, .. } => i64::from(*code),
|
||||
SolidError::InvalidInput { .. } => 1007,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007,
|
||||
_ => -1,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -240,7 +240,7 @@ fn options(mask: u8) -> MergeOptions {
|
||||
}
|
||||
fn status(error: &SolidError) -> i64 {
|
||||
match error {
|
||||
SolidError::InvalidInput { .. } => 1007,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007,
|
||||
SolidError::Upstream { code, .. } => i64::from(*code),
|
||||
_ => -1,
|
||||
}
|
||||
|
||||
@@ -3579,7 +3579,7 @@ fn status<T>(r: Result<T, SolidError>, o: &mut Vec<f64>) -> Result<Option<T>, Fa
|
||||
o.push(f64::from(code));
|
||||
Ok(None)
|
||||
}
|
||||
Err(SolidError::InvalidInput { .. }) => {
|
||||
Err(SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. }) => {
|
||||
o.push(NULL_DEREF);
|
||||
Ok(None)
|
||||
}
|
||||
@@ -3868,7 +3868,7 @@ fn run_rust_script(i: &Inputs, p: Prepared) -> Result<(Vec<f64>, Vec<usize>), Fa
|
||||
}
|
||||
match ti::find_first_lowest_dimension_sol(&sols) {
|
||||
Ok(idx) => o.push(idx as f64),
|
||||
Err(SolidError::InvalidInput { .. }) => o.push(NULL_DEREF),
|
||||
Err(SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. }) => o.push(NULL_DEREF),
|
||||
Err(e) => return Err(e.into()),
|
||||
}
|
||||
}
|
||||
@@ -4294,7 +4294,7 @@ fn run_part2_op(
|
||||
// (without the maps, a definition with both finals is the port's
|
||||
// InvalidInput, which the shim refuses with -2 alone)
|
||||
let r = ti.set_relationships(k, two);
|
||||
if matches!(r, Err(SolidError::InvalidInput { .. })) {
|
||||
if matches!(r, Err(SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. })) {
|
||||
o.push(NULL_DEREF);
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
@@ -510,7 +510,7 @@ fn status<T>(r: Result<T, SolidError>, o: &mut Vec<f64>) -> Result<Option<T>, So
|
||||
o.push(f64::from(code));
|
||||
Ok(None)
|
||||
}
|
||||
Err(SolidError::InvalidInput { .. }) => {
|
||||
Err(SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. }) => {
|
||||
o.push(NULL_DEREF);
|
||||
Ok(None)
|
||||
}
|
||||
|
||||
@@ -559,7 +559,7 @@ fn pv(o: &mut Vec<f64>, v: Vec3) {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -636,7 +636,7 @@ fn pv(o: &mut Vec<f64>, v: Vec3) {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -103,7 +103,7 @@ fn lookup(name: &str) -> Result<(Op, bool), HarnessError> {
|
||||
|
||||
fn status_code(e: &SolidError) -> i64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => i64::from(SM_ERR_INVALID_INPUT),
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => i64::from(SM_ERR_INVALID_INPUT),
|
||||
SolidError::Upstream { code, .. } => i64::from(*code),
|
||||
_ => -1,
|
||||
}
|
||||
|
||||
@@ -571,7 +571,7 @@ fn put_state(o: &mut Vec<f64>, c: &CrvInVolume) {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -674,7 +674,7 @@ fn put_state(o: &mut Vec<f64>, c: &CrvOnSurf) {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -262,7 +262,7 @@ fn build(c: &CurveIn) -> Result<Curve, HarnessError> {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -307,7 +307,7 @@ fn pv(o: &mut Vec<f64>, v: Vec3) {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -750,7 +750,7 @@ fn state(o: &mut Vec<f64>, c: &Curve) {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -508,7 +508,7 @@ fn pv(o: &mut Vec<f64>, v: Vec3) {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -609,7 +609,7 @@ fn pv(o: &mut Vec<f64>, v: Vec3) {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -619,7 +619,7 @@ fn pv(o: &mut Vec<f64>, v: Vec3) {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -481,7 +481,7 @@ fn pv(o: &mut Vec<f64>, v: Vec3) {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -434,7 +434,7 @@ fn build(c: &CurveIn) -> Result<Curve, HarnessError> {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -294,7 +294,7 @@ fn build(c: &CurveIn) -> Result<Curve, HarnessError> {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -297,7 +297,7 @@ fn build(c: &CurveIn) -> Result<Curve, HarnessError> {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -494,7 +494,7 @@ fn b(x: bool) -> f64 {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
@@ -1114,7 +1114,7 @@ fn reads_uninitialised(i: &Inputs) -> bool {
|
||||
for op in &i.ops {
|
||||
if let OpJ::Assert { given } = op {
|
||||
let mut list = AssertArray::new();
|
||||
if let Err(SolidError::InvalidInput { reason, .. }) =
|
||||
if let Err(SolidError::InvalidInput { reason, .. } | SolidError::PortInvariant { reason, .. }) =
|
||||
a.assert_valid(&k, Some(&mut list), *given, KEY_A, KEY_POLAR)
|
||||
{
|
||||
if reason.contains("uninitialised") {
|
||||
|
||||
@@ -314,7 +314,7 @@ fn b(x: bool) -> f64 {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -144,7 +144,7 @@ fn lookup<T: Copy>(table: &[(&str, T)], name: &str) -> Result<T, HarnessError> {
|
||||
|
||||
fn status_code(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => f64::from(SM_ERR_INVALID_INPUT),
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => f64::from(SM_ERR_INVALID_INPUT),
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -255,7 +255,7 @@ fn pv(o: &mut Vec<f64>, v: Vec3) {
|
||||
|
||||
fn status_code(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => SM_ERR_INVALID_INPUT,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => SM_ERR_INVALID_INPUT,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -427,7 +427,7 @@ fn state(o: &mut Vec<f64>, c: &Curve) -> Result<(), HarnessError> {
|
||||
/// The `SmStatus` of a Rust error; `-1` for one upstream cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -591,7 +591,7 @@ fn b(x: bool) -> f64 {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -472,7 +472,7 @@ fn clone_ctor_unsafe(i: &Inputs) -> bool {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@ fn harness(msg: &str) -> HarnessError {
|
||||
|
||||
fn status_code(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => SM_ERR_INVALID_INPUT,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => SM_ERR_INVALID_INPUT,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -638,7 +638,7 @@ fn state(o: &mut Vec<f64>, c: &ProjectedCurve) {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -503,7 +503,7 @@ fn domain(d: Option<[f64; 4]>) -> Result<Option<Extent2d>, HarnessError> {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> i64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007,
|
||||
SolidError::Upstream { code, .. } => i64::from(*code),
|
||||
_ => -1,
|
||||
}
|
||||
|
||||
@@ -134,7 +134,7 @@ fn key_int(k: Option<ObjectKey>) -> i64 {
|
||||
|
||||
fn normalise(e: &SolidError) -> String {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => "invalid_input".into(),
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => "invalid_input".into(),
|
||||
SolidError::Upstream { code, .. } => format!("status_{code}"),
|
||||
other => format!("rust_error: {other}"),
|
||||
}
|
||||
|
||||
@@ -114,7 +114,7 @@ fn lookup<T: Copy>(table: &[(&str, T)], name: &str) -> Result<T, HarnessError> {
|
||||
|
||||
fn status_code(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => f64::from(SM_ERR_INVALID_INPUT),
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => f64::from(SM_ERR_INVALID_INPUT),
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -127,7 +127,7 @@ fn e2(e: &Extent1d) -> E2 {
|
||||
/// Status value of a Rust error (upstream `SmStatus`).
|
||||
fn status_of(e: &SolidError) -> Result<f64, HarnessError> {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => Ok(1007.0),
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => Ok(1007.0),
|
||||
SolidError::Upstream { code, .. } => Ok(f64::from(*code)),
|
||||
other => Err(harness(format!("unexpected rust error: {other}"))),
|
||||
}
|
||||
|
||||
@@ -293,7 +293,7 @@ fn b(v: bool) -> f64 {
|
||||
/// Status value of a Rust error (upstream `SmStatus`).
|
||||
fn status_of(e: &SolidError) -> Result<f64, HarnessError> {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => Ok(1007.0),
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => Ok(1007.0),
|
||||
SolidError::Upstream { code, .. } => Ok(f64::from(*code)),
|
||||
other => Err(harness(format!("unexpected rust error: {other}"))),
|
||||
}
|
||||
|
||||
@@ -287,7 +287,7 @@ fn b(v: bool) -> f64 {
|
||||
/// Status value of a Rust error (upstream `SmStatus`).
|
||||
fn status_of(e: &SolidError) -> Result<f64, HarnessError> {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => Ok(1007.0),
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => Ok(1007.0),
|
||||
SolidError::Upstream { code, .. } => Ok(f64::from(*code)),
|
||||
other => Err(harness(format!("unexpected rust error: {other}"))),
|
||||
}
|
||||
|
||||
@@ -116,7 +116,7 @@ fn lookup(name: &str) -> Result<Op, HarnessError> {
|
||||
/// Upstream status of a Rust error, or `None` for errors with no upstream status.
|
||||
fn status_code(e: &SolidError) -> Option<f64> {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => Some(1007.0),
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => Some(1007.0),
|
||||
SolidError::Upstream { code, .. } => Some(f64::from(*code)),
|
||||
_ => None,
|
||||
}
|
||||
|
||||
@@ -75,7 +75,7 @@ fn status(code: i32) -> Output {
|
||||
|
||||
fn normalise(e: &SolidError) -> String {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => "status_1007".into(),
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => "status_1007".into(),
|
||||
SolidError::Upstream { code, .. } => format!("status_{code}"),
|
||||
other => format!("rust_error: {other}"),
|
||||
}
|
||||
|
||||
@@ -111,7 +111,7 @@ fn explicit_definition_does_not_resolve_an_opaque_label() {
|
||||
];
|
||||
assert!(matches!(
|
||||
run_rust(&i, &mut Stats::default()),
|
||||
Err(SolidError::InvalidInput { .. })
|
||||
Err(SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. })
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
@@ -599,7 +599,7 @@ fn rust(p: &Parsed) -> Result<Output, HarnessError> {
|
||||
Err(e) => Ok(Output::unported(&e).unwrap_or_else(|| {
|
||||
Output::err(match e {
|
||||
SolidError::Upstream { code, .. } => format!("status_{code}"),
|
||||
SolidError::InvalidInput { .. } => "status_1007".into(),
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => "status_1007".into(),
|
||||
other => format!("rust_error: {other}"),
|
||||
})
|
||||
})),
|
||||
|
||||
@@ -91,7 +91,7 @@ fn floats(v: &[Value]) -> Result<Vec<f64>, HarnessError> {
|
||||
|
||||
fn normalise(e: &SolidError) -> String {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => "status_1007".into(),
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => "status_1007".into(),
|
||||
SolidError::Upstream { code, .. } => format!("status_{code}"),
|
||||
other => format!("rust_error: {other}"),
|
||||
}
|
||||
|
||||
@@ -123,7 +123,7 @@ fn status_of(r: &solidcore::Result<()>) -> Result<i64, HarnessError> {
|
||||
match r {
|
||||
Ok(()) => Ok(SM_SUCCESS),
|
||||
Err(SolidError::Upstream { code, .. }) => Ok(i64::from(*code)),
|
||||
Err(SolidError::InvalidInput { .. }) => Ok(SM_ERR_INVALID_INPUT),
|
||||
Err(SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. }) => Ok(SM_ERR_INVALID_INPUT),
|
||||
Err(e) => Err(HarnessError::new(format!("rust_error: {e}"))),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -139,7 +139,7 @@ fn lookup<T: Copy>(table: &[(&str, T)], name: &str) -> Result<T, HarnessError> {
|
||||
|
||||
fn status_code(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => f64::from(SM_ERR_INVALID_INPUT),
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => f64::from(SM_ERR_INVALID_INPUT),
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -291,7 +291,7 @@ fn flag(b: bool) -> i64 {
|
||||
/// Upstream status of a Rust error.
|
||||
fn status_of(e: &SolidError) -> i64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007,
|
||||
SolidError::Upstream { code, .. } => i64::from(*code),
|
||||
_ => 1001,
|
||||
}
|
||||
|
||||
@@ -88,7 +88,7 @@ fn lookup(name: &str) -> Result<Op, HarnessError> {
|
||||
|
||||
fn normalise(e: &SolidError) -> String {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => "invalid_input".into(),
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => "invalid_input".into(),
|
||||
SolidError::Upstream { code, .. } => format!("status_{code}"),
|
||||
other => format!("rust_error: {other}"),
|
||||
}
|
||||
|
||||
@@ -134,7 +134,7 @@ fn lookup(name: &str) -> Result<Op, HarnessError> {
|
||||
|
||||
fn normalise(e: &SolidError) -> String {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => "invalid_input".into(),
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => "invalid_input".into(),
|
||||
SolidError::Upstream { code, .. } => format!("status_{code}"),
|
||||
other => format!("rust_error: {other}"),
|
||||
}
|
||||
|
||||
@@ -1174,7 +1174,7 @@ fn run_rust(i: &Inputs) -> Result<Output, HarnessError> {
|
||||
let args = topo_args(&b, c, *kind, *sel0, *sel1, *f0, *f1, *uv)?;
|
||||
match topo_rust(&k, &mut b, &args) {
|
||||
Ok(v) => o = v,
|
||||
Err(SolidError::InvalidInput { .. }) => o.push(NULL_DEREF),
|
||||
Err(SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. }) => o.push(NULL_DEREF),
|
||||
Err(e) => return rust_fail(&e),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -138,7 +138,7 @@ fn run_rust(i: &Inputs) -> Result<Output, HarnessError> {
|
||||
create_status = SM_SUCCESS;
|
||||
api_heal_brep(&mut k, Some(&mut b))
|
||||
}
|
||||
Err(SolidError::InvalidInput { .. }) => {
|
||||
Err(SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. }) => {
|
||||
return Ok(Output::new().values("out", vec![SM_ERR_INVALID_INPUT, 0.0]));
|
||||
}
|
||||
Err(e) => {
|
||||
@@ -150,7 +150,7 @@ fn run_rust(i: &Inputs) -> Result<Output, HarnessError> {
|
||||
};
|
||||
Ok(match r {
|
||||
Ok(()) => Output::new().values("out", vec![create_status, SM_SUCCESS]),
|
||||
Err(SolidError::InvalidInput { .. }) => {
|
||||
Err(SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. }) => {
|
||||
Output::new().values("out", vec![create_status, SM_ERR_INVALID_INPUT])
|
||||
}
|
||||
Err(e) => Output::unported(&e).unwrap_or_else(|| Output::err(e.to_string())),
|
||||
|
||||
@@ -824,7 +824,7 @@ fn rust_prob(kind: u8, n: u64, ops: &[[i64; 4]]) -> Result<Output, HarnessError>
|
||||
let r = match kind {
|
||||
1 => match pair.remove(&arena, p) {
|
||||
Ok(r) => r,
|
||||
Err(SolidError::InvalidInput { .. }) => {
|
||||
Err(SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. }) => {
|
||||
o.push(NULL_DEREF);
|
||||
stop = true;
|
||||
continue;
|
||||
@@ -966,7 +966,7 @@ fn classify(e: SolidError) -> Fail {
|
||||
return Fail::Deferred(o);
|
||||
}
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => Fail::NullDeref,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => Fail::NullDeref,
|
||||
SolidError::Upstream { code, .. } => Fail::Status(code),
|
||||
e => Fail::Other(e.to_string()),
|
||||
}
|
||||
|
||||
@@ -848,10 +848,10 @@ fn run_cpp(k: &Kernel, i: &Inputs) -> Result<Output, HarnessError> {
|
||||
fn status_of(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
SolidError::InvalidInput { operation, .. } if *operation == "heal::stitch::p1" => {
|
||||
SolidError::InvalidInput { operation, .. } | SolidError::PortInvariant { operation, .. } if *operation == "heal::stitch::p1" => {
|
||||
NULL_DEREF
|
||||
}
|
||||
SolidError::InvalidInput { .. } => SM_ERR_INVALID_INPUT,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => SM_ERR_INVALID_INPUT,
|
||||
_ => -9.0,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -482,12 +482,12 @@ fn run_cpp(i: &Inputs) -> Result<Output, HarnessError> {
|
||||
fn status_of(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
SolidError::InvalidInput { operation, .. }
|
||||
SolidError::InvalidInput { operation, .. } | SolidError::PortInvariant { operation, .. }
|
||||
if *operation == "heal::stitch::p1" || *operation == "heal::stitch::p2" =>
|
||||
{
|
||||
NULL_DEREF
|
||||
}
|
||||
SolidError::InvalidInput { .. } => SM_ERR_INVALID_INPUT,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => SM_ERR_INVALID_INPUT,
|
||||
_ => -9.0,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -321,7 +321,7 @@ impl From<HarnessError> for Fail {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
@@ -581,7 +581,7 @@ fn branch(a: usize, b: usize) -> [Option<NodeId>; MAX_SOLVER_TREES] {
|
||||
|
||||
/// True for the error `ComputeSingularityPoint` returns on a ninth singular direction.
|
||||
fn is_sing_overflow(e: &SolidError) -> bool {
|
||||
matches!(e, SolidError::InvalidInput { reason, .. } if reason.starts_with("more than 8 singular"))
|
||||
matches!(e, SolidError::InvalidInput { reason, .. } | SolidError::PortInvariant { reason, .. } if reason.starts_with("more than 8 singular"))
|
||||
}
|
||||
|
||||
struct Ctx<'a> {
|
||||
|
||||
@@ -1105,7 +1105,7 @@ pub(crate) fn build_pool(objects: &[ObjIn]) -> Result<Pool, HarnessError> {
|
||||
pub(crate) fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
_ => -1.0,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -818,7 +818,7 @@ fn build_pool(objects: &[ObjIn]) -> Result<Pool, HarnessError> {
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
_ => -1.0,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -907,7 +907,7 @@ pub(crate) fn face_brep(k: &Kernel, face: &FaceIn) -> Result<(Brep, FaceId), Har
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
_ => -1.0,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -323,7 +323,7 @@ fn put_cc(out: &mut Vec<f64>, cc: &CurveClassification<H>, target: H) {
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
SolidError::InvalidInput { .. } => 1007.,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.,
|
||||
_ => -1.,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -414,7 +414,7 @@ fn put_pc(out: &mut Vec<f64>, pc: &PointClassification<Handle>, g: &Geometry) {
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
_ => -1.0,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -457,7 +457,7 @@ fn build_poly(
|
||||
/// The status of a failed Rust operation, as upstream numbers it.
|
||||
fn status_of(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => 1001.0,
|
||||
}
|
||||
|
||||
@@ -385,7 +385,7 @@ fn rust_curve(c: &CurveIn) -> Result<Curve, HarnessError> {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -681,7 +681,7 @@ fn put_uv_curve(o: &mut Vec<f64>, c: &Curve) -> Option<solidcore::Result<()>> {
|
||||
/// The `SmStatus` of a Rust error.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => 1001.0,
|
||||
}
|
||||
|
||||
@@ -564,7 +564,7 @@ pub(crate) fn put_curve(o: &mut Vec<f64>, c: &BSplineCurve) -> solidcore::Result
|
||||
/// The `SmStatus` of a Rust error.
|
||||
pub(crate) fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => 1001.0,
|
||||
}
|
||||
|
||||
@@ -397,7 +397,7 @@ impl From<HarnessError> for Fail {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -328,7 +328,7 @@ impl From<HarnessError> for Fail {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -295,7 +295,7 @@ impl From<HarnessError> for Fail {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -290,7 +290,7 @@ impl From<HarnessError> for Fail {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -233,7 +233,7 @@ fn cpp(i: &Inputs) -> Result<Output, HarnessError> {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -346,7 +346,7 @@ fn rust_curve(d: &CurveData) -> Result<BSplineCurve, HarnessError> {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -512,7 +512,7 @@ impl<'s> SurfaceTrace<'s> for SectionTracer<'s> {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -749,7 +749,7 @@ impl TopologyObjects<Obj> for Scene {
|
||||
/// cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -651,7 +651,7 @@ fn static_rust(case: &Case) -> Result<Output, HarnessError> {
|
||||
return Ok(deferred);
|
||||
}
|
||||
let status = match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(code),
|
||||
_ => return Err(HarnessError::new(e.to_string())),
|
||||
};
|
||||
|
||||
@@ -49,7 +49,7 @@ fn output(v: Vec<f64>) -> Output {
|
||||
}
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => 1001.0,
|
||||
}
|
||||
|
||||
@@ -433,7 +433,7 @@ fn status(e: &SolidError) -> f64 {
|
||||
{
|
||||
1000.0
|
||||
}
|
||||
SolidError::InvalidInput { reason, .. } if *reason == BARE_FLAG_REASON => 1000.0,
|
||||
SolidError::InvalidInput { reason, .. } | SolidError::PortInvariant { reason, .. } if *reason == BARE_FLAG_REASON => 1000.0,
|
||||
_ => -1.0,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -566,7 +566,7 @@ fn status(e: &SolidError) -> f64 {
|
||||
{
|
||||
1000.0
|
||||
}
|
||||
SolidError::InvalidInput { reason, .. } if *reason == BARE_FLAG_REASON => 1000.0,
|
||||
SolidError::InvalidInput { reason, .. } | SolidError::PortInvariant { reason, .. } if *reason == BARE_FLAG_REASON => 1000.0,
|
||||
_ => -1.0,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -337,7 +337,7 @@ fn status(e: &SolidError) -> f64 {
|
||||
SolidError::NotConverged { operation, .. } if operation.starts_with("nurbs::bezier") => {
|
||||
1000.0
|
||||
}
|
||||
SolidError::InvalidInput { reason, .. } if *reason == BARE_FLAG_REASON => 1000.0,
|
||||
SolidError::InvalidInput { reason, .. } | SolidError::PortInvariant { reason, .. } if *reason == BARE_FLAG_REASON => 1000.0,
|
||||
_ => -1.0,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -213,7 +213,7 @@ fn status(e: &SolidError) -> f64 {
|
||||
SolidError::NotConverged { operation, .. } if operation.starts_with("nurbs::bezier") => {
|
||||
1000.0
|
||||
}
|
||||
SolidError::InvalidInput { reason, .. } if *reason == BARE_FLAG_REASON => 1000.0,
|
||||
SolidError::InvalidInput { reason, .. } | SolidError::PortInvariant { reason, .. } if *reason == BARE_FLAG_REASON => 1000.0,
|
||||
_ => -1.0,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -428,7 +428,7 @@ fn status<T>(r: &SolidResult<T>) -> f64 {
|
||||
match r {
|
||||
Ok(_) => 0.0,
|
||||
Err(SolidError::Nlib { code, .. }) => f64::from(code.code()),
|
||||
Err(SolidError::InvalidInput { reason, .. }) if *reason == BARE_FLAG_REASON => BARE_FLAG,
|
||||
Err(SolidError::InvalidInput { reason, .. } | SolidError::PortInvariant { reason, .. }) if *reason == BARE_FLAG_REASON => BARE_FLAG,
|
||||
Err(SolidError::NotConverged { operation, .. })
|
||||
if operation.ends_with("srf_adv::p2::extend_by_dist_at_depth") =>
|
||||
{
|
||||
|
||||
@@ -462,7 +462,7 @@ fn status<T>(r: &SolidResult<T>) -> f64 {
|
||||
match r {
|
||||
Ok(_) => 0.0,
|
||||
Err(SolidError::Nlib { code, .. }) => f64::from(code.code()),
|
||||
Err(SolidError::InvalidInput { reason, .. }) if *reason == BARE_FLAG_REASON => 1000.0,
|
||||
Err(SolidError::InvalidInput { reason, .. } | SolidError::PortInvariant { reason, .. }) if *reason == BARE_FLAG_REASON => 1000.0,
|
||||
Err(_) => -1.0,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -726,7 +726,7 @@ fn dump_state(o: &mut Vec<f64>, c: &BSplineCurve) {
|
||||
/// The `SmStatus` of a Rust error; `-1` for one upstream cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -706,7 +706,7 @@ fn dump_state(o: &mut Vec<f64>, c: &BSplineCurve) {
|
||||
/// The `SmStatus` of a Rust error; `-1` for one upstream cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -731,7 +731,7 @@ fn dump_state(o: &mut Vec<f64>, c: &BSplineCurve) {
|
||||
/// The `SmStatus` of a Rust error; `-1` for one upstream cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -510,7 +510,7 @@ fn dump_state(o: &mut Vec<f64>, c: &BSplineCurve) {
|
||||
/// The `SmStatus` of a Rust error; `-1` for one upstream cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -840,7 +840,7 @@ fn dump_curve(o: &mut Vec<f64>, c: &BSplineCurve) {
|
||||
/// The `SmStatus` of a Rust error; `-1` for one upstream cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
@@ -680,7 +680,7 @@ fn dump_state(o: &mut Vec<f64>, s: &BSplineSurface) {
|
||||
/// The `SmStatus` of a Rust error; `-1` for one upstream cannot return.
|
||||
fn status(e: &SolidError) -> f64 {
|
||||
match e {
|
||||
SolidError::InvalidInput { .. } => 1007.0,
|
||||
SolidError::InvalidInput { .. } | SolidError::PortInvariant { .. } => 1007.0,
|
||||
SolidError::Upstream { code, .. } => f64::from(*code),
|
||||
_ => -1.0,
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user