// Copyright (c) 2025, Huawei Technologies Co., Ltd.
// All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
use self::FileType::*;
pub enum FileType {
ONNX,
MindIR,
GeIR,
PBTXT,
DOT,
OmJson,
Unsupported,
}
impl From<&str> for FileType {
fn from(value: &str) -> Self {
if value.ends_with(".onnx") {
return ONNX;
} else if value.ends_with(".mindir") {
return MindIR;
} else if value.ends_with(".geir") {
return GeIR;
} else if value.ends_with(".pbtxt") {
return PBTXT;
} else if value.ends_with(".dot") {
return DOT;
} else if value.ends_with(".json") {
return OmJson;
}
Unsupported
}
}
impl FileType {
pub fn as_str(&self) -> &'static str {
match self {
ONNX => "ONNX",
MindIR => "MindIR",
GeIR => "GeIR",
PBTXT => "PBTXT",
DOT => "DOT",
OmJson => "OmJson",
Unsupported => "Unsupported",
}
}
}