Skip to content

Commit 8f419e3

Browse files
Robert Grossefacebook-github-bot
authored andcommitted
Refactor Rust scip decoding to helper function
Reviewed By: josh-gordon-fb Differential Revision: D78280935 fbshipit-source-id: 18ddb5a4d1a601702bed554dbae7082f6416300b
1 parent 13b4ee7 commit 8f419e3

1 file changed

Lines changed: 29 additions & 16 deletions

File tree

  • glean/lang/scip/indexer/scip_to_glean/src

glean/lang/scip/indexer/scip_to_glean/src/main.rs

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -70,30 +70,43 @@ async fn main(_fb: FacebookInit, args: BuildJsonArgs) -> Result<cli::ExitCode> {
7070
Ok(cli::ExitCode::SUCCESS)
7171
}
7272

73+
fn decode_scip_data(
74+
env: &mut Env,
75+
path: &Path,
76+
default_language: Option<LanguageId>,
77+
infer_language: bool,
78+
path_prefix: Option<&str>,
79+
) -> Result<()> {
80+
info!("Loading documents from {}", path.display());
81+
let scip_index = read_scip_file(path)
82+
.with_context(|| format!("Error opening input file {}", path.display()))?;
83+
info!("Loaded {} documents", scip_index.documents.len());
84+
85+
if let Some(metadata) = scip_index.metadata.into_option() {
86+
env.decode_scip_metadata(metadata);
87+
}
88+
for doc in scip_index.documents {
89+
env.decode_scip_doc(default_language, infer_language, path_prefix, doc)?;
90+
}
91+
Ok(())
92+
}
93+
7394
fn build_json(args: BuildJsonArgs) -> Result<()> {
7495
println!("{:?}", args);
7596
let default_language = args
7697
.language
7798
.as_ref()
7899
.and_then(|s| LanguageId::new(s).known());
79100

80-
info!("Loading documents");
81-
let scip_index = read_scip_file(&args.input)
82-
.with_context(|| format!("Error opening input file {}", args.input.display()))?;
83-
info!("Loaded {} documents", scip_index.documents.len());
84-
85101
let mut env = Env::new();
86-
if let Some(metadata) = scip_index.metadata.into_option() {
87-
env.decode_scip_metadata(metadata);
88-
}
89-
for doc in scip_index.documents {
90-
env.decode_scip_doc(
91-
default_language,
92-
args.infer_language,
93-
args.root_prefix.as_deref(),
94-
doc,
95-
)?;
96-
}
102+
decode_scip_data(
103+
&mut env,
104+
&args.input,
105+
default_language,
106+
args.infer_language,
107+
args.root_prefix.as_deref(),
108+
)?;
109+
97110
let shards = if let Some(shard_size) = args.shard {
98111
let shards = env.output().shard(shard_size);
99112
// pad the output files for correct numerical sorting

0 commit comments

Comments
 (0)