namespace.mojo (1162B)
1 from hyf_runtime.errors import raise_runtime_contract_error 2 3 4 comptime _HYF_RUNTIME_NAMESPACE = "services/hyf" 5 6 7 def hyf_runtime_namespace() -> String: 8 return _HYF_RUNTIME_NAMESPACE 9 10 11 def validate_runtime_namespace(namespace: String) raises: 12 if namespace != _HYF_RUNTIME_NAMESPACE: 13 raise_runtime_contract_error( 14 "namespace must be '" + _HYF_RUNTIME_NAMESPACE + "'" 15 ) 16 17 18 def _trim_trailing_slashes(path: String) -> String: 19 var trimmed = String(String(path).strip()) 20 while trimmed.byte_length() > 1 and trimmed.endswith("/"): 21 trimmed = String(trimmed[byte = 0 : trimmed.byte_length() - 1]) 22 return trimmed^ 23 24 25 def join_runtime_path(left: String, right: String) raises -> String: 26 var normalized_left = _trim_trailing_slashes(left) 27 var normalized_right = String(String(right).strip()) 28 29 if normalized_left == "": 30 raise_runtime_contract_error("path root must not be empty") 31 if normalized_right == "": 32 raise_runtime_contract_error("path leaf must not be empty") 33 34 if normalized_left == "/": 35 return "/" + normalized_right 36 return normalized_left + "/" + normalized_right